Software Engineering in the Game Industry

Software Engineering
in the Game Industry
Bill Pyne
Outline

Background
 Issues
 Trends

Processes
 Common
Practices
 Experimental Practices

Tools
Background
Technology Issues
Hardware changes at an incredible rate
 Pressure to support the latest and greatest
 Developers may work on support for
hardware long before the hardware’s
completion
 Hardware may even be buggy

Publisher Issues
Many game studios live and die by their
publishers
 Publishers tend to follow market trends
and don’t take many “risks”
 Game developers could be forced to
develop for particular hardware and
platforms late into development

Developers Issues
High quality and originality can take up too
much time
 Asking a developer to spend less time on
a task hurts morale
 The game is not done in the eyes of a
developer until it’s “perfect”
 The “fun” factor requirement

Team Layout
Producer
Lead Programmer
Lead Artist
Engine
Programmer
Animator
Tool Programmer
3D Artist
Game Programmer
2D Artist
Lead Sound
Designer
Sound Designer
Lead Game
Designer
Level Designer
Game Designer
Lead Tester
Tester
Developing for Unfinished
Products
Developers are trying to cut the time to
market in supporting the latest and
greatest
 DirectX 10 documentation included in the
DirectX 9 December 2005 SDK Update
 Console launch titles
 Unreal Engine 3 used through out the
industry before its completion

Team Sizes
More content developers needed to meet
the growing demand
 Engine programming is highly specialized
(physics, graphics, sound, etc.) and
requires more programmers
 Average team sizes from ~20 to ~40

High-Poly Character
Image from http://www.unrealtechnology.com/html/technology/ue30.shtml
Low-Poly Character
Image from http://www.unrealtechnology.com/html/technology/ue30.shtml
Normal-Mapped Character
Image from http://www.unrealtechnology.com/html/technology/ue30.shtml
Processes
“Standard” Game Development


The Waterfall Model
Many companies stay
close to this model
but may not even
have a name for it
Image from Microsoft Clipart.
Concept
The idea is born
 Originates from an employee’s idea or a
publisher’s acquired license (movie, book,
etc.)
 Game designer writes a brief concept
document

Pre-Production
Game designer writes the design doc
 Programmers determine if the ideas are
doable
 Programmers produce the tech doc
 Artists produce concept art
 Producer determines project schedule

Production
Programming and content production
begins
 Producers collaborate between
departments
 Sometimes little communication between
departments (“us” vs. “them”)

Post-Production
Lead tester devises a test plan
 Testers begin the bug hunt
 Game play and content are tweaked
 Game may be localized after the English
version has been shipped

“The Cabal” Process




Developed by Valve Software for Half-Life
First attempt at Half-Life was scrapped
Valve lacked an official Game Designer
Some sort of software design process was
needed to organize the multiple disciplines
Image from http://www.valvesoftware.com/
Overview
“The Cabal” was to generate a 200+ page
design document detailing each level in
the game
 Mini-Cabals were used to solve smaller
design problems
 Professional writer employed to over
watch the story-line and maintain the
design document

“The Cabal”
Group acted as the “Game Designer”
 Loosely structured brainstorming sessions
held 4 days a week for 6 hours each day
 Multiple disciplines were represented
 One person recorded the design
 Another person drew concept art

“The Cabal” Cycling
Members were rotated through every
couple of months to prevent burn-out
 Each cabal group had a few previous
members to spread experience
 Important to make sure each discipline
was represented

Mini-Cabals
Went into more detail on a design issue
handed down from “The Cabal”
 Members consisted of individuals in
charge of implementing the design
decision
 Provided fresh insight for “The Cabal”

Benefits
Every team member has a better
understanding of the entire project
 Game play is a combination of the team’s
experience and not just a single designer
 Encourages the team to work together
instead of in their own “camps”

Extending “The Cabal” Process


