  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. though often engaged in by professional game programmers, many novices may program games as a hobby. ==development process== 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 experimentation. for example, game designer will wright began development of the sims by getting programmers to experiment with several ideas. ===prototyping=== 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. ===game design===  though the programmer's main job is not to develop the game design, the programmers often contribute to the design, as do game artists. the game designer will solicit input from both the producer and the art and programming lead for ideas and strategies for the game design. often individuals in non-lead positions also contribute, such as copywriters and other programmers and artists. programmers often closely follow the game design document. as the game development progresses, the design document changes as programming limitations and new capabilities are discovered and exploited. ===production=== during production, programmers may create a great deal of source code to create the game described in the game's design document. along the way, the design document is modified to meet limitations or expanded to exploit new features. the design document is very much a "living document" much of whose life is dictated by programmer's schedules, talent and resourcefulness. while many programmers have some say in a game's content, most game producers solicit input from the lead programmer as to the status of a game programming development. the lead is responsible for knowing the status of all facets of the game's programming and for pointing out limitations. the lead prog
Video_game_development