Date post: | 18-Dec-2015 |
Category: |
Documents |
Upload: | rachel-brown |
View: | 226 times |
Download: | 1 times |
Introduction to XNA Studio
Presentation by Joe NalewabauProgram Manager Architect,XNA Dev team
Given today by Jeff Pobst,Lead Tech Game ManagerXbox Advanced Technology Group
XNA Team Mission Statement
XNA enables studios and publishers to develop better games, more effectively, on
all platforms
All platforms = All platforms
When you hear “Microsoft Platforms” we mean:Windows (current / future), Xbox (current / next-gen), and Mobile devices (PDA’s, smartphones)
XNA Background and Research talking with Game Developers
XNA Roadmap
• XNA announcement– DirectX SDK and XDK tools convergence – Direct X, HLSL– XACT, PIX– Common Controller – Live on Windows
• Windows and Xbox teams working on these components
• Showed progress on booked XNA components • Talked more with Game Developers• Focus on supporting entire game studios • Announced XNA Studio
• Beta at US GDC - March• Release in Summer 06
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 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
XNA Pillar Assessment – Core Problems
Design Content Creation
• Instant Preview • Changes to content tools or game engine can break
production• Content build is game specific and often not reliable• Workflow between content creators is ad-hoc
Process • Process tools built for programmers with little integration• Code and content build systems are different • Lack of industry wide testing tools
Game Technology
• Lack of standard scripting languages and tool sets• Non-game UI takes considerable development time
Each group has their own major issues that exist across groups of products
Not just technology issues – integration and standards issues!
Other Findings: Studio staffing grows towards content…
Internal Outsourced Art
Studio %
Programmers 16 18%
Content Creators 37 30 74%Producers 2 2%
Test 5 6%Total 60 30
Publisher Total %
12%
52%
1 2%
39 34%
40
Dev Studio
130 people at dev house, outsourced group, and publisher on game
One example:
XNA Build
Addressing Content Management and Workflow Efficiency
Content build comments:We need to build games for multiple platforms.
Content builds fail all the time, sometimes it’s easy to spot, but sometimes it takes forever.
We just don’t have enough knowledge about what needs to be rebuilt to do incremental builds
We don’t delete anything from our source code control system because we don’t
know what is connected to what.
I can’t tell you the number of times a build has failed because someone forgot to check
something in
Today’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
• Need good tools for creating and maintaining build scripts
• Game specific tools limit investment in supporting tools
•Core technology needs to be robust
•Profiling and debuging a must
•Studios should be able to leverage existing solutions
•Studios shouldn’t have to worry about this
Solution Tenets
Game 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 efficient
– Limited time/incentive means no common system is evolving
We Believe:
• Content relationships are key– Everyone wants standard ways to describe and
query content relationships
• But, – We can’t replace existing relationship
information– Must be useful without complete knowledge– Acknowledge that not all content is equal
XNA Build and content relationships
Work Items
1.Add content build relationships – Record content relationships as seen
by build tools
3.Query engine for relationships• Make content relationships available
Relationship
Store
Asset Mgmt
2.Add production content relationships• Simple API used to record relationships
• Does NOT replacing existing relationships Working with DCC vendors for output Studios decide how to use this for their
tools
1
4
1.Establish common relationship store
3
2
1
2
3
4
XNA Content 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 2.0
XNA Build•Monitor and record game build tools into relationship store
•Use for 1st build optimizations
•Great editing environment
XNA Build•HTML, XML, RSS build logging
•Deployment for MS platforms •Debugging
XNA Build•Incremental builds•Distributed build support
XNA Content Build
Building MechCommander2 using XNA Build
• Create build file using existing tools and processes
• Execute build file to not only build game, but record the file read and write dependencies
• Future builds identify changed files and only build dependant targets
• Analyze data to find dependencies and also…
Mech.ini
.tga
.ASE .ASE…
.tga .tga
.tga .tga
unused files
Create New Build File for XNA Build Process<Project DefaultTargets="ProcessModels;ProcessSounds;MakeFastFiles"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="XnaExecTask" AssemblyFile="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Xna.XNAExecTask.dll"/>
<UsingTask TaskName="ASEConvTask" AssemblyFile=".\utils\tasks\bin\MechCommander2Tasks.dll"/> <UsingTask TaskName="XPListTask" AssemblyFile=".\utils\tasks\bin\MechCommander2Tasks.dll"/> <UsingTask TaskName="XPFileTask" AssemblyFile=".\utils\tasks\bin\MechCommander2Tasks.dll"/>
<PropertyGroup> <BuildDirectory>.\build\</BuildDirectory> <DependDirectory>$(BuildDirectory)\depends\</DependDirectory> <ToolsDirectory>.\tools\</ToolsDirectory> <ContentDirectory>.\content\</ContentDirectory> <DataDirectory>.\content\data\</DataDirectory> <SoundDirectory>.\content\sound\</SoundDirectory> <RSPDirectory>.\content\responsefiles\</RSPDirectory> <FastFileDirectory>.\content\fastfiles\</FastFileDirectory> </PropertyGroup>
<ItemGroup> <ArtFastFiles Include="$(ArtDirectory)\*.tga"/> <ArtFastFiles Include="$(ArtDirectory)\*.fit"/> <ArtFastFiles Include="$(ArtDirectory)\*.csv"/> <ArtFastFiles Include="$(ArtDirectory)\*.exe"/>
Execute XNA Build
• New Build file has target tags – tying building to resources created
• Run new build file to build product using same tools as always
• In addition to building game, relationship store is populated:– All file reads– All file writes– File reads and writes per target created– Information about the creation and update of
each target stored
Raw Log Output of Build Steps
<?xml version="1.0" encoding="utf-16"?><FileTracker xmlns:FileTracker="http://tempuri.org/XMLSchema.xsd"> <Tool Path="c:\xna\mc2\tools\xpfile.exe" DateAdded="10/22/2005 00:41:20"
DateUpdated="05/18/2005 19:48:00" Version="0" Ignore="0" CommandLine="c:\xna\mc2\tools\xpfile.exe -r .\content\responsefiles\\misc.rsp .\content\fastfiles\\misc.fst -z 20480000">
<Roots Files="C:\XNA\MC2\CONTENT\RESPONSEFILES\MISC.RSP"> <Root Path="C:\XNA\MC2\CONTENT\RESPONSEFILES\MISC.RSP"
DateAdded="11/21/2005 21:25:15" DateUpdated="11/21/2005 21:25:15" Version="0" Ignore="0" >
<Dependency Path="C:\XNA\MC2\CONTENT\DATA\EFFECTS\MC2.FX" DateAdded="10/22/2005 00:45:59" DateUpdated="05/06/2005 21:01:00" Version="0" Ignore="0" />
<Dependency Path="C:\XNA\MC2\CONTENT\DATA\OBJECTS\2CIVLIVING.FIT" DateAdded="10/22/2005 00:45:17" DateUpdated="05/06/2005 21:02:00" Version="0" Ignore="0" />
<Dependency Path="C:\XNA\MC2\CONTENT\DATA\OBJECTS\2STORYCIVLIVING.FIT" DateAdded="10/22/2005 00:45:17" DateUpdated="05/06/2005 21:02:00" Version="0" Ignore="0" />
<Dependency Path="C:\XNA\MC2\CONTENT\DATA\OBJECTS\AC.FIT" DateAdded="10/22/2005 00:45:17" DateUpdated="05/06/2005 21:02:00" Version="0" Ignore="0" />
…
Currently support, XML, HTML, RSS outputs…
Generated Build Execution ReportBuild ReportSummaryProject:c:\xna\mc2\mc2.xbs Total build time: 0 hours 7 min 22.262s
ProcessModels 392.01sProcessSounds 38.41sMakeArtFastFile 95.84sMakeMissionFastFile 47.93sMakeMiscFastFile 12.48sMakeTGLFastFile 161.81sMakeTextureFastFile 135.75sMakeFastFiles 0.00s
0 Error(s)
0 Warning(s)
Detailled output per targetProcessModels
.\tools\aseconv.exe 2CivLiving.ini 2CivLivingEnc.ini 2StoryCivLiving.ini 2StoryCivLivingEnc.ini Aerospotter.ini airstrikemarker.ini ambulance.ini AmbulanceProp.ini AmmoDump.ini AmmoDumpEnc.ini anubis.ini AnubisLeftArm.ini AnubisRightArm.ini apc.ini armoredcar.ini ArmoredCarProp.ini ArtilleryPiece.ini atlas.ini atlasleftarm.ini AtlasRightArm.ini AutocannonCamo1.ini AutocannonCamo1Enc.ini AutocannonCamo2.ini AutocannonCamo2Enc.ini AutocannonCamo3.ini AutocannonCamo3Enc.ini AutocannonCamo4.ini AutocannonCamo4Enc.ini AutoCannonPopup.ini AutoCannonPopupEnc.ini Barracks.ini BarracksEnc.ini Barrels.ini birch1.ini Birch1Dead.ini birch2.ini birch2dead.ini birch3.ini birch3dead.ini bloodasp.ini bloodaspleftarm.ini bloodasprightarm.ini bluebeaconlight.ini bridge.ini Bridge5.ini BTurretControl.ini BTurretControlEnc.ini BurningTrashBarrel.ini bushwacker.ini BushwackerLeftArm.ini BushwackerRightArm.ini cactus1.ini cactus2.ini Cactus3.ini Cactus4.ini CamoNetting.ini cargotruck.ini CargoTruckProp.ini
Sample Read Analysis
Count of File Read
Root File Total
C:\XNA\MC2\CONTENT\RESPONSEFILES\TGL.RSP 2328
C:\XNA\MC2\CONTENT\RESPONSEFILES\TEXTURES.RSP 1371
C:\XNA\MC2\CONTENT\RESPONSEFILES\MISSION.RSP 1345
C:\XNA\MC2\CONTENT\RESPONSEFILES\MISC.RSP 1241
C:\XNA\MC2\CONTENT\RESPONSEFILES\ART.RSP 664
C:\XNA\MC2\CONTENT\SOUND\BETTY\BETTY.RSP 55
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT1.RSP 43
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT10.RSP 43
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT11.RSP 43
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT13.RSP 43
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT15.RSP 43
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT17.RSP 43
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT19.RSP 43
C:\XNA\MC2\CONTENT\SOUND\PILOTS\PILOT20.RSP 43
.csv file output as well as HTML, XML, and RSS – load into Excel and Pivot tableto your heart’s content!
Sample Write Analysis
File Written Total
C:\XNA\MC2\CONTENT\DATA\TGL\2CIVLIVING.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2CIVLIVINGDAM.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2CIVLIVINGDAMX.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2CIVLIVINGENC.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2CIVLIVINGL1.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2CIVLIVINGX.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2STORYCIVLIVING.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2STORYCIVLIVINGDAM.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2STORYCIVLIVINGDAMX.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2STORYCIVLIVINGENC.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2STORYCIVLIVINGL1.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\2STORYCIVLIVINGX.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\AEROSPOTTER.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\AEROSPOTTERDAM.TGL 1
C:\XNA\MC2\CONTENT\DATA\TGL\AEROSPOTTERL1.TGL 1
MechCommander 2XNA Build observations
• Build times were dramatically reduced as new tool understood dependencies better than previous homebrew system
• Added benefits:– Data is now pivotable!
• Build dependencies easily surfaced
– Additional relationship information revealed• 40% of shipped textures were not used in game40% of shipped textures were not used in game
Build Type No content changed One asset changed
Original Build System 132 seconds 134 seconds
With XNA Build 6 seconds 33 seconds
Performance Gain 22x faster 4x faster
Work Remains until Beta Release
• GUI front-end for tools• Additional optimizations • Additional reporting options and
analysis
•Beta at US GDC - March•Release in Summer 06
XNA Studio
Addressing Process and day-to-day operations
Content build comments
Artists don’t have the right tools to put things into the system. The asset wrangler puts things in the right
places.
We have two source code control systems: one for code and one for content. It’s a hassle managing and coordinating both.
Programmers track progress through Project and our bug system, the art team and design team
use Excel and the producers use Project. Finding out current status is a full-time job
Visual Studio 2005 Team System
• VS 2005 – new role based products– Modeling for Architects– Web testing tools for
QA– Code Profiling for Devs
• All built on Team Foundation Server
• 4 key elements to TFS
Work Items
Source Code Control
Build Automation
Project Management
Visual Studio 2005 Work Items
• Similar to typical “bugs” in structure
• Both information and workflow in “task”
• MS’s internal bug system productized
• Supports multiple task/bug types and allows for custom types
• Programmer can see work items in Visual Studio
•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
Visual Studio 2005 Source Control
• Source Control based on SQL Server 2005– ROBUST!– Scalable!
• Supports integrating work item or bug completion with check-in
• Also supports custom processes – check-in tests, etc.
• Can be accessed through web services or.NET APIs for further integration with other systems
•Scalable and robust•Integrated check in with work items•Extensible check in rules•Accessed through web services or .NET
API
Visual Studio 2005 Build Automation• VS 2005 ships will full
support for build server integration
• Automated builds can tie in to workflow and asset management
• Data Analysis on builds, check-ins, etc. can be automatically available to project managers on regular basis
•Scripted nightly build•Generates reports
•Code coverage, Unit tests•Bugs fixed, Bug Trends
Visual Studio 2005 Project Management• SQL database of all
assets, work items, check-in data, etc. opens up new possibilities– Two way
synchronization with Excel and Project files on planned and actuals
– Web access to data, design the information output that you care about
•2 way sync with MS Project, Excel•Project Portal
•Access to high-level project information
•Web access work items
GameContentCreator
GameProducer
XNA Studio – Expanding these tools further to include Content Creators and Producers
•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
Summary
• XNA’s mission is to solve problems that allow you (the game creator) to spend more of your time on the entertainment part of your product!
• XNA Build and XNA Studio / Visual Studio 2005 are first steps in providing solutions for digital content creators, producers, and game programmers
• Beta due out in March 2006!