HL2 development
team was about twice
as large as HL1
Valve didn’t want a
bottleneck with “The
Cabal” in decision
making
Image from Half-Life 2 box art.
Design Cabals
3 design cabals were given their own
section of the game to make
 Half programmers and half designers
since each are one another’s consumers
 An engine programmer was present in
each cabal for technology requests

Shared Resources
Art, acting, and sound were not
represented in the cabals
 Design cabals would place requests for
the shared resources
 Shared resources put the final touches on
levels

Consistency
Team-wide play tests provided feedback
between cabal groups
 Weapons cabal was formed from the 3
design cabals to handle player items used
throughout the entire game
 A 2nd pass through the game was needed
to improve quality and consistency issues

Extreme Game Development
(XGD)




Proposed by Thomas Demachy
at Titus Interactive Studio
Based on Extreme Programming
(XP)
The producer is the “client”
The game designer collaborates
with the producer
Image from http://www.extremegamedev.org
Milestones
Scheduled for every 6 weeks
 “Planning Game” takes place at the
beginning of each milestone cycle for the
team and producer to decide on which
“user stories” to implement
 Game should be playable as early as
possible
 Broken down into development cycles

Development Cycles
Scheduled in 2 week increments
 Precise tasks are determined and
completed
 Count unit and functional tests to measure
progress

Milestone Completion
Celebrate for the sake of morale!
 Find glitches and plan to fix them for the
next milestone
 Postmortem is written after receiving
feedback from the team and the “client”
 Examples of postmortems can be found at
www.gamasutra.com

XGD Dashboard
Producer evaluates each practice and tool
the team uses to make-up the “XGD
Dashboard”
 Evaluation scores range from 0 to 5 and
should include a short comment
 XGD may not be right for the team if
scores continue to drop each iteration

Tools
Version Control Blues
Programmers need protection from
content developers
 Content developers need protection from
programmers
 QA becomes a necessity even on smaller
teams

Version Control with QA
Image from http://www.gamasutra.com/features/20050829/olsson_01.shtml
Asset Management
Much more than versioning control
 Content can be difficult to keep track of
 Level Designers need a way to look for
specific content to fit the needs of their
level
 Tools are needed to search existing
content and manage content as it goes
through the development pipeline

Alienbrain




Specially designed for artists
Supports art previewing
Support for source code but
not as powerful in this realm
as other software
Current customers include
Lucas Arts, id Software, Atari,
and the list goes on
Image from http://www.alienbrain.com/
XNA


Content Creation, Production Processes, and
Game Technologies
Lower development costs while improving
quality
Image and summary from http://www.microsoft.com/xna/
XNA Studio
Extension of Visual Studios 2005 Team
System
 Designed to aid collaboration between
team members (programmers, artists,
management, etc.)
 Task and defect tracking, asset
management (source control and
management for content), etc.

Game Development Platform
Support for current and future XBox and
Windows platforms
 Attempts to mask the differences between
platforms
 Uses DirectX
 Stresses High Definition content (HD)

Developer Interviews
Video from http://www.microsoft.com/xna/
References

Alienbrain® - http://www.alienbrain.com/

“Book Excerpt: Implementing a Digital Asset Management System: Workflow
Integration” - http://www.gamasutra.com/features/20060124/jacobsen_01.shtml

“The Cabal: Valve’s Design Process For Creating Half-Life” http://www.gamasutra.com/features/19991210/birdwell_01.htm

“Extreme Game Development: Right on Time, Every Time” http://www.gamasutra.com/resource_guide/20030714/demachy_01.shtml

“The games development process” - http://www.eurocom.co.uk/careers/games-dp.php

“Hierarchy of a Game Development Company” http://games.ign.com/articles/672/672661p1.html

“The Process” - http://www.gamasutra.com/features/20050829/olsson_01.shtml

“Scaling the Cabal: Valve's Design Process for Creating Half-Life 2” - Game
Developer Magazine, November 2005

Unreal Engine 3™ - http://www.unrealtechnology.com/html/technology/ue30.shtml

XNA™ - http://www.microsoft.com/xna/