The game physics programmer is someone who directs how a game uses physics in order to look correct and feel correct. In most cases, a computer game will not completely simulate the physics of a real world, but some important aspects of physics may have to come into play for some games. For instance, wind resistance might be important to dogfights, while the fluid but retarded movements of some characters in water might be needed for a role-playing game.
The artificial intelligence programmer is the one in charge of developing the logical sequence of the game itself. For instance, when a game involves finding a path, employing strategies, or giving rise to enemy tactics, an artificial intelligence programmer may be called in to make a game smart – in other words, to make the game think on its own. In general, the computer language used for artificial intelligence programming is simpler than other languages, and it can be shared with the game’s players.
The graphics programmer uses a series of codes and algorithms in order to provide graphics in the world of the game. In the modern age, a graphics programmer has to work in a three-dimensional environment, and should therefore have knowledge of calculus, vector math, and other algebra concepts that may be needed for specializing in rendering such images. There are only very few graphics programmers, and they may usually demand high wages for their work.
A sound programmer will provide sounds in terms of characters’ dialogues, music, and even sounds that can make the game seem more real, such as the sound of crunching leaves or grass as characters walk on them. The gameplay programmer will add to the experience of the game, and will do so by focusing on the game’s feel and strategy.
Computer game programming will also require a team of scripters, who are also usually the designers of the game. These scripters write the code of the game itself, usually with a basic computer language. Also needed are user interface programmers, or the UI: the UI programmers will create a library of different aspects that can be used across a wide variety of worlds within the game, or a wide variety of games within a manufacturer. The UI programming language involves a good deal of math, with the aim of producing special effects.
Also important is an input programmer, who writes codes for how different kinds of hardware, such as the keyboard, joystick, or mouse, will affect the game. The network programmer will find ways for the game to work on a network, where people can play against each other. A porting programmer ensures that the game can work on different platforms and operating systems.
Overseeing all these tasks is the lead game programmer. These are only a few aspects of computer game programming. As the field widens, more and more programmers of different kinds will have to be called in and identified as important.