Citizendia

Game programming, a subset of game development, is the programming of computer, console or arcade games. Game development is the process by which a Game is produced Today this term most commonly refers to the development of Video games Overview Development A personal computer Game (also known as a computer game or simply PC game) is a Video game played on a Personal computer, rather This article is about games played on consoles Video gaming is about this form of gaming in general An arcade game is a coin-operated entertainment machine typically installed in businesses such as Restaurants Pubs Video arcades and Family Entertainment Though often engaged in by professional game programmers, many novices may program games as a hobby. A game programmer is a Programmer who primarily develops Video games or related Software (such as Game development tools. A hobby is a spare-time Recreational pursuit Etymology A Hobby horse is a wooden or Wickerwork toy made to be Some software engineering students program games as exercises for learning a programming language or operating system. Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of Software. A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination

Contents

The development process

Professional game development usually begins with a game design, which itself has several possible origins. Game design is the process of designing the content and rules of a Game. 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. The Sims is a strategic life-simulation computer game developed by Maxis and published by Electronic Arts. A "game designer" is a person who designs Video games or one who designs traditional games such as Board games Video Games Designer A video game designer William Wright (born January 20 1960 in Atlanta Georgia) is an American computer Game designer and co-founder of

Prototyping

Writing prototypes of gameplay ideas and features is an important activity that allows programmers and game designers to experiment with different algorithms and usability scenarios for a game. A prototype is an original type form or instance of something serving as a typical example basis or standard for other things of the same category In Mathematics, Computing, Linguistics and related subjects an algorithm is a sequence of finite instructions often used for Calculation 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. See also Filmmaking Pre-production is the process of preparing all the elements involved in a Film, play, or other Performance. Prototyping may also take place during active development to test new ideas as the game emerges.

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. Proof of concept is a short and/or incomplete realization (or synopsis) of a certain method or idea(s to demonstrate its feasibility or a demonstration in principle whose Most algorithms and features debuted in a prototype may be ported to the implementation language of the game once they have been completed. See also Software portability In Computer science, porting is the process of adapting software so that an executable program can be created

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, which involves iterative development and the construction of Prototypes

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. A game artist is an Artist who creates art for one or more types of Games Game artists are responsible for all of the aspects of Game development that call The game designer will solicit input from both the producer and the art and programming lead for ideas and strategies for the game design. 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 Often individuals in non-lead positions also contribute, such as copywriters and other programmers and artists. Copywriting is the use of words to promote a Person, Business, Opinion, or Idea.

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

LanguageStrengthsWeaknesses
AssemblyLow overheadError-prone, slow development, difficult for novices, not portable
CWidely known, numerous toolsNot OO, no GC, prone to memory leaks
C++OO, widely used, numerous toolsNo GC, prone to memory leaks
C#Very OO, RAD language, easy to useMust be just-in-time compiled when run, high memory usage
JavaVery OO, easy to use, portableCan be slow (though JITers are now common), not suitable for console programming
Eiffel, Smalltalk Ada, etc. See the terminology section below for information regarding inconsistent use of the terms assembly and assembler tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs In Computer science, garbage collection ( GC) is a form of automatic Memory management. In Computer science, a memory leak is a particular type of unintentional memory consumption by a Computer program where the program fails to release memory C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs In Computer science, garbage collection ( GC) is a form of automatic Memory management. In Computer science, a memory leak is a particular type of unintentional memory consumption by a Computer program where the program fails to release memory C# (pronounced C Sharp is a Multi-paradigm Rapid application development ( RAD) is a Software development process, which involves iterative development and the construction of Prototypes In Computing, just-in-time compilation ( JIT) also known as dynamic translation, is a technique for improving the runtime performance of a Computer In Computing, just-in-time compilation ( JIT) also known as dynamic translation, is a technique for improving the runtime performance of a Computer Eiffel is an ISO -standardized Object-oriented Programming language designed to enable programmers to efficiently develop extensible reusable reliable Smalltalk is an object-oriented, dynamically typed, reflective programming language. Ada is a structured, Statically typed, imperative, and object-oriented high-level computer Programming language Fringe game languages, few game development tools
Scripting languages like Lua, Python, etc. In Computing, Lua (ˈluːa LOO-ah is a lightweight, reflective, imperative and procedural Programming language, Python is a general-purpose High-level programming language. Its design philosophy emphasizes programmer productivity and code readability 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, APIs or libraries being used. The PlayStation (abbreviated PS, PSone, PS1, or informally as PSX) is a 32-bit fifth generation Video game console Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. A game engine is a software system designed for the creation and development of computer and video games In Computer science, a library is a collection of Subroutines used to develop Software.

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++. Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. However, Java and C are also popular. tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured 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. See the terminology section below for information regarding inconsistent use of the terms assembly and assembler 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. C# (pronounced C Sharp is a Multi-paradigm Ada is a structured, Statically typed, imperative, and object-oriented high-level computer Programming language Python is a general-purpose High-level programming language. Its design philosophy emphasizes programmer productivity and code readability A game development tool is a specialized Software application that assists or facilitates the making of a computer or video game. That may change soon, XNA being strictly for C#. Microsoft XNA (" X NA's N ot A cronymed" in other words XNA is not an acronym is a set of tools with a managed runtime environment provided by

High-level scripting languages are increasingly being used as embedded extensions to the underlying game written in a lower-level language such as C++. In computing a high-level programming language is a Programming language with strong abstraction from the details of the computer "Scripting" redirects here For other uses see Script. In Computer science, a low-level programming language is a language that provides little or no abstraction from a computer's microprocessor. Many developers have created custom languages for their games, such as id Software's QuakeC and Epic Games' UnrealScript. id Software (ɪd officially is an American computer game developer based in Mesquite, Texas, a suburb of Dallas. QuakeC is an interpreted language developed in 1996 by John Carmack of Id Software to program parts of the Computer game Epic Games, also known as Epic and formerly as Epic MegaGames, is a Video game development company based in Cary North Carolina, United UnrealScript (often abbreviated to UScript) is the Scripting language of the Unreal Engine and is used for authoring game code and Gameplay 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. In Computing, Lua (ˈluːa LOO-ah is a lightweight, reflective, imperative and procedural Programming language,

Vertex and pixel shaders are increasingly used in game development as programmable GPUs have become more prevalent. A shader in the field of Computer graphics is a set of software instructions which is used by the graphic resources primarily to perform rendering effects This has led to the increasing use of High Level Shader Languages in game programming, such as nVidia's Cg. The High Level Shader Language or High Level Shading Language (HLSL is a proprietary Shading language developed by Microsoft for use with the Microsoft The multinational NVIDIA Corporation ( (ɪnˈvɪdiə specializes in the manufacture of graphics-processor technologies for Workstations Cg or C for Graphics is a high-level Shading language developed by Nvidia in close collaboration with Microsoft for Programming

APIs and libraries

A key decision in game programming is which, if any, APIs and libraries to use. In Computer science, a library is a collection of Subroutines used to develop Software. 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. Pathfinding is a term used mostly by computer applications to plot the best route from point A to point B There are even entire game engines that handle most of the tasks of game programming and only require coding game logic. A game engine is a software system designed for the creation and development of computer and video games

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. Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. 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. The, often abbreviated as GCN, is Nintendo 's fourth home Video game console and is part of the sixth generation console era. The Xbox is a sixth-generation Video game console produced by Microsoft Corporation. Using a portable language can also provide portability.

Graphic APIs

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. 2D computer graphics is the Computer -based generation of Digital images mdashmostly from two-dimensional models (such as 2D geometric models text and digital 3D computer graphics (in contrast to 2D computer graphics) are graphics that use a three-dimensional representation of geometric data that is stored in the computer This is true even for games which are largely 2D in nature, such as Civilization III. Sid Meier's Civilization III is a turn-based strategy Computer game by Firaxis Games, the sequel to Sid Meier's Civilization II

The most popular personal computer target platform is Microsoft Windows. A personal computer ( PC) is any Computer whose original sales price size and capabilities make it useful for individuals and which is intended to be operated Since it comes pre-installed on almost ninety percent of PCs sold, it has an enormous user base. IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. The two most popular 3D graphics APIs for Microsoft Windows are DirectX and OpenGL. Microsoft DirectX is a collection of Application programming interfaces (APIs for handling tasks related to Multimedia, especially Game programming and OpenGL ( Open G raphics L ibrary is a standard specification defining a cross-language Cross-platform API for writing applications that produce The benefits and weaknesses of each API are hotly debated among Windows game programmers. A game programmer is a Programmer who primarily develops Video games or related Software (such as Game development tools. Both are natively supported on most modern 3D hardware for the PC.

DirectX is a collection of game APIs. Direct3D is DirectX's 3D API. Direct3D is part of Microsoft 's DirectX API. Direct3D is only available for Microsoft's various Windows Operating systems ( Windows Direct3D is freely available from Microsoft, as are the rest of the DirectX APIs. Microsoft Corporation is an American multinational Computer technology Corporation, which rose to dominate the Home computer Microsoft developed DirectX for game programmers and continues to add features to the API. The DirectX specification is not controlled by an open arbitration committee and Microsoft is free to add, remove or change features. 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). The Xbox is a sixth-generation Video game console produced by Microsoft Corporation. A Pocket PC, abbreviated P/PC or PPC, is a hardware Specification for a Handheld -sized Computer ( Personal digital assistant The DirectX API is updated far more often that OpenGL implementations. As a result, new features of the latest 3D cards are included in the API much faster than with OpenGL.

OpenGL, is a portable API specification. Code written with OpenGL is easily ported between platforms with a compatible implementation. Quake II was, in fact, ported from Windows to Linux by a fan of the game. Quake II, released on December 9 1997, is a First person shooter computer game developed by Id Software and distributed OpenGL is a standard maintained by the OpenGL Architecture Review Board (ARB). The 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. College ( Latin collegium) is a term most often used today to denote an Educational Institution. A university is an institution of Higher education and Research, which grants Academic degrees in a variety of subjects 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. OpenGL often lags behind on feature updates due to the lack of a permanent development team and the requirement that implementations begin development after the standard has been published. 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. The Khronos Group is a member-funded industry consortium focused on the creation of Open standard, royalty-free APIs to enable the authoring and accelerated playback [1]

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. Input is the term denoting either an entrance or changes which are inserted into a System and which activate/modify a Process. For the album by The Jam see Sound Affects. Sound effects or audio effects are artificially created or enhanced Sounds Music is an Art form in which the medium is Sound organized in Time. A computer network is a group of interconnected Computers. Networks may be classified according to a wide variety of characteristics Many commercial libraries are available to accomplish these tasks, but since DirectX is free, it is the most widely used.

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.

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:

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

The game loop may be refined and modified as game development progresses, but most games are based on this basic idea. Pseudocode is a compact and informal high-level description of a Computer programming Algorithm that uses the structural conventions of some Programming language [2]

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. MS-DOS (short for M icro' s' oft D isk O perating S ystem is an Operating system commercialized by Microsoft. 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. A thread in Computer science is short for a thread of execution. 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. Hyper-threading (officially termed Hyper-Threading Technology or HTT) is an Intel-proprietary technology 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. The Xbox 360 is the second Video game console produced by Microsoft, and was developed in cooperation with IBM, ATI, and SiS.

Production

During production, programmers churn out a great deal of source code to create the game described in the game's design document. In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable 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. 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 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.

With today's visually rich content, the programmer must often interact with the art staff. A game artist is an Artist who creates art for one or more types of Games Game artists are responsible for all of the aspects of Game development that call 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. A game programmer is a Programmer who primarily develops Video games or related Software (such as Game development tools. A game programmer is a Programmer who primarily develops Video games or related Software (such as Game development tools. To help artists and level designers with their tasks, programmers may volunteer or be called upon to develop tools and utilities. A level designer is a person who creates levels challenges or missions for computer and/or Video games using a specific set of programs These A game development tool is a specialized Software application that assists or facilitates the making of a computer or video game. 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 because they are only for in-house use anyway. Ad hoc is a Latin phrase which means "for this [ Purpose ]" A software bug (or just “bug” is an error flaw mistake Failure, fault or “undocumented feature” in a Computer program that prevents it Many game tools are developed in RAD languages for quicker development and may be discarded after the completion of the game. Rapid application development ( RAD) is a Software development process, which involves iterative development and the construction of Prototypes

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 video game developer is a software developer (a business or an individual that creates Video games A developer may specialize in a certain video A video game publisher is a company that publishes Video games that they have either developed internally or have had developed by a Video game developer

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. Layoff is the temporary suspension or permanent Termination of employment of an Employee or (more commonly a group of employees for Business reasons

Crunch time

Crunch time, or crunching, is another term for extended periods of consecutive overtime. Overtime is the amount of time someone works beyond normal working hours. 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").

During crunch periods, project managers often provide:

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. In Economics, diminishing returns is also called diminishing marginal returns or the law of 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. The Mythical Man-Month Essays on Software Engineering is a book on Software Project management by Fred Brooks, whose central theme is that Frederick Phillips Brooks Jr (born April 19, 1931) is a Software engineer and Computer scientist, best-known for managing the development

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. This article is primarily about the human diet For a discussion of animal diets see List of feeding behaviours. Junk food is a broad term that is used to describe a variety of Food products from Sweets that contain little to no Nutritional value to products used in Fast food is the term given to food that can be prepared and served very quickly Caffeine is a bitter white crystalline Xanthine Alkaloid that acts as a Psychoactive Stimulant Drug and a mild Diuretic )

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. International Game Developers Association (IGDA is a professional society for video and Computer game developers worldwide [3]

Trade show demo

As a game nears completion, the publisher will want to showcase a demo of the title at trade shows. A game demo is an often but not always freely distributed demonstration or preview of an upcoming or recently released computer or video game. Therefore, many games will have an "Trade Show demo" worked into the schedule.

Depending on the stage of development, the 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. Blizzard Entertainment is an American Video game developer and publisher headquartered in Irvine California. Diablo II, sequel to the game Diablo, is a Dark fantasy -themed Action role-playing game in a Hack and slash and " On the other hand, Electronic Arts showcased the upcoming The Sims with a looping video of segments of the game. The Sims is a strategic life-simulation computer game developed by Maxis and published by Electronic Arts.

Since the 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 demo is often responsible for a great deal of crunch time.

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. A game tester analyzes Video games to document software defects as part of a Quality control process in Video game development.

Game developers have a beta testing period, but the definition of such varies from developer to developer. A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product 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. A server is a Computer dedicated to providing one or more services over a computer network typically through a request-response routine

When the game is deemed complete and bug-free, it is said to have "gone gold" and is shipped off to the publisher. A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product

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 had as many bugs fixed and features as it was 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. A sequel is a work in Literature, Film, or other media that portrays events following those of a previous work A video game remake is an updated and re-released version of a previous Video game.

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. These changes would not have been possible in the past without the widespread availability of the Internet. The Internet is a global system of interconnected Computer networks

For PC development, however, it is a different story. IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. 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.

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 the case of a massively multiplayer online game (MMOG), such as a MMORPG or MMORTS, the shipment of the game is just the beginning. A massively multiplayer online role-playing game ( MMORPG) is a genre of Computer role-playing games (CRPGs in which a large number of players interact with Massively multiplayer online real-time strategy ( MMORTS) is a genre of online Computer games, combining Real-time strategy (RTS with a 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.

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.

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. Microsoft Corporation is an American multinational Computer technology Corporation, which rose to dominate the Home computer Microsoft Visual Studio is the main Integrated Development Environment (IDE from Microsoft. In Computing, an integrated development environment ( IDE) is a Software application that provides comprehensive facilities to Computer programmers Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. The Xbox is a sixth-generation Video game console produced by Microsoft Corporation.

Game development programs are generated from source code to the actual program (called the executable) by a compiler. In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable A compiler is a Computer program (or set of programs that translates text written in a computer language (the source language) into another Source code can be generated by almost any text editor, but most professional game programmers use a full Integrated Development Environment (IDE). A text editor is a type of program used for editing plain Text files Text editors are often provided with Operating systems or software development In Computing, an integrated development environment ( IDE) is a Software application that provides comprehensive facilities to Computer programmers 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. Microsoft Visual Studio is the main Integrated Development Environment (IDE from Microsoft. CodeWarrior is an integrated development environment (IDE for the Macintosh, Microsoft Windows, Linux, Solaris and Embedded

In addition to IDEs, many game development companies create custom tools developed to be used in-house. A game development tool is a specialized Software application that assists or facilitates the making of a computer or video game. 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. A level editor (also known as a map, campaign or scenario editor is a software application used to design levels maps or campaigns

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 game programmer is a Programmer who primarily develops Video games or related Software (such as Game development tools. A well outfitted programmer may have two to three development systems dominating his office or cubicle.

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. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination 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. Homebrew is a term frequently applied to Video games produced by consumers to target Proprietary hardware platforms not typically user-programmable or that use proprietary

See also

References

  1. ^ "OpenGL ARB to Pass Control of OpenGL Specification to Khronos Group" press release from The Khronos Group
  2. ^ Programming Linux Games, chapter 1. This is a hierarchical list linking to all articles related to Video games. The Khronos Group is a member-funded industry consortium focused on the creation of Open standard, royalty-free APIs to enable the authoring and accelerated playback ISBN 1-886411-48-4
  3. ^ Quality of Life White Paper from the International Game Developers Association (IGDA)

External links

Wikis

v  d  e
Video game industry
ActivitiesJobsTypes of video gamesCompanies
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
International Game Developers Association (IGDA is a professional society for video and Computer game developers worldwide The video game industry (formally referred to as Interactive entertainment) is the economic sector involved with the development, Marketing Game design is the process of designing the content and rules of a Game. Game development is the process by which a Game is produced Today this term most commonly refers to the development of Video games Overview Development Game testing refers to the process of Software testing for Video games The formal process performed by professional Game testers begins well into Video game journalism is a branch of Journalism concerned with the reporting and discussion of Video games. Level design or game mapping is the creation of levels mdashlocales stages or missions&mdashfor a Video game (such as a Console game or A game producer is the person in charge of overseeing development of a Video game. A "game designer" is a person who designs Video games or one who designs traditional games such as Board games Video Games Designer A video game designer A game programmer is a Programmer who primarily develops Video games or related Software (such as Game development tools. A game artist is an Artist who creates art for one or more types of Games Game artists are responsible for all of the aspects of Game development that call A game tester analyzes Video games to document software defects as part of a Quality control process in Video game development. A level designer is a person who creates levels challenges or missions for computer and/or Video games using a specific set of programs These An arcade game is a coin-operated entertainment machine typically installed in businesses such as Restaurants Pubs Video arcades and Family Entertainment A personal computer Game (also known as a computer game or simply PC game) is a Video game played on a Personal computer, rather This article is about games played on consoles Video gaming is about this form of gaming in general A handheld video game is a Video game designed for a handheld device A video game developer is a software developer (a business or an individual that creates Video games A developer may specialize in a certain video A video game publisher is a company that publishes Video games that they have either developed internally or have had developed by a Video game developer This is a list of companies that have made Video games for either computers or video game consoles and includes both companies that currently exist as well as now-defunct companies This is a list of video and computer game publishers, past and present This is a list of all Video game lists that can be found on Wikipedia. Below is a list of notable people who work or have worked in the Video game industry, on video or Computer games The list is divided into different roles but
© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
Dapyx Software network: MP3 Explorer | Ebook Manager | Zenithic