HOME

TheInfoList



OR:

A game programmer is a
software engineer Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining software applications. It involves applying engineering principles and computer programming expertise to develop ...
,
programmer A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming. The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...
, or
computer scientist A computer scientist is a scientist who specializes in the academic study of computer science. Computer scientists typically work on the theoretical side of computation. Although computer scientists can also focus their work and research on ...
who primarily develops
codebase In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thu ...
s for
video game A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
s or related
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
, such as
game development tool A game is a structured type of play usually undertaken for entertainment or fun, and sometimes used as an educational tool. Many games are also considered to be work (such as professional players of spectator sports or video games) or art (su ...
s.
Game programming Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or ...
has many specialized disciplines, all of which fall under the umbrella term of "game programmer". A game programmer should not be confused with a
game designer Game design is the process of creating and shaping the mechanics, systems, rules, and gameplay of a game. Game design processes apply to board games, card games, dice games, casino games, role-playing games, sports, Wargame (video games), war ga ...
, who works on
game design Game design is the process of creating and shaping the mechanics, systems, rules, and gameplay of a game. Game design processes apply to board games, card games, dice games, casino games, role-playing games, sports, Wargame (video games), war ga ...
.


History

In the early days of video games (from the early 1970s to mid-1980s), a game programmer also took on the job of a designer and
artist An artist is a person engaged in an activity related to creating art, practicing the arts, or demonstrating the work of art. The most common usage (in both everyday speech and academic discourse) refers to a practitioner in the visual arts o ...
. This was generally because the abilities of early
computer A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
s were so limited that having specialized personnel for each function was unnecessary. Game concepts were generally light and games were only meant to be played for a few minutes at a time, but more importantly, art content and variations in gameplay were constrained by computers' limited power. Later, as specialized arcade hardware and home systems became more powerful, game developers could develop deeper storylines and could include such features as high-resolution and full color graphics,
physics Physics is the scientific study of matter, its Elementary particle, fundamental constituents, its motion and behavior through space and time, and the related entities of energy and force. "Physical science is that department of knowledge whi ...
, advanced
artificial intelligence Artificial intelligence (AI) is the capability of computer, computational systems to perform tasks typically associated with human intelligence, such as learning, reasoning, problem-solving, perception, and decision-making. It is a field of re ...
and digital sound. Technology has advanced to such a great degree that contemporary games usually boast
3D graphics 3D computer graphics, sometimes called CGI, 3D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the purposes of perfor ...
and
full motion video Full-motion video (FMV) is a video game narration technique that relies upon pre-recorded video files (rather than Sprite (computer graphics), sprites, vector graphics, vectors, or 3D models) to display action in the game. While many games featur ...
using assets developed by professional
graphic artist A graphic designer is a practitioner who follows the discipline of graphic design, either within companies or organizations or independently. They are professionals in design and visual communication, with their primary focus on transforming l ...
s. Nowadays, the derogatory term "
programmer art In video game development and overall software development, programmer art refers to assets created by programmers. Programmer art is made when there is an immediate need for an asset that does not yet exist. When this happens, a programmer ...
" has come to imply the kind of bright colors and blocky design that were typical of early video games. The desire for adding more depth and assets to games necessitated a
division of labor The division of labour is the separation of the tasks in any economic system or organisation so that participants may specialise (Departmentalization, specialisation). Individuals, organisations, and nations are endowed with or acquire specialis ...
. Initially, art production was relegated to full-time artists. Next
game programming Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or ...
became a separate discipline from
game design Game design is the process of creating and shaping the mechanics, systems, rules, and gameplay of a game. Game design processes apply to board games, card games, dice games, casino games, role-playing games, sports, Wargame (video games), war ga ...
. Now, only some games, such as the
puzzle game A puzzle is a game, problem, or toy that tests a person's ingenuity or knowledge. In a puzzle, the solver is expected to put pieces together ( or take them apart) in a logical way, in order to find the solution of the puzzle. There are different ...
'' Bejeweled'', are simple enough to require just one full-time programmer. Despite this division, however, most game developers (artists, programmers and even producers) have some say in the final design of contemporary games.


Disciplines

A contemporary video game may include advanced physics, artificial intelligence, 3D graphics, digitised sound, an original musical score, complex strategy and may use several input devices (such as
mice A mouse (: mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus' ...
, keyboards,
gamepad A gamepad is a type of video game controller held in two hands, where the fingers (especially thumbs) are used to provide input. They are typically the main input device for video game consoles. Features Some common additions to the standar ...
s and
joystick A joystick, sometimes called a flight stick, is an input device consisting of a stick that pivots on a base and reports its angle or direction to the device it is controlling. Also known as the control column, it is the principal control devic ...
s) and may be playable against other people via the
Internet The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
or over a LAN. Each aspect of the game can consume all of one programmer's time and, in many cases, several programmers. Some programmers may specialize in one area of
game programming Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or ...
, but many are familiar with several aspects. The number of programmers needed for each feature depends somewhat on programmers' skills, but mostly are dictated by the type of game being developed.


Game engine programmer

Game engine programmers create the base engine of the game, including the simulated physics and graphics disciplines. Increasingly, video games use existing
game engine A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
s, either commercial, open source or free. They are often customized for a particular game, and these programmers handle these modifications.


Physics engine programmer

A game's physics programmer is dedicated to developing the
physics Physics is the scientific study of matter, its Elementary particle, fundamental constituents, its motion and behavior through space and time, and the related entities of energy and force. "Physical science is that department of knowledge whi ...
a game will employ. Typically, a game will only simulate a few aspects of real-world physics. For example, a space game may need simulated
gravity In physics, gravity (), also known as gravitation or a gravitational interaction, is a fundamental interaction, a mutual attraction between all massive particles. On Earth, gravity takes a slightly different meaning: the observed force b ...
, but would not have any need for simulating water
viscosity Viscosity is a measure of a fluid's rate-dependent drag (physics), resistance to a change in shape or to movement of its neighboring portions relative to one another. For liquids, it corresponds to the informal concept of ''thickness''; for e ...
. Since processing cycles are always at a premium, physics programmers may employ "shortcuts" that are computationally inexpensive, but look and act "good enough" for the game in question. In other cases, unrealistic physics are employed to allow easier gameplay or for dramatic effect. Sometimes, a specific subset of situations is specified and the physical outcome of such situations are stored in a record of some sort and are never computed at runtime at all. Some physics programmers may even delve into the difficult tasks of
inverse kinematics In computer animation and robotics, inverse kinematics is the mathematical process of calculating the variable joint parameters needed to place the end of a kinematic chain, such as a robot manipulator or animation character's skeleton, in a g ...
and other motions attributed to game characters, but increasingly these motions are assigned via
motion capture Motion capture (sometimes referred as mocap or mo-cap, for short) is the process of recording high-resolution motion (physics), movement of objects or people into a computer system. It is used in Military science, military, entertainment, sports ...
libraries so as not to overload the CPU with complex calculations.


Graphics engine programmer

Historically, this title usually belonged to a programmer who developed specialized blitter algorithms and clever optimizations for
2D graphics 2D computer graphics is the computer-generated imagery, computer-based generation of digital images—mostly from two-dimensional models (such as 2D geometric models, text, and digital images) and by techniques specific to them. It may refer t ...
. Today, however, it is almost exclusively applied to programmers who specialize in developing and modifying complex 3D
graphic Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of the data, as in design and manufa ...
renderers. Some 2D graphics skills have just recently become useful again, though, for developing games for the new generation of
cell phone A mobile phone or cell phone is a portable telephone that allows users to make and receive calls over a radio frequency link while moving within a designated telephone service area, unlike fixed-location phones ( landline phones). This radio ...
s and
handheld game console A handheld game console, or simply handheld console, is a small, portable self-contained video game console with a built-in screen, game controls and speakers. Handheld game consoles are smaller than home video game consoles and contain the con ...
s. A 3D graphics programmer must have a firm grasp of advanced mathematical concepts such as
vector Vector most often refers to: * Euclidean vector, a quantity with a magnitude and a direction * Disease vector, an agent that carries and transmits an infectious pathogen into another living organism Vector may also refer to: Mathematics a ...
and
matrix Matrix (: matrices or matrixes) or MATRIX may refer to: Science and mathematics * Matrix (mathematics), a rectangular array of numbers, symbols or expressions * Matrix (logic), part of a formula in prenex normal form * Matrix (biology), the m ...
math,
quaternion In mathematics, the quaternion number system extends the complex numbers. Quaternions were first described by the Irish mathematician William Rowan Hamilton in 1843 and applied to mechanics in three-dimensional space. The algebra of quater ...
s and
linear algebra Linear algebra is the branch of mathematics concerning linear equations such as :a_1x_1+\cdots +a_nx_n=b, linear maps such as :(x_1, \ldots, x_n) \mapsto a_1x_1+\cdots +a_nx_n, and their representations in vector spaces and through matrix (mathemat ...
. Skilled programmers specializing in this area of
game development game development (sometimes shortened to gamedev) is the process of creating a video game. It is a multidisciplinary practice, involving programming, design, art, audio, user interface, and writing. Each of those may be made up of more specialize ...
can demand high wages and are usually a scarce commodity. Their skills can be used for video games on any platform.


Artificial intelligence programmer

An AI programmer develops the logic of time to simulate intelligence in enemies and opponents. It has recently evolved into a specialized discipline, as these tasks used to be implemented by programmers who specialized in other areas. An AI programmer may program
pathfinding Pathfinding or pathing is the search, by a computer application, for the shortest route between two points. It is a more practical variant on Maze-solving algorithm, solving mazes. This field of research is based heavily on Dijkstra's algorith ...
, strategy and enemy tactic systems. This is one of the most challenging aspects of game programming and its sophistication is developing rapidly. Contemporary games dedicate approximately 10 to 20 percent of their programming staff to AI. Some games, such as
strategy game A strategy game or strategic game is a game in which the players' uncoerced, and often autonomous, decision-making skills have a high significance in determining the outcome. Almost all strategy games require internal decision tree-style think ...
s like ''
Civilization III ''Sid Meier's Civilization III'' is the third installment of the ''Civilization (series), Sid Meier's Civilization'' turn-based strategy video game series. It was released in 2001, and followed by ''Civilization IV''. Unlike the original game, ''C ...
'' or
role-playing video game Role-playing video games, also known as CRPG (computer/console role-playing games), comprise a broad video game genre generally defined by a detailed story and character advancement (often through increasing characters' levels or other skills) ...
s such as '' The Elder Scrolls IV: Oblivion'', use AI heavily, while others, such as
puzzle game A puzzle is a game, problem, or toy that tests a person's ingenuity or knowledge. In a puzzle, the solver is expected to put pieces together ( or take them apart) in a logical way, in order to find the solution of the puzzle. There are different ...
s, use it sparingly or not at all. Many game developers have created entire
languages Language is a structured system of communication that consists of grammar and vocabulary. It is the primary means by which humans convey meaning, both in spoken and signed forms, and may also be conveyed through writing. Human language is ch ...
that can be used to program their own AI for games via
script Script may refer to: Writing systems * Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire * Script (styles of handwriting) ** Script typeface, a typeface with characteristics of handw ...
s. These languages are typically less technical than the language used to implement the game, and will often be used by the game or level designers to implement the world of the game. Many studios also make their games' scripting available to players, and it is often used extensively by third party mod developers. The AI technology used in games programming should not be confused with academic AI programming and research. Although both areas do borrow from each other, they are usually considered distinct disciplines, though there are exceptions. For example, the 2001 game by
Lionhead Studios Lionhead Studios Limited was a British video game developer founded in July 1997 by Peter Molyneux, Mark Webley, Tim Rance, and Steve Jackson (British game designer), Steve Jackson. The company is best known for the ''Black & White (series), Bl ...
'' Black & White'' features a unique AI approach to a user controlled creature who uses learning to model behaviors during game-play. In recent years, more effort has been directed towards intervening promising fields of AI research and game AI programming.


Sound programmer

Not always a separate discipline, sound programming has been a mainstay of game programming since the days of ''
Pong ''Pong'' is a 1972 sports video game developed and published by Atari for arcades. It is one of the earliest arcade video games; it was created by Allan Alcorn as a training exercise assigned to him by Atari co-founder Nolan Bushnell, but B ...
''. Most games make use of audio, and many have a full musical score. Computer
audio game An audio game is an electronic game played on a device such as a personal computer. It is similar to a video game save that there is audible and tactile feedback but not visual. Audio games originally started out as 'blind accessible'-games and ...
s eschew graphics altogether and use sound as their primary feedback mechanism. Many games use advanced techniques such as 3D positional sound, making audio programming a non-trivial matter. With these games, one or two programmers may dedicate all their time to building and refining the game's sound engine, and sound programmers may be trained or have a formal background in
digital signal processing Digital signal processing (DSP) is the use of digital processing, such as by computers or more specialized digital signal processors, to perform a wide variety of signal processing operations. The digital signals processed in this manner are a ...
. Scripting tools are often created or maintained by sound programmers for use by
sound designer In physics, sound is a vibration that propagates as an acoustic wave through a transmission medium such as a gas, liquid or solid. In human physiology and psychology, sound is the ''reception'' of such waves and their ''perception'' by the br ...
s. These tools allow designers to associate sounds with characters, actions, objects and events while also assigning music or atmospheric sounds for game environments (levels or areas) and setting environmental variables such as reverberation.


Gameplay programmer

Though all programmers add to the content and experience that a game provides, a gameplay programmer focuses more on a game's strategy, implementation of the game's mechanics and logic, and the "feel" of a game. This is usually not a separate discipline, as what this programmer does usually differs from game to game, and they will inevitably be involved with more specialized areas of the game's development such as graphics or sound. This programmer may implement strategy tables, tweak input code, or adjust other factors that alter the game. Many of these aspects may be altered by programmers who specialize in these areas, however (for example, strategy tables may be implemented by AI programmers).


Scripter

In early video games, gameplay programmers would write code to create all the content in the game—if the player was supposed to shoot a particular enemy, and a red key was supposed to appear along with some text on the screen, then this functionality was all written as part of the core program in C or
assembly language In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence bet ...
by a gameplay programmer. More often today the core
game engine A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
is usually separated from gameplay programming. This has several development advantages. The game engine deals with graphics rendering, sound, physics and so on while a
scripting language In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
deals with things like cinematic events, enemy behavior and game objectives. Large game projects can have a team of scripters to implement these sorts of game content. Scripters usually are also game designers. It is often easier to find a qualified game designer who can be taught a script language as opposed to finding a qualified game designer who has mastered C++.


UI programmer

This programmer specializes in programming
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
s (UIs) for games. Though some games have custom user interfaces, this programmer is more likely to develop a
library A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
that can be used across multiple projects. Most UIs look 2D, though contemporary UIs usually use the same 3D technology as the rest of the game so some knowledge of 3D math and systems is helpful for this role. Advanced UI systems may allow scripting and special effects, such as transparency, animation or particle effects for the controls.


Input programmer

Input programming, while usually not a job title, or even a full-time position on a particular game project, is still an important task. This programmer writes the code specifying how input devices such as a keyboard, mouse or joystick affect the game. These routines are typically developed early in production and are continually tweaked during development. Normally, one programmer does not need to dedicate his entire time to developing these systems. A real-time motion-controlled game utilizing devices such as the
Wii Remote The Wii Remote, colloquially known as the Wiimote, is the primary game controller for Nintendo's Wii home video game console. An essential capability of the Wii Remote is its motion sensing capability, which allows the user to interact with an ...
or
Kinect Kinect is a discontinued line of motion sensing input devices produced by Microsoft and first released in 2010. The devices generally contain RGB color model, RGB cameras, and Thermographic camera, infrared projectors and detectors that map dep ...
may need a very complex and low latency input system, while the HID requirements of a mouse-driven turn-based strategy game such as ''
Heroes of Might and Magic ''Heroes of Might and Magic'' (commonly abbreviated ''HoMM''), known as ''Might & Magic Heroes'' in 2011–2024, is a series of video games created and developed by Jon Van Caneghem through New World Computing. As part of the ''Might and Magic ...
'' are significantly simpler to implement.


Network programmer

This programmer writes code that allows players to compete or cooperate, connected via a LAN or the
Internet The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
(or in rarer cases, directly connected via
modem The Democratic Movement (, ; MoDem ) is a centre to centre-right political party in France, whose main ideological trends are liberalism and Christian democracy, and that is characterised by a strong pro-Europeanist stance. MoDem was establis ...
). Programmers implementing these game features can spend all their time in this one role, which is often considered one of the most technically challenging.
Network latency Network delay is a design and performance characteristic of a telecommunications network. It specifies the latency for a bit of data to travel across the network from one communication endpoint to another. It is typically measured in multiples ...
, packet compression, and dropped or interrupted connections are just a few of the concerns one must consider. Although multi-player features can consume the entire production timeline and require the other engine systems to be designed with networking in mind, network systems are often put off until the last few months of development, adding additional difficulties to this role. Some titles have had their online features (often considered lower priority than the core gameplay) cut months away from release due to concerns such as lack of management, design forethought, or scalability. ''
Virtua Fighter 5 is a fighting video game developed and published by Sega. It is the fifth installment of the ''Virtua Fighter'' series. The original version was released in July 2006 on the Sega Lindbergh arcade system board with a number of updates before h ...
'' for the
PS3 The PlayStation 3 (PS3) is a home video game console developed and marketed by Sony Computer Entertainment (SCE). It is the successor to the PlayStation 2, and both are part of the PlayStation brand of consoles. The PS3 was first released on ...
is a notable example of this trend.


Game tools programmer

The tools programmer can assist the development of a game by writing custom tools for it. Game development Tools often contain features such as script compilation, importing or converting art assets, and level editing. While some tools used may be COTS products such as an IDE or a graphics editor, tools programmers create tools with specific functions tailored to a specific game which are not available in commercial products. For example, an adventure game developer might need an editor for branching story dialogs, and a sport game developer could use a proprietary editor to manage players and team stats. These tools are usually not available to the consumers who buy the game.


Porting programmer

Porting In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally desig ...
a game from one platform to another has always been an important activity for game developers. Some programmers specialize in this activity, converting
code In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communicati ...
from one operating system to work on another. Sometimes, the programmer is responsible for making the application work not for just one operating system, but on a variety of devices, such as
mobile phone A mobile phone or cell phone is a portable telephone that allows users to make and receive calls over a radio frequency link while moving within a designated telephone service area, unlike fixed-location phones ( landline phones). This rad ...
s. Often, however, "porting" can involve re-writing the entire game from scratch as proprietary
languages Language is a structured system of communication that consists of grammar and vocabulary. It is the primary means by which humans convey meaning, both in spoken and signed forms, and may also be conveyed through writing. Human language is ch ...
, tools or hardware make converting source code a fruitless endeavour. This programmer must be familiar with both the original and target operating systems and languages (for example, converting a game originally written in C++ to
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
), convert assets, such as artwork and sounds or rewrite code for low memory phones. This programmer may also have to side-step buggy language implementations, some with little documentation, refactor code, oversee multiple branches of code, rewrite code to scale for wide variety of screen sizes and implement special operator guidelines. They may also have to fix bugs that were not discovered in the original release of a game.


Technology programmer

The technology programmer is more likely to be found in larger development studios with specific departments dedicated solely to R&D. Unlike other members of the programming team, the technology programmer usually isn't tied to a specific project or type of development for an extended length of time, and they will typically report directly to a CTO or department head rather than a game producer. As the job title implies, this position is extremely demanding from a technical perspective and requires intimate knowledge of the target platform hardware. Tasks cover a broad range of subjects including the practical implementation of algorithms described in research papers, very low-level assembly optimization and the ability to solve challenging issues pertaining to memory requirements and caching issues during the latter stages of a project. There is considerable amount of cross-over between this position and some of the others, particularly the graphics programmer.


Generalist

In smaller teams, one or more programmers will often be described as 'Generalists' who will take on the various other roles as needed. Generalists are often engaged in the task of tracking down bugs and determining which subsystem expertise is required to fix them.


Lead game programmer

The lead programmer is ultimately in charge of all programming for the game. It is their job to make sure the various submodules of the game are being implemented properly and to keep track of development from a programming standpoint. A person in this role usually transitions from other aspects of game programming to this role after several years of experience. Despite the title, this person usually has less time for writing code than other programmers on the project as they are required to attend meetings and interface with the client or other leads on the game. However, the lead programmer is still expected to program at least some of the time and is also expected to be knowledgeable in most technical areas of the game. There is often considerable common ground in the role of technical director and lead programmer, such that the jobs are often covered by one person.


Platforms

Game programmers can specialize on one platform or another, such as the
Wii U The Wii U ( ) is a home video game console developed by Nintendo as the successor to the Wii. Released in late 2012, it is the first eighth-generation video game console and competed with Microsoft's Xbox One and Sony's PlayStation 4. The W ...
or
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
. So, in addition to specializing in one game programming discipline, a programmer may also specialize in development on a certain platform. Therefore, one game programmer's title might be "PlayStation 3 3D Graphics Programmer." Some disciplines, such as AI, are transferable to various platforms and needn't be tailored to one system or another. Also, general game development principles such as 3D graphics programming concepts, sound engineering and user interface design are transferable between platforms.


Education

Notably, there are many game programmers with no formal education in the subject, having started out as hobbyists and doing a great deal of programming on their own, for fun, and eventually succeeding because of their aptitude and homegrown experience. However, most job solicitations for game programmers specify a bachelor's degree (in mathematics, physics, computer science, "or equivalent experience"). Increasingly,
universities A university () is an educational institution, institution of tertiary education and research which awards academic degrees in several Discipline (academia), academic disciplines. ''University'' is derived from the Latin phrase , which roughly ...
are starting to offer courses and degrees in game programming. Any such degrees have considerable overlap with
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
and
software engineering Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
degrees.


Salary

Salaries for game programmers vary from company to company and country to country. In general, however, pay for game programming is generally about the same for comparable jobs in the business sector. This is despite the fact that game programming is some of the most difficult of any type and usually requires longer hours than mainstream programming. Results of a 2010 survey in the United States indicate that the average salary for a game programmer is
USD The United States dollar (symbol: $; currency code: USD) is the official currency of the United States and several other countries. The Coinage Act of 1792 introduced the U.S. dollar at par with the Spanish silver dollar, divided it int ...
$95,300 annually. The least experienced programmers, with less than 3 years of experience, make an average annual salary of over $72,000. The most experienced programmers, with more than 6 years of experience, make an average annual salary of over $124,000. Generally, lead programmers are the most well compensated, though some 3D graphics programmers may challenge or surpass their salaries. According to the same survey above, lead programmers on average earn $127,900 annually.


Job security

Though sales of video games rival other forms of entertainment such as
movies A film, also known as a movie or motion picture, is a work of visual art that simulates experiences and otherwise communicates ideas, stories, perceptions, emotions, or atmosphere through the use of moving images that are generally, since ...
, the
video game industry The video game industry is the tertiary industry, tertiary and quaternary industry, quaternary sectors of the entertainment industry that specialize in the video game development, development, marketing, distribution (marketing), distribution, ...
is extremely volatile. Game programmers are not insulated from this instability as their employers experience financial difficulty. Third-party developers, the most common type of
video game developer A video game developer is a software developer specializing in video game development – the process and related disciplines of creating video games. A game developer can range from one person who undertakes all tasks to a large business with em ...
s, depend upon a steady influx of funds from the
video game publisher A video game publisher is a company that publishes video games that have been developed either internally by the publisher or externally by a video game developer. They often finance the development, sometimes by paying a video game developer ...
. If a milestone or deadline is not met (or for a host of other reasons, like the game is cancelled), funds may become short and the developer may be forced to retrench employees or declare
bankruptcy Bankruptcy is a legal process through which people or other entities who cannot repay debts to creditors may seek relief from some or all of their debts. In most jurisdictions, bankruptcy is imposed by a court order, often initiated by the deb ...
and go out of business. Game programmers who work for large publishers are somewhat insulated from these circumstances, but even the large game publishers can go out of business (as when
Hasbro Interactive Hasbro Interactive, Inc. (Currently named Atari Interactive, Inc.) is the former video game subsidiary of board game and toy manufacturer Hasbro. Originally formed in 1995 and headquartered in Beverly, Massachusetts, Hasbro Interactive initially ...
was sold to Infogrames and several projects were cancelled; or when
The 3DO Company The 3DO Company was an American video game company based in Redwood City, California. It was founded in 1991 by Electronic Arts founder Trip Hawkins in a partnership with seven other companies to develop the 3DO standard of video gaming hardware ...
went bankrupt in 2003 and ceased all operations). Some game programmers' resumes consist of short stints lasting no more than a year as they are forced to leap from one doomed studio to another. This is why some prefer to consult and are therefore somewhat shielded from the effects of the fates of individual studios.


Languages and tools

Most commercial computer and video games are written primarily in C++, C, and some
assembly language In computing, assembly language (alternatively assembler language or symbolic machine code), often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence bet ...
. Many games, especially those with complex interactive gameplay mechanics, tax hardware to its limit. As such, highly optimized code is required for these games to run at an acceptable frame rate. Because of this, compiled code is typically used for performance-critical components, such as visual rendering and physics calculations. Almost all PC games also use either the
DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
,
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s or some wrapper library to interface with hardware devices. Various script languages, like
Ruby Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
, Lua and Python, are also used for the generation of content such as gameplay and especially AI. Scripts are generally parsed at load time (when the game or level is loaded into main memory) and then executed at runtime (via logic branches or other such mechanisms). They are generally not executed by an
interpreter Interpreting is translation from a spoken or signed language into another language, usually in real time to facilitate live communication. It is distinguished from the translation of a written text, which can be more deliberative and make use o ...
, which would result in much slower execution. Scripts tend to be used selectively, often for AI and high-level game logic. Some games are designed with high dependency on scripts and some scripts are compiled to binary format before game execution. In the optimization phase of development, some script functions will often be rewritten in a compiled language.
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
is used for many
web browser A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
based games because it is
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
, does not usually require installation by the user, and poses fewer
security Security is protection from, or resilience against, potential harm (or other unwanted coercion). Beneficiaries (technically referents) of security may be persons and social groups, objects and institutions, ecosystems, or any other entity or ...
risks, compared to a downloaded executable program. Java is also a popular language for
mobile phone A mobile phone or cell phone is a portable telephone that allows users to make and receive calls over a radio frequency link while moving within a designated telephone service area, unlike fixed-location phones ( landline phones). This rad ...
based games.
Adobe Flash Adobe Flash (formerly Macromedia Flash and FutureSplash) is a mostly discontinuedAlthough it is discontinued by Adobe Inc., for the Chinese market it is developed by Zhongcheng and for the international enterprise market it is developed by Ha ...
, which uses the
ActionScript ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (mean ...
language, and
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
are popular development tools for browser-based games. As games have grown in size and complexity,
middleware Middleware is a type of computer software program that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to imple ...
is becoming increasingly popular within the industry. Middleware provides greater and higher level functionality and larger feature sets than the standard lower level
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s such as
DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
and
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
, such as
skeletal animation Skeletal animation or rigging is a technique in computer animation in which a character (or other articulated object) is represented in two parts: a polygonal or parametric mesh representation of the surface of the object, and a hierarchical set ...
. In addition to providing more complex technologies, some middleware also makes reasonable attempts to be
platform independent Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform softw ...
, making common conversions from, for example, Microsoft Windows to PS4 much easier. Essentially, middleware is aimed at cutting out as much of the redundancy in the development cycle as possible (for example, writing new animation systems for each game a studio produces), allowing programmers to focus on new content. Other tools are also essential to game developers: 2D and 3D packages (for example
Blender A blender (sometimes called a mixer (from Latin ''mixus, the PPP of miscere eng. to Mix)'' or liquidiser in British English) is a kitchen and laboratory appliance used to mix, crush, purée or emulsify food and other substances. A stationary ...
,
GIMP Gimp or GIMP may refer to: Clothing * Bondage suit, also called a gimp suit, a type of suit used in BDSM * Bondage mask, also called a gimp mask, often worn in conjunction with a gimp suit Embroidery and crafts * Gimp (thread), an ornamental tr ...
,
Photoshop Adobe Photoshop is a raster graphics editor developed and published by Adobe for Windows and macOS. It was created in 1987 by Thomas and John Knoll. It is the most used tool for professional digital art, especially in raster graphics editin ...
,
Maya Maya may refer to: Ethnic groups * Maya peoples, of southern Mexico and northern Central America ** Maya civilization, the historical civilization of the Maya peoples ** Mayan languages, the languages of the Maya peoples * Maya (East Africa), a p ...
or
3D Studio Max Autodesk 3ds Max, formerly 3D Studio and 3D Studio Max, is a professional 3D computer graphics program for making 3D animations, models, games and images. It is developed and produced by Autodesk Media and Entertainment. It has modeling capab ...
) enable programmers to view and modify assets generated by artists or other production personnel.
Source control Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code ...
systems keep
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
safe, secure and optimize merging. IDEs with
debugger A debugger is a computer program used to test and debug other programs (the "target" programs). Common features of debuggers include the ability to run or halt the target program using breakpoints, step through code line by line, and display ...
s (such as
Visual Studio Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...
) make writing code and tracking down bugs a less painful experience.


See also

* List of video game industry people#Programming * '' Code Monkeys'', an animated show about game programmers *
Programmer A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming. The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...
*
Game design Game design is the process of creating and shaping the mechanics, systems, rules, and gameplay of a game. Game design processes apply to board games, card games, dice games, casino games, role-playing games, sports, Wargame (video games), war ga ...
*
Game development tool A game is a structured type of play usually undertaken for entertainment or fun, and sometimes used as an educational tool. Many games are also considered to be work (such as professional players of spectator sports or video games) or art (su ...
* Game programming#Tools


Notes


References

* * *


External links


Game industry veteran Tom Sloper's advice on game programming

The Programmer
at
Eurocom Eurocom Entertainment Software was a British video game developer founded in October 1988 by Mat Sneap, Chris Shrigley, Hugh Binns, Tim Rogers and Neil Baldwin, to develop games for the Nintendo Entertainment System. Eurocom expanded to Handh ...
(archived 7 November 2007) {{DEFAULTSORT:Video Game Programmer 01 Computer occupations
Programmer A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming. The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...