xna studio: introduction to xna brian keller product manager microsoft corporation
TRANSCRIPT
XNA Studio: Introduction to XNAXNA Studio: Introduction to XNA
Brian KellerProduct ManagerMicrosoft Corporation
XNA MissionXNA Mission
XNA enables studios and publishers to develop better games, more
effectively, on all platforms
XNA Timeline XNA Timeline
Challenging questions:Assume identical SDKs, how much more effective are studios?How are we helping studios manage the transition from code to content?
Windows and Xbox tools convergence XACT, PIX
Common Controller, Live on Windows
SDK teams committed to this effort for current and new tools
Showed progress on tools convergence
Announced “XNA Studio”
Tech Preview at GDC
XNA BackgroundXNA Background
Game Technology Map Game Technology Map Realtime Rendering
RAD Games Tools PixomaticATI Radeon
Nvidia GeForce
Realtime Video Renderer
Creative SoundblasterREALTEK AC’97
Nvidia NForce
Realtime Audio Renderer
Simulation Technology
Criterion Renderware AIBiographic AI.implant
Ikuni
AI
LUAPython
JavaUnrealScript
Scripting Lang
C#, VB, C++
HavokCriterion Renderware Phyiscs
Novodex Novodex Physics
Physics Engine
Advanced Media OmiVoice
Voice Recognition
Multiplayer Technology
Quazal Net-ZTerraplay
Demonware BitDemon Butterfly Butterfly.NET
Networking
DirectPlay Winsock
Zona TerraZonaBigworld Bigworld
MMOG
GameSpy GameSpySega SNAPValve Steam
Online Services
Live
Audio Content
RAD Game Tools MilesCreative Labs Sensaura
CRI ADX Firelight FMOD Sound System
Audio
XACTDirectSound
Mesh/Material Content
PixoLogic Z-BrushInteractive Fx Amazon PaintRight Hemisphere Deep PaintRight Hemisphere Deep UV
3D Image Editor
Adobe PhotoshopJASC Paintshop PRO
Corel PainterWeb Technology Optpix iMageStudio
Image Editor
Rt/zen RT/Shader
Shader - Creation
Nvidia FX ComposerATI RenderMonkey
Shader - Composers
3D Editors
Animation Content
Third Wish Software MagpieOC3 Impersonator
Lip Sync
BiovisionMotion Analysis
Vicon Motion Systems
Motion Capture
Kaydara MotionBuilderRAD Game Tools Granny 3D
Natural Motion EndorphinCurious Labs Poser
Animation Editor
Cinematic Content
Pixar PRManMental Images Mental Ray
Splutterfish BrazilNvidia Gelato
Offline Renderer
Adobe PremierAVID Xpress
Adobe AfterEffectsDiscreet CombustionNewtek Digital Fusion
Compositing Editor
RAD Game Tools Bink CRI Sofdec
Factor 5 DivX
Video Playback
Process
MetroworksSN Systems
Dev Tools
Visual Studio
Intel VtuneSony Performance
Analyzer
Profilers
PIX
Xoreax IncrediBuildJetFrog JetBuild
Build Tools
MS Build
Alias MayaDiscreet 3D Studio Max
SoftImage XSI Newtek Lightwave
3D Editor
Game Engines
Criterion Renderware Graphics Epic Unreal
NDL Gamebyro (NetImerrse) Touchdown Entertainment Jupiter
Id Quake/DoomValve Half Life 2
Crytek CryEngine Vicarious Visions Intrinsic Alchemy
Spinor GmbH Shark 3D Trinigy GmbH Vision
Virtools (Prototyping)
Game Engines
Singular Inversions FaceGenVirtual Clones
Face Generation
Criterion Renderware Studio
Studio
Game Asset ConversionGame Asset Conversion
Converters
Right Hemisphere Deep Exploration Okino Polytrans
Converters
UI Creation/Menus
Macromedia Flash Secret Level Flash Player
Anark GameFaceCriterion Maestro
UI Creation/Menus
Compuware SoftICE
Debugger
Visual Studio
BugZilla
Bug Tracking
PerforceCVS
Subversion
Source Management
VS SourceSafeVS Team System
OSS DocbookDoxygen
ndoc
Document Generation
HTML HelpCakewalk Cakewalk ProSonic Foundry Sound Forge
Adobe AuditionDigidesign ProTools
OSS Audacity
Audio Editors
Alienbrain
Asset Management
World/Level Editors
World/Level Editors
Test Tools
GamePlay Analysis
XNA PillarsXNA PillarsDesign/Content CreationDesign/Content Creation Game TechnologyGame TechnologyProcessProcess
Process/Build
Asset Management
Test Tools
Developer Tools
Game TechnologyDesign/Content Creation
Hybrid Holdings dPVS
Misc
Realtime Rendering
RAD Games Tools PixomaticATI Radeon
Nvidia GeForce
Realtime Video Renderer
Creative SoundblasterREALTEK AC’97
Nvidia NForce
Realtime Audio Renderer
Simulation Technology
Criterion Renderware AI Biographic AI.implant
Ikuni
AI
LUAPython
JavaUnrealScript
Scripting Lang
C#, VB, C++
HavokCriterion Renderware Phyiscs
Novodex Novodex Physics
Physics Engine
Advanced Media OmiVoice [Xb]
Voice Recognition
Multiplayer Technology
Quazal Net-ZTerraplay
Demonware BitDemon Butterfly Butterfly.NET
Networking
DirectPlay Winsock
Zona TerraZonaBigworld Bigworld
MMOG
GameSpy GameSpySega SNAPValve Steam
Online Services
Live
Audio Content
MetroworksSN Systems
Dev Tools
Visual Studio
Game Engines
Micro Forte BigWorldCriterion Renderware Graphics
Epic Unreal NDL Gamebyro (NetImerrse)
Touchdown Entertainment Jupiter Id Quake/DoomValve Half Life 2
Crytek CryEngine Vicarious Visions Intrinsic Alchemy
Spinor GmbH Shark 3D Trinigy GmbH Vision
Virtools (Prototyping)
Game Engines
Criterion Renderware Studio
Studio
Mesh/Material Content
PixoLogic Z-BrushInteractive Fx Amazon PaintRight Hemisphere Deep Paint Right Hemisphere Deep UV
3D Image Editor
Adobe PhotoshopJASC Paintshop PRO
Corel PainterWeb Technology Optpix iMageStudio
Image Editor
Rt/zen RT/Shader
Shader - Creation
Nvidia FX ComposerATI RenderMonkey
Shader - Composers
Singular Inversions FaceGenVirtual Clones
Face Generation
3D Editors
Alias MayaDiscreet 3D Studio Max
SoftImage XSI Newtek Lightwave
3D Editor
Animation Content
Third Wish Software MagpieOC3 Impersonator
Lip Sync
BiovisionMotion Analysis
Vicon Motion Systems
Motion Capture
Kaydara MotionBuilderRAD Game Tools Granny 3D
Natural Motion EndorphinCurious Labs Poser
Animation Editor
Cinematic Content
Compositing Editor
RAD Game Tools BinkCRI Sofdec
Factor 5 DivX
Video Playback
Pixar PRManMental Images Mental Ray
Splutterfish BrazilNvidia Gelato
Offline Renderer
RAD Game Tools MilesCreative Labs Sensaura
CRI ADX Firelight FMOD Sound System
Audio
XACTDirectSound
Design Tool Format Converters
Game Asset Conversion
Game Asset Conversion
Compuware SoftICE
Debugger
Visual Studio
BugZilla
Bug Tracking
Intel VtuneSony Performance
Analyzer
Profilers
PIX
PerforceCVS
Subversion
Source Management
VS SourceSafeVS Team System
Alienbrain
Asset Management
Cakewalk Cakewalk ProSonic Foundry Sound Forge
Adobe AuditionDigidesign ProTools
OSS Audacity
Audio Editors
Right Hemisphere Deep Exploration Okino Polytrans
Converters
UI Creation/Menus
Macromedia Flash Secret Level Flash Player
Anark GameFaceCriterion Maestro
UI Creation/Menus
World/Level Editors
World/Level Editors
Test Tools GamePlay Analysis
Xoreax IncrediBuildJetFrog JetBuild
Build Tools
MS Build
OSS DocbookDoxygen
ndoc
Document Generation
HTML Help
Adobe PremierAVID Xpress
Adobe AfterEffectsDiscreet CombustionNewtek Digital Fusion
Design and Content CreationDesign and Content Creation
Design and content creation commentsDesign and content creation comments
We need to build games for multiple platforms.
We don’t delete anything from source code
control.
We need better systems for managing how content is created. Our current system is barely handling 40+
artists and designers, let alone any outsourcing.
Our content builds all use different technologies. Tracking down problems between build scripts
and build tools can be very difficult.
It’s all about rapid iteration.
We often have problems because someone forgot to check something in.
Today’s content build systemsToday’s content build systems
Core build technology
Game specific
build tools
Basic build infrastructur
e (logging etc)
Advanced build
(distributed)
1.Complex content build scripts
2.Über tool builds everything• Intimate knowledge of
content
•Perl scripts•Batch files, nmake•…
Today’s Content Build
•Game specific, homegrown solutions
•Game specific, homegrown solutions
• Poor experience creating and maintaining build scripts
• Game specific tools limit potential investment
•Core technology not robust•Hard to log, profile and debug
•Studios should be able to leverage existing solutions
•Studios should get this from core build technology
Observations
Game content relationshipsGame content relationships
Game Tools
Work Items
Build
Studio Tools
Game ContentAsset
Management
DCC Tools Huge quantities of content being created with complex relationships
Most tools store content relationships in tool specific ways
Content storage, production and build tools have limited knowledge of relationships
Custom knowledge of relationships is required to become more efficientLimited time/incentive means no common system is evolving
We know that…We know that…
Content relationships are keyEveryone wants standard ways to describe and query content relationships
But, Can’t replace existing relationship informationMust be useful without complete knowledgeAcknowledge that not all content is equal
XNA BuildXNA Build
Core build technology
Game specific
build tools
Basic build infrastructur
e (logging etc)
Advanced build
(distributed)
1.Complex content build scripts
2.Über tool builds everything• Intimate knowledge of
content
•Perl scripts•Batch files, nmake•…
Today’s Content Build
•Game specific, homegrown solutions
•Game specific, homegrown solutions
MSBuild• Robust and extensible • Visual Studio build engine • Ships with .NET Framework
2.0
•Monitor and record game build tools into relationship store
•Use for 1st build optimizations
•Great editing environment
•HTML, XML, RSS build logging
•Deployment for MS platforms •Debugging
•Incremental builds•Distributed build support
XNA Build
XNA and content relationshipsXNA and content relationships
Work Items
1.Build tools add build relationships
3.Query engine for relationships• Who depends on this content?• Is this content used?• Who signed off on this content?• What changed in the level last month?
Relationship
Store
Asset Mgmt
2.Content tools opt-in• Simple API used to record relationships
Does NOT replacing existing relationships
• Working with DCC vendors• Studios decide whether and how much
to use this for their tools
1
4
1.Establish common relationship store
3
2
1
2
3
4
Building MechCommander 2 using XNA BuildWhat are the implications of changing this texture?Building MechCommander 2 using XNA BuildWhat are the implications of changing this texture?
Mech.ini
.tga
.ASE .ASE…
.tga
.tga
.tga
.tga
MechCommander 2XNA Build observationsMechCommander 2XNA Build observations
Incremental builds were dramatically reduced
Added benefits:Anybody in the studio can easily query this information
Build dependencies easily surfaced
10% of models not used in build
Additional relationship information revealed 40% of shipped textures were not used in game
Build Type One asset changed No content changed
Original Build System (Code + Content)
384 seconds 380 seconds
With XNA Build(Code + Content)
61-268 seconds (depending on
asset)
27 seconds
Performance Gain Up to 6x faster 14x faster
“XNA Studio”“XNA Studio”
Process commentsProcess comments
We have good core systems, but we don’t have the right interfaces to them and that leads to
mistakes. Having an asset wrangler has helped a lot but we’d like to get it right the first time.
Good tools exist for different things but they aren’t integrated.
Programmers use Project and our bug system, the art team and design team use Excel and the producers use Project when talking to the publisher . Finding
out current status is a full-time job
We store most of our content in our source code control system but we keep large files in a
share that gets backed up every week.
Visual Studio 2005 Team System
Work Items
Source Code Control
Build Automation
Project Management
•Extensible work items• Customize work item: fields, states and
rules
•Link work items to check-ins, reports etc
•Notifications of work items assigned to you•Scalable and robust
•Integrated check in with work items•Extensible check in rules•Accessed through web services or .NET
API
•Scripted nightly build•Generates reports
•Code coverage, Unit tests•Bugs fixed, Bug Trends
•2 way sync with MS Project, Excel•Project Portal
•Access to high-level project information
•Web access work items
GameContentCreator
GameProducer
“XNA Studio”
•Example content work items:•Art, design audio…
•Studios customize for themselves
•Integrate asset management into DCC tools
•Enable code style checks for content•Customizing system for game content
•Size, capacity, history management •Asset viewers, diffs etc
•Develop content build tasks•Build content reports
•Asset trends, Build/footprint trends
•Publisher specific reports•Milestone etc
Work Items
Source Code Control
Build Automation
Project Management
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
XNA Homehttp://www.microsoft.com/xna
Feedback / [email protected]
© 2006 Microsoft Corporation. All rights reserved.Microsoft, DirectX, Xbox 360, the Xbox logo, and XNA are either registered trademarks or trademarks of Microsoft Corporation in the United Sates and / or
other countries.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.