08.11.2012 Views

Software Engineering in Games - Computer Graphics Group

Software Engineering in Games - Computer Graphics Group

Software Engineering in Games - Computer Graphics Group

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ABSTRACT<br />

<strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

Balazs Lichtl and<br />

Gabriel Wurzer<br />

Institute of <strong>Computer</strong> <strong>Graphics</strong><br />

Technical University Vienna<br />

Our sem<strong>in</strong>ar lecture focuses on the process of mak<strong>in</strong>g games. As with any other piece of software, we<br />

can break up this development process <strong>in</strong>to different development phases, which (<strong>in</strong> the simplest case<br />

for a software project) would be: Analysis, Design, Implementation and Test<strong>in</strong>g.<br />

Thus, our goal is to compare general software projects to game projects us<strong>in</strong>g these four phases,<br />

<strong>in</strong>clud<strong>in</strong>g one another phase, present only <strong>in</strong> game development. Start<strong>in</strong>g with the def<strong>in</strong>ition of every<br />

development phase, we will use case studies and statistics to further stress the difference between a<br />

'general' software project and a game. Furthermore, we will deal with the important subject of game<br />

eng<strong>in</strong>e licens<strong>in</strong>g, look<strong>in</strong>g at the performance statistics, advantages, constra<strong>in</strong>ts and <strong>in</strong>dustry feedback.<br />

We will then conclude our talk discuss<strong>in</strong>g the latest developments <strong>in</strong> the game <strong>in</strong>dustry, where an<br />

<strong>in</strong>creas<strong>in</strong>g amount of players take over level and character design. In this context, we will also have a<br />

look at player communities and try to guess at future developments <strong>in</strong> this field.<br />

Our <strong>in</strong>tention with this lecture is to emphasize that game development is more than the writ<strong>in</strong>g of<br />

code. It is a creative process which must nevertheless be properly organized for the game to be<br />

successful.<br />

Balazs Lichtl and Gabriel Wurzer<br />

June ‘2001


INTRODUCTION<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

There are many answers to the question: "What is a software project ?". Some of them are [TJO1.1]:<br />

• a project is a complex effort us<strong>in</strong>g different techniques and methods<br />

• a project makes use of collaboration of people from different fields, with different knowledge<br />

and different forms of speak<strong>in</strong>g and th<strong>in</strong>k<strong>in</strong>g<br />

• Projects solve new and unknown Problems<br />

• Projects stand under an extraord<strong>in</strong>ary risk<br />

Although these statements are not true for every game project, some of them do apply. The question<br />

is, now that we know that a game project is a sort of software project, can it also be described <strong>in</strong> the<br />

same terms used for general projects ? We will show dur<strong>in</strong>g this lecture that <strong>in</strong> addition to this be<strong>in</strong>g<br />

true, new techniques of software eng<strong>in</strong>eer<strong>in</strong>g have evolved for games through the years (see Chapter<br />

1, The Four (Five) Design Phases).<br />

For us, a general software project is a project focus<strong>in</strong>g on the creation of software. Consequently,<br />

success can be measured by tak<strong>in</strong>g a look at the result<strong>in</strong>g software.<br />

In a game project, the product is a game. But, and here comes the po<strong>in</strong>t: A game is much more than<br />

just its software. It has to provide content to become enjoyable. Just like a web server: without<br />

content the server is useless, and the quality cannot be measured.<br />

This has an important effect on the game project as a whole. The software part of the project is not the<br />

only one, and it must be considered <strong>in</strong> connection to all other parts: The environment of the game, the<br />

story, characters, gameplay, the artwork, and so on.<br />

The difference between a ‘general’ software project and a<br />

game becomes even more elaborate when look<strong>in</strong>g at some of<br />

the people <strong>in</strong>volved <strong>in</strong> a game project (see Fig. I.1).<br />

One major consequence of the rich diversity of the fields<br />

<strong>in</strong>volved <strong>in</strong> the production of a game is that risk tends to be<br />

fairly high. We will further stress this po<strong>in</strong>t when look<strong>in</strong>g at<br />

the current state of the game <strong>in</strong>dustry, <strong>in</strong> Chapter 2: Although<br />

the market for computer and console games is grow<strong>in</strong>g<br />

rapidly, there are only a handful of commercially successful<br />

companies. As a consequence, <strong>in</strong>stead of writ<strong>in</strong>g the whole<br />

game themselves, game companies tend to use third-party<br />

game eng<strong>in</strong>es to shorten their development cycle. We will take<br />

a look at the most prom<strong>in</strong>ent two, Quake III and Unreal<br />

Tournament, <strong>in</strong> Chapter 2.1.<br />

In the fast-grow<strong>in</strong>g field of software development, and <strong>in</strong> the<br />

even more rapidly grow<strong>in</strong>g sector of game development, the<br />

future is hard to predict. After giv<strong>in</strong>g you a short summary of<br />

the preceed<strong>in</strong>g chapters, we will try to extrapolate some of the latest developments concern<strong>in</strong>g games<br />

<strong>in</strong> Chapter 3, The Future of the Game Industry. We will base our prognosis on written reports by the<br />

lead<strong>in</strong>g game companies concern<strong>in</strong>g their latest games (Epic and Digital Extremes, this is). This will<br />

(with your appreciated participation) lead us directly to public discussion, with which we conclude<br />

our sem<strong>in</strong>ar lecture.<br />

-2-<br />

Project Manager<br />

Market<strong>in</strong>g & Sales Manager<br />

Game Designer<br />

Lead Architect<br />

<strong>Software</strong> Planner<br />

Programmer<br />

Quality Assurance Technician<br />

Artist<br />

Motion Capture Technician<br />

Musician<br />

Sound F/X Technician<br />

Playtester<br />

Technical Support Technician<br />

Fig. I.1: people <strong>in</strong>volved <strong>in</strong> the<br />

production of a game


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

1. THE FOUR (FIVE) DEVELOPMENT PHASES<br />

As you would assume, a normal software eng<strong>in</strong>eer<strong>in</strong>g cycle [30] starts with the analysis phase.<br />

In game eng<strong>in</strong>eer<strong>in</strong>g, however, there is an additional phase before the analysis: the game concept<br />

phase. The ma<strong>in</strong> task here is to make the decision of what sort of game to produce. This means:<br />

F<strong>in</strong>d<strong>in</strong>g a ma<strong>in</strong> game idea, and determ<strong>in</strong><strong>in</strong>g how the game will look like. The game concept phase is<br />

described <strong>in</strong> detail <strong>in</strong> the next section.<br />

1.1 The Game Concept Phase<br />

F<strong>in</strong>d<strong>in</strong>g the <strong>in</strong>itial concept<br />

This is the creative work that eventually will make a game company start a game project. This means:<br />

F<strong>in</strong>d<strong>in</strong>g the idea, sett<strong>in</strong>g the scenario, draw<strong>in</strong>g some sketches, draw<strong>in</strong>g some posters, followed by<br />

present<strong>in</strong>g and sell<strong>in</strong>g all these to the people who will be <strong>in</strong>volved <strong>in</strong> the project (see Fig. 1.1.1).<br />

Of course, this phase is not managable, planable or improvable by means of software project<br />

management. Thus, game companies tend to give their creative people some free time away from<br />

their desk, so they can concentrate on f<strong>in</strong>d<strong>in</strong>g new and excit<strong>in</strong>g ideas. Orig<strong>in</strong> <strong>Software</strong>, for example,<br />

sends their ma<strong>in</strong> game programmers on vocation after a game has completed. This ensures that they<br />

will return fresh and relaxed when a new project starts, and with new ideas <strong>in</strong> their m<strong>in</strong>ds.<br />

Fig. 1.1.1: Concept art from Diablo 2 Expansion Pack<br />

(courtesy of Interplay Productions)<br />

F<strong>in</strong>d<strong>in</strong>g a good idea for a game can be a tough job, and every designer tends to have his own way of<br />

do<strong>in</strong>g it. What game designers have <strong>in</strong> common are the two basic recommendations to newbies [8, 9],<br />

