FACTOID # 3: South Carolina has the highest rate of violent crimes and aggravated assaults per capita among US states.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Game programming

Game programming, a subset of game development, is the programming of computer, console or arcade games. Though often engaged in by professional game programmers, many novices may program games as a hobby. Some software engineering students program games as exercises for learning a programming language or operating system.[citation needed] Game development - Wikipedia, the free encyclopedia /**/ @import /skins-1. ... Computer programming (often simply programming) is the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program. ... A computer game is a game composed of a computer-controlled virtual universe that players interact with in order to achieve a defined goal or set of goals. ... This article is about games played on consoles. ... Centipede by Atari is a typical example of a 1980s era arcade game. ... A game programmer is a software engineer who primarily develops computer or video games or related software (such as game development tools). ... A hobby is a spare-time recreational pursuit. ... Software engineering (SE) is the profession concerned with specifying, designing, developing and maintaining software applications by applying technologies and practices from computer science, project management, and other fields. ... A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ... An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ...

Contents

The development process

Professional game development usually begins with a game design, which itself has several possible origins. The occasional game starts development with no clear game design, but as a series of experimentations. The best selling computer game of all time, The Sims, was developed by the game designer, Will Wright, by getting programmers to experiment with several different ideas he had. Game design is the process of designing the content and rules of a game. ... This article is about a computer game that was released in year 2000. ... A game designer is a person who designs games. ... For other persons of the same name, see Will Wright. ...


Prototyping

Writing prototypes of gameplay ideas and features are an important activity that allows programmers and game designers to experiment with different algorithms and usability scenarios for a game. A great deal of prototyping may take place during pre-production before the design document is complete and may, in fact, help determine what features the design specifies. Prototyping may also take place during active development to test new ideas as the game emerges. For other uses, see Prototype (disambiguation). ... In mathematics, computing, linguistics, and related disciplines, an algorithm is a finite list of well-defined instructions for accomplishing some task that, given an initial state, will terminate in a defined end-state. ... Pre-production is the process of preparing all the elements involved in a film, play, or other performance. ...


