Since you are reading this I will assume that you have an interest in game programming or are at least curious about it. What is game programming and how does that differ from other types of programming? This is one of the most common questions I see when it comes to game development and rightly so. The techniques for programming games are as different from application programming as water colors are to acrylic paints. We will look at this from two points of view; the non-programmer who is just starting out and the experienced programmer who is looking at game development for the first time.
If you are completely new to programming you will find the information in this article helpful on the beginning of your journey. Before we can look at where to begin, I think it is prudent to look at “if” we should begin. Please don’t take this as negative because it is not intended to be that way. Like any other skill, programming is learned through practice and honed through and excessive amount of practice. Many novice programmers don’t understand how much work is truly involved in not only learning the syntax of a programming language but also in manipulating it to create a game.
What kinds of people make successful programmers? It would be easy to say the typical horn-rimmed glasses wearing, plaid shirt with pocket protector, with an IQ of 250 make the best programmers but that would not be accurate. The average programmer, looks just like you or me. They come from all walks of life and have many different motivational factors. One aspect of a game programmer that is universal to all of them is their passion for games. If you don’t enjoy playing games, you are not going to enjoy making them. If that is the case, please save yourself the time it would require to finish this article and if you’re still interested in being a programmer, look at application programming.
If you are interested in game development but you don’t have any knowledge of programming yet, I would suggest that you get a book on C++ and be prepared to spend a sizable amount of time in the book learning the core language. It really is daunting to look at a programming language from the ground up but honestly, when you take it in smaller sections it isn’t that bad.
In addition to a good book you will also need a compiler to create your programs in. There are several compilers with user friendly interfaces available for free on the internet. At the top of the list is the Microsoft Visual Studio C++ Express package. This is my personal favorite and the one I currently use for all of my projects. The package is available for free download and is the industry standard for compilers. If you are doing any Windows programming this program will work flawlessly for you. If you are going to be programming for UNIX, Linux, or MacOS the Microsoft compiler will not be available to use. On the lighter side, most of the NIX OS’s come with their own compilers.
One of the biggest mistakes made by novice programmers and one that leads to frustration and eventual abandonment of programming altogether is trying to jump into graphics programming prior to actually learning the language. Not until you understand the core language should you bother with graphics because in order to use graphics on today’s modern systems you are going to need to learn an API (Application Programming Interface), which can be as difficult as learning a language.
If you are already an experienced programmer and are looking to get your hands in game development, this section is for you. First, there are some truths about games that might not seem fair but it is what it is. You could have the most perfect code in the world, the best memory management, but that isn’t going to be something that is evident or even important to the users of your games. Programming is a science but there is a reason they say, “The art of game programming” Just like a novelist must create a compelling story to keep the reader immersed in his world, the game programmer must pay attention to the attributes of a game that keep the user intrigued. Graphics and sound are as important as the code itself when it comes to game programming. For some programmers this is a point of contention but how many times have you heard someone say, “Man, that inline function was so cool!” As a person who is already familiar with the syntax of the language you can focus on learning a graphics API such as DirectX, OpenGL, or SDL. There are quite a few more but these are the ones I recommend.
In summary, if you are a person who enjoys many hours doing research on your own, love a challenge, don’t mind sleepless nights, and are not troubled by the prospect of not seeing sunlight for days on end, game programming may be what you are looking for.
Tags: game programming, programming jobs, programming technology