which are considered to be mandatory <strong>in</strong> the <strong>in</strong>dustry:<br />

The first th<strong>in</strong>g is that you should play games. It sounds simple, but this really helps figur<strong>in</strong>g out what<br />

is on the market, what you can sell, and how good you must to be <strong>in</strong> order to be successful.<br />

-3-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

Second, an idea that is ‘brand new’ sells much better than someth<strong>in</strong>g that has been produced many<br />

times. Products that don’t offer someth<strong>in</strong>g new are considered as “me-too”, and will be much less<br />

successful than the orig<strong>in</strong>al game they try to reproduce.<br />

Design<strong>in</strong>g the gameplay concept<br />

After the designer has found his ‘ma<strong>in</strong> idea’ for the<br />

game, he must work out the details, which can then<br />

serve as a communication platform for the whole<br />

team <strong>in</strong> the later software design process (see Fig.<br />

1.1.2).<br />

This task (generally referred to as concept design)<br />

is often made by a team that is different from the<br />

software eng<strong>in</strong>eer<strong>in</strong>g team, and thus concentrates<br />

only on the contents of the gameplay, and not how<br />

it can be realized.<br />

There are many rules [9] that should be followed when<br />

design<strong>in</strong>g a game: First, you should learn from your<br />

errors. Moreover, and that’s an even more important<br />

po<strong>in</strong>t <strong>in</strong> the game biz, you should also learn from<br />

other’s errors ! Never make the same mistakes as<br />

others, learn what you could improve.<br />

The third po<strong>in</strong>t is that you should design the game for the player. This certa<strong>in</strong>ly is the most<br />

challeng<strong>in</strong>g goal of all, and if you miss it, the game will not become enjoyable for the player, and it<br />

will not sell as good as you want it to sell.<br />

Another important rule is that you cannot substitute technological highlights <strong>in</strong> place of fun-mak<strong>in</strong>g<br />

gameplay[3]. Your game can have special effects, light<strong>in</strong>g or anyth<strong>in</strong>g else you can imag<strong>in</strong>e, but if it<br />

has a bor<strong>in</strong>g gamplay, no one will play it longer than ten m<strong>in</strong>utes. This is similar to the film <strong>in</strong>dustry,<br />

and is discussed <strong>in</strong> greater detail <strong>in</strong> [10].<br />

F<strong>in</strong>d<strong>in</strong>g the treatment<br />

The treatment is a document which def<strong>in</strong>es the major features<br />

of the game and attempts to pa<strong>in</strong>t a picture of the game that<br />

sets the mood for the team to follow. It is composed of the<br />

storyl<strong>in</strong>e, the look-and-feel guidel<strong>in</strong>es and a description of<br />

the basic mechanics which will be later used <strong>in</strong> the game, as<br />

evolved <strong>in</strong> the gameplay concept design. Many games<br />

nowadays use pre-def<strong>in</strong>ed sett<strong>in</strong>gs (such as, for example, the<br />

world of Star Trek or the dark middle ages). On there other<br />

hand, there is a grow<strong>in</strong>g <strong>in</strong>terest <strong>in</strong> carefully thought out<br />

storyl<strong>in</strong>es which (<strong>in</strong> the case of games like ‘Half-Life’) give<br />

the players the feel of actually be<strong>in</strong>g there and ‘tak<strong>in</strong>g hold’<br />

of the situation. Moreover, there are some games on the<br />

market that have a non-l<strong>in</strong>ear gameplay, which means that<br />

the story is either set each time a new game is started (like<br />

<strong>in</strong> Indiana Jones 4) or evolves as the player progresses<br />

through the game (as seen <strong>in</strong> Blue Steel). Nevertheless,<br />

-4-<br />

Fig. 1.1.2: Design<strong>in</strong>g the gameplay<br />

concept means work<strong>in</strong>g out the<br />

details of the game<br />

Fig. 1.1.3: The treatment adds<br />

substance and character to the<br />

game


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

there still is much space for development <strong>in</strong> this field (with today’s rapid game development cycles<br />

leav<strong>in</strong>g not much space for such gimicks). On the other hand, modularisation takes place also <strong>in</strong> the<br />

treatment design. Unlike <strong>in</strong> the beg<strong>in</strong>n<strong>in</strong>gs of the gam<strong>in</strong>g <strong>in</strong>dustry, stories are now told <strong>in</strong> episodes (as<br />

opposed to whole quests). This certa<strong>in</strong>ly has the advantage that new expansions can easily be<br />

provided, and games generally have a faster pace.<br />

Before mov<strong>in</strong>g on to the next subphase, the treatment is thoroughly reviewed (as you know, f<strong>in</strong>d<strong>in</strong>g<br />

errors early does significantly reduce the risks of a project).<br />

Mak<strong>in</strong>g the Overall Design<br />

The Overall Design document is the first draft which describes the game <strong>in</strong> detail. This is, how is the<br />

game played, how does it work (semi-technical), how does it look, what are the rules, how do all the<br />

units <strong>in</strong> the game work <strong>in</strong> detail, what is the plot and so on...<br />

One major po<strong>in</strong>t <strong>in</strong> this context is to set the type of game, or (as it is often referred to) the game<br />

genre:<br />

Action games typically rely more on hand/eye coord<strong>in</strong>ation than on story or strategy. They are fastpaced<br />

and reflex-oriented, the most prom<strong>in</strong>ent example be<strong>in</strong>g the classic first-person perspective 3D<br />

shooter.<br />

Fig. 1.1.4: Action <strong>Games</strong> such as Duke Nukem 3D (left), and Unreal Tournament<br />

(middle and right) feature fast, reflex-oriented gameplay<br />

Strategy games emphasize logical th<strong>in</strong>k<strong>in</strong>g and plann<strong>in</strong>g. They often stress resource and time<br />

management, which usually takes precedence over fast action and character <strong>in</strong>volvement. Tactical<br />

organization and execution are necessary, and the game creators usually place the decision-mak<strong>in</strong>g<br />

skills and delivery of commands <strong>in</strong> the player’s hands (see Fig. 1.1.5, next page).<br />

-5-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

Fig. 1.1.5: Strategy <strong>Games</strong> concentrate on resource management and tactical<br />

options. The two examples presented here<strong>in</strong> are Panzer General II (left) and<br />

Command and Conquer: Red Alert<br />

Adventure games <strong>in</strong>volve the player <strong>in</strong> a journey of exploration and puzzle-solv<strong>in</strong>g. These games<br />

usually have a l<strong>in</strong>ear storyl<strong>in</strong>e <strong>in</strong> which you, the protagonist, set out to accomplish a ma<strong>in</strong> goal<br />

through character <strong>in</strong>teraction and <strong>in</strong>ventory manipulation.<br />

Fig. 1.1.6: Adventure games pose several puzzles which require solv<strong>in</strong>g. As an<br />

example, we here present two screenshots from Leisure Suit Larry (a would-be<br />

playboy who always terribly fails <strong>in</strong> gett<strong>in</strong>g the girl of his dreams, to our delightful<br />

pleasure)<br />

Roleplay<strong>in</strong>g <strong>Games</strong> (RPGs) are similar to adventure games, but rely more on character growth and<br />

development (as the game advances, the player character becomes more powerful concern<strong>in</strong>g his<br />

abilities). Conversation and strategic combat are also a major part of RPGs, as well as a non-l<strong>in</strong>ear<br />

storyl<strong>in</strong>e (adapt<strong>in</strong>g to the actions taken by the player character). <strong>Graphics</strong> are less important than a<br />

catch<strong>in</strong>g story and award<strong>in</strong>g gameplay (this is, you get po<strong>in</strong>ts for kill<strong>in</strong>g monsters). See Fig. 1.1.8<br />

(next page) for further details.<br />

-6-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

Fig. 1.1.7: Roleplay<strong>in</strong>g games usually <strong>in</strong>volve a quest, which the<br />

character has to master. Story is generally more important than graphics<br />

with RPG’s.<br />