Prototypes need not be developed in the target language for the game. They are meant only to act as a proof of concept or to test ideas. Most algorithms and features debuted in a prototype may be ported to the implementation language of the game once they have been completed. A proof of concept is a short and/or incomplete realization of a certain method or idea(s) to demonstrate its feasibility. ... In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed (e. ...


Often prototypes need to be developed quickly with very little time for up-front design. Therefore usually very prolific programmers are called upon to quickly code these testbed tools. RAD tools may be used to aid in the quick development of these programs. Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. ...


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. A video game artist is a person whose job it is to create visual art for computer and video games. ... A game producer is the person in charge of overseeing development of a video game. ... A lead programmer is a software engineer in charge of one or more software projects. ... A copywriter is a person who writes text, or copy, for clients. ...


A game design is a "living document" and may go through numerous revisions before a final initial design is agreed upon. As the game development progresses, the design document changes as programming limitations and new capabilities are discovered and exploited.


Language

Language Strengths Weaknesses
Assembly Fastest, low overhead Error-prone, slow development, difficult for novices, not portable
C Extremely fast, widely known, numerous tools Not OO, no GC, prone to memory leaks
C++ OO, very fast, widely used, numerous tools No GC, prone to memory leaks
C# Very OO, RAD language, fast, easy to use Must be just-in-time compiled when run, memory hog
Java Very OO, easy to use, portable Can be slow (though JITers are now common), not suitable for console programming
Eiffel, Smalltalk Ada, etc. Fringe game languages, few game development tools
Scripting languages like Lua, Python, etc. Often used for gameplay scripting, but not for the bulk of the game code itself

Once the game's initial design has been agreed upon, the development language must be decided upon. The choice depends upon many factors, such as language familiarity of the programming staff, target platforms (such as Sony PlayStation or Microsoft Windows), the execution speed requirements and the language of any game engines, API's or libraries being used. See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... Object-oriented programming (OOP) is a computer programming paradigm in which a software system is modeled as a set of objects that interact with each other. ... In computer science, garbage collection (GC) is a form of automatic memory management. ... In computer science, a memory leak is a particular kind of unintentional memory consumption by a computer program where the program fails to release memory when no longer needed. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose programming language with high-level and low-level capabilities. ... Object-oriented programming (OOP) is a computer programming paradigm in which a software system is modeled as a set of objects that interact with each other. ... In computer science, garbage collection (GC) is a form of automatic memory management. ... Memory leaks are often thought of as failures to release unused memory by a computer program. ... The title given to this article is incorrect due to technical limitations. ... Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. ... For other uses, see Just In Time. ... Java language redirects here. ... For other uses, see Just In Time. ... Eiffel is an ISO-standardized object-oriented programming language designed for extensibility, reusability, reliability and programmer productivity. ... For other uses, see Small talk. ... Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language. ... The Lua (pronounced LOO-ah, or in IPA) programming language is a lightweight, reflective, imperative and procedural language, designed as a scripting language with extensible semantics as a primary goal. ... Python is a high-level programming language first released by Guido van Rossum in 1991. ... The original PlayStation was produced in a light grey colour; the more recent PSOne redesign sports a smaller more rounded case. ... Windows redirects here. ... A game engine is the core software component of a computer video game or other interactive application with real-time graphics. ... API and Api redirect here. ... Illustration of an application which may use libvorbisfile. ...


Today, because it is object oriented and compiles to binary (the native language of the target platform), the most popular game development language is C++. However, Java and C are also popular. Assembly language is necessary for some video game console programming and in some routines that need to be as fast as possible, or require very little overhead. Fringe languages such as C#, Ada and Python have had very little impact upon the industry and are primarily used by hobbyists familiar with the languages, though C# is popular for developing game development tools. That may change soon, XNA being strictly for C#. In computer science, object-oriented programming, OOP for short, is a computer programming paradigm. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose programming language with high-level and low-level capabilities. ... Java language redirects here. ... C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... Game console redirects here. ... C# (pronounced see-sharp) is an object-oriented programming language developed by Microsoft as part of their . ... Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull during 1977–1983. ... Python is a high-level programming language first released by Guido van Rossum in 1991. ... UnrealEd is an example of a level editor, one type of a game development tool. ... Microsoft XNA (XNAs Not Acronymed[1]) is a set of tools, complete with a managed runtime environment, provided by Microsoft that facilitates computer game design, development and management. ...


High-level scripting languages are increasingly being used as embedded extensions to the underlying game written in a lower-level language such as C++. Many developers have created custom languages for their games, such as id Software's QuakeC and Epic Games' UnrealScript. Others have chosen existing ones like Lua or Python in order to avoid the difficulties of creating a language from scratch and teaching other programmers a proprietary language. A high-level programming language is a programming language that, in comparison to low-level programming languages, may be more abstract, easier to use, or more portable across platforms. ... Scripting languages (commonly called script languages) are computer programming languages that are typically interpreted. ... This article does not cite any references or sources. ... id Software (IPA: officially, though originally ) is an American computer game developer based in Mesquite, Texas, a suburb of Dallas. ... QuakeC is a scripting language developed in 1996 by John Carmack of id Software to program parts of the computer game Quake. ... Epic Games, also known as Epic and formerly as Epic MegaGames, is a computer game development company based in Cary, North Carolina, United States. ... UnrealScript is the scripting language of the Unreal engine and is used for authoring game code and gameplay events. ... The Lua (pronounced LOO-ah, or in IPA) programming language is a lightweight, reflective, imperative and procedural language, designed as a scripting language with extensible semantics as a primary goal. ...


Vertex and pixel shaders are increasingly used in game development as programmable GPUs have become more prevalent. This has led to the increasing use of High Level Shader Languages in game programming, such as nVidia's Cg. Vertex and pixel (or fragment) shaders are shaders that run on a graphics card, executed once for every vertex or pixel in a specified 3D mesh. ... “GPU” redirects here. ... The High Level Shader Language (HLSL) is a shader language developed by Microsoft for use with DirectX, and is very similar to Cg. ... NVIDIA Corporation (NASDAQ: NVDA) (pronounced IPA: ) is a U.S. corporation specializing in the manufacture of graphics processor technologies for workstations, desktop computers, and handhelds. ... Cg or C for Graphics is a High level shader language created by nVidia for programming vertex and pixel shaders. ...


APIs and libraries

A key decision in game programming is which, if any, APIs and libraries to use. Today, there are numerous libraries available which take care of key tasks of game programming. Some libraries can handle sound processing, input, and graphics rendering. Some even can handle some AI tasks such as pathfinding. There are even entire game engines that handle most of the tasks of game programming and only require coding game logic. API and Api redirect here. ... Illustration of an application which may use libvorbisfile. ... AI redirects here. ... This article or section may contain original research or unverified claims. ... A game engine is the core software component of a computer video game or other interactive application with real-time graphics. ...


Which APIs and libraries one chooses depends largely on the target platform. For example, libraries for Sony PlayStation 2 development are not available for Microsoft Windows and vice-versa. However, there are game frameworks available that allow or ease cross-platform development, so programmers can program a game in a single language and have the game run on several platforms, such as the Nintendo GameCube, PS2, Xbox and Microsoft Windows. Using a portable language can also provide portability. The two versions of the PS2 with an Eye Toy camera The PlayStation 2 (PS2) (Japanese: プレイステーション2) is Sonys second video game console, after the PlayStation. ... Windows redirects here. ... The Nintendo GameCube (GCN) is Nintendos fourth home video game console, belonging to the sixth generation era. ... The Xbox is a sixth generation era video game console produced by Microsoft Corporation. ...


Graphic APIs

Civilization III, though largely 2D in nature, uses the 3D graphics API OpenGL to render its graphics.

Today, graphics are a key defining feature of most games. While 2D graphics used to be the norm for games released through the mid-1990s, almost all games now boast full 3D graphics. This is true even for games which are largely 2D in nature, such as Civilization III. Civilization 3 screenshot. ... Civilization 3 screenshot. ... Sid Meiers Civilization III is a turn-based strategy computer game by Firaxis Games, the sequel to Sid Meiers Civilization II. It was followed by Civilization IV. Also called Civ 3 or Civ III for short, the game is the third generation of the original Civilization. ... The rewrite of this article is being devised at Talk:3D computer graphics/Temp. ... API and Api redirect here. ... OpenGL (Open Graphics Library) is a standard specification defining a cross-language cross-platform API for writing applications that produce 2D and 3D computer graphics. ... 2D computer graphics is the 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. ... This article is about process of creating 3D computer graphics. ... Sid Meiers Civilization III is a turn-based strategy computer game by Firaxis Games, the sequel to Sid Meiers Civilization II. It was followed by Civilization IV. Also called Civ 3 or Civ III for short, the game is the third generation of the original Civilization. ...


The most popular personal computer target platform is Microsoft Windows. Since it comes pre-installed on almost ninety percent of PCs sold, it has an enormous user base. The two most popular 3D graphics APIs for Microsoft Windows are DirectX and OpenGL. The benefits and weaknesses of each API are hotly debated among Windows game programmers. Both are natively supported on most modern 3D hardware for the PC. IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. Such computers used to be referred to as PC clones, or IBM clones since they almost exactly duplicated all the significant features of the PC, XT, or AT internal design, facilitated by various manufacturers... Microsoft Direct eXtension (almost always called DirectX) is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. ... OpenGL (Open Graphics Library) is a standard specification defining a cross-language cross-platform API for writing applications that produce 2D and 3D computer graphics. ... A game programmer is a software engineer who primarily develops computer or video games or related software (such as game development tools). ...


DirectX, in short, is not an API at all, but a collection of game APIs. Direct3D (sometimes called DirectX Graphics) is DirectX's 3D API. Direct3D is freely available from Microsoft, as are the rest of the DirectX APIs. Microsoft developed DirectX for game programmers and continues to add features to the API. The changes to Direct3D are not controlled by an open arbitration committee and Microsoft is free to add, remove or change features as it sees fit. Also Direct3D is not portable: it is designed specifically for Microsoft Windows and no other platform (though a form of Direct3D is used on Microsoft's Xbox and portable devices which run the PocketPC operating system). One advantage Direct3D has over OpenGL is that it is revised much more often. As a result, new features of the latest 3D cards are included in the API much faster than with OpenGL. Direct3D is part of Microsofts DirectX API. Direct3D is only available for Microsofts various Windows operating systems (Windows 95 and above) and is the base for the graphics API on the Xbox and Xbox 360 console systems. ... Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... The Xbox is a sixth generation era video game console produced by Microsoft Corporation. ... A Pocket PC is a computer in a handheld size that runs a variation of the operating system Windows CE. It has many capabilities of modern desktop PCs. ...


