![Page 1: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/1.jpg)
Software Engineering in the Game IndustryBill Pyne
![Page 2: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/2.jpg)
Outline
Background IssuesTrends
ProcessesCommon PracticesExperimental Practices
Tools
![Page 3: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/3.jpg)
Background
![Page 4: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/4.jpg)
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
![Page 5: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/5.jpg)
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
![Page 6: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/6.jpg)
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
![Page 7: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/7.jpg)
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
![Page 8: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/8.jpg)
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
![Page 9: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/9.jpg)
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
![Page 10: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/10.jpg)
High-Poly Character
Image from http://www.unrealtechnology.com/html/technology/ue30.shtml
![Page 11: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/11.jpg)
Low-Poly Character
Image from http://www.unrealtechnology.com/html/technology/ue30.shtml
![Page 12: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/12.jpg)
Normal-Mapped Character
Image from http://www.unrealtechnology.com/html/technology/ue30.shtml
![Page 13: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/13.jpg)
Processes
![Page 14: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/14.jpg)
“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.
![Page 15: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/15.jpg)
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
![Page 16: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/16.jpg)
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
![Page 17: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/17.jpg)
Production
Programming and content production begins
Producers collaborate between departments
Sometimes little communication between departments (“us” vs. “them”)
![Page 18: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/18.jpg)
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
![Page 19: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/19.jpg)
“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/
![Page 20: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/20.jpg)
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
![Page 21: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/21.jpg)
“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
![Page 22: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/22.jpg)
“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
![Page 23: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/23.jpg)
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”
![Page 24: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/24.jpg)
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”
![Page 25: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/25.jpg)
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.
![Page 26: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/26.jpg)
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
![Page 27: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/27.jpg)
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
![Page 28: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/28.jpg)
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
![Page 29: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/29.jpg)
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
![Page 30: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/30.jpg)
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
![Page 31: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/31.jpg)
Development Cycles
Scheduled in 2 week increments Precise tasks are determined and
completed Count unit and functional tests to measure
progress
![Page 32: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/32.jpg)
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
![Page 33: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/33.jpg)
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
![Page 34: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/34.jpg)
Tools
![Page 35: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/35.jpg)
Version Control Blues
Programmers need protection from content developers
Content developers need protection from programmers
QA becomes a necessity even on smaller teams
![Page 36: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/36.jpg)
Version Control with QA
Image from http://www.gamasutra.com/features/20050829/olsson_01.shtml
![Page 37: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/37.jpg)
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
![Page 38: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/38.jpg)
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/
![Page 39: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/39.jpg)
XNA
Content Creation, Production Processes, and Game Technologies
Lower development costs while improving quality
Image and summary from http://www.microsoft.com/xna/
![Page 40: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/40.jpg)
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.
![Page 41: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/41.jpg)
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)
![Page 42: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/42.jpg)
Developer Interviews
Video from http://www.microsoft.com/xna/
![Page 43: Software Engineering in the Game Industry Bill Pyne](https://reader035.vdocuments.us/reader035/viewer/2022070408/56649e575503460f94b4f7de/html5/thumbnails/43.jpg)
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/