Sports titles simulate a game from an <strong>in</strong>structional or<br />

player perspective. Realism is important, as are fast<br />

action and tactical strategy.<br />

Fig. 1.1.8: FIFA 2001<br />

Sims simulate a given animate or <strong>in</strong>animate object or<br />

process. Most often, the gamer is placed <strong>in</strong> a 3D firstperson<br />

perspective of a re-created mach<strong>in</strong>ery such as<br />

planes, tanks, helicopters or submar<strong>in</strong>es. But also the<br />

evolvement of cities over time can be an issue with<br />

Sims.<br />

Fig. 1.1.9: SimCity 3000<br />

Puzzle games <strong>in</strong>clude older, more historic games of<br />

leisure such as cards, tile games, trivia, word, or board<br />

games (chess be<strong>in</strong>g a perfect example).<br />

Fig. 1.1.10: Battle Chess<br />

-7-


Fig. 1.1.11: Microsoft Combat Flight<br />

Simulator<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

After deal<strong>in</strong>g with the game type, the perspective of the game is set:<br />

First-Person Perspective games are the equivalent of “see<strong>in</strong>g<br />

it through your character’s eyes”. In the game <strong>in</strong>dustry, this<br />

seems to be the approved choice for action games and<br />

simulations. In some games (example: Auto races) the player<br />

can choose between more first and third person perspectives.<br />

Fig. 1.1.12: Did you see Mr. Burns ?<br />

Third-Person Perspective, generally known as “over the<br />

shoulder”-view, is another popular choice among game<br />

designers. The advantage here is that you can observe what<br />

your player character ‘does’, while at the same time hav<strong>in</strong>g<br />

full control over his movements.<br />

Simulators are games where the exact behavior of a<br />

vehicle are tried to simulate, try<strong>in</strong>g to give the player<br />

exact the same experience as he was really “driv<strong>in</strong>g” that<br />

vehicle. This game genre was <strong>in</strong> the last years not that<br />

popular as before from 1992 till 1996, there are still<br />

some titles available. Examples are the Microsoft Flight<br />

Simulator (over many versions), other military flight<br />

simulators, and more Auto races, F1 Auto-Simulations.<br />

The problem with this type of games is, that many of<br />

them are simply action games, they do not even try to<br />

simulate the reality, and only a little piece of them are<br />

“real” simulators, where then the handl<strong>in</strong>g and gameplay<br />

are near that <strong>in</strong> reality.<br />

Fig. 1.1.13: Lara Croft<br />

Top-Down Perspective games give the feel<strong>in</strong>g that the<br />

camera is hover<strong>in</strong>g top-down over the game itself. Strategy<br />

games often rely on this type of perspective.<br />

Fig. 1.1.14: Top Down<br />

-8-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

Isometric games offer a slightly tilted “three quarter” view of the game, which gives a sort of<br />

impression of 3D. Adventure game designers as well as strategy game producers seem to like this<br />

view, because they can sell their product as be<strong>in</strong>g “3D” (which, technically, is simply not true). For an<br />

example, see Fig. 1.1.9.<br />

Flat, Side-View games give a two-dimensional “side view” of<br />

the game, which scrolls by around the players. These types of<br />

games were especially popular with console developers (such<br />

as the Game Boy).<br />

Fig. 1.1.15: Commander Keen<br />

Text-Based games don’t use graphics at all, or very spar<strong>in</strong>gly.<br />

Aside from classic text adventures from the early ‘80s, trivia<br />

games also fall <strong>in</strong>to this type of game.<br />

Fig. 1.1.16: A text Adventure<br />

Com<strong>in</strong>g back to the Overall Design Document, we note that the target platform is also set here. As<br />

discussed <strong>in</strong> [5], PCs have many advantages aga<strong>in</strong>st consoles: They are expandable <strong>in</strong> hardware, the<br />

monitors give a much better quality (with the player sitt<strong>in</strong>g close to it, giv<strong>in</strong>g a better immersion),<br />

and, last but not least, the network<strong>in</strong>g capabilities of the PC are much better than that of the consoles.<br />

The only disadvantage of PCs is the relatively high price (consoles only cost around $300).<br />

However, it is important to say that both platforms are not compet<strong>in</strong>g with each other. This is ma<strong>in</strong>ly<br />

because of hardware differences, with each platform hav<strong>in</strong>g its own strengths and drawbacks<br />

concern<strong>in</strong>g certa<strong>in</strong> types of games. The competition between them is only important <strong>in</strong> driv<strong>in</strong>g the<br />

evolution of the hardware: Today, the most powerful driv<strong>in</strong>g force for the console market is that they<br />

must keep up with the fast development of PC graphics hardware (or vice versa, as you prefer).<br />

Furthermore, a brand new trend <strong>in</strong> the console world is the movement of games onto mobile handheld<br />

devices [34]. This is either <strong>in</strong> the form of game-only handheld consoles (e.g. “Game Boy Advance”),<br />

or on java-enabled mobile devices (such as cell phones). New mobile networks, such as GPRS and<br />

UMTS will eventually br<strong>in</strong>g network gam<strong>in</strong>g onto mobile devices.<br />

Summ<strong>in</strong>g up, there is a whole lot of target platforms to choose from. As we will see <strong>in</strong> Chapter 2,<br />

third-party game eng<strong>in</strong>es nowadays are cross-platform-compatible, so that both PC and console<br />

versions can be developed without additional work. What a relief for game programmers !<br />

-9-


1.2 The Analysis Phase<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

After the phase of design<strong>in</strong>g the game concept, the project turns <strong>in</strong> a more or less normal software<br />

eng<strong>in</strong>eer<strong>in</strong>g project, where analysers, designers and programmers (referred to <strong>in</strong> game development as<br />

coders) try to produce a piece of software that should eventually become a good game when<br />

comb<strong>in</strong>ed with the content com<strong>in</strong>g from the graphics designers.<br />

In software eng<strong>in</strong>eer<strong>in</strong>g, the goal of the analysis phase is to produce a complete description of the<br />

problem doma<strong>in</strong> and problems to be solved. This covers document<strong>in</strong>g every functionality the<br />

customer wants, and specify<strong>in</strong>g the requirements of the system (e.g. who will use it, what are the<br />

hardware requirements). The product of the analysis phase is the requirements def<strong>in</strong>ition. These<br />

requirements def<strong>in</strong>e, what the software must can do, and what it must not to be usable for the orig<strong>in</strong>al<br />

problem.<br />

In game eng<strong>in</strong>eer<strong>in</strong>g, this phase differs from “normal” software eng<strong>in</strong>eer<strong>in</strong>g <strong>in</strong> the mean<strong>in</strong>g that the<br />

requirements are not def<strong>in</strong>ed by some type of customer, but by the game concept, especially by the<br />

“Overall Design Document”.<br />

This makes not much difference, besides that the requirements are more specific <strong>in</strong> mean<strong>in</strong>gs of<br />

performance, user <strong>in</strong>terface, and are much more hard to fulfill. This is because if you want to make a<br />

game that sells well, you must produce someth<strong>in</strong>g excellent: It is not enough to make someth<strong>in</strong>g that<br />

works, someth<strong>in</strong>g average, as <strong>in</strong> the case of a normal application software.<br />

1.3 The Design Phase<br />

The goal of the design phase is to produce a detailed written model of the system, which must meet<br />

all the specified requirements.<br />

The ma<strong>in</strong> idea for the design phase is thus to model WHAT is needed for the software (or game) to<br />

become usable, not HOW it can be implemented. In games, this phase can be further broken up <strong>in</strong>to<br />

four sub-phases:<br />

Mak<strong>in</strong>g the Technical Architecture<br />

The technical architecture is the <strong>in</strong>itial technical document of the project. It breaks work down <strong>in</strong>to<br />

modules, which can later be implemented. Furthermore, a reuse plan is generated to make optimum<br />

use of components that have already been developed. Briefly speak<strong>in</strong>g, this step is more or less the<br />

same as <strong>in</strong> general software eng<strong>in</strong>eer<strong>in</strong>g.<br />