OpenGL, in short, is a portable 3D API. Code written with OpenGL is easily ported from Windows to the Apple Macintosh or Linux. Quake II was, in fact, ported from Windows to Linux by a fan of the game. OpenGL is standardized and not "owned" by any one entity. The OpenGL Architecture Review Board (ARB) meets periodically to update the standard by adding emerging support for features of the latest 3D hardware. Since it has been around the longest, OpenGL is used by and taught in colleges and universities around the world.[citation needed] In addition, the development tools provided by the manufacturers of some video game consoles (such as the GameCube, the Nintendo DS, and the PSP) use graphic APIs that resemble OpenGL. A disadvantage of OpenGL is that it is not revised very often. Programmers who choose to use it can access some hardware's latest 3D features, but only through non-standardized extensions. The situation may change in the future as the OpenGL architecture review board (ARB) has passed control of the specification to the Khronos Group in an attempt to counter the problem.[1] The first Macintosh computer, introduced in 1984, upgraded to a 512K Fat Mac. The Macintosh or Mac, is a line of personal computers designed, developed, manufactured, and marketed by Apple Computer. ... This article is about operating systems that use the Linux kernel. ... Quake II, released on December 6, 1997, is a first person shooter computer game developed by id Software and distributed by Activision. ... College (Latin collegium) is a term most often used today to denote an educational institution. ... For the community in Florida, see University, Florida. ... The Khronos Group is an industry consortium founded in 2002 and dedicated to creating APIs to enable the authoring and playback of rich media on a wide variety of platforms and devices. ...


