Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have around 2.5 years of experience as a web developer cum designer working mainly on the LAMP platform. Now, I want to try out game development (of the likes of First Person Shooter games like Call of Duty (COD)). It is one of my dreams to some day succeed in making a profitable, popular, commercial game of this type. However, I have never done any kind of business nor even freelancing yet even in the web domain.

Okay, first things first, I am just starting and I don't yet have any idea about the technologies, languages, engines (game engines) etc involved in that. I would like this question to be a complete guide for people with similar interests.

Best resources for getting hold really fast

What would be the best approach to get the basic hold of the domain really fast? Any resource(s) for programmers coming from other domains/experienced in other domains would be the ideal ones for me. E.g., if anybody would ask me some good resource for quickly learning PHP/Mysql, I would suggest books like "How to do everything with PHP & MySql" -

How to do everything with PHP & MySql

because -

  • it introduces all the basics of the domain (not the advanced things which can be later learnt by practice and also a lot by searching in stackoverflow questions)
  • it contains some very nice working projects in the end, which help in applying the skills learnt in the chapters of the book. This is the best way for self learners, I feel.

I would appreciate some similar resource which connects all concepts together to get the bigger picture. I have read about C, C++, C#, JAVA being used in game programming but not sure which language to go for (I have previously learnt a little of C and JAVA). I have also read about game engines but there would be various other concepts.

Commonly accepted ways of learning
Should 3D games like these be tried after 2D games? Are there some commonly accepted ways of learning such kind of games? Like in web development, we should go for frameworks after practising well with basic language, AJAX after getting properly done with simple page-reload processing etc.

Apart from these, any useful tips (like language choices etc.) would be much appreciated. Like it is highly recommended to contribute to open source web projects for getting recognition, are there similar open source game projects?


share|improve this question

closed as off-topic by MichaelT, Kilian Foth, Dan Pichelman, Bart van Ingen Schenau, GlenH7 Oct 9 '14 at 17:51

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, Kilian Foth, Dan Pichelman, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer 1

up vote 10 down vote accepted

Its a very very big jump..

In my view going from creating web apps to learning to build a fully blown AAA fps title is, to say very very ambitious. unless I've miss-understand what you are asking.

I'm not going to try to discourage you, rather re-direct you (thus avoid a massive disappointment):

  • You need to set realistic expectations.
  • Start by learning the basics of game development.
  • Start off with very modest targets and gradually build you way up
  • Languages to learn should ultimately be C++ and x86 Assembly
  • You can learn other languages in the mean time, or platforms such as XNA if you do not wish to build a games engine from the ground up).
  • Attempt to create pong first
  • Create Breakout after pong
  • Try creating Tetris
  • Try creating a simple 2d physics engine
  • Learn about 3d Maths
  • Learn about painters algorithm
  • Learn about different graphics mode in assembly
  • Learn about AI
  • Try playing with a 3d engine such as Unity
  • Once you have done all the above, dive in and try building a 3d games engine from scratch. This will really push you. Once you have done all this, you will be ready for serious games development.

Its a long road, but not impossible. I've just skimmed, really skimmed what's actually needed.

share|improve this answer
Thanks a lot! Any relevant ebooks for those steps? Preferably one with building a game from scratch? –  Sandeepan Nath Jan 6 '11 at 11:45

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