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/