At this level, reuse[4] is an important task to work on. In this phase the decision must f<strong>in</strong>ally be made<br />

what to implement <strong>in</strong>-house, what to reuse and what to buy from others. Furthermore, the module<br />

<strong>in</strong>terfaces have to be designed for maximum reusability <strong>in</strong> the future, that means, they should be kept<br />

m<strong>in</strong>imal and simple, ensur<strong>in</strong>g m<strong>in</strong>imal cohesion between the modules.<br />

Module Design<br />

As a handover document between game designers and programmers, each module gets its own design<br />

document. This document is highly technical, describ<strong>in</strong>g how a particular module works and<br />

specify<strong>in</strong>g the <strong>in</strong>terfaces for the modules (so that programmers precisely know what their job is, and<br />

what is not). Note that there are many types of modules, for example code modules and artwork<br />

modules. The module design document is also important for reuse <strong>in</strong> other projects, especially for the<br />

decisions <strong>in</strong> the architecture design of the usability of a module for a specific purpose. This is<br />

generally done <strong>in</strong> a way that the module <strong>in</strong>terfaces are kept compatible with exist<strong>in</strong>g modules (so they<br />

can be <strong>in</strong>tegrated <strong>in</strong>to the new software, and must not be redeveloped with similar functionality).<br />

-10-


1.4 The Development Phase<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

The goal of the development phase, <strong>in</strong> general terms, is the realization of the specification <strong>in</strong>to a<br />

runn<strong>in</strong>g program. For games, this is only to a small extend the writ<strong>in</strong>g of code. Artwork, music,<br />

sounds and other many more th<strong>in</strong>gs need to be produced to form the program. Furthermore, extensive<br />

test<strong>in</strong>g is required for the game to work properly. Remember that even though there is a later test<strong>in</strong>g<br />

phase, errors do happen dur<strong>in</strong>g the development of the modules and need to be cleared right away.<br />

The development phase is further broke up <strong>in</strong>to:<br />

Detailed Technical Design<br />

Each module is written <strong>in</strong> tandem with a detailed technical design document. This document tries to<br />

expla<strong>in</strong> to other developers exactly how the module functions, <strong>in</strong>clud<strong>in</strong>g the reasons beh<strong>in</strong>d different<br />

design choices and test scripts. It can be seen as a journal of the development of the module, and is as<br />

important as the module itself. Developers tend to forget about this piece of work, which results <strong>in</strong><br />

many problems <strong>in</strong> reuse and ma<strong>in</strong>tentance of the module. The reason for this is ma<strong>in</strong>ly that stress and<br />

irrealistic deadl<strong>in</strong>es prevent developers from spend<strong>in</strong>g some extra time on documentation.<br />

Development<br />

Every module is produced from some sort of design document (for artwork, this would be a style<br />

guide of some form, for software it is the module design document). The result of the development<br />

phase is, <strong>in</strong> all cases, a module (artwork or code).<br />

At this level <strong>in</strong>dividual code reuse can be done by each programmer. This is hidden from other team<br />

members and the management, and depends ma<strong>in</strong>ly on the <strong>in</strong>dividual experience of the programmer.<br />

This is the lowest level of reuse, and results <strong>in</strong> the less productivity improvement.<br />

Unit Test<strong>in</strong>g<br />

This is the test<strong>in</strong>g of the code written by the developer (usually by himself). It follows a script written<br />

by the developer as a part of the detailed technical design<br />

document.<br />

Test<strong>in</strong>g can be made with two different techniques: black<br />

box test means, that the unit is triggered at the external<br />

<strong>in</strong>terfaces, and the result values are compared to the def<strong>in</strong>ed<br />

ones. If there is no difference, the module is assumed to be<br />

correct.<br />

White box test<strong>in</strong>g, on the other hands, sees <strong>in</strong> the <strong>in</strong>ternals<br />

of the module, and test the <strong>in</strong>ternal behavior. With this test<br />

method, the performance bottlenecks, and other nonfunctional<br />

errors can be detected more efficiently, but it is<br />

<strong>in</strong> most cases more time-consum<strong>in</strong>g, and requires the<br />

understand<strong>in</strong>g of the module <strong>in</strong>ternals.<br />

Sign Off<br />

When all unit tests are successfully completed, the developer packs his module up and checks it <strong>in</strong> to<br />

source control 1 . This concludes the development of that module.<br />

1 This is sort of a database which holds all code of the programm<strong>in</strong>g team<br />

-11-<br />

Fig. 1.4.1: Unit test<strong>in</strong>g is usually<br />

handled by the programmers<br />

themselves


Integration<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

The f<strong>in</strong>ished modules are <strong>in</strong>tegrated <strong>in</strong>crementally <strong>in</strong>to the whole software. This is done <strong>in</strong> a<br />

controlled manner, because it is usually not possible to <strong>in</strong>tegrate the modules <strong>in</strong> any desired sequence.<br />

The <strong>in</strong>terfaces declarations decides about this problem. It can be even necessary to write stub modules<br />

to <strong>in</strong>tegrate the software, because if it would be <strong>in</strong>tegrat<strong>in</strong>g with the real modules, errors can’t be<br />

found, or only with much higher effort.<br />

Integration Test<strong>in</strong>g<br />

This time, the developer tests the completed module to see if it fits <strong>in</strong> with the whole game software.<br />

Aga<strong>in</strong>, test scripts that were def<strong>in</strong>ed <strong>in</strong> the technical design document are used.<br />

1.5 The Test<strong>in</strong>g Phase<br />

The goal of the test<strong>in</strong>g phase is the detection of errors <strong>in</strong> the complete program. If this phase fails, the<br />

program might be shipped (caus<strong>in</strong>g the project to fail). Also, the efficiency of the system is measured<br />

<strong>in</strong> this phase (which might lead to optimization <strong>in</strong> some critical modules). The product of the test<strong>in</strong>g<br />

phase is an error-free, shipable program.<br />

For games, we dist<strong>in</strong>guish between:<br />

System Test<strong>in</strong>g<br />

The whole system is tested and produces errors that wouldn't have been found by unit and <strong>in</strong>tegration<br />

test. Dur<strong>in</strong>g this phase, errors <strong>in</strong> the specifications eventually tend to show up . And this <strong>in</strong> turn<br />

means, that massive efforts have to be put <strong>in</strong> correct<strong>in</strong>g that errors (which is, of course, very costly,<br />

and causes much risk, and eventually the failure for the project).<br />

In a game project the correctness of the result<strong>in</strong>g program is even more important, as <strong>in</strong> a normal<br />

software project. If a game hangs often, or has other bugs, that prevent normal operation, the fun at<br />

gameplay is fast gone, and the player will never play the game aga<strong>in</strong>, nor buy other games of the same<br />

producer.<br />

Quality Assurance<br />

The purpose of QA is to make sure that the aesthetics (game atmosphere, menu screens, manual, etc.)<br />

are user friendly and self-cons<strong>in</strong>stant, while conform<strong>in</strong>g to the game style section of the game design<br />

document. It is not meant to f<strong>in</strong>d defects <strong>in</strong> the program, as they should have all been already cleared<br />

out by this stage.<br />

After this test is passed, it is considered the game to be “game complete” [13]. This means, that the<br />

game software and content are <strong>in</strong> the quality for that they where designed, and its “free” of bugs.<br />

-12-


Playtest<strong>in</strong>g<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

This is the f<strong>in</strong>al stage of test<strong>in</strong>g, <strong>in</strong> which the total game<br />

experience is tested. This is: How does it play? Is the<br />

manual any good? How is the learn<strong>in</strong>g curve? Are there<br />

any gameplay issues ?<br />

Playtest<strong>in</strong>g differs from all other tests <strong>in</strong> the software<br />

doma<strong>in</strong>: The testers explore every possible location and<br />

every possible puzzle <strong>in</strong> the game. They try to outsmart<br />

the system, or, if possible, to crash it. Cheat codes were<br />

