The Basics of Game Programming
If we ask high school students if they know who programmed groundbreaking 3D games such as Doom or Quake series, they usually don’t know it’s John Carmack. Or that Anne Westfall programmed all versions of home computer game Archon.
Sim City, The Sims and Spore might seem like familiar names, but Will Wright, its programmer, doesn’t ring a bell; nor does Ed Boon, co-creator of the Mortal Kombat Franchise.
Introducing people behind the computer games students know might give them a better appreciation of how it was made, and the mathematics and the art that formed the core for its final product.
A popular game platform early in the 1990s was the Apple II computer series. Back then, the usual game-playing time was only for a couple of minutes, and the visuals or graphics were limited.
When computers became more advanced and powerful, game programmers could also end up with more developed storylines and full-color graphics. Game programming became different from game design. Crafting the code for a simple additions game became entirely different from the complex programming needed for contemporary games.
To explore the behind-the-scenes of computer games, here are several people and their job descriptions that contribute to the actual game:
- Game physics programmer - develops the shortcuts for real-world physics used in the game. For example, a space game will need simulated gravity.
- Artificial intelligence programmer - takes care of the logical actions in games; is also useful for path finding, strategy and enemy tactic system.
- Graphics programmer - develops and modifies complex 3D graphic renderers; needs a really good grasp of math concepts such as vector and matrix math, quaternions and linear algebra.
- Sound programmer - takes charge of a game’s primary feedback mechanism. As it becomes more sophisticated, sound programming now takes into consideration 3D positional sound.
- Gameplay programmer - adjusts factors of the game to make it seem more real.
- Scripter - uses assembly languages like C++ and implements game content such as cinematic events, enemy behavior and game objectives.
- User interface programmer - takes charge of special effects, animation or control effects, and making custom user interfaces.
- Input programmer - identifies the code for how input devices like a mouse, keyboard or joystick affect the game.
- Network programmer - does the code that allows players to compete or play together in a networked environment, be it in a local area network or a wide area network.
- Game tools programmer - writes the tools needed in handling game-specific tasks. Tools include 3D graphics modeling software, or custom-programmed software specifically for the game.
- Porting programmer - converts code from one operating system to another like a game written in C++ to Java or rewriting artwork for low memory phones.
- Technology programmer - prepares everything for the target platform hardware.
Lead game programmer - heads all programming in the game; could also specialize in just one platform like Playstation 3 or Xbox 360 or Windows.
To get to know the inner workings of games and game theory, check out GameTheory.net or The International Journal of Game Theory edited by Dov E. Samet.
Introduction to Game Theory by Rahul Garg of the Indian Institute of Technology’s Department of Computer Science and Engineering and Algorithms, Games, and the Web by Bruno Codenotti of Istituto di Informatica e Telematica are also good places to start.
Sources:
“Game theory lecture notes by field of study.” Retrieved October 22, 2008 from http://www.gametheory.net/lectures/field.pl
“Game programmer.” Retrieved October 22, 2008 from http://en.wikipedia.org/wiki/Game_programmer
(Published 03 November 2008, Smart Communications, Inc.)