Other APIs

For development on Microsoft Windows, the various APIs of DirectX may be used for input, sound effects, music, networking and the playback of videos. Many commercial libraries are available to accomplish these tasks, but since DirectX is free, it is the most widely used. Input3 is the term denoting either an entrance or changes which are inserted into a system and which activate/modify a process. ... Sound effects or audio effects are artificially created or enhanced sounds, or sound processes used to emphasize artistic or other content of movies, video games, music, or other media. ... For other uses, see Music (disambiguation). ... A computer network is an interconnection of a group of computers. ...


For console programming, the console manufacturers provide facilities for rendering graphics and the other tasks of game development. The console manufacturers also provide complete development systems, without which, one cannot legally market nor develop games for their system. Third-party developers also sell toolkits or libraries that ease the development on one or more of these tasks or provide special benefits, such as cross-platform development capabilities.


The game loop

The key component of any game, from a programming standpoint, is the game loop. The game loop allows the game to run smoothly regardless of a user's input or lack thereof.


Most traditional software programs respond to user input and do nothing without it. For example, a word processor formats words and text as a user types. If the user doesn't type anything, the word processor does nothing. Some functions may take a long time to complete, but all are initiated by a user telling the program to do something. A word processor (also more formally known as a document preparation system) is a computer application used for the production (including composition, editing, formatting, and possibly printing) of any sort of viewable or printed material. ...


