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 http://www.makegames.com