This article is about the programming aspect of video game development. For a broader overview, see Video game development. Game programming, a subset of game development, is game programming c++ pdf 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.