ma<strong>in</strong>ly <strong>in</strong>vented for this reason, so that playtesters could<br />

position themselves everywhere <strong>in</strong> the level or get a close<br />

look at the chief monster without gett<strong>in</strong>g killed. In fact,<br />

cheat modes are rarely implemented as “a feature”, s<strong>in</strong>ce<br />

that would underm<strong>in</strong>e the goal of the game.<br />

If the test phase is completed, the game production is closed, and the success of sell<strong>in</strong>g the game is up<br />

to the market<strong>in</strong>g. The market<strong>in</strong>g process has to be started even before f<strong>in</strong>ish<strong>in</strong>g the game, by mak<strong>in</strong>g<br />

playable beta releases available for download for the gam<strong>in</strong>g community. This way the development<br />

team become valuable feedback about the game, and can correct design errors to make the game more<br />

accepted at the time of shipp<strong>in</strong>g.<br />

Fig. 1.5.2: Ready for shipp<strong>in</strong>g<br />

-13-<br />

Fig. 1.5.1: Playtest<strong>in</strong>g is essential for<br />

f<strong>in</strong>e-tun<strong>in</strong>g the game


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

2. STATE OF THE ART IN GAME ENGINEERING<br />

The game <strong>in</strong>dustry's total sales nowadays overcome those of the movie bus<strong>in</strong>ess. Although there is<br />

much money <strong>in</strong>volved <strong>in</strong> this bus<strong>in</strong>ess, only a handful game companies are successful. One reason for<br />

this is the high competition, as well as the low prices players are will<strong>in</strong>g to pay. As a matter of fact,<br />

publishers had to come up with a solution that both decreases production time and manages to stay <strong>in</strong><br />

touch with today’s rapid chang<strong>in</strong>g technology: The idea of Game Eng<strong>in</strong>e Licens<strong>in</strong>g was born. We will<br />

here<strong>in</strong> present the two most prom<strong>in</strong>ent ones, Quake III Arena and Unreal Tournament.<br />

2.1 Third-Party Game Eng<strong>in</strong>es<br />

Once aga<strong>in</strong>, the idea beh<strong>in</strong>d licens<strong>in</strong>g a game eng<strong>in</strong>e is<br />

• to decrease the length of a game project<br />

The time that would have been <strong>in</strong>vested <strong>in</strong>to develop<strong>in</strong>g a proprietry eng<strong>in</strong>e could be used for<br />

a new project<br />

• to reduce the risk of a game project<br />

Newly developed code tends to take a lot of time to test and debug, whereas third-party<br />

eng<strong>in</strong>es have already been used <strong>in</strong> a number of games are thoroughly tested. Furthermore,<br />

ma<strong>in</strong>tenance and development of the eng<strong>in</strong>e is handed off to a third party, which keeps it upto-date<br />

(e.g. <strong>in</strong>tegrat<strong>in</strong>g new graphics hardware).<br />

• to reduce the number of people work<strong>in</strong>g on a game<br />

Most eng<strong>in</strong>es nowadays are object-oriented or provide some sort of script<strong>in</strong>g functionality.<br />

However, this means that less specialized people can be used, result<strong>in</strong>g <strong>in</strong> lower project costs.<br />

It is notable that when we talk about a game programm<strong>in</strong>g team, we refer to around 10 people.<br />

This is a big difference to normal software projects, where a lot more people can be <strong>in</strong>volved<br />

<strong>in</strong> a s<strong>in</strong>gle project.<br />

You can see from the fact that the number of people work<strong>in</strong>g on a game needs to be reduced<br />

(with only a handful people really <strong>in</strong>volved <strong>in</strong> production), that profit spans are very th<strong>in</strong> <strong>in</strong><br />

the game doma<strong>in</strong>. That’s another difference to normal software projects.<br />

There are, <strong>in</strong> fact, many game eng<strong>in</strong>es that are free of charge (e.g. us<strong>in</strong>g the GNU General Public<br />

License). Some were made publicly available when the correspond<strong>in</strong>g game title ceased to sell (most<br />

prom<strong>in</strong>ent examples be<strong>in</strong>g DOOM and QUAKE). Others simply were developed for the open source<br />

society (e.g. FLTK: www.fltk.org, Parsec: www.parsec.org), and cont<strong>in</strong>ue be<strong>in</strong>g developed. For a<br />

comprehensive list of 3D Eng<strong>in</strong>es (free and commercial), we recommend visit<strong>in</strong>g Karsten Isakovic’s<br />

3D Eng<strong>in</strong>es List (www.cs.tu-berl<strong>in</strong>.de/~ki/eng<strong>in</strong>es.html).<br />

The first problem with free eng<strong>in</strong>es is that most licenses prohibit sell<strong>in</strong>g the games that were made<br />

with them. This can be either by forbidd<strong>in</strong>g charges for the game (except distribution costs), or by<br />

stat<strong>in</strong>g that all source code has to be made publicly available.<br />

A second problem of the free software movement is that most eng<strong>in</strong>es can’t keep up with the fastgrow<strong>in</strong>g<br />

game <strong>in</strong>dustry requirements. Furthermore, graphics hardware manufacturers don’t give away<br />

-14-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

development kits for their newest graphic cards for free. These two facts also seem to threaten the<br />

future of games under L<strong>in</strong>ux [26].<br />

The solution is thus to license an up-to-date game eng<strong>in</strong>e, of which we want to present the two most<br />

common:<br />

2.1.1 The QUAKE III Arena Eng<strong>in</strong>e<br />

Released by id software <strong>in</strong> ‘2000, this eng<strong>in</strong>e<br />

provides all of the latest 3D Technology standards<br />

developers could possibly dream off (shaders, curved<br />

surfaces, 32-bit color, special effects, network<strong>in</strong>g and<br />

fast hardware render<strong>in</strong>g). The eng<strong>in</strong>e is restricted to a<br />

number of ‘big’ QUAKEIII Arena licensees, <strong>in</strong> order<br />

to protect the market from a massive flood<strong>in</strong>g with<br />

QUAKEIII-eng<strong>in</strong>e-games.<br />

The QUAKEIII Arena License furthermore states that<br />

if additions to the eng<strong>in</strong>e are made, the technology<br />

can be kept and re-licensed by the licensee.<br />

Accord<strong>in</strong>g to id technologies, the eng<strong>in</strong>e costs 8% <strong>in</strong><br />

royality of the price per title. For that price, the<br />

costumer also gets ports of the QUAKEIII Arena<br />

eng<strong>in</strong>e for PC, Mac, L<strong>in</strong>ux and Dreamcast .<br />

2.2 The UNREAL Tournament Eng<strong>in</strong>e<br />

Unreal Tournament, released <strong>in</strong> November 1999,<br />

was, <strong>in</strong> a way, an accident. After the orig<strong>in</strong>al Unreal<br />

was completed, Epic Megagames wanted to follow up<br />

the project with some sort of add-on pack. Unreal<br />

multiplayer code was very poor, so the team felt that<br />

an expansion that improved multiplayer would be<br />

ideal. As feature lists grew and patches to Unreal<br />

were released, the add-on turned <strong>in</strong>to a complete and<br />

<strong>in</strong>dependent game.<br />

The eng<strong>in</strong>e itself features state-of-the art graphics,<br />

network<strong>in</strong>g support and Sound. In addition to the<br />

object-oriented C++ code, there is a JAVA-like<br />

script<strong>in</strong>g language named UnrealScript. The eng<strong>in</strong>e<br />

runs both on W<strong>in</strong>dows, L<strong>in</strong>ux and MacOS.<br />

-15-<br />

Fig. 2.2.1.1: The QuakeIII Arena<br />

Eng<strong>in</strong>e<br />

Fig. 2.2.1.2: The Unreal<br />

Tournament Eng<strong>in</strong>e


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

A few facts about the Unreal Tournament Eng<strong>in</strong>e:<br />

Project budget: $2 million<br />

Project length: 18 months<br />

Team size: approximately 16 developers<br />

Code Length: 350,000 l<strong>in</strong>es of C++ and UnrealScript<br />

