Top Banner
Software Engineering in the Game Industry Bill Pyne
43

Software Engineering in the Game Industry Bill Pyne.

Jan 11, 2016

Download

Documents

Rosalyn Potter
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Engineering in the Game Industry Bill Pyne.

Software Engineering in the Game IndustryBill Pyne

Page 2: Software Engineering in the Game Industry Bill Pyne.

Outline

Background IssuesTrends

ProcessesCommon PracticesExperimental Practices

Tools

Page 3: Software Engineering in the Game Industry Bill Pyne.

Background

Page 4: Software Engineering in the Game Industry Bill Pyne.

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.

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.

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.

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.

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.

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.

High-Poly Character

Image from http://www.unrealtechnology.com/html/technology/ue30.shtml

Page 11: Software Engineering in the Game Industry Bill Pyne.

Low-Poly Character

Image from http://www.unrealtechnology.com/html/technology/ue30.shtml

Page 12: Software Engineering in the Game Industry Bill Pyne.

Normal-Mapped Character

Image from http://www.unrealtechnology.com/html/technology/ue30.shtml

Page 13: Software Engineering in the Game Industry Bill Pyne.

Processes

Page 14: Software Engineering in the Game Industry Bill Pyne.

“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.

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.

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.

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.

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.

“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.

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.

“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.

“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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Tools

Page 35: Software Engineering in the Game Industry Bill Pyne.

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.

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.

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.

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.

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.

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.

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.

Developer Interviews

Video from http://www.microsoft.com/xna/

Page 43: Software Engineering in the Game Industry Bill Pyne.

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/