Computer Games are goal oriented software programs that offer some form of reward or entertainment when played. Games contain a theme or milieu that defines the context of the game. Games are designed around a goal such as beating an opponent or exceeding a standard score. Games have an unpredictable component that mimics real world uncertainty. Games are created by one or more game developers, often in conjunction with other specialists (such as game artists) and either published independently or through a third party publisher.
Game programming requires skills equivalent to those of a business programmer. Often game programmers experience a career evolution in which they move from game programmer to business programmer and back.
A contemporary computer game may include advanced physics, artificial intelligence, 3D graphics, digitized sound, an original musical score, complex strategy and may use several input devices (such as mice, keyboards, gamepads and joysticks) and may be playable against other people via the Internet 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, 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.