Critical development hardware: Pentium II 400s with 256MB RAM and Voodoo 2 or TNT-based<br />

cards<br />

Critical development software: Microsoft Visual Studio, 3D Studio Max, UnrealEd<br />

Fig. 2.2.1.3: The Unreal Eng<strong>in</strong>e features a variety of<br />

amaz<strong>in</strong>g effects, such as explosions or fire trails<br />

-16-


Game Concept Phase<br />

• F<strong>in</strong>d<strong>in</strong>g the idea<br />

• Work<strong>in</strong>g it out<br />

• Sett<strong>in</strong>g the Story<br />

Analysis Phase<br />

produce a complete<br />

description of the<br />

problems to be solved<br />

Design Phase<br />

produce a detailed<br />

written model of the<br />

game<br />

Development Phase<br />

realization of the<br />

specification <strong>in</strong>to a<br />

runn<strong>in</strong>g program<br />

Test<strong>in</strong>g Phase<br />

f<strong>in</strong>e-tun<strong>in</strong>g through<br />

playtest<strong>in</strong>g<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

A software project is a project focus<strong>in</strong>g on the creation of<br />

software. A game project is more than a software project. In<br />

addition to its software, the game has to provide content (story,<br />

environment, artwork,…) to become enjoyable. This makes it a<br />

difficult and risky enterprise, which must be managed <strong>in</strong> order to<br />

be successful.<br />

The development of the game can be broken down <strong>in</strong>to five<br />

development phases. Each phase focuses on a different aspect of<br />

the game.<br />

Beg<strong>in</strong>n<strong>in</strong>g with the game idea, the story is slowly expanded <strong>in</strong>to a<br />

mental model model of the game, the game concept. This model<br />

is then reviewed <strong>in</strong> the Analysis Phase <strong>in</strong> order to f<strong>in</strong>d what will<br />

be subject to the game project. These f<strong>in</strong>d<strong>in</strong>gs are then written<br />

down dur<strong>in</strong>g the Design Phase to form a formal specification for<br />

the game. The specification is realized <strong>in</strong>to a game dur<strong>in</strong>g the<br />

Development Phase. The Test<strong>in</strong>g Phase then concludes the<br />

software development cycle.<br />

Today, most game projects license third-party game eng<strong>in</strong>es <strong>in</strong><br />

order to reduce risk, decrease production time and to stay <strong>in</strong> touch<br />

with today’s technology. Furthermore, the game eng<strong>in</strong>e vendor<br />

takes care of the development and support of the game eng<strong>in</strong>e,<br />

which relieves the game programmers from do<strong>in</strong>g less productive<br />

work. Another advantage is that third-party game eng<strong>in</strong>es tend to be thoroughly tested.<br />

It must be noted that third-party game eng<strong>in</strong>es do have their price, and the develop<strong>in</strong>g firms<br />

are very restrictive about whom to give a licens<strong>in</strong>g contract.<br />

We will now move on to a more <strong>in</strong>teractive part of our lecture, <strong>in</strong> which we want to present<br />

some recent trends and developments <strong>in</strong> the game <strong>in</strong>dustry. We have compiled some<br />

<strong>in</strong>terest<strong>in</strong>g articles from the web for you which should form the basis for a conclud<strong>in</strong>g public<br />

discussion about the future of the game <strong>in</strong>dustry. Please feel free to <strong>in</strong>terrupt us any time<br />

and contribute your ideas. This will make the lecture much more lively and <strong>in</strong>terest<strong>in</strong>g.<br />

-17-<br />

A Brief Summary


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

3. THE FUTURE OF THE GAMING INDUSTRY<br />

There are some <strong>in</strong>terest<strong>in</strong>g new trends <strong>in</strong> the gam<strong>in</strong>g <strong>in</strong>dustry that will dramatically change the way<br />

games are made. In this chapter we will try to give you an overview of these developments, which<br />

then will serve as a basis for a public discussion at the end of the lecture:<br />

Decentralization of development, user communities<br />

Nearly every Epic and Digital Extremes employee frequented message boards dedicated to the<br />

subject of Unreal and Unreal Tournament. The majority of Epic employees were drawn<br />

directly from the gam<strong>in</strong>g community, either through mod projects or <strong>in</strong>dependent game work.<br />

Keep<strong>in</strong>g <strong>in</strong> contact with the gam<strong>in</strong>g community allowed Epic to focus on the target audience<br />

dur<strong>in</strong>g the design process.<br />

This community-m<strong>in</strong>dedness greatly contributed to the quality and completeness of Unreal<br />

Tournament. We had a very good idea of what players wanted. As I mentioned earlier, we<br />

often posted controversial design questions on public message boards to gauge public<br />

reaction. The results of these polls were taken <strong>in</strong>to consideration when the feature <strong>in</strong> question<br />

was implemented.<br />

Source: GT <strong>in</strong>teractive<br />

As mentioned <strong>in</strong> the above article, the process of mak<strong>in</strong>g a game has already become a decentral<br />

effort. In fact, the development team of Unreal Tournament consisted of people both <strong>in</strong> the US and<br />

Canada, the communication be<strong>in</strong>g held over the Internet. Furthermore, the development takes place<br />

both <strong>in</strong>side and outside the development team:<br />

In December, I downloaded a sample of a new Unreal mod under development by an<br />

Australian named Jack Porter. The mod, UBrowser, was a server browser us<strong>in</strong>g a W<strong>in</strong>dowslike<br />

GUI. It was impressive, so I showed it to James Schmalz, lead designer at Digital<br />

Extremes, who said, "We need that, we need to hire this guy." A few weeks later Jack was a<br />

part of the team, expand<strong>in</strong>g his UW<strong>in</strong>dow GUI and rework<strong>in</strong>g Unreal Tournament's menus to<br />

use the system. Jack fit <strong>in</strong>to the team perfectly, br<strong>in</strong>g<strong>in</strong>g a complete solution for the <strong>in</strong>terface<br />

and menus as well as his own <strong>in</strong>dependent programm<strong>in</strong>g <strong>in</strong>itiative.<br />

There is a lively and creative community evolv<strong>in</strong>g around level editors and mesh modeler programs<br />

of various game eng<strong>in</strong>es (see www.planetquake.org/polycount/ and www.planetunreal.org). Here,<br />

new levels, sounds, meshes and rumours are discussed <strong>in</strong> detail: Players share experiences with<br />

eachother, download maps and <strong>in</strong>itiate network plays. See Fig. 3.1 (next page) for a screenshot of the<br />

polygount homepage, where the newest gossip about new quake modules (levels which were created<br />

by users and can be loaded <strong>in</strong>to the game) is exchanged.<br />

-18-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

Fig. 3.1: “Polycount” is featur<strong>in</strong>g artwork and models for Quake and Unreal. This is<br />

one of the places where users can contribute to their game, and are sometimes recruited<br />

by professional game companies<br />

It is the strong belief of the authors that <strong>in</strong> future, game developers will <strong>in</strong>creas<strong>in</strong>gly take their game<br />

ideas directly from the gamers community. This would <strong>in</strong> turn mean that the game development<br />

process will be subject to further decentralization. New mesh modelers and map editors will evolve,<br />

eventually putt<strong>in</strong>g level and character design <strong>in</strong>to the hands of the players.<br />

This development doesn’t always have advantages, as is expla<strong>in</strong>ed on the home page of 3D Realms<br />

(the makers of Duke Nukem 3D):<br />

It happens every time a mod or other project gets foxed: the message boards light up with the<br />

collective rage of a community that feels it's been wronged, and the developers or publishers<br />

are accused of squash<strong>in</strong>g the little guy <strong>in</strong> favor of more money. The mod community beg<strong>in</strong>s<br />

call<strong>in</strong>g for the developers' heads on platters.<br />

The most common accusation hurled is that the company is only do<strong>in</strong>g it because of greed.<br />

While money is almost certa<strong>in</strong>ly tied <strong>in</strong>to it, the predom<strong>in</strong>ant issue is one of <strong>in</strong>tellectual<br />

