Software Engineering in Games - Computer Graphics Group
Software Engineering in Games - Computer Graphics Group
Software Engineering in Games - Computer Graphics Group
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-