Games, on the other hand, must continue to operate regardless of a user's input. The game loop allows this. A highly simplified game loop, in pseudocode, might look something like this: Pseudocode (derived from pseudo and code) is a compact and informal high-level description of a computer programming algorithm that uses the structural conventions of programming languages, but omits detailed subroutines, variable declarations or language-specific syntax. ...

 while( user doesn't exit ) check for user input run AI move enemies resolve collisions draw graphics play sounds end while 

The game loop may be refined and modified as game development progresses, but most games are based on this basic idea.[citation needed]


Game loops differ depending on the platform they are developed for. For example, a game for DOS and most consoles can dominate all processing time and exploit it as it wishes. However, a game for any modern PC operating system such as Microsoft Windows must operate within the constraints of the process scheduler. More sophisticated games run multiple threads, so that, for example, the computation of character AI can be decoupled from the generation of smooth motion within the game. This has the disadvantage of (slightly) increased overhead. However, the game may run more smoothly, and will definitely run more efficiently on hyperthreading or multicore processors, and on multiprocessor platforms. With the computer industry's focus on CPU's with more cores that can execute more threads, this will become increasingly important. Consoles like the Xbox 360 and Playstation 3 already have more than one core per processor, and execute more than one thread per core. Microsofts disk operating system, MS-DOS, was Microsofts implementation of DOS, which was the first popular operating system for the IBM PC, and until recently, was widely used on the PC compatible platform. ... Many programming languages, operating systems, and other software development environments support what are called threads of execution. ... Hyper-Threading (HTT = Hyper Threading Technology) is Intels trademark for their implementation of the simultaneous multithreading technology on the Pentium 4 microarchitecture. ... A multicore processor is a chip with more than one processing units (cores). ... CPU can stand for: in computing: Central processing unit in journalism: Commonwealth Press Union in law enforcement: Crime prevention unit in software: Critical patch update, a type of software patch distributed by Oracle Corporation in Macleans College is often known as Ash Lim. ... It has been suggested that Xbox 360 Elite be merged into this article or section. ... The PlayStation 3 , trademarked PLAYSTATION®3,[3] commonly abbreviated PS3) is the third home video game console produced by Sony Computer Entertainment; successor to the PlayStation 2. ...


Production

During production, programmers churn out 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. Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ...


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 programmer may also pass on suggestions from the programmers as to possible features they'd like to implement. A game producer is the person in charge of overseeing development of a video game. ... A lead programmer is a software engineer in charge of one or more software projects. ...


With today's visually rich content, the programmer must often interact with the art staff. This very much depends on the programmer's role, of course. For example, a 3D graphics programmer may need to work side by side with the game's 3D modelers discussing strategies and design considerations, while an AI programmer may need to interact very little, if at all, with the art staff. To help artists and level designers with their tasks, programmers may volunteer or be called upon to develop tools and utilities. Many of these may be ad-hoc and buggy due to time constraints (time for development of such tools is often not included in a game's schedule) as well as due to the fact that they are only for in-house use anyway. Many game tools are developed in RAD languages for quicker development and may be discarded after the completion of the game. A video game artist is a person whose job it is to create visual art for computer and video games. ... A game programmer is a software engineer who primarily develops computer or video games or related software (such as game development tools). ... A game programmer is a software engineer who primarily develops computer or video games or related software (such as game development tools). ... A level designer is a person who creates levels, challenges or missions for computer and/or video games using a specific set of programs. ... UnrealEd is an example of a level editor, one type of a game development tool. ... Look up Ad hoc in Wiktionary, the free dictionary. ... A computer bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from working as intended, or produces an incorrect result. ... Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. ...


Milestones

What's an asset?
Game assets are the "things" that go into a game, whereas game code is that which operates on them. Some examples of assets are artwork (including textures and 3D models), sound effects and music, text, dialog and anything else that is presented to the user. Sometimes the terms content or objects are used interchangeably with the term assets.

Most game development is tracked via milestones. A milestone is a point in development where the emerging game will have an agreed upon set of features and assets. Third-party developers are often paid (by the publisher) when milestones are delivered, therefore it is critical to meet them. A Spanish kilometre stone A milestone on the Boston Post Road in Harvard Square, Massachusetts, USA Slate milestone near Bangor, Wales A milestone or kilometre sign is one of a series of numbered markers placed along a road at regular intervals, typically at the side of the road or in... A video game developer is a software developer (a business or an individual) that creates video games. ... This article or section does not cite its references or sources. ...


Sometimes features promised for a milestone are more difficult or time-consuming to implement than originally planned for and development slips into crunch time in order to complete them on schedule. Sometimes some slippage is permissible and allowances for such are worked into the game development contract beforehand.


Games developed internally by a publisher also have milestones, but they are, obviously, not required for any sort of payment or reimbursement. Rather the milestones are used for development tracking purposes. Usually, if the game development staff, including programmers, can provide reasonable justifications for the slippage (such as, some unplanned features were added that added significantly to the game), no penalties are incurred. However, often and frequent slippage of internal titles may result in cancellation of a title and—possibly—a termination of employment. Downsizing is a euphemism referring to layoffs initiated by a company in order to cut labor costs by reducing the size of the company. ...


