Software Engineering in the Game IndustryBill Pyne
Outline
Background IssuesTrends
ProcessesCommon PracticesExperimental 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
Lead Programmer
Producer
Lead Artist
Lead Game Designer
Lead Tester
Tester
Game Designer
Level Designer
Sound Designer
2D Artist
3D Artist
Game Programmer
Engine Programmer
Tool Programmer
Animator
Lead Sound Designer
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-d-p.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/