Academia.eduAcademia.edu

Game Design: Games for the World Wide Web

2004, The Internet Encyclopedia

P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 G Game Design: Games for the World Wide Web Bruce R. Maxim, University of Michigan–Dearborn Introduction Economic Impact of Computer Game Industry Elements of Computer Games Genre Story Line Puzzles User Interface Artificial Intelligence Role of The World Wide Web in Computer Game Production Game Archives User Support Communities Developer Resources Online Games Designing Computer Games 1 1 2 2 2 2 2 3 4 4 4 5 5 6 INTRODUCTION Programming computers to play games attracted the interest of such computer scientists as Babbage, Turing, and Shannon long before the first personal computers (PCs) came into existence. When personal computers and dedicated game consoles became widely available, in the 1970s, large numbers of computer game titles appeared in the marketplace almost immediately. Some people have argued that the computational expectations of modern computer game players pushed PC hardware manufacturers to increase the multimedia processing power of the home computer. The advent of the Internet and its rapid spread to homes throughout the world similarly has attracted the attention of game designers seeking to create multiplayer games among widely dispersed users. Creating games intended to run on the World Wide Web requires a good understanding of the principles used to design games for stand-alone computers, as well as knowledge about network architecture and client/server computing. This chapter discusses some of the design principles and challenges posed by developing games for the World Wide Web. ECONOMIC IMPACT OF COMPUTER GAME INDUSTRY The computer game industry has had gross sales in excess of 7 billion dollars since 1998 (Sawyer, Dunne, & Berg, Brainstorming Documents Creating Game Content Platforms Compilers and Game Engines Multimedia Tools Multiplayer Games and Networking Session-Oriented Multiplayer Games Synchronization Problems Information-Sharing Concerns Network Protocol Trade-offs Conclusion Glossary Cross References References 6 6 7 7 8 8 8 9 9 9 9 9 10 10 10 1998). Some industry analysts have predicted that sometime during the next ten years computer game play will be the most popular means of family entertainment. Indeed, by some estimates, computer game sales may have exceeded motion picture revenues for the year 2001. A recent survey showed that the average age of computer game buyers is about 31 years old (WINNY, 2000). Computer game development is serious business. Major game development projects often have production budgets exceeding 2 million dollars for a single title and sequels abound. The Internet has the potential to allow game developers to increase their share of the entertainment market as the number of households having access to the World Wide Web continues to grow. Users of the World Wide Web can download commercial games to play on their personal computers, participate in multiplayer games online, and find support communities for their favorite games. There are several online game services that derive their sole income from providing access to Internet games for a fee (Morrison, 1996). Many of the console game manufacturers have promised some type of Internet connectivity in their new product lines. A number of successful educational computer games are being ported to the Internet. A recent survey of information systems managers found that 90% of them have access to games at work and that 58% play games at work several times a week (WINNY, 2000). Easy access to the Internet has encour1 P1: JDW WLO40A-25 WL040/Bidgolio-Vol I 2 WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 GAME DESIGN: GAMES FOR THE WORLD WIDE WEB aged software piracy by some people. In addition to lost worker productivity, chief information officers are finding that their corporate servers are being used by some employees as repositories for the exchange of pirated software, which exposes the company to prosecution for distributing unlicensed copies of software. Many people feel that downloading software from the Internet is a major source of computer viruses in the work place. Computer viruses have a reputation for destroying information stored on computers, and a significant amount of time is often required to remove them and have their damage repaired. There is some evidence that computer game playing can be psychologically addictive, encourages violent behavior among young children, and can cause repetitive stress injuries. There is also some evidence that playing computer games can increase hand–eye coordination, raise a person’s self-esteem, and help children learn to deal with the complexities found in real-life situations (WINNY, 2000). ELEMENTS OF COMPUTER GAMES Not every game lends itself easily to online play. Multiplayer games in which players take turns moving and single-player games in which players complete against a computer opponent possessing artificial intelligence seem to be the easiest to adapt to Internet play. One reason for choosing to play a game on the Internet is to experience the interaction with game players around the world. The key to developing a good game is to give players interesting challenges to overcome. The solutions to these challenges should be intuitive to the players and should gradually increase in difficulty. This allows a game to be learned as the player’s skill increases. A game that produces random results for a given input may not be perceived as an entertaining game. Genre The term genre, as used in this chapter, describes a game type. There are many types of computer games. Use of the term genre is a bit controversial among game designers. Some game designers do not believe it is possible to classify every game as belonging to a single genre. Games from the same genre tend to share many attributes (role of the player, use of animation, user interface style, etc.). Although there is no single agreed-upon list of genre names, a list proposed by LaMothe (1999) appears in Table 1. Story Line Most games use some sort of story line to enhance the game. The story line may provide background to give players contexts for their actions (e.g., shooters) or it may actually serve as a script (e.g., role-playing games or interactive fiction) to govern the interactive flow of the game (Sawyer et al., 1998). Linear story lines have only one possible path to a successful outcome. Nonlinear story lines allow players to choose different routes to follow during the course of game play and may even have different endings, based on the decisions made by each player. It is usually good to make the player feel that his or her actions during the game affect the game’s (and the story’s) ultimate outcome. Puzzles In stand-alone games, people are more likely to evaluate a game according to the quality of its story line and graphics rather than the cleverness of its puzzles. However, ingenious puzzles are the heart of interactive fiction or roleplaying games. Good puzzles can enhance the story line for any game and can assist with character development. Good puzzles can make a good game great, by giving players small challenges to keep them interested in the game while working toward game completion. Bad puzzles can interfere with the player’s progress toward goals and can prevent players from immersing themselves in the story. Several types of puzzles can be found in computer games. Puzzles may require players to push buttons to copy sequences or discover patterns. Players may be required to start or stop sequences of actions within a specified time period. A game may require users to construct a puzzle solution by combining clues or following a trail of evidence like a detective. Sometimes puzzles may take the form of word searches, magic squares, or riddles. These types of puzzles challenge players, and their performance is likely to improve with practice. This keeps players coming back to play again. Puzzles that rely solely on brute force solutions or excessive trial and error tend to discourage players from returning to play again. Puzzles with random results that depend solely on luck and little skill can also make players lose interest in a game. User Interface Players expect games to have graphical user interfaces, even if the game does not involve direct manipulation of game objects (Brown, 2000). Most games found on the Internet are designed to run either from inside a Web browser window or from a dedicated game server. Games designed to run inside a browser window allow the game designer to make use of a user platform that is relatively machine independent with regard to displaying game graphics and animation. Games designed to run from a dedicated server often require a platformdependent client program to be running on each player’s machine. The client program would typically handle user input and display-of-game information sent by the server. Games that involve graphical simulations of real-world actions need to have believable behavior, but designers need to remember that they do not need to build a perfect physical model to create fun games. Most physical actions can be approximated assuming simple Newtonian physics and rigid body elastic collisions. In many games, designers may be able to simplify the detection of collisions between screen objects by focusing on an object’s center of mass and surrounding it with a rectangular bounding box. In a two-dimensional (2D) graphical system, object collisions are indicated any time the bounding box surrounding one object enters the area surrounded by the bounding box on another object. This allows the game program to speed up the graphical display of the effects of object interactions. Using discrete-simulation (constant step) techniques can P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 ELEMENTS OF COMPUTER GAMES 3 Table 1 Selected Game Genres GENRE EXAMPLE Interactive Fiction Tomb Raider Fighting Games WWF Warzone Puzzle and Card Games Tetris Role-Playing Games Ever Quest God Games Roller Coaster Tycoon Simulations Microsoft Flight Simulator Arcade Games and Shooters Pac Man Sports Games Madden NFL Military/Strategy Games Final Fantasy also help with synchronization of simultaneous events. In discrete simulation, the effects of simultaneous events in a given time unit are modeled offline and displayed for the user as if they occurred at the same time (LaMothe, 1998). User interaction devices for Internet games tend to be limited to the mouse and the keyboard, because these represent the base-level devices in the Unix world, where a majority of the World Wide Web servers live. For multiplayer games, text and voice communication between players seems to be an important social aspect of games (Munkki, 1997). This communication may take the form of requests for technical support or it may simply be “trash talking.” Although text communication only requires the use of the keyboard, voice communication requires the presence of a microphone and speakers on each player’s machine. Besides graphics and computer animation, multimedia elements that have become part of computer games include sound, music, and video. Sound and music can enhance the story line of a game in the same way they do movies. Typically, making use of most multimedia CHARACTERISTICS May be either text based or involve 3D graphics; games are scripted to show that the solution of each puzzle leads players down predetermined paths until the game ends or the user quits Usually involves one or two players locked in mortal combat; requires fast computer response time and usually contains realistic graphics to depict violent actions Classic turn-based board games, card games, or puzzles played by one or more players using a computer keyboard or mouse for input and 2D graphics displays One or more players assume the roles of characters who are allowed to interact with each other and with objects in the environment; artificial intelligence techniques are employed to create computer-controlled nonplayer characters who interact with the human-controlled characters; combat between players and solution of puzzles is often part of the game; often players are required use their own judgment to equip themselves prior to beginning a grand quest Often implemented as turn based, graphical simulations in which the player has a chance to set the parameters for simulation and where computer animation is used to display the impact of these decisions over a compressed time period Driving- or flight-simulator-type games; often makes use of 3D graphics and requires moderately fast real-time display of the response to player actions Computer versions of classic arcade games; usually involve 2D graphics and have one or two players shoot at objects or each other with laser-type weapons Graphical simulations of individual or team-based sporting events; computer uses artificial intelligence to control most players in team sports; make heavy use of multimedia in user interface designs Similar to god games or interactive fiction with 2D graphical output; may involve more than one player formats in a browser window requires the user to download and install a plug-in on his or her local machine for each media type used. One of the challenging aspects of working with both video and sound in computer games is synchronizing video stream with audio stream so that they seem to be taking place at the same time. The network bandwidth required for streaming either video or audio is substantial for local area networks. The latency or lag time associated with the Internet further complicates the task of media synchronization (Ng, 1997a,b). Artificial Intelligence Developing computer opponents for turn-based games was one of the earliest applications of artificial intelligence (AI) by computer scientists. Many of these early computer opponents make use of a static evaluation function that takes a proposed game state as input and returns a numeric value indicating the value of the position of the state. By applying the static evaluation function to each new game state that is reachable from the current game P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls 4 June 18, 2003 16:0 Char Count= 0 GAME DESIGN: GAMES FOR THE WORLD WIDE WEB Table 2 State Transition Table for Robot Guard CURRENT GAME STATE Move East Move East Move East Attack Intruder Attack Intruder Move West Move West Move West EVENT TRIGGER RESULTING GAME STATE Alarm Silent Path Blocked Alarm Activated Alarm Activated Alarm Silent Alarm Silent Path Blocked Alarm Activated Move East Move West Attack Intruder Attack Intruder Move East Move West Move East Attack Intruder state, the computer opponent can select the alternative with the best numeric value. The performance of computer opponents can be improved by looking ahead two or more moves before applying the static evaluation function. An algorithm like minimax is used to combine the results of the “look ahead” moves (recognizing the fact that each player will be looking for the best move possible). Another task confronting opponents in combat or sports games is path finding through the game objects displayed on the screen. Nothing exposes weaknesses faster than when a computer opponent allows itself to take the long way around an obstacle when an obviously shorter path is available. Heuristic search techniques like A* (pronounced A star) can be used to avoid time-consuming trial and error searching for paths between game positions (LaMothe, 1999). Sometimes the positions of objects for a particular game state are known in advance and all routes can be precomputed and stored in the game database. This is not an AI technique, but it definitely is one way to speed up game play. Pursuit of opponents and running away from opponents can often be handled by heuristic techniques based on the distances between player pieces on the game map. If the distance is getting bigger, a pursuit heuristic might be to alter direction to make the distance smaller. If the distance is getting smaller, an evasion heuristic might call for a computer-controlled object to do whatever is needed to increase the distance from the pursuing piece. This type of heuristic is fairly effective for simple objects such as rocks or missiles. For slightly more intelligent objects (such as birds or spaceships), some random behavior might be added every few moves to make the computer-controlled pieces seem more realistic. Movement patterns might also be used to govern the behavior of patrolling guards or prowling animals (LaMothe, 1999). For important game elements, such as computercontrolled characters in role-playing games or interactive fiction, more advanced AI techniques might be used. Finite-state machines or production systems are good for modeling event-driven computing systems. Finite-state machines only require knowledge of the current game state and the most recent user input or game event to determine the next state of computation. This requires careful analysis of the system states and their relationships, but it can be a very effective way to make a computer-controlled character appear to react intelligently to each game situation. Finite-state machines can be represented graphically or by using state transition tables. Table 2 contains a state transition table that might be used for a robot guard in a combat game. One way to avoid repetitive behavior is to give a computer-controlled character some means of remembering previous actions and allowing them to vary them from time to time (LaMothe, 1999). Many people would insist that an intelligent computer system should be capable of learning from its mistakes. Neural networks and genetic algorithms used in computer games allow computer opponents to improve their performance based on past game experiences. Even early checkers-playing programs made use of numerical learning techniques similar to these approaches to improve game play. ROLE OF THE WORLD WIDE WEB IN COMPUTER GAME PRODUCTION Game Archives Using any Internet search engine and typing in the search string “computer games,” one is likely to find several million hits. Some sites may simply allow visitors to download games to be installed on their personal computers. Some of these games may be freeware, given away by developers, or they may be shareware, in which developers trust users to send voluntary donations to offset development costs. These games may be free demonstration versions of games that can purchased either online or in local retail stores. Some of these sites also provide support resources for both game players and game developers. Some of these sites may provide visitors with opportunities to play games online without needing to install them on their own personal computers. User Support Communities Many companies make Web-based user support resources available to registered owners of their products. Game companies are no exception. Online registration of products is an option commonly included during the installation of many computer games. Game owners are often put on electronic company mailing lists and are promised notification regarding software bug fixes (patches) and new product releases. Software companies may also provide access to technical support to assist users with game installation problems or help them download software patches and missing or updated device drivers. Some games may use the Internet to automatically download and install new versions of game components on the P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 ROLE OF THE WORLD WIDE WEB IN COMPUTER GAME PRODUCTION user’s machine. Many game companies may also provide online bulletin boards to allow users to share gameplaying tips with other players or contact technical support representatives for instant responses to questions. Some multiplayer games make use of the Internet to provide communication between players during actual game play. Game manufacturers are finding that adding online communications components to their games is becoming important for success in the market place (Bernier, 2000). Many games are so popular that the users themselves set up Web sites to share reviews of new games and provide game cheats that show scripted solutions for beating complicated game puzzles. Simply typing the name of a popular game (e.g., Tomb Raider) into a search engine is likely to yield thousands of hits. Developer Resources Most game developers insist that knowing their potential users is the key to the success of any game. Communication between geographically widely distributed developer and game users can be easily supported by the World Wide Web. Online entertainment requires interactive participation by its users. Games must evolve, and developers need to filter user feedback into the design of their improved game. The process is very much like user-centered software design. The production value realized by developers of online games and Internet development processes involves game design quality improvement, evolution of multiplayer game technologies, creation of communications mechanisms, and increasing media density or fidelity in the game (Palumbo, 1998). Some companies underestimated expected customer support demands during the launch of a game and found that games sales exceeded the established customer support system. Companies can reduce or eliminate many support problems by having the foresight to create a Web site dedicated to late-breaking game news and user communication (Firor, 2002). Beta testing is a type of testing where the preliminary release of a software product is made available to a subset of its intended users, who then make use of the product in their own personal computing environments. The beta testers ideally report problems and make suggestions to the software developers prior to product launch. This early user feedback has proved to be an effective means of reducing the number of bugs found after product launch. The use of the Internet can facilitate the distribution of the beta versions of the software, as well as the collection of user reactions to it. There are several Web sites dedicated to communication between game developers themselves (e.g., Gamasutra). These Web sites allow experts to share technical tips among themselves. Many times, developers will share with the Web audience the lessons learned while developing successful (or unsuccessful) products. The commercial game development community is widely scattered and very volatile. Many companies make use of contract employees on a project-by-project basis. Some Web sites allow visitors to post employment ads and resumes to enable potential employers and employees to find one another as new game development projects are undertaken. 5 The World Wide Web can also provide sources for software development tools and training for developers. The training may take the form of short, free tutorials or full, semester-long, online courses. These courses may be offered by universities or by commercial companies (e.g., http://www.gameinstitute.com). Java is a popular development language for networked games and is distributed free of charge over the Internet. There are companies (e.g., Mpath) that provide dedicated game service over the Internet (Morrison, 1996). This service is usually provided on a pay-to-play basis to support multiplayer game play. Some companies may license the use of their online game engines or servers to other developers to improve their revenue stream. Online Games Online games can be delivered via the Internet or through dedicated game servers on wide area networks with locally installed client software on a player’s personal computer. Single-player games are often accessed directly from a Web site and a player communicates with a game from inside his or her Web browser. Game play for single-user games using a Web browser interface is much like game play for single-user games designed for stand-alone PCs, because the game logic may in fact be running on the local PC and not on the server. To display multimedia content, a user is usually required to have the appropriate media plug-ins installed on his or her personal computer. Standard Web technologies (HTML, Javascript, common gateway interface scripts, or Java) might be used to deliver the game output to the Web browser and to process the player’s input. To communicate with a dedicated game server, the client program may be implemented using any programming language capable of supporting socket programming. Socket programming is a technique for allowing the exchange of information between two programs running on the same computer network. Browser interfaces to online games have the advantage of allowing for multiplatform game implementation with very little additional effort on the part of the developers. When people think of online games, they often envision multiplayer games, with several players distributed at distant locations on a local area network or globally connected by the World Wide Web. There are two big problems confronting designers of multiplayer games. The first is difficulty in synchronizing game-state information when multiple instances of the game client software are running simultaneously. The second difficulty is related to the first in that the latency (or response time lags) that occurs as the user inputs and the resulting game consequences need to be shared with players using client software running on independent machines connected by a relatively slow network (the Internet). The types of multiplayer games that are implemented most easily on the Internet are turn-based games or event-based games, because in these, the lags in response times inherent in Internet applications are most easily hidden (Morrison, 1996). Interactivity and social diversity are two of the most powerful elements of the Internet (Palumbo, 1998). The Internet gives designers a chance to build community followings for their games. This was not done easily before P1: JDW WLO40A-25 WL040/Bidgolio-Vol I 6 WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 GAME DESIGN: GAMES FOR THE WORLD WIDE WEB the advent of online games. For some games (e.g., Quake or Diablo), players created their own communities (Min, 2000). Some games (e.g., Fireteam) are based on players recruiting teams to play against similarly recruited teams across the Internet. Many teams stay together for long periods of time and enjoy their inclusion in a cohesive group. Teams may create their own Web sites to coordinate their efforts. The World Wide Web provides a number of resources and opportunities to both game developers and game players during all phases of the software development cycle. Software can be delivered directly to game players. Games can be played over the Internet. Developers can communicate with each other and their potential user groups during the game development process. Users can make use of the Internet to form their own support groups. DESIGNING COMPUTER GAMES Brainstorming Sometimes the toughest part of building a game is coming up with an idea. Game ideas may come from popular books, movies, sport contests, or board games. Designers often choose one of three possible starting points: genre, technology, or story line (Rouse, 2001). Choosing a genre, many times, determines the type of technology that will be used in the game. The technology used to implement a game may also determine the type of genre that can be used most effectively for a particular game. Often designers choose game technologies because they already exist or because the particular technologies are what the target audience for the game expects. As with all software engineering endeavors, in game design it is very important to understand the desires of the prospective users. Failing to appreciate the cultural biases of potential players may result in designing a game that sells well in one country and poorly in another. Poorquality artwork and mediocre animation sequences can cause a game to be rejected by potential purchasers. Poor game play, often caused by the use of inconsistent and unintuitive user interfaces, can also cause a game to fail in the market place. In commercial game sales, the first game of its kind to reach the marketplace and deliver all its promises is usually the big winner financially. Many failed games have been based on obsolete technology or were delivered too late to the marketplace to beat the competition. Documents Modern game designers are finding that it is important to treat computer game design in the same way other software engineers approach projects involving large numbers of people and significant investments of time. Game developers are likely to use evolutionary software process models (e.g., rapid prototyping) to mange their development risks and reduce their project completion times. This means that the game may be built incrementally, starting with a small version of the game and adding features to each increment. Each increment will have defined requirements, design goals, and project and testing goals. This requires that formal project documents be developed early in the project and revised often. The first project document developed for a game is sometimes called a game treatment. The purpose of the game treatment is to sell the game idea to potential investors or to a development team considering which project to undertake next (Lewindowski, 1999). The most important point to convey is what it is like to actually play the game. The player’s role and allowed actions in the game should be described, as well as the behavior of computer-controlled characters and objects. The intended audience for the game also needs to be identified. The game story line should be summarized, along with the major and minor goals to be achieved by players. The proposed game-delivery platforms (hardware and software) should be described. The technology (production tools) required to implement the game should be described as well. The introduction of multimedia elements, such as 3D graphics or CD-quality music, increases the complexity of the development task, as do plans to make use of client/server technology to allow multiplayer, networked game play. It is very important to ensure that the proposed game-playing environment be readily accessible to the intended game audience. The game treatment must be written in sufficient detail to allow potential investors or collaborators to decide whether or not to move forward with this project. The game treatment plays a role similar to a feasibility document in a software engineering project. Many games are developed using a rapid prototyping process. This means that the game treatment will be used as the initial-requirements definition for the game. Prior to accepting the game as defined in the game treatment, the developers and investors discuss the risks involved. Risks are threats to successful completion of the software development project. Several types of risks need to be considered. Business risks are concerned with the marketing and profitability of a product. Technical risks are concerned with the implementation of the software product. Project risks are concerned with threats to the project budget and development schedule. The game treatment may be modified or rejected based on consideration of each of these risks. All software projects need to have written design documents to work from before any programming work begins, and games are no exception. The design document created for evolutionary process models used for software projects such as computer game programming or Web site design will most likely to be a dynamic living document that changes with the project as implementation proceeds. So it is not necessary to specify every detail of every game algorithm or data structure before programming activities begin. However, to avoid unnecessary rework of software products, a clear understanding of the game’s overall direction must be held by all development team members as they begin working on the project. For games that have more than a single action screen, a storyboard is often developed. Animators and movie writers use storyboards to provide a visual layout of the key scenes that will be shown to the audience. Game designers make use of storyboards to show a sequence of 6–12 key scenes from the game, along with notes describing the multimedia elements and game actions that will accompany each scene. P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 CREATING GAME CONTENT A flowchart may be used to show how the linear sequence of screens displayed in the storyboard may be interrupted by user actions or computer-generated game events during the course of game play. Users find games to be more interesting if they are able to vary the plot sequence of the game each time they play. The flowchart defines those places in the game that plot may be varied without destroying the story line completely. If games have complex characters, a character bible is created, containing every observable fact and describing each character the player will interact with during the game. Sometimes bibliographies are written for each character so that as a game unfolds, a game designer will not make mistakes when displaying these characters and their actions to game players. This helps the user become more immersed in the game as fantasy. Memorable characters can lead to game sequels or can become marketing icons in their own right. A game script, which is not likely as books or movies to be linear in nature, would be difficult to describe without the tools mentioned previously. Two important elements of the game script include level designs and puzzle details. Game levels are added to give players a sense of goals completion on their way to finishing the game. Level design has become an important specialization in game development. From an economic standpoint, adding levels to an existing game is far less costly than designing a new game. User interface design takes on a high level of importance in game development projects. One representation of the user interface design consists of the screen displays seen by the user at any given point of the game. A second dimension of the user interface design is creating a flow diagram containing enough detail so that all user actions that trigger game events and their consequences are included. Software engineers call this type of diagram a state transition diagram. Often the user interface is developed as a working prototype for the game. Web page development tools can be particularly helpful in this regard. It is often easy to link Web pages containing the multimedia elements experienced by the user in the nonlinear order they would experience during the course of the game. Animation sequences can be added as they are created. If the game is to be implemented as an Internet game, the amount of throwaway code is minimized. Game development projects often involve many developers independently producing code simultaneously for different parts of the game system. It is essential to develop a project management plan early in the design cycle to avoid production delays and unnecessary reworking. The project plan needs to clearly identify the people required to complete the game project and the skills that should be possessed by each team member. The hardware, software tools, and consumable materials required for development need to be identified so they can be utilized in a timely manner during game implementation. Once the people and resources required to complete the project are identified, it should be possible to begin to build a budget and a schedule for the project. Software engineers have techniques at their disposal that allow them to accurately predict the cost and duration of software development projects. It is important to utilize these techniques when building a project plan for a game, because games 7 are costly to develop and missing delivery deadlines can be detrimental to a game’s success. For example, failing to complete a game tied to a popular movie in time for it to be sold during the Christmas shopping season can make the game an economic failure. Wise game developers will also take the time to analyze their development risks and identify ways of preventing these risks from becoming threats to the completion of the game project. Some of these risks include marketing concerns, technology availability, programming skills, funding, and resource issues. CREATING GAME CONTENT Platforms Online computer games (either single or multiplayer) by definition rely on network communication in one form or another. There are two common models for network communication, peer to peer and client/server. Hybrid models combining the benefits of both also exist (Ng, 1997b). With the client/server communication model, the game logic and database operations tend to be executed on the server machine. The player’s machine often only needs to be running a client program that is capable of displaying the current game state based on data sent by the server and of collecting player input to send to the server as needed. Modem-to-modem communication might be thought of as a special case of peer-to-peer networking. In peer-topeer networking, each player’s machine needs to be running its own copy of a game program that is capable of handling both the game logic and the input/output operations required to play the game. Some hybrid models make use of peer-to-peer networking communication, but one of the machines is given the additional task of routing messages among all the game players. The target delivery platform has great impact on the type of game content that can reasonably be included in a particular game. A game designed for a single player using the client/server communications model may be limited only by the speed of the network connection to the game server. Consequently, for a single user online, a game designer may need only to decide which operating systems and which processor types he or she is interested in supporting. The Windows- and Unix-type operating systems are the most popular target platforms in terms of numbers of users in 2002. Windows operating systems are designed to run on machines that make use of Intel-type processors. Unix operating systems are available for almost every personal computer processor and have nearly identical resources in each implementation. Each operating system tends to support graphics programming in different ways, because the graphic libraries are based on different standards. Each program will need to be recompiled to run on each type of processor, because each processor requires programs to be written using its own unique machine language. Similarly, each operating system supports different types of multimedia. So even if a designer is relying on browser technology that tends to be machine independent, he or she still needs to be aware of which media types will be supported by an operating system and which will not. The choice of server technology can also be important. Dedicated game servers may give game designers the most control over the delivery of the game content. P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls 8 June 18, 2003 16:0 Char Count= 0 GAME DESIGN: GAMES FOR THE WORLD WIDE WEB They may also make it easier to control access to a game and charge users for its use. If a dedicated game server is not accessible from the Internet, it is harder for users to access without incurring long-distance phone charges. Once game players are connected via the Internet to multiple game servers, the problems of communication latency will begin to appear. This can make it tough to synchronize the display of action sequences that appear to all users at the same time, or even to process user input in a timely manner. Compilers and Game Engines Most multimedia games are not developed from scratch. Developers usually rely on a development library that contains tools needed to create graphical user interfaces and manipulate multimedia game objects. Most games written for the PCs are written using Microsoft’s Visual C++ programming language and make use of Microsoft’s DirectX game-development library. One of the components of DirectX (called DirectPlay) supports peer-to-peer network communication over the Internet. DirectX is not a complete game-development library. To make game programming more efficient, many developers create game engines that contain complete subsystems (like game AI or sprite animation and collision detection or level design templates) out of development library components provided in such products as DirectX. The Microsoft .NET software development tools may make it easier to unify network and desktop computing resources for users of Microsoft products. DirectX is not a platform or machine-independent software product. Because Unix is such a popular Webdevelopment platform, there is a great deal of interest in using open-systems software products (such as Linux, OpenGL, and gcc) for game development. Indeed, many console games are written using these technologies, so there is a great deal of interest in adding networking to existing console games. The use of software libraries for game physics and 3D models is a new area of interest for game developers. The use of libraries has not been popular among game developers in the past, because it was felt that their use would reduce the entertainment value of games by making them appear to be shallow copies of one another. Three-dimensional-game architectures, DVD playback systems, and sound systems are changing so rapidly these days that developers cannot afford to develop game software completely from scratch within the desired eight-month development cycle. Consequently, game developers are beginning to view the use of libraries more favorably. Technologies used for Web-based computing have also been used to implement online games. Web-based computing depends on each computer having a fairly standard Web browser as its primary user interface. This tends to have the advantage of allowing games developed using one operating system or hardware platform to be used on others. Java has been used to implement both single and multiplayer multimedia action games. Javascript and Flash can be used to implement single-player games that have modest graphics and user input requirements. C++ and Perl are popular languages for implementing CGI programming. CGI programming has the advantage of allowing programs to run on the server machine and requiring the client machine to have only a Web browser running on it. This, of course, makes it possible for players to access game programs from several different types of machines. Multimedia Tools Computer games typically include three types of multimedia content: visual (pictures, animation, and video), aural (recorded or generated sounds and music), and textual. Multimedia game content is usually created using specialized tools (scanners, digitizers, synthesizers, etc.) as part of the development process. Artwork is often created using computer-based drawing tools or photographs to allow more realistic images to be included in the game display in a shorter time period. Real-time animation sequences may take too long for the computer to generate during game play, and it may be better to display them as prerecorded videos. Designers often need to choose between the level of player control and the amount of time it takes to create the animation dynamically and display it during the game. With sound the opposite may be true; it is sometimes faster to synthesize speech or music rather than record it (even though the fidelity may not be as good). When a game is to be played over the Internet, designers may find themselves with fewer options for art, video, and sounds. Web browsers may only support the display of .gif or .jpg graphics files and only .au files for sounds. Requiring players to have multimedia plug-ins (e.g., Quicktime video or Microsoft’s MediaPlayer) installed on their local machines can mitigate some of these media format limitations. In many multimedia-computing applications, elements such as sound and music are digitized and stored in separate files. It can be challenging to combine and synchronize the two media streams so that the viewer sees a coherent presentation. Coordinating real-time multimedia streams is not easy and can take a lot of bandwidth. Some of the challenges are related to communications and processing delays that become even more obvious when the Internet is involved. Some techniques for synchronization involve interleaving the data streams, and some may involve embedding time codes to be used by the media player to combine the streams at the appropriate time. The use of technologies such as Quicktime and Realmedia can make the developer’s task much simpler. MULTIPLAYER GAMES AND NETWORKING There are several attractions to using the Internet to play games. The Internet can make games available to large numbers of users on a round-the-clock basis. The Internet can provide users with the opportunity to build global support communities for particular games and allow direct marketing of game-related items to consumers. (Ng, 1997a). It is harder to add Internet capability to a game after it is written than during the design phase P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 CONCLUSION (Lincroft, 1990). There are several networking issues that must be taken into a count when a multiplayer game is being designed. Session-Oriented Multiplayer Games Not every multiplayer game is amenable to delivery on the Internet. In many ways, turn-based games are easier to deploy than fighting games because of inherent latency problems with Internet communications. Even for turnbased games, designers need to decide whether new players can drop in at any time or whether they can join only at fixed points in the game. In session-oriented multiplayer games, new players can join the game only when a new round or a new level of play begins. Sometimes this decision is related to whether the online game is designed to be short in duration or whether it will be a persistent game, which never ends and in which players drop in and out. Designers need to consider what will happen to the lost entities created as players or servers drop out of games. Should an AI take over for a lost entity? Can a backup server replace a lost network connection? In games that last longer than 3 hr, it is important for users to be able to save incomplete games or characters they developed (Ng, 1997a). Whether a game should be saved on the server or on a client machine may depend on the size of the gamestate information structure. Synchronization Problems With networked game communications, the key problem is synchronizing the sharing of game-state information among several users in a timely manner. One solution is to use state synchronization, which requires each player’s game instance to send a copy of its current state information to each of the other game instances. This requires a lot of bandwidth and takes a lot of time in the peerto-peer model. A second solution is to use input synchronization. This requires each game instance to communicate its player’s input to each of the other game instances. This reduces the amount of bandwidth required. If a game includes random events that do not depend on user inputs, the input synchronization system can fall apart. When random events are allowed in game play, a combination of these two synchronization techniques may need to be used. This means that a game instance may need to share information on its user’s input as well as on changes in its game-state information with each other game instance following a random event (Morrison, 1996). Information-Sharing Concerns The problem of sharing information in a timely manner among widely scattered Internet users has two other dimensions: bandwidth and latency. Bandwidth issues can be dealt with after a game is written by using such techniques as data compression or by limiting the number of game players. Latency must be addressed during the design. If peer-to-peer networking is used for a multiplayer game, it is sometimes wise to make one of the peer machines take on the added responsibility of relaying messages to all game players, much like a server 9 would do in the client/server model. Intelligent routing schemes might also need to be used. It is doesn’t matter whether each player in a multiplayer game has exactly the same view of the game state or not. The only thing that matters is that players do not miss seeing important events (e.g., when one player shoots at another). In modern operating systems, it is possible to separate game communication from graphics displays (renderings) by using separate threads for communication and rendering (Ng, 1997b). Dead reckoning is used to render game objects based on their last known information (e.g., heading and velocity). This reduces the amount of information that must be shared among players. This also helps deal with unreliable network connections. If a connection is lost, dead reckoning can be used to predict the game-state changes until the connection is restored. This assumes that no major changes take place during the time the connection is missing. Sometimes it is wise to build in delays to the time required to process each user input, so that when delays occur, the users do not notice them as much (Munkki, 1997). In the real world, humans cannot see objects beyond the horizon or in the next room. It is not necessary to render these objects until the player could reasonably expect to see them. Sometimes the client needs to keep two copies of the game state. One copy contains changes based on the actual actions taken by all players, and one copy contains changes made by dead reckoning. When information is received indicating that the copies are no longer acceptably in synch, the state discrepancies need to be fixed by the client when it is convenient (Lincroft, 1999). Sometimes these discrepancies can be hidden from the player by scheduling game-state changes two or three virtual time periods in the game’s future story line and waiting to render them on the screen until their correctness is verified. Network Protocol Trade-offs Sometimes designers need to consider carefully which networking protocols provide the best means of communicating among game clients. Much of the time, Internet communication is done using the TCP protocol, which is reliable, stream oriented, connection persistent, and slow. Part of the reason it is slow is that although data packets are always delivered, the packets must be assembled before the message can be delivered. The UDP/IP protocol is unreliable and has small packets and very low overhead. The UDP/IP protocol can be much faster than TCP, but the programmer has the responsibility of checking information to see that it is received in the proper order (Bernier, 2000). Simply using faster network connections (e.g., Internet2) does not eliminate the need to consider these trade-offs between TCP and UDP/IP. CONCLUSION Two computing applications that involve extremely large numbers of users are computer games and Web-based applications. It is only natural to want to consider using the Internet to support the development and delivery of computer games. As high-speed Internet connections P1: JDW WLO40A-25 WL040/Bidgolio-Vol I 10 WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 GAME DESIGN: GAMES FOR THE WORLD WIDE WEB (e.g., DSL, cable modems, Internet2) become more widely available and affordable to home users, interest in developing online games will continue to increase. It is important to remember that the computer game industry, which is only 30 years old, has already grown to a multibillion-dollar-a-year industry. Its growth was accelerated by the advent of the affordable home computer. The Internet is fewer than 10 years old and has grown at an even faster rate. As game developers have better and faster network technologies (e.g., Internet2) to exploit, the quality of online multiplayer games is likely become closer to that of today’s console games. It is important to note that new techniques for event synchronization will also be required, because part of the problem is displaying games simultaneously to several users (not just bandwidth and latency issues). Shareware Software distributed by its author on a trial basis with the expectation that users will send payment if they find it worthwhile. Sprite An animated graphical game object typically capable of independent motion on the game display screen. Third-Person Game A game that displays the main character interacting with the game environment as if the game player were watching a movie from the perspective of an onlooker. Thread A separately executing process in a multiprogramming execution environment. Unix A popular computer operating system often used by Web programmers and Internet server administrators. CROSS REFERENCES GLOSSARY Bandwidth The potential amount of information able to flow simultaneously through a computer network. CGI Common gateway interface; a protocol for allowing remote users to run computer programs on a machine housing a Web server. Client/Server Computing A type of networked computing in which one computer (the client) requests data and/or services from another computer (the server). Demos An executable subset of a larger program, intended to give users an idea of what it is like to use the full product. DirectX Microsoft game-development-tool library. First-Person Game A game that displays the screen view as seen through the eyes of the game’s main character. Flash A popular Internet multimedia animation language distributed by Macromedia; requires a browser plug-in to be installed on a client machine. Freeware Software distributed free of charge by its author. Game Engine The core code that handles the basic functionality of a game and that may be customized to deliver several variations of a particular game genre. gcc A free C/C++ complier distributed by the Open Systems Software Group. Javascript An Internet scripting language supported by most popular Web browsers. Latency The delay that occurs between the time a network signal is sent and the time the signal is received and acted on. Linux Freeware version of the Unix operating system; versions are available for most PC hardware platforms. NPC A nonplayer character controlled by a computer program, usually in a role-playing game. OpenGL Standard graphics library developed by Silicon Graphic. Rendering The task of drawing an on screen graphical representation of a data object. RPG Role-playing game; players in this type of game assume the roles of characters in a story and are allowed to interact with other players, nonplayer characters, and game objects. See C/C++; Client/Server Computing; Common Gateway Interface (CGI) Scripts; Interactive Multimedia on the Web; Linux Operating System; Multimedia; Unix Operating System; Virtual Reality on the Internet: Collaborative Virtual Reality. REFERENCES Aronson, J. (2000). Using groupings for networked gaming. Retrieved April 26, 2002, from http://www.gamasutra. com/features/20000621/aronson 01.htm Bernier, Y. (2000). Half-Life and Team-Fortress networking: Closing the loop on scalable network gaming backend services. Retrieved April 26, 2002, from http://www. gamasutra.com/features/20000511/bernier pfv.htm Bettner, P., & Terrano, M. (2001). GCD 2001: 1500 archers on a 28.8: Network programming in Age of Empires and beyond. Retrieved April 26, 2002, from http:// www.gamasutra.com / features /200110322/ terrano 01. htm Brown, D. (2000). From Underground to World Renowned: Following up on the First Annual Independent Games Festival finalists. Retrieved April 26, 2002, from http:// www.gamasutra.com / features / 20001023 / brown pvf. htm Firor, M. (2002). Postmortem: Mythic’s Dark Age of Camelot. Retrieved April 26, 2002, from http://www.gamasutra.com/features/20010213/firor pfv.htm Holder, W., and Bell, D. (1998). Java game programming for dummies. New York: Hungry Minds Inc. LaMothe, A. (1999). Tricks of the Windows game programming gurus. Indianapolis, IN: Sams. LaMothe, A. (1998). Windows game programming for dummies. New York: IDG Books. Lewindowski, J. (1999). Developer’s guide to computer game design. Plano, TX: Wordware Publishing Inc. Lincroft, P. (1999). Designing fast-action games for the Internet. Retrieved April 26, 2002, from http://www. gamasutra. com/features/19990903/lincroft 01.htm Min, A. (2000). Postmortem: Multitude’s Fireteam. Retrieved April 26, 2002, from http://www. gamasutra.com/ features/20000105/fireteam 01.htm Morrison, M. (1996). Teach yourself Internet game programming with Java in 21 days. Retrieved April 26, P1: JDW WLO40A-25 WL040/Bidgolio-Vol I WL040-Sample.cls June 18, 2003 16:0 Char Count= 0 REFERENCES 2002, from http:// www . njnet . edu . cn /info / ebook / java / javagame Munkki, J. (1997). Design and implementation of networked games. Retrieved April 26, 2002, from http:// www. hut.fi/∼jmunkki/netgeames/ Ng, Y. (1997a). Designing fast-action games for the Internet. Retrieved April 26, 2002, from http://www.gamasutra. com/features/19970905/ng 01.htm Ng, Y. (1997b). Internet game design. Retrieved April 26, 2002, from http://www.gamasutra.com/ features/19970801/ng.htm 11 Palumbo, P. (1998). People vs. pictures: Why online games take the focus off of production values. Retrieved April 26, 2002, from http://www.gamasutra.com/ features/19980130/process.htm Rouse, R. (2001). Game design: Theory and practice. Plano, TX: Wordware Publishing Inc. Sawyer, B., Dunne, A., & Berg, T. (1998). Game developers marketplace. Scottsdale, AZ: Coriolis Group Books. WINNY (2000). Game—The psychological and physical impact. Retrieved April 26, 2002, from http://multimedia. design.curtin.edu/cache/g/0007/