Game Programming Beginners Guide
I often get asked how someone with little or no programming experience can get
started in game development. Up until now, I have always tried to help them along
as much as I can on a one-to-one basis. However, because the number of questions
has grown to an almost unmanageable level lately, I decided it is time for me to put
all my advice in an article to serve as a general resource.
This article is intended for people who want to make their own games, but who have
little or no programming experience. In fact, I'm going to assume the reader has no
programming knowledge at all. I will focus mainly on the programming and design
aspects of game development, and not the artistic side. I am not going to cover
actually getting into the industry (because there are already ample resources for
that) but I will walk you through the things you need to do to get to the point that
you can make your own games. Finally, the path I lay out here should not be looked
at as the only – or even the best – route to learning how to make games, but it has
worked well for me and for other people.
Choosing a Language
The first thing you will need to do is to choose a language to program in. You have a
lot of choices, including Basic, Pascal, C, C++, Java, etc., and there is a great deal of
debate over which language is best for beginners. For a discussion of a number of
popular languages, see John Hattan's excellent article,
What Language Do I Use?
I'm going to recommend starting with C and C++. Some people will say that those
languages are too advanced for beginners, but because I started with C++ myself, I
tend to disagree. In addition, C/C++ is the most widely used language today, so you
will be able to find a wealth of resources and help. It does not really matter whether
you learn C or C++ first, because once you learn one, learning the other will be a
trivial matter. However, if you choose to learn C++ first, make sure you understand
and can use procedural programming before learning object-oriented programming
(i.e. hold off on learning about classes until you can program well without them).
If you start with C/C++ and it turns out to be too difficult, there is nothing wrong
with going back and learning a simpler language, such as Basic or Pascal. But I really
think that if you stick with it and find the right resources, you should have no
problem with C/C++.
Your next question should be, "How do I learn C/C++?" I'm glad you asked. The best
way is to take a class. Having an instructor and TAs available to answer questions
and help you along makes a huge difference, and the programming assignments will
ensure that you actually apply what you are learning.
If taking a class is not an option for you, the next best thing is to get some good