Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
What are some good resources for getting a beginner started in developing games?

I'm a CS student, having plenty enough knowledge in programming, and general algorithms. What is your suggestion in game developing? How to start?

Thanks a lot!

share|improve this question

marked as duplicate by Joe Wreschnig, Tetrad Dec 24 '10 at 22:02

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Well, (if you don't already know one) the first step is probably learning a graphics API like SDL (C/C++), Pygame which is basically the Python binding of SDL (Python), or XNA (C#/.NET).

Probably the most important point is start simple. Don't try making a huge 3D MMORPG, like a lot of beginners do.

Here's a nice list of small, simple games to start with. The general idea is to get a feel of how to develop games specifically, rather than programming generally.

Here's a good list of resources which are worth checking on.

After that, work your way up from 2D to 3D. You'll need to learn OpenGL or DirectX, or one of the many engines and wrappers for different languages.

After that, run wild. As long as you know what you're doing, and it doesn't feel like you're diving in the deep end, you should be fine.

Good luck! :)

PS: 'Make Games Not Engines'. this ScientificNinja article is probably one of the most important things to read. (I frequent GD.Net) The amount of people I see, very often hardly being able to program, talking about having to make 'a general engine to do everything' is huge. They rarely get anywhere.

EDIT: Another thing I forgot to mention, though is probably one of the most important things: Take your game through to the end, that is finish it. I for one have many half done game projects lying about, and as such you sort of forget about it and have little to say 'I achieved this' to other people and to motivate yourself.

share|improve this answer
+1 for the Huge MMO Comment. This is one of this funny things that always comes up with new developers. – Bryan Harrington Dec 24 '10 at 21:22
it's not always a huge MMO; very often they just think they can jump in and build a dream game. – The Communist Duck Dec 24 '10 at 21:32

Okay, you asked: learn everything you can about:

  • 3D/4D matrices: rotation matrices, projection matrices, matrix inversion, matrix product...

  • trigonometry and geometry: trigonometric circle, arc-functions, common properties of a circle, a square, a triangle etc.

  • "Advanced OOP" in C++: virtual function and pure virtual function behaviors, and the classic STL containers: list, vector, but especially map.

  • Design patterns: you can begin with the composite pattern, the factory pattern, observer pattern, prototype pattern, and of course the singleton pattern (which is more a language feature than a true DP).

  • Optimization matters: how why when use references/pointers, the reason multiple inheritance can slow down, and other complicated stuff like where and how you should declare and use variables and your data.

Finally, do some little game on your won, you might have to do a classic game like tetris or pacman, but eitherway it will be hard to find a better idea of game.

share|improve this answer
+1 Thats the kind of answer that real programmer wants to see here :) – Notabene Dec 25 '10 at 2:08

I'd suggest starting with something small, probably 2d.

Also, I'd recommend using an already made engine or framework. Starting from scratch with OpenGL or DirectX is possible, but it will be daunting.

Also, make sure the engine you choose has a nice community behind it, so you can ask questions.

In summary, try LÖVE.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.