property law.<br />

Recently I had to tell a modeler that several models he'd done violated copyright law--he'd<br />

converted Quake III Arena models for use <strong>in</strong> Unreal Tournament. The issue was similar to the<br />

recent ax<strong>in</strong>g of the Duke It Out <strong>in</strong> Quake mod--both groups had taken one company's<br />

<strong>in</strong>tellectual property from one game and ported it <strong>in</strong>to another. This is the most common and<br />

obvious violation of copyright law <strong>in</strong> community development and it should be common sense<br />

not to violate it, but apparently it isn't when it's the biggest puddle the community steps <strong>in</strong>. But<br />

despite the ubiquitous outrage that <strong>in</strong>evitably follows with each fall of the axe, the companies<br />

can and must put a stop to that development […]<br />

-19-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

The author goes on that if every piece of artwork could be freely ported to other games, the games<br />

themselves would become dispensable. Hence, the game <strong>in</strong>dustry wants stronger legislation for<br />

<strong>in</strong>tellectual property (see next), which is exactly the opposite of what many game fanatics want.<br />

About the stronger protection of <strong>in</strong>tellectual properties<br />

We have already stated that clon<strong>in</strong>g a game (mak<strong>in</strong>g a game with similar or identical<br />

gameplay and design) violates the copyright laws for <strong>in</strong>tellectual properties. Hasbro<br />

Interactive, for example, won a lawsuit aga<strong>in</strong>st a publisher who sold clones of old Atari<br />

games, for which Hasbro had bought the copyright [19, 20]. As outcome of the lawsuit, the<br />

publisher had to stop sell<strong>in</strong>g these titles, as well as recall the ones already sold. Some of the<br />

titles <strong>in</strong>cluded very famous games, such as Tetris and Asteroids.<br />

Hence, copyright legislation can have a big <strong>in</strong>fluence on the gam<strong>in</strong>g <strong>in</strong>dustry: You must ask<br />

the publisher of the orig<strong>in</strong>al game for permission for mak<strong>in</strong>g a clone, and you must eventually<br />

pay for this permission. On the other side, the publishers the orig<strong>in</strong>al game can stop others<br />

from sell<strong>in</strong>g clones. That means that, because the freedom of game developers is more limited<br />

than before, the value of new ideas is <strong>in</strong>creased.<br />

Why does this development come that late? The answer is, now that the game <strong>in</strong>dustry has<br />

grown big enough, publishers are eager to protect their own <strong>in</strong>tellectual properties. In a way,<br />

as this is quite normal <strong>in</strong> other commercial sectors, we see that the game <strong>in</strong>dustry has over<br />

time evolved <strong>in</strong>to a full-grown bus<strong>in</strong>ess sector, with much elbow-bully<strong>in</strong>g and competition.<br />

It is <strong>in</strong>terest<strong>in</strong>g to mention that a game idea alone is no <strong>in</strong>tellectual property[7]: It can’t be<br />

protected by laws, it can’t be sold, and the “idea” itself has no physical value. However, after<br />

it is realized <strong>in</strong> some form (e.g. published <strong>in</strong> a game), this property belongs to its publisher,<br />

and is then fully protected under copyright laws.<br />

Where we go from here (conclusion, public discussion)<br />

We have seen that the process of mak<strong>in</strong>g games has already become a decentral effort, with<br />

development tak<strong>in</strong>g place both <strong>in</strong>side and outside the development team. Large player communities<br />

have evolved on the <strong>in</strong>ternet which concentrate on provid<strong>in</strong>g new levels, meshes and plug<strong>in</strong>s<br />

(modules) for various game eng<strong>in</strong>es.<br />

We th<strong>in</strong>k that <strong>in</strong> the near future, the development of content (levels, art, meshes) will be laid <strong>in</strong>to the<br />

hands of the gamers community. As we have mentioned earlier, there are certa<strong>in</strong> jurisdictional<br />

problems aris<strong>in</strong>g because of copyright laws.<br />

In the long term, it is even possible that “game studio” software will be re<strong>in</strong>vented, so that the players<br />

could build their own games with m<strong>in</strong>imal effort. That <strong>in</strong> turn would also place the software part of<br />

the game project <strong>in</strong>to the hands of the player. The role of the game companies would then be to<br />

supply the player with access technology, with the effect that competition would dramatically<br />

<strong>in</strong>crease. In a way, this trend would be similar to the developments concern<strong>in</strong>g the use third-party<br />

eng<strong>in</strong>es, which we have discussed <strong>in</strong> Chapter 2. Game studio providers would take over the<br />

technological aspects of a game, while players concentrate on def<strong>in</strong><strong>in</strong>g the gameplay. Needless to say<br />

that commercial game development would then get even tougher.<br />

• How do these trends sound to YOU (is decentralisation good ?)<br />

• Have YOU seen similar trends of decentralisation <strong>in</strong> the game <strong>in</strong>dustry ?<br />

• What do YOU th<strong>in</strong>k the next step will be ?<br />

-20-


References<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

1. Game Eng<strong>in</strong>e Design, Theory and Practice (unser E<strong>in</strong>stiegspunkt und spätere Grundlage für den Vergleich<br />

klassischen <strong>Software</strong>-<strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong>s und Game <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong>s )<br />

2. +<strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> is Not <strong>Computer</strong> Science, By Steve McConnell<br />

Gamasutra, December 16, 1999, URL: http://www.gamasutra.com/features/19991216/mcconnell_01.htm (es<br />

diskutiert im allgeme<strong>in</strong>en wie softwareentwicklung jetzt ausschaut: computer sience, und wie es ausschauen<br />

könnte, wenn es richtig betrieben se<strong>in</strong> würde.)<br />

3. The Focus Of Gameplay; by Geoff Howland (www.gamedev.net) (es geht hauptsächlich um die spielbarkeit der<br />

spiele, und wieso spiele spielbar oder unspielbar s<strong>in</strong>d)<br />

4. Whatever Happened to Reuse? By Steven Adolph, Gamasutra, December 13, 1999, URL:<br />

http://www.gamasutra.com/features/19991213/adolph_01.htm (diskutiert, wieso es ke<strong>in</strong> reuse betrieben wird,<br />

und was die wirtschafliche gründe s<strong>in</strong>d.)<br />

5. Is PC Gam<strong>in</strong>g Dy<strong>in</strong>g? The PC market is chang<strong>in</strong>g. Will gamers be left out <strong>in</strong> the cold? March 12, 2001<br />

(http://pc.ign.com) (diskutiert das spielemarkt, udn vergleicht pc und konsolemarket: ergebniss pc gam<strong>in</strong>g is not<br />

dy<strong>in</strong>g)<br />

6. Irreconcilable Differences: Game vs. Story by Mark Barrett (www.gamedev.net) (diskutiert, dass e<strong>in</strong> spiel und<br />

se<strong>in</strong> story korreliert se<strong>in</strong> sollten)<br />

7. Can I Sell My Game Ideas? by Geoff Howland, (www.gdcentral.com) (e<strong>in</strong>e kurze gedankengang über<br />

eigentumsrecht von ideen)<br />

8. A Primer for the Design Process, Part 1: What to Do, By Tim Huntsman, Gamasutra, June 30, 2000, URL:<br />

http://www.gamasutra.com/features/20000630/huntsman_01.htm<br />

9. A Primer for the Design Process, Part 2: What to Th<strong>in</strong>k About, By Tim Huntsman, Gamasutra, July 7, 2000,<br />

URL: http://www.gamasutra.com/features/20000707a/huntsman_01.htm (diese beiden artikel beschreiben, wie<br />

man e<strong>in</strong> spieldesign angehen soll, was man dabei beachten muss)<br />

10. Dogma 2001: A Challenge to Game Designers, By Ernest Adams, Gamasutra, February 2, 2001, URL:<br />

http://www.gamasutra.com/features/20010202/adams_01.htm (diese vergleicht das spieleentwicklung mit der<br />