Crunch time

Crunch time, or crunching, is another term for extended periods of consecutive overtime. The extra hours worked during crunch time are often unpaid, although some companies give the time back in the form of extra holiday time (often called "comp time"). Overtime is the amount of time someone works beyond normal working hours; these may be determined in several ways, by custom (what is considered healthy or reasonable by society), by practices of a given trade or profession, by legislation, or by agreement between employers and workers or their representatives. ...


During crunch periods, project managers often provide:

  • Temporary local accommodation for commuters
  • Meals on site
  • Administration staff to field calls and run errands
  • Extra staff (transferred from other projects to help)

In the short term, crunching can increase the productivity of a team. But the increase in productivity is not normally proportional to the extra hours; twice the hours is unlikely to produce twice the productivity, due to diminishing returns. Adding extra staff is also not guaranteed to significantly increase productivity at this stage, and can often actually decrease productivity, as noted in The Mythical Man Month by Fred Brooks. In economics, diminishing returns is the short form of diminishing marginal returns. ... Book cover The Mythical Man-Month: Essays on Software Engineering is a classic book on software project management written by Fred Brooks. ... Frederick Phillips Brooks, Jr. ...


As crunch time continues, productivity drops. Frequently, productivity at the end of a crunch is less than would be expected from normal working hours. Quality also suffers as tired developers make more mistakes. Extended periods of crunch time also raise health issues such as: stress, fatigue, exhaustion and poor diet (some company-provided meals are junk food or fast food take-out and developers often increase their consumption of stimulants such as caffeine due to lack of sleep.) In nutrition, the diet is the sum of food consumed by a person or other organism. ... Cheetos The Luther Burger, a bacon cheeseburger which employs a glazed donut in place of each bun. ... Fast food is food prepared and served quickly at a fast-food restaurant or shop at low cost. ... Caffeine is a xanthine alkaloid compound that acts as a stimulant in humans. ...


Crunch time is frequently misused in game development projects. Many projects are scheduled with overtime throughout. The International Game Developers Association (IGDA) surveyed nearly 1,000 game developers in 2004 and produced a report to highlight the many problems caused by bad practice.[2] The International Game Developers Association (IGDA) is a non-profit organization designed to promote, and strengthen the video game industry, and have computer games recognised as an art form. ...


The E³ demo

As a game nears completion, the publisher will want to showcase a demo of the title at trade shows. One of the largest and most important of these is . Therefore, many games will have an "E³ demo" worked into the schedule. Demo disc released with a magazine. ... E³ logo The Electronic Entertainment Expo, commonly known as E³, was an annual trade show for the computer and video games industry presented by the Entertainment Software Association. ...


Depending on the stage of development, the E³ demo will either be full of "hacks" or a scaled-down version of the game, such as containing all of the game's features, but just one special level. Sometimes the demo can just consist of a video of potential gameplay and features.


At the 1999 E³, for example, Blizzard showcased the highly anticipated Diablo II and allowed a small number of attendees to play the nearly completed game. On the other hand, Electronic Arts showcased the upcoming The Sims with a looping video of segments of the game. Blizzard Entertainment, a division of Vivendi Games, is an American computer game developer and publisher headquartered in Irvine, California. ... Diablo II, sequel to the popular game Diablo, is a dark fantasy-themed action role-playing game in a hack and slash or Dungeon Roaming style. ... Electronic Arts (EA) (NASDAQ: ERTS) is an American developer, marketer, publisher, and distributor of computer and video games. ... This article is about a computer game that was released in year 2000. ...


Since the E³ demo is so critical, its development can halt all normal programming efforts as it branches off in the development of the demo. Depending on the stage of development, the demo can contain illusions of features and hacks that will crash the game if used wrong. But a game near completion can portray an accurate representation of the game with a great deal of polish. The E³ demo is often responsible for a great deal of crunch time.


As of August 2006, however, E³ has been severely scaled down. Consequently, the demo for the new trade show may not be of such importance in the future.


Nearing completion

