I would like to start developing games. I have tried before Game Maker 8, which was a very easy way to start creating games, if you were new in game development. Then, I tried Unity 3D, which was a much more serious and complete tool to create computer-games, and required some experience. And now, I would like to start creating games, and don't use any special environment or developer, but just code (in C++ preferably). So, here is my question: from where should I begin, if I would like to start programming games? Thanks in advance.

Note: I work in ubuntu 10.04, I can also use windows 7, but I prefer ubuntu.

  • \$\begingroup\$ If you want to make a game alone, as a indie, then C++ isn't really made for that. If you want to be a part of serious team, I would say try to join some more or less serious project, even for free, to gain experience by working with experienced programmers. Browsing open-source projects might be the way. Coming to GDSE chat may help you as well. \$\endgroup\$ Commented Nov 2, 2012 at 19:18
  • 3
    \$\begingroup\$ "how do i begin" questions aren't appropriate for this site, please refer to the FAQ \$\endgroup\$
    – dreta
    Commented Nov 2, 2012 at 19:42
  • 3
    \$\begingroup\$ @MarkusvonBroady "C++ isn't really made for that" is not good advice. What do you even mean by that?! \$\endgroup\$
    – notlesh
    Commented Nov 2, 2012 at 20:16
  • \$\begingroup\$ @stephelton It's not a good advice to tell someone asking a basic question where to start, to develop his own indie game in C++, because in such case 10 years development isn't an unrealistic scenario at all. \$\endgroup\$ Commented Nov 2, 2012 at 20:34
  • 2
    \$\begingroup\$ @MarkusvonBroady, I think claiming that needing 10 years to develop a C++ game is "unrealistic" is an unrealistic claim itself. You can make lots of simple game, or even moderately complex ones using any language, in far less time than 10 years. Developers have been working with C++/C for a long time and games were certainly developed with those tools. \$\endgroup\$
    – kurtzbot
    Commented Nov 2, 2012 at 20:59

3 Answers 3


Any of these already existing posts on gamedev may be useful. In fact, this is just a short list of the top voted questions (most of them are closed, because they don't fit this site's objective) on Gamedev.


If you already know some C++ then I would suggest using SDL Its a great library that does alot for 2D game development and can even do some OpenGL stuff when you move onto 3d. If you don't know any C++ at all start with some C stuff and then just add classes and all that junk and you have C++. And just a side note: C++ is not that hard I don't see why everyone thinks its such an ogre.

  • 1
    \$\begingroup\$ Ogre 3D is also a rendering engine built with C++ that from what I've heard is pretty good. \$\endgroup\$
    – Racksay
    Commented Dec 6, 2017 at 13:15

Best thing IMHO is to start with something achievable but with obvious potential for scale and complexity to it so there is always something to go on to. I think something like a 2D side-scrolling platformer is good for this.

It means you can work from basic "getting something (anything) working" to control, gravity and then combat, AI, better graphics. The possibilities are limitless but because there is a way to make something work visually at almost every stage you won't have the sort of steep curve to get it to work that you would with some other genre of game.


One minor point I would make is that I probably wouldn't do it in C++ (let the flames begin!) to begin with because unless you're really experienced, you're probably going to spend more time fighting with the code to get it to work than you are dealing with the things specific to your gaming. That might not be helpful for motivation. One of the main reasons to use C++ is for speed and I'd put that down the list of "ways to expand this or make it better" until speed (or lack of) is noticeable in what you're doing.

  • \$\begingroup\$ Well, as I said, I just prefer C++. If you have any other suggestions, then go ahead and tell me. \$\endgroup\$ Commented Nov 2, 2012 at 19:26
  • \$\begingroup\$ Was thinking something higher level like Java/Python/C#; i.e. something where you're not going to run into low level problems right from the off. If you prefer C++ then by all means go for that... \$\endgroup\$ Commented Nov 4, 2012 at 14:40

Not the answer you're looking for? Browse other questions tagged .