film<strong>in</strong>dustrie, wo oft nicht qualität im künstlers<strong>in</strong>n, sondern quantität der spezialeffekte zählt.)<br />

11. Controll<strong>in</strong>g Chaos <strong>in</strong> the Development Process By Tim Ryan, Gamasutra, August 6, 1999 (welche risken es bei<br />

e<strong>in</strong>em projekt gibt, und wie man damit umgehen soll)<br />

12. How do I make games – A Path to Game Development, by Geoff Howland (www.gamedev.net) (es ist e<strong>in</strong> kurzer<br />

tutorial, was man alles übern sollte, damit man e<strong>in</strong> game -entwickler werden kann. )<br />

13. The three completes of a game, by Geoff Howland (www.gamedev.net)<br />

14. It's All <strong>in</strong> Your M<strong>in</strong>d: Visual Psychology and Perception <strong>in</strong> Game Design, By Hayden Duvall, Gamasutra, March<br />

9, 2001, URL: http://www.gamasutra.com/features/200103009/duvall_01.htm (e<strong>in</strong> allgeme<strong>in</strong>es dokument über<br />

die natur des menschen <strong>in</strong> zusammenhang mit games)<br />

15. The Game Development Cycle, (www.gdcentral.com) (beschreibt kurz die phasen der spieleentwicklung)<br />

16. Creat<strong>in</strong>g Virtual Worlds by Tels , (www.gamedev.net)<br />

17. Design<strong>in</strong>g for Onl<strong>in</strong>e Communities by David Michael, (www.gdcentral.com)<br />

18. IGF 2001 Preview: Ten Prepared to W<strong>in</strong>, By Damon Brown, Gamasutra, March 7, 2001, URL:<br />

http://www.gamasutra.com/features/20010307/brown_01.htm<br />

-21-


WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

19. +Why the Hasbro Lawsuit Should Terrify Game Developers - And what we can do about it, by Diana Gruber,<br />

(www.gamedev.net)<br />

20. Three Sides by Sean Timarco Baggaley, (www.gamedev.net)<br />

21. On Gameplay - or Creat<strong>in</strong>g, Develop<strong>in</strong>g, and Balanc<strong>in</strong>g Your Game Concept, by The Constable<br />

(www.gamedev.net)<br />

22. Biology and Gam<strong>in</strong>g: Why Women Don’t Play <strong>Games</strong>, by Philippe O'Connor (www.gamedev.net) [es wird<br />

versucht zu erklären, warum Frauen angeblich weniger spielen als Männer (Autor ist e<strong>in</strong> Mann)]<br />

23. Kill<strong>in</strong>g <strong>Games</strong>: A Look At German Videogame Legislation, by Bernd Kreimeier (www.gamasutra.com) (hier<br />

wird unter anderem die handhabung des deutschen Index anhand Wolfenste<strong>in</strong> und Mortal Kombat erläutert)<br />

24. How I Spent my Spr<strong>in</strong>g Break: A Report on the 2000 Game Developers Conference, by François -Dom<strong>in</strong>ic<br />

Laramée (www.gamedev.net)<br />

25. Petersons Three Priciples of Game Design (www.gamedev.net)<br />

26. L<strong>in</strong>ux as a Gam<strong>in</strong>g Platform, by Mark Coll<strong>in</strong>s (www.gamedev.net)<br />

27. Heretic: What went right, What went wrong (www.gamasutra.com) (Facts rund um die Möglichkeiten von Code<br />

Licens<strong>in</strong>g, und wie man <strong>in</strong> der Zeit bleibt)<br />

28. id <strong>Software</strong>: Technology License Program (www.idsoftware.com)<br />

29. Postmortem: Epic <strong>Software</strong>’s Unreal Tournament, by Brandon Re<strong>in</strong>hart (www.gamasutra.com) (Tiefe E<strong>in</strong>blicke<br />

<strong>in</strong> die Eng<strong>in</strong>e, deren Entstehungsgeschichte, deren Architektur)<br />

30. Prof. Dr. A. M<strong>in</strong> Tjoa: <strong>Software</strong>projektmanagement (ergänzende Def<strong>in</strong>itionen <strong>in</strong> Sachen <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong>)<br />

31. Design and Architecture of a Portable and Extensible Multiplayer 3D Game Eng<strong>in</strong>e by Markus Hadwiger<br />

32. Game Design: Secrets of the Sages by Brady Books, ISBN 1-56686-904-8<br />

33. Future of the andventure game, by Tasos Kaiafas (www.gamespot.com)<br />

34. Future of Video <strong>Games</strong> Goes Mobile, by Martyn Williams, IDG News Service Friday, March 30, 2001<br />

-22-


Image Index<br />

WURZER&LICHTL: <strong>Software</strong> <strong>Eng<strong>in</strong>eer<strong>in</strong>g</strong> <strong>in</strong> <strong>Games</strong><br />

Fig. I.1 People Involved <strong>in</strong> a Game Project from Game Eng<strong>in</strong>e Design, Theory and Practice<br />

Fig. 1.1.1 Concept art from Diablo 2 Expansion Pack © Blizzard Enterta<strong>in</strong>ment<br />

Fig. 1.1.2 Design<strong>in</strong>g the Gameplay concept – some draw<strong>in</strong>gs from “Soldier of Fortune”<br />

Fig. 1.1.3 The Treatment from Duke Nukem – Land of the Babes © 3D Realms (on their site – www.3drealms.com)<br />

Fig. 1.1.4 Action games: Duke Nukem 3D © 3D Realms, Unreal Tournament © GT Interactive<br />

Fig. 1.1.5 Strategy games: Panzer General II © SSI, C&C2: Red Alert © Westwood Studios<br />

Fig. 1.1.6 Adventure games: Leisure Suit Larry 7 © Sierra<br />

Fig. 1.1.7 RPG’s: Bard’s Tale © SSI<br />

Fig. 1.1.8 Sport games: FIFA 2001 © EA Sports<br />

Fig. 1.1.9 : Sims: SimCity 3000 © Maxis<br />

Fig. 1.1.10: Puzzles: Battle Chess<br />

Fig. 1.1.11: Simulators: Microsoft Combat Flight Simulator © Microsoft<br />

Fig. 1.1.12: First-Person: Mr. Burns Model © by a member of polycount community<br />

Fig. 1.1.13: Third-Person: Lara Croft, as seen <strong>in</strong> the game of the same name<br />

Fig. 1.1.14: Top Down: Some old amiga game<br />

Fig. 1.1.15: Commander Keen © Apogee<br />

Fig. 1.1.16: A text Adventure [suppose pre-PC era]<br />

Fig. 1.4.1 : Unit test<strong>in</strong>g: an image from 3D Realms dur<strong>in</strong>g the test<strong>in</strong>g of Duke Nukem<br />

Fig. 1.4.2 : Playtest<strong>in</strong>g: aga<strong>in</strong>, an image from 3D Realms<br />

Fig. 1.4.3 : shipp<strong>in</strong>g: Duke Nukem and the Land of the Babes © 3D Realms<br />

Fig. 2.2.1.1 : The QuakeIII Arena Eng<strong>in</strong>e © id <strong>Software</strong><br />

Fig. 2.2.1.2 : The Unreal Tournament Eng<strong>in</strong>e © GT Interactive<br />

Fig. 2.2.1.3 : effects: The Unreal Tournament Eng<strong>in</strong>e © GT Interactive<br />

Fig. 3.1 : "Polycount” – the community over at www.planetquake.com © PlanetQuake<br />

Disclaimer<br />

All trademarks named <strong>in</strong> this document are courtesy of their respective owners. This sem<strong>in</strong>ar lecture handout may not be<br />

used without prior permission by the authors. This <strong>in</strong>cludes all k<strong>in</strong>ds of reproduction, presentation <strong>in</strong> public or any other<br />

k<strong>in</strong>d of distribution. It may solely be used as a course paper <strong>in</strong> conjunction with the “Sem<strong>in</strong>ar on <strong>Computer</strong> <strong>Games</strong>” 2001.<br />

-23-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!