Okay, so I have been really inclined towards game programming this past few weeks. I have primarily been a web programmer and know a fair number of lanugages like PHP, Java, javascript, python, etc. I also know a little bit of C++ as I heard that it's used heavily in the game industry. I have no experience in game development, but I am a fast learner.(I am 15 so I guess I still have a lot of time.)

So, is there any language I should learn to develop 2d and 3d games? Also which IDE(free) is a nice place to start compiling your ideas(something like Polycode:- http://polycode.org/). I looked up Polycode but it was a little confusing for me to build it. I have a fair idea about what DirectX, OpenGL, SDL and shaders are but I have absolutely no clue about programming them. I know it's a little early to start jumping into this stuff already but you gotta start somewhere right? Please help me as I really want to get into serious game programming. Thanks!

I am running Windows 8 Pro 32 bit. Please suggest me any software accordingly!

  • 3
    \$\begingroup\$ Hello and welcome to Game Development Stack Exchange. Apparently, your question is not the kind we're happy about here. Please see the FAQ. It's right in the first section. \$\endgroup\$ Commented Jun 4, 2013 at 6:54
  • \$\begingroup\$ Welcome Vignesh, I admire your enthusiasm. There really is no standard way of learning, some learn best with books and examples, some need a tutor and others are plain autodidacts. And no, its not too early if you have fun programming :) Make sure to come to the chat, there are less restrictions on what questions to ask. \$\endgroup\$ Commented Jun 4, 2013 at 7:05
  • \$\begingroup\$ possible duplicate of What are some great tips for a beginner? \$\endgroup\$
    – bobobobo
    Commented Jun 4, 2013 at 9:02

2 Answers 2


You really shouldn't post a question like this as it is clearly stated in the FAQ that you shouldn't...

Knowing some C++ is a great start and you should really focus on getting better at that. Learning some of the STL is a must if you plan on game programming with C++ IMO (e.g. vectors for automatic management of multiple sets of data).

It depends what you want to do as to where you should go from there

For engine development and building a game atop that:

  1. Become fluent at your language of choice. C++ is really good for speed and usability but will take longer to become fluent in than something like C#.

  2. Learn a windowing API. Could be native, like X11 or GDI; or an abstraction, like SDL or SFML.

  3. Learn a graphics API. OpenGL is the best choice in most cases (for it's cross-platform and open nature).

  4. Learn the shading language appropriate to your API. GLSL for OpenGL, HLSL for Direct3D.

  5. Learn an audio API. OpenAL and EFX is my recommendation, but you could use something like FMOD if you don't mind paying a licence when your game becomes commercial. One isn't better than the other; it is opinion to say so as anything built into FMOD can be put together with AL. If you learn OpenGL then OpenAL will be a lot easier as the API's are quite similar.

  6. Possibly learn or create a scripting language for your engine/game. Learning one would be easier in the long run but creating one isn't the most difficult of things and would reduce dependencies while giving you full control over features.

  7. Put all your skills to use and create a game!

You will need to learn a few other things like model, audio and texture file parsing but libraries can be used for things like that to make your life a whole lot easier.

AND atop all of that, you will need to be able to get or create models and audio for your game.

Try and keep it cross-platform; more money that way >:D haha and it makes everyone happy when they can play your game on their OS of choice.

For game design and creating a game with a pre-existing engine:

  1. Learn the scripting language the engine gives you. e.g. Unity uses a JavaScript based language called UnityScript.

  2. Learn how to create models, buy models online or find free ones(free as in can use it commercially). Blender is a great piece of software for model creation and is quite easy once you know how to use it. Make sure you convert or create your models in a format the engine can load!

  3. Record some sounds, buy some online or find free ones. Make sure you convert or record all your files in a format the engine can load!

  4. Put it all together!

This approach is less satisfying in the end but you will get your game out a LOT quicker than had you written your own.

You could use a pre-existing engine then move on to writing your own. That would help you familiarize yourself with game design before moving on to engine design.

I have been writing my own engine for a couple of months. So far I have got my own model format, basic scripting language, parser for both, OpenGL rendering, OpenAL audio and SDL for windowing. I am only 16 so it is definitely not too early to start.

Here's a picture of my engine after 2 months with about 6 years of C/C++ experience under my belt: Ubuntu represent!

  • \$\begingroup\$ So you were 10 when you started? fml \$\endgroup\$
    – Sidar
    Commented Jun 4, 2013 at 9:36
  • 1
    \$\begingroup\$ It's never too late to start! I started out making Quake mods when I was 10 and moved on to C by itself when I was 12. From there I went to C++ at about the age of 14 and have been doing that since. Most of what I have learnt hasn't translated over from stuff like my old text adventures and the most important parts were learning OpenGL,AL and SDL. Most of the other stuff was for experience/fun, like my model format :D \$\endgroup\$ Commented Jun 4, 2013 at 9:51
  • \$\begingroup\$ I never said it's too late. But considering the fact I only started when I was 20 and still having trouble with some concepts. Starting at a younger age would develop a better sense for what you're doing. At least that's my case. \$\endgroup\$
    – Sidar
    Commented Jun 4, 2013 at 10:05
  • \$\begingroup\$ @CoffeeandCode that has really inspired me to take my programming seriously. Sorry about the FAQ thing, I didn't really know we couldn't ask questions of this sort here. Thanks for helping me out! :) \$\endgroup\$
    – exorbis
    Commented Jun 4, 2013 at 10:08
  • 2
    \$\begingroup\$ Please don't encourage people for asking questions that should be closed and/or asked on different resources. -1 \$\endgroup\$ Commented Jun 4, 2013 at 12:31

If you want to start making games fast and you already know Javascript then i would suggest looking into http://unity3d.com/ . It's a free IDE for creating 3D (and also 2D) games, comes with a big community so you can easily find many tutorials and free stuff for your project. It's quite easy to learn even if you don't have experience in making games.

  • \$\begingroup\$ Worth noting, that Unity is actually utilizing UnityScript - an abstraction atop JavaScript. \$\endgroup\$ Commented Jun 4, 2013 at 6:55

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