A game programmer is a person who helps develop the source code for video games and other computer entertainment. There are many game programmer jobs that fall in this category, including developing game engines, artificial intelligences (AI), sounds and user interfacing. Once the game nears completion, additional programmers may be brought in to help optimize the network code and port the game to additional systems. All game programmers work closely with producers, artists and writers to help bring a developer’s vision to the market.
Most modern video games are not designed from scratch. They use existing physics and graphics engines, which are heavily modified to create the game world and game play the developer has envisioned. Many game programmer jobs involve adjusting the source code of these engines to produce what the consumer eventually experiences when playing the game. Experienced coders in this field may work directly for video game developers or for the companies that create the basic engines on which the games are built.
Other game programmer jobs involve developing the artificial intelligence that controls the behavior of non-player characters (NPCs) in the game world. AI behavior is a critical component of how the game is received by reviewers and players. Poor or buggy AI may cause NPCs to behave in a bizarre or unrealistic manner. Good AI will help maintain immersion and provide the player with challenging opponents or helpful allies during his game-play experience.
Sound design in video games usually involves composers and programmers working together to produce music, speech and sound effects. Game programmer jobs in this category involve producing sounds and properly synching them to visual events occurring within the game. Good sound design helps create a mood for the game and provides important feedback for the player as he explores the environment.
One of the most important game programmer jobs is developing the user interface (UI), which provides the means for the player to interact with the game world. This job typically involves determining the best way to configure the game controller or keyboard and mouse for the game. The UI programmer also will help determine what kind of on-screen information will appear to assist the player in reacting to events within the game, as well as helping him manage his character’s health, equipment and abilities.
Some game programmer jobs begin after the basic systems are already in place. Multi-player games that function over the Internet require networking programmers to help optimize the network code and reduce the latency, or lag, that exists between different consoles or terminals. In some cases, the developer or publisher may wish to sell the game on more than one system, and a team of specialized programmers may be brought in to help port the game to another console. These programmers will need to make sure that source code is modified to work properly with other systems.