xbox launch: lessons learned

29
Xbox Launch: Lessons Learned Pete Isensee Lead Developer Xbox Advanced Technology Group

Upload: wilson

Post on 17-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

Xbox Launch: Lessons Learned. Pete Isensee Lead Developer Xbox Advanced Technology Group. Presentation Goals. Xbox system team lessons learned Xbox game developer lessons learned How these lessons apply to game development in general. Xbox Launch Goals. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Xbox Launch: Lessons Learned

Xbox Launch:Lessons Learned

Pete IsenseeLead Developer

Xbox Advanced Technology Group

Page 2: Xbox Launch: Lessons Learned

Presentation Goals

Xbox system team lessons learnedXbox game developer lessons learnedHow these lessons apply to game development in general

Page 3: Xbox Launch: Lessons Learned

Xbox Launch Goals

Excellent hardware at reasonable costSuperior software development libraries and toolsLaunch (well before) Christmas 2001Solid lineup of launch titlesIt’s all about games – if it’s not about the games, it’s not a priority

Page 4: Xbox Launch: Lessons Learned

The Version 1.0 Stigma

“Microsoft has a reputation for blowing version 1.0 of whatever it does, then relentlessly improving its products and finally getting it right with version 3.0”

– Houston Chronicle

Xbox unspoken goal: get it right for 1.0

Page 5: Xbox Launch: Lessons Learned

The Hardware

CPU: 733 MHz Pentium IIIGPU: 233 MHz NVIDIA NV2AAudio: NVIDIA MCPXMemory: 64 MBHard Disk: 8 GBDVD: 5x CAVNetwork: Ethernet 10/100 Mb/SControllers: 4 ports

Page 6: Xbox Launch: Lessons Learned

The Numbers – the Xbox

Approval to shelf: 21 monthsSystem software builds: 352Software development kit releases: 20Birthrate: 1 Xbox every 3 secondsXbox consoles sold in 2001: 1.5 million

Page 7: Xbox Launch: Lessons Learned

The Numbers – the Games

Signed developers: 300+Launch titles: 19Titles shipped to date: 50+Games sold in 2001: 4.5 millionCopies of Halo sold to date: 1,000,000+

Page 8: Xbox Launch: Lessons Learned

Postmortem Ad Nauseum

We needed more resources We needed a better schedule The specs were inadequate Marketing didn’t know what it wanted We should communicate better Your group doesn’t understand My group isn’t valued We didn’t build tools soon enough My group knows how to do its job – the other groups don’t

Page 9: Xbox Launch: Lessons Learned

Xbox OS

Based on NT kernelExtremely lean

No virtual memory pagingNo multiple processesOriginal goal: < 1MBXbox kernel runtime: 150K

Lessons learnedTaking advantage of existing technologyKnowing when to create new technologySet goals

Page 10: Xbox Launch: Lessons Learned

Specifications

Spec templateSpecs for major componentsSome minor components were overlookedLessons learned

Specs/design documents are criticalNew hiresProduct documentationPackaging, manuals

Keep them up to date

Page 11: Xbox Launch: Lessons Learned

Library Design

Polling-based rather than event-drivenGame “owns” the hardware

Ring 0 (kernel mode)Direct access to GPU and CPU

Up-front memory allocationLessons learned

Understand your customerGet input from your customer

Page 12: Xbox Launch: Lessons Learned

Library Design

Familiar APIDirect3D, DirectSoundWin32 File I/O

New APIsInput

Lessons learnedConsistency improves the learning curveConsistency can be misleading

Page 13: Xbox Launch: Lessons Learned

Source Code Management

Internal toolPublic checkinsLabelsBranching (demos, patches)Lessons learned

Source code management is essentialCommunicate about source code changes

Page 14: Xbox Launch: Lessons Learned

Assertions

Rest In Peace (RIP) debug protocol

BOOL XFindNextSoundtrack(

HANDLE FindHandle,

PXSOUNDTRACK_DATA pSoundtrackData )

{ RIP((NULL != FindHandle));

RIP((INVALID_HANDLE_VALUE != FindHandle));

RIP((NULL != pSoundtrackData));

. . .

Lessons learnedAssert yourself

Page 15: Xbox Launch: Lessons Learned

Bug Tracking

Internal bug tracking toolBug prioritiesSchedulingResolving and closing

Lessons learnedFix bugs nowVerify fixes

Page 16: Xbox Launch: Lessons Learned

Milestones

Monthly releases of XDKIf feature was baked, it shippedIf feature wasn’t ready, it shipped next month

Lessons learnedThe importance of milestonesCode lockdownsChange process management

Page 17: Xbox Launch: Lessons Learned

Trimming the Feature Set

OnlineDashboardToolsLessons learned

Implement the strategic features firstBe realisticCut early

Page 18: Xbox Launch: Lessons Learned

Quality Assurance

Testers per developerTest plansDaily builds

Build verification tests (smoke test)Stress

Lessons learnedTest earlyTest often

Page 19: Xbox Launch: Lessons Learned

Xbox Hardware

Page 20: Xbox Launch: Lessons Learned

Xbox Hardware

Xbox controller“The chubbiest controller on the market”

- LA Times

Lack of usability testingActual ergonomicsLessons learned

Awareness of a global marketUsability testing

Page 21: Xbox Launch: Lessons Learned

Xbox System Team Tools

Microsoft Visual Studio/Visual C++Word/ExcelSource control (internal tool)Bug tracking (internal tool)Lessons learned

Use the right tools for the jobTake advantage of existing toolsBuild good tools

Page 22: Xbox Launch: Lessons Learned

Xbox Audio

User-created soundtracksIncredible audio hardwareDolby Digital, Dolby 5.1Lessons learned

Simple features can have dramatic impactInvesting in future technology

Page 23: Xbox Launch: Lessons Learned

Xbox Audio

Games not taking advantage of DSP3D reverbOcclusion/Obstruction

Too many 3D positioned soundsPrerendering reverb/filtering into audioLessons learned

Untapped audio capabilitiesDon’t overdo itTake advantage of 9 GB disc and 8 GB HDAvoid silent load screens

Page 24: Xbox Launch: Lessons Learned

Xbox Graphics

Exploiting the shadersGames that don’t fill the disc with contentTexture resolutions too lowIndividual graphics filesLessons learned

Shaders aren’t just for performance winsTake advantage of 9 GB disc and 8 GB HDAuthor at high resolutions; downsample laterBundle assets together

Page 25: Xbox Launch: Lessons Learned

Xbox Graphics

Taking true advantage of the hardwareHDTVAnti-aliasingLessons learned

Porting issuesUnderstanding your audienceMaking tradeoffs

Page 26: Xbox Launch: Lessons Learned

Xbox Hard Disk

8 GB total; 750 MB utility partitionOnline contentSave games and user profilesUntapped potentialLessons learned

Invest in the future (online)Take advantage of the cacheStreaming textures

Page 27: Xbox Launch: Lessons Learned

Xbox International

Xbox DashboardGerman and the 30% ruleFar East fontsNTSC/PAL – 60/50 Hz

Lessons learnedBuild your game as if it were shipping in multiple countriesKeep string resources separate from codeDesign UI with internationalization in mindDon’t tie game logic to frame rate

Page 28: Xbox Launch: Lessons Learned

Summary

Xbox launchShipping on timeShipping without bugsQuality engineering practices

The future of Xbox gamesLifelike graphicsCinema-quality audioOnline playVoice

Page 29: Xbox Launch: Lessons Learned

Questions

http://www.xbox.comPlease fill out your feedback forms