This article is about the programming aspect of video game development. For a broader how to create a game in c programming pdf, see Video game development. Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering as well as specialization in one or more of the following areas, which overlap heavily to create a game: simulation, computer graphics, artificial intelligence, physics, audio programming, and input.
For massively multiplayer online games, additional areas, such as network programming and database programming are often included. Though often engaged in by professional game programmers, many novices may program games as a hobby.
Professional game development usually begins with a game design, which itself has several possible origins. Occasionally the game development process starts with no clear design in mind, but as a series of experiments.
For example, game designer Will Wright began development of The Sims by getting programmers to experiment with several ideas. Programmers are often required to produce prototypes of gameplay ideas and features. A great deal of prototyping may take place during pre-production, before the design document is complete, and may help determine what features the design specifies.
Prototypes are developed quickly with very little time for up-front design and mostly act as a proof of concept or to test ideas. They are not expected to work flawlessly, but are developed to try out new, sometimes exotic, ideas. Though the programmer’s main job is not to develop the game design, the programmers often contribute to the design, as do game artists.