Game Programming is the very heart of the game development process. Game programmers design and write the computer code that runs and controls the game, incorporating and adapting any ready-made code libraries and writing custom code as required. They test the code and fix bugs, and also develop customized tools for use by other members of the development team.
Different platforms (games consoles, PCs, handhelds, mobiles, etc.) have particular programming requirements and there are also various specialization within programming, such as physics programming, AI (artificial intelligence), 3D engine development, interface and control systems.
Games development is an increasingly complex process and large teams of Programmers might be involved in creating a game, some in leadership roles, some working on just one aspect.
Programmers are employed by development studios publisher-owned and independent. They also work for middleware producers, an increasingly important sector providing cross-platform graphics rendering, game physics, sound management, AI, and other specialist tools. Programmers might also work for localization companies which translate and re-version games for different territories.
There are many different programming roles. Job titles include: Games programmer; Tools programmer; AI programmer; Middleware programmer.
The Lead Programmer translates the design into a technical specification for the game and then delegates tasks to the programming team:
General programmers work on a whole range of tasks, often working with code that other Programmers have written.
Programmers with specific tasks, might work on physics (e.g. programming movable objects so that they appear to obey the laws of gravity, etc.)
Specialist tools programmers identify and design any custom tools which may be needed, perhaps by the Artists or Level Editors, then build them to an agreed specification.
The Programmers create different ‘builds’ of a game, liaising with the QA Testers to fix any bugs identified at each stage. They might also work with a Localization Manager to create versions of the game for different platforms and territories.