Programming Games


Daniel Asks:

My name is Daniel Stein, for my high school Senior Project I am programming a computer game. I was wondering if you could answer a few questions for me. My research question is "What are the most important techniques to use in creating a successful computer game?". I was wondering if you could answer a few questions to help me with my research? Feel free to answer as many or as few questions as you want. Any information you can give will be greatly appreciated. Thank you for your time.

What aspects make a computer game interesting?

That's different for different people. Whole books could be written on this topic

What techniques can be applied in order to create a game with those aspects?

Don't hire people that suck! Have a strong leader that knows what he's doing and is very organized. Don't design by committee. One person should lead the game (taking input from others) Just like one person directs a movie taking input from others.

What programming techniques can be used to make a computer game run smoothly?

There are many. A few that come to mind.

Make sure your inner loops is the smallest fastest code it can be. See the book "Michael Abrash's Graphics Programming Black Book Special" and read the chapters on code optimization.

Try to use the best algorithms. Look at other peoples code to see if there way is faster than yours.

Make sure you take the cache into account. For example. In the game I'm currently working on there are routines to draw sprites (2D images) and routines to draw particles (particles have a position, velocity, lifespan, etc) The particle routines call the sprites routines to draw a sprite to represent a particle. Since there are hundreds of particles on the screen if I move the particle routine to the same module as the sprite routine most likely to code will all fit in the code cache together and run alot faster. (Gavin James. The Lead programmer on Wild 9)

Optimize only the code that needs to be optimized. In otherwords, find the slowest part of your code and then optimize that. Don't optimize the code that is rarely executed or is executed at a point where speed is not an issue.

What techniques can be used to create a computer game with high quality graphics?

Hire Quality Artists. That may sound like a brush-off answer but it is the truth. Great artists make great art. Great Tools, Great Techniques don't do anything if you don't have great artists to use them. That advice comes from 15 years for making video games.

What are the advantages and disadvantages of using different programming languages?

Some programming languages are better for different needs. For example Perl is a good language to process text and a good language to do batch processing with. It also runs on most platforms for if you create a utility or batch file in perl under Windows 95 you might be able to run it on the Mac or Unix or NT. Other languages like C++ are often good for tools (like paint packages, 3D Editors) because of all the object orientedness. C is the most common language for games because it is fast, can get low-level and exists on almost every platform.

What language would you consider best suited for creating high quality computer games?

'C' is the best. C++ often generates too much code (unless you use it solely as a C compiler. There are C compilers for every platform. PC, Max, N64, Saturn, PSX. C++ on the other hand is not on all those platforms or is broken on them

Do you have any other important techniques or suggestions about programming games that you could tell me about?

Make games. Don't talk about making games. Don't think that if someone gives me money I'll make a game or if I get hired I'll make a game. Make one RIGHT NOW. Start with something small (like PONG or Tetris and then start adding things) See

Making a game by yourself
Starting Your Own Game Company