Ever since I started playing games, I wanted to develop my own, simple and later more complex game. At the moment I earn my share with programming web applications and doing some simple game development in my free time.

As for my programming experience. I have good knowledge of almost anything web related (PHP, AJAX, JS, etc.). Then there is Python, I did some LUA scripting for WoW and few days ago I have finished my first "real" 2D game with RPG maker, but of course I made my own battle/magic engine, which can be done in Ruby. I also have C++ basics (command line tool to make work with svn, django, etc. easier)

Now for the question:

Which way to go from here? I am not interested in browser/phone games (for some reason I hate Flash and anything that looks like it) I know that I should focus on C++ now, but from what I have seen its pretty robust language, is there anything I should focus on? Algorithms, data structures, etc. What frameworks should I look into, I have seen a question regarding DirectX vs XNA, but I am still not sure and what about other frameworks? As I have seen Python, LUA are used for scripting some events, there shouldnt be a problem as I know a bit about them. Is there any book that could point me in right direction?

There arent many places where I could go and ask, because there are only two good studios in my country and I spoke with one manager on a convention, but I didnt get as many details as I would like to know, since they were focusing on design and artwork.

Hope this is a valid question.



I'd suggest you a couple of books:

Tricks of the Windows Game Programming Gurus if you'd like to learn how to develop games in C++. The first part goes beyond DirectX, it teaches you how to handle resources in the right way.

Killer Game Programming in Java if you'd like to learn how to develop games in Java. It explains graphics, sprites, audio, 3D, etc.

Both books have a LOT of examples for you to try.

Good luck!

Federico Cristina

Have you checked out, It's a 2D game engine .

Also read this article,

It has tons of useful info and links

+1  A: 

Google Native Client and WebGL are the most perspective right now that you won't regret learning as it probably will be a primary platform for Google TV games (with Sony hardware).

+1  A: 

Which way to go from here?

C/C++. DirectX and/or OpenGL+SDL. Lua for scripting. Find existing engine, and try to take it apart.

is there anything I should focus on?

The most straightforward way is to start writing game NOW. You will learn more when you'll bump into new problem and start researching. Simply define what you want to do (goal), and start writing code. This approach worked for me. I learned quite a lot about 3D/game mechanics while writing my first game engine.

Algorithms, data structures, etc

If you'll think too much about it, you won't ever finish writing your engine - because you'll make things needlessly complicated. Game engine should be as simple as possible - you really can't afford 10 years of development time for writing unreal3 or lithtech clone. Take Sauerbraten engine, and try to tear it apart. Try to study quake 3 source. And won't even need that if you want 2D game.

As I have seen Python, LUA are used for scripting some events

Lua is a better choice, because it is easier to integrate it into program (without having to use boost).

but I didnt get as many details as I would like to know, since they were focusing on design and artwork.

You got correct response, because non-programming work takes more than 70% of a game. Models, music, sound, 2D art, level design. Modern game has way more artists than programmers. There are projects when one person makes everything, but they are small and quite rare.

I would recommend SFML over SDL:
@TheMagician: SDL was used in many projects, including Unreal 2004 linux port. SFML wasn't. So, I wouldn't recommend SFML.

You can also check out a book called Game Coding Complete ( as it gives you a taste of all the systems involved in a game engine.

But most importantly - define who you want to be. As if you want to be a games programmer then you can look at the in depth things in a game engine and choose what you want to focus on (from AI to sound etc.)

On the other end is game developer or designer where its better to use Unreal 3, Irrlich or any other engine (or put something together from bits like Ogre + Bullet and so on) and focus more on the design part of the game and what you want it to do and be - fun I would guess ;)

There are obviously places in between but I'm struggling in positioning myself and that causes a lot of problems so if you can decide on what side to focus your already ahead of me :)


I'd look more closely at the Microsoft XNA Framework as there's a very strong community around it. The .NET framework will also keep you from blowing your leg off like C++ will allow. Although you can still shoot yourself in the foot. :)

Daz Lewis
+1 Minimize your unsafe code until you learn how to avoid shooting yourself.
Danny Varod
-1. If you never blow your leg off, you'll learn less - because from great mistakes comes great knowledge.
  • Object Oriented Programming (which language doesn't matter that much - ideally you should learn at least 2 or 3)
  • Computer Graphics
  • Artificial Intelligence
  • Software Engineering
  • Movie/Theater directing/writing.

    Also check out

Danny Varod