As a game nears completion, nerves are frayed and tempers short as most programmers—and much of the rest of the staff—have most likely been engaged in crunch time for weeks. Programmers must be on call at all times to fix the occasional bug—from minor to catastrophic—that may arise during the last phases of testing. It has been suggested that this article or section be merged into Game testing. ...


Game developers have a beta testing period, but the definition of such varies from developer to developer. Often a "Beta" is "feature complete" (it contains all of the game's features), but may have a few bugs or incomplete content. Few games are given a public beta period, but the occasional game does to measure stress tolerance for game servers, for example. In software engineering, development stage terminology expresses how far through the development sequence things have progressed and how much further development a product may require. ... In information technology, a server is an application or device that performs services for connected clients as part of a client-server architecture. ...


When the game is deemed complete and bug-free, it is said to have "gone gold" and is shipped off to the publisher. Term used in software development; a piece of software has been released to manufacturing (frequently abbreviated RTM) when its code base is deemed complete, typically after a beta test. ...


Depending on circumstances, the publisher may then subject it to its own quality assurance or may begin pressing the game from the gold master.


Maintenance

Once a game ships, the maintenance phase for the video game begins.


Games developed for video game consoles have had, in the past, almost no maintenance period: the shipped game has as many bugs fixed and features as it's ever going to have. This was the norm for consoles since all consoles have identical or nearly identical hardware. In this case, maintenance enters the picture only in the case of a port, sequel, or enhanced remake that reuses a large chunk of the engine and assets. However, in recent times because of the growing popularity of online console games, online capable video game consoles and online services such as Xbox Live for the Microsoft Xbox, developers can maintain their software through downloadable patches and often online communities cry out for new updates and changes to an already released game. These changes would not have been possible in the past. Game console redirects here. ... For other uses, see Sequel (disambiguation). ... In the video game subculture, an enhanced remake (also called updated classics) is an updated version of a video or computer game that was originally developed for a less advanced system. ...


For PC development, however, it is a different story. Game developers try to account for as many configurations and the most common hardware, but there are so many different possible configurations of hardware and software that it is almost inevitable that someone, somewhere— especially for a popular game— will find systems or circumstances the programmers didn't account for. IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. Such computers used to be referred to as PC clones, or IBM clones since they almost exactly duplicated all the significant features of the PC, XT, or AT internal design, facilitated by various manufacturers...


Programmers wait for a period to get as many bug reports as possible. Once the developer thinks they've obtained enough feedback, the programmers start working on a patch. The patch may take weeks or months to develop, but it's intended to fix most bugs and problems with the game. Occasionally a patch may include extra features or content or may even alter gameplay. In computing, a patch is a small piece of software designed to update or fix problems with a computer program or its supporting data. ...


In the case of a massively multiplayer online game (MMOG), such as a MMORPG or MMORTS, the shipment of the game is just the beginning. Such online games are in continuous maintenance as the gameworld is continuously carried out and new features are added. The maintenance staff for a popular MMOG can number in the dozens. This staff may or may not include members of the original programming team. MMO redirects here. ... An image from World of Warcraft, one of the largest commercial MMORPGs as of 2004, based on active subscriptions. ... Categories: Stub | Computer and video game genres | Massively multiplayer online real-time strategy games ...


Culture

The game programming culture always has been and continues to be very casual. Most game programmers are individualistic and, usually, tolerant of divergent personalities. Despite the casual culture, game programming is taken very seriously by its practitioners. Image File history File links This is a lossless scalable vector image. ...


Tools

Microsoft Visual Studio is one of the tools (an IDE) that game programmers may use to build games for Windows or the Xbox.
Microsoft Visual Studio is one of the tools (an IDE) that game programmers may use to build games for Windows or the Xbox.

Game development programs are generated from source code to the actual program (called the executable) by a compiler. Source code can be generated by almost any text editor, but most professional game programmers use a full Integrated Development Environment (IDE). Once again, which IDE one uses depends on the target platform. Popular ones for Xbox and Windows development are Microsoft Visual Studio .NET and CodeWarrior. Download high resolution version (1024x768, 46 KB)Screenshot of Quake II source code in Microsoft Visual C++. The source code shown in the screenshot has been released to the public under the GNU GPL. Icon designs etc shown in the picture are copyright Microsoft. ... Download high resolution version (1024x768, 46 KB)Screenshot of Quake II source code in Microsoft Visual C++. The source code shown in the screenshot has been released to the public under the GNU GPL. Icon designs etc shown in the picture are copyright Microsoft. ... Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... Microsoft Visual Studio is a series of IDEs by Microsoft. ... An integrated development environment (IDE), also known as integrated design environment and integrated debugging environment, is a programming environment that has been packaged as an application program,that assists computer programmers in developing software. ... Windows redirects here. ... The Xbox is a sixth generation era video game console produced by Microsoft Corporation. ... Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... A diagram of the operation of a typical multi-language, multi-target compiler. ... Notepad is the standard text editor for Microsoft Windows A text editor is a piece of computer software for editing plain text. ... An integrated development environment (IDE), also known as integrated design environment and integrated debugging environment, is a programming environment that has been packaged as an application program,that assists computer programmers in developing software. ... Microsoft Visual Studio is Microsofts flagship software development product for computer programmers. ... CodeWarrior is an integrated development environment for the Macintosh, Microsoft Windows, Linux, and embedded systems. ...


In addition to IDEs, many game development companies create custom tools developed to be used in-house. Some of these include prototypes and asset conversion tools (programs that change artwork, for example, into the game's custom format). Some custom tools, however, may be delivered with the game, such as a level editor. UnrealEd is an example of a level editor, one type of a game development tool. ... Sandbox Editor for Crysis UnrealEd is the level editor for Epics Unreal series of first-person shooters. ...


Game development companies are often very willing to spend thousands of dollars to make sure their programmers are well equipped with the best tools. A well outfitted programmer may have two to three development systems dominating his office or cubicle. A game programmer is a software engineer who primarily develops computer or video games or related software (such as game development tools). ...


Duration

Most modern games take from one to three years to complete. The length of development depends on a number of factors, but programming is required throughout all phases of development except the very early stages of game design.


Hobbyists

For hobbyists, usually the only platforms available to program on are consumer operating systems. This is because development on consoles requires special development systems which cost thousands of dollars, must be obtained from the console manufacturer and are only sold or leased to professional game development studios. However, recently Microsoft has released a new game development platform - XNA, which can be run both on the PC and the XBOX 360. The game written for PC can be ported to XBOX with almost no or slight changes. This allows individual game programmers and small teams to develop games for consoles. However, some hobbyists prefer to develop homebrew games, especially for handheld systems or obsolete consoles. An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ... Homebrew is a term frequently applied only to video games that are produced by consumers on proprietary game platforms; in other words, game platforms that are not typically user-programmable, or use proprietary hardware for storage. ...


See also

This is a hierarchical list linking to all articles related to computer and video games. ...

References

  1. ^ "OpenGL ARB to Pass Control of OpenGL Specification to Khronos Group" press release from The Khronos Group
  2. ^ Quality of Life White Paper from the International Game Developers Association (IGDA)

The Khronos Group is an industry consortium founded in 2002 and dedicated to creating APIs to enable the authoring and playback of rich media on a wide variety of platforms and devices. ... The International Game Developers Association (IGDA) is a non-profit organization designed to promote, and strengthen the video game industry, and have computer games recognised as an art form. ...

External links

Wikis

  • 2D Game Development wiki
  • Game Programming Wiki
  • Game Development wiki at DevMaster.net
v  d  e
Computer and video game industry
Activities Jobs Types of video games Companies
Game design
Game development
Game programming
Game testing
Journalism
Level design
Game producer
Game designer
Game programmer
Game artist
Game tester
Level designer
Arcade game
Computer game
Console game
Handheld game
Video game developer
Video game publisher
List of video game companies
List of publishers
Lists of video games
List of video game industry people

  Results from FactBites:
 
Game programming - Wikipedia, the free encyclopedia (3555 words)
Game programming, a subset of game development, is the programming of computer, console or arcade games.
Game developers try to account for as many configurations and the most common hardware, but there are so many different possible configurations of hardware and software that it is almost inevitable that someone, somewhere— especially for a popular game— will find systems or circumstances the programmers didn't account for.
Game development companies are often very willing to spend thousands of dollars to make sure their programmers are well equipped.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m