4 ms·
Are there good resources out there for experienced programmers who want to write games for fun? As someone who last wrote simple games 20 years ago, I'm a littl
by anatoly 13y ago
Are there good resources out there for experienced programmers who want to write games for fun? As someone who last wrote simple games 20 years ago, I'm a little bewildered as to where to begin - should I study OpenGL? Some kind of engine/toolkit above it? What do people use for sound? The world is all different and the past is another country etc.
- hatu 13y agoIt depends on what you're interested in. If it's creating a engine from scratch then C++ and OpenGL or DirectX but if you just want to start programming games from day 1, I recommend getting the free version of Unity3D.
- eropple 13y agoEven if you're not interested in creating an engine from scratch for a production game, I recommend you spend a few weeks learning OpenGL (modern OpenGL--not the fixed-function pipeline). Unity3D is great for some stuff, but understanding the core of what you're doing is valuable.
- anatoly 13y agoThanks! How do I learn modern OpenGL specifically - is there an authoritative book everyone knows, or a very good tutorial?
- eropple 13y agoHaha...that's the hard part. I wish I had a good source for this, but, honestly? I learned through the guidance of a good friend (ex-nVidia). I wouldn't have gotten there without it, but at this point I can reason about (parts of) OpenGL as it "should" be reasoned about. Not all of it by any means--there is a lot of deep magic there--but I have the foundation to understand what other engines and tools are doing.
- jvrossb 13y agoWe have some tutorials that may be helpful if you want to make iOS games at https://www.makegameswith.us/tutorials/learn/ https://www.makegameswith.us/tutorials/learn/. They guide you through learning Obj-C, Cocos2D (a game engine for 2D games), building an iOS version of Conway's Game of Life, and then cloning Angry Birds.
- ijk 13y agoIf you actually want to make games, as opposed to a game engine, I would pick an existing engine. I use Unity3D, which is becoming a standard. It uses Mono (mostly C# or Javascript). It has enough tutorials and documentation to get you started. If you're already familiar with another language/environment you can see what is available for that, but Unity is both more accessible and featureful than most other options. The second thing I'd do is participate in a game jam, once you've had time to mess around a bit: http://www.ludumdare.com/compo/ http://www.ludumdare.com/compo/ http://globalgamejam.org/ http://globalgamejam.org/ If you need more information there are communities out there. Here's a short list: http://gamedev.stackexchange.com/ http://gamedev.stackexchange.com/ http://forums.tigsource.com/index.php#2 http://forums.tigsource.com/index.php#2 http://www.gamedev.net/page/index.html http://www.gamedev.net/page/index.html http://forum.unity3d.com/forum.php http://forum.unity3d.com/forum.php
- fhd2 13y agoDepends on what you want. If you just want to make games, you might be best off looking into an engine that supports the kind of game you want to make and start with that. Haven't gone down that road, so I cannot recommend anything. If you want to learn the minutiae of game programming, I recommend getting a book that goes over all the relevant maths, in a practical way. I have "Mathematics and Physics for Programmers", and it's pretty good. (Do not be fooled by the title, it's a very hands-on game maths book.) Learning about OpenGL, the graphics pipeline, complex transformations and all that is fascinating, but I'd put it off for now (most game math books, e.g. the one above, do cover it in the later chapters). Back in the day, I started by making really simple 2D games and worked my way up from there. 2D game development is very similar to 3D, just easier - in regards to both programming and game design. I can recommend SDL 2 to anyone who wants to make 2D games. It now supports hardware rendering and Android/iOS, and generally doesn't leave much to be desired (like SDL 1, image loading, font loading, audio, joystick input etc. are all in there).
- angersock 13y agoYou can get remarkably far using SFML or SDL, or even just a tiny wrapper over OpenGL. Using OpenGL 2.0 with some simple "Draw yourself" objects for sprite rendering works nicely--it'll be tricky enough to teach you something, but not hardcore enough to sidetrack you from making a game.
- biinui 13y agoin your opinion, what differs sfml and sdl?
- angersock 13y agoSFML is C++, has worse language bindings, but has a more modern and thorough set of helper objects: scene graph, networking support, etc. SDL is C, has lots of language bindings, is well-tested, and has lots of extensions (of vastly differing quality).