1. Decide if you really want to do it
Think about the way you think. Do you like math? What about physics? Unless you are just a graphics designer you will have to operate with lots of math and physics during your development. And this is not limited on elementary understanding of physics or/and math. You will have to work with vectors, different physical formulas for velocity and acceleration and of course trigonometry.
2. Decide on the programming language
Obviously, there is no ‘game programming’ language. Theoretically, any programming language can be adapted for game development; however, it’s all about the tool you can operate better with. Are you good with Java? Try creating some games in Java and see how it works. Same applies to other programming languages. However, there are languages that are better for game development from a specific point of view – how efficient will be the development process. C++ is considered the industry standard for game development, mostly because it offers better performance/optimization and is available on multiple platforms (which is basically not a problem for the majority of the programming languages today). You will also have to operate with specific libraries, like OpenGL or DirectX. These libraries are practically essential for game development, so you will have to check if your language of choice has a decent support at least for one of these libraries. Just for a side note, there is also XNA from Microsoft, if you work with C#, which itself is a wrapper over DirectX, so it makes game development easier.
3. Start with the basics
Many beginners are eager to start game development and plan to develop the next AAA title from the very beginning. Unfortunately, this is not going to happen. Major projects are created by big teams of experienced developers and artists. The development may take several years for such teams, so it is practically impossible for a beginner to accomplish this task by himself/herself. Start with the basics. Find a game algorithm that seems interesting to you (do something you would enjoy playing), but at the same time is not very complicated. Here are some ideas:
- Pac-Man Similar Game
- Simple Space Shooter
- Simple Tanks Game
4. Developing for next-generation consoles
Developing for such consoles, like Xbox 360, Playstation 3 or Wii shouldn’t be the initial focus when you start developing games. Platform-specific development requires specific tools that are provided by the console manufacturer to professional development teams only at a high price and extensive knowledge regarding that specific hardware. However, Microsoft offers XNA, which allows you to develop games for Xbox 360, but in a very limited environment. It can be a good start, but don’t focus on this at the beginning level.
The game industry does not stand in one place and there are new technologies, libraries, engines and practices appearing very fast. Be ready to learn every day and adapt to new technologies. Something you learned today can become outdated tomorrow, so be ready to adapt yourself to the new environment. This applies to general IT, not only game development.
6. Don't underestimate the power of books and online resources
There are plenty of books and resources available both online and in bookstores that are perfect for learning a new programming language or programming technique. Try avoiding titles that promise to teach you game development in 24 hours or a week – this is impossible. Learning to program takes a lot of time and no book will completely cover all the programming topics for a specific languages. Be ready to search for many things by yourself. Some links are listed above:
How to become a game designer by Martyr2
Bottom line - game programming requires specific skills and permanent work and learning. You should really like it to advance in it. Make sure you have lots of time to work on your development skills and enough enthusiasm to work on and finish game projects. You should not follow this short guide completely, as everyone has individual views on what is right and what is not, but take some beans out of it for yourself to think about.
Also, do not forget that there is always the Game Programming forum on Dream.In.Code, where you can ask your questions related to game development.
Game Programming Links (provided by Mrafcho001)
- http://msdn.microsoft.com/directx/ --Microsoft Official DX website--
- http://www.flipcode.com (also has some really good Win32 tuts)
- http://www.opengl.or..._1.0/index.html good
- http://www.grandgent...ace/vivace.html - really good..
- http://www.3dcafe.com/asp/meshes.asp 3D models for your games
Deciding on the language (provided by gabehabe)
The most common language used within the games industry is C++ which is even used for console game programming. (Coupled together with a graphics library called OpenGL) Also, I have played a few games on the PS3 which were written in Lua.
Another less-common-but-coming-up-fast language is Java, which is mostly used for mobile phone games and applets. An applet is basically a program which can be embedded into a web page. A great example of what can be achieved with Java is RuneScape.
Now it's time to throw in this little wildcard. C# is an object oriented language, which is kind of a hybrid of C++ and Java. The original intention of C# was for software development. It's a very high level language, which means all of those tools that you're going to need will already be made. It's just your job to learn how to use them properly. XNA is a framework, developed for C# which is used for making games. However, I have no experience with XNA to be able to recommend it.
And lastly, I'd like to quote Bench from the C/C++ forum, for this excellent analogy:
In the Java world, you go down to Ikea and pick up some ready cut, ready drilled flatpack furniture, and all you need to do is screw it all together without needing to worry about the dimensions or the design of the individual pieces (Because someone else has already done all this hard work for you). You might find that the manufacturing process has some very slight anomalies, and doesn't fit together 100% perfectly, or maybe the design doesn't suit your needs exactly, but it does the job very well otherwise.
In the Low-level world, you start out with a solid tree trunk and a workshop full of powertools, where you will handcraft the furniture. You'll need to spend alot more time recreating bits which Ikea would have made for you, though you can finetune each minor detail, you need to understand the resilience of the material, and the way in which stresses and strains work at the joints (Though with handcrafted furniture you will probably have less joints), but you need a detailed understanding of precisely what you're doing so that the furniture you build at the end doesn't collapse.
This post has been edited by Core: 18 May 2009 - 03:45 PM