Title: Introduction to XNA Studio
1Introduction to XNA Studio
- Presentation by Joe Nalewabau
- Program Manager Architect,
- XNA Dev team
- Given today by Jeff Pobst,
- Lead Tech Game Manager
- Xbox Advanced Technology Group
2XNA 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 (PDAs, smartphones)
3XNA Background and Research talking with Game
Developers
4XNA Roadmap
- Beta at US GDC - March
- Release in Summer 06
- Showed progress on booked XNA components
- Talked more with Game Developers
- Focus on supporting entire game studios
- Announced XNA Studio
- 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
5Game Technology Map
6XNA Pillars
Design/Content Creation
Game Technology
Process
7XNA Pillar Assessment Core Problems
Each group has their own major issues that exist
across groups of products
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
Not just technology issues integration and
standards issues!
8Other Findings Studio staffing grows towards
content
One example
Dev Studio
Publisher Total
12
52
1 2
39 34
40
Internal Outsourced Art Studio
Programmers 16 18
Content Creators 37 30 74
Producers 2 2
Test 5 6
Total 60 30
130 people at dev house, outsourced group, and
publisher on game
9XNA BuildAddressing Content Management and
Workflow Efficiency
10Content build comments
11Todays content build systems
Todays Content Build
Solution Tenets
- Game specific, homegrown solutions
- Studios should be able to leverage existing
solutions
Advanced build (distributed)
Basic build infrastructure (logging etc)
- Game specific, homegrown solutions
- Studios shouldnt have to worry about this
- Need good tools for creating and maintaining
build scripts - Game specific tools limit investment in
supporting tools
Game specific build tools
- Perl scripts
- Batch files, nmake
- Core technology needs to be robust
- Profiling and debuging a must
Core build technology
12Game content relationships
Game 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
Game Content
13We Believe
- Content relationships are key
- Everyone wants standard ways to describe and
query content relationships - But,
- We cant replace existing relationship
information - Must be useful without complete knowledge
- Acknowledge that not all content is equal
14XNA Build and content relationships
- Establish common relationship store
- Add content build relationships
- Record content relationships as seen by build
tools
- 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
- Query engine for relationships
- Make content relationships available
15XNA Content Build
Todays Content Build
XNA Content Build
- Game specific, homegrown solutions
Advanced build (distributed)
Basic build infrastructure (logging etc)
- Game specific, homegrown solutions
Game specific build tools
- Perl scripts
- Batch files, nmake
Core build technology
16Building 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
-
unused files
17Create New Build File for XNA Build Process
ltProject DefaultTargets"ProcessModelsProcessSoun
dsMakeFastFiles" xmlns"http//schemas.
microsoft.com/developer/msbuild/2003"gt
ltUsingTask TaskName"XnaExecTask"
AssemblyFile"C\WINDOWS\Microsoft.NET\Framework\v
2.0.50727\Microsoft.Xna.XNAExecTask.dll"/gt
ltUsingTask TaskName"ASEConvTask"
AssemblyFile".\utils\tasks\bin\MechCommander2Task
s.dll"/gt ltUsingTask TaskName"XPListTask"
AssemblyFile".\utils\tasks\bin\MechCommander2Task
s.dll"/gt ltUsingTask TaskName"XPFileTask"
AssemblyFile".\utils\tasks\bin\MechCommander2Task
s.dll"/gt ltPropertyGroupgt
ltBuildDirectorygt.\build\lt/BuildDirectorygt
ltDependDirectorygt(BuildDirectory)\depends\lt/Depen
dDirectorygt ltToolsDirectorygt.\tools\lt/ToolsDir
ectorygt ltContentDirectorygt.\content\lt/ContentD
irectorygt ltDataDirectorygt.\content\data\lt/Data
Directorygt ltSoundDirectorygt.\content\sound\lt/S
oundDirectorygt ltRSPDirectorygt.\content\respons
efiles\lt/RSPDirectorygt ltFastFileDirectorygt.\co
ntent\fastfiles\lt/FastFileDirectorygt
lt/PropertyGroupgt ltItemGroupgt ltArtFastFiles
Include"(ArtDirectory)\.tga"/gt
ltArtFastFiles Include"(ArtDirectory)\.fit"/gt
ltArtFastFiles Include"(ArtDirectory)\.csv"/gt
ltArtFastFiles Include"(ArtDirectory)\.exe"/
gt
18Execute 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
19Raw Log Output of Build Steps
Currently support, XML, HTML, RSS outputs
- lt?xml version"1.0" encoding"utf-16"?gt
- ltFileTracker xmlnsFileTracker"http//tempuri.org
/XMLSchema.xsd"gt - ltTool Path"c\xna\mc2\tools\xpfile.exe"
DateAdded"10/22/2005 004120"
DateUpdated"05/18/2005 194800" Version"0"
Ignore"0" CommandLine"c\xna\mc2\tools\xpfile.ex
e -r .\content\responsefiles\\misc.rsp
.\content\fastfiles\\misc.fst -z 20480000"gt - ltRoots Files"C\XNA\MC2\CONTENT\RESPONSEFILES
\MISC.RSP"gt - ltRoot Path"C\XNA\MC2\CONTENT\RESPONSEFILES
\MISC.RSP" DateAdded"11/21/2005 212515"
DateUpdated"11/21/2005 212515" Version"0"
Ignore"0" gt - ltDependency Path"C\XNA\MC2\CONTENT\DATA\
EFFECTS\MC2.FX" DateAdded"10/22/2005 004559"
DateUpdated"05/06/2005 210100" Version"0"
Ignore"0" /gt - ltDependency Path"C\XNA\MC2\CONTENT\DATA\
OBJECTS\2CIVLIVING.FIT" DateAdded"10/22/2005
004517" DateUpdated"05/06/2005 210200"
Version"0" Ignore"0" /gt - ltDependency Path"C\XNA\MC2\CONTENT\DATA\
OBJECTS\2STORYCIVLIVING.FIT" DateAdded"10/22/2005
004517" DateUpdated"05/06/2005 210200"
Version"0" Ignore"0" /gt - ltDependency Path"C\XNA\MC2\CONTENT\DATA\
OBJECTS\AC.FIT" DateAdded"10/22/2005 004517"
DateUpdated"05/06/2005 210200" Version"0"
Ignore"0" /gt -
20Generated Build Execution Report
- Build Report
- Summary
- Projectc\xna\mc2\mc2.xbs
- Total build time 0 hours 7 min 22.262s
- ProcessModels 392.01s
- ProcessSounds 38.41s
- MakeArtFastFile 95.84s
- MakeMissionFastFile 47.93s
- MakeMiscFastFile 12.48s
- MakeTGLFastFile 161.81s
- MakeTextureFastFile 135.75s
- MakeFastFiles 0.00s
- 0 Error(s)
- 0 Warning(s)
21Sample Read Analysis
.csv file output as well as HTML, XML, and RSS
load into Excel and Pivot table to your hearts
content!
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
22Sample 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
23MechCommander 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 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
24Work 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
25XNA StudioAddressing Process and day-to-day
operations
26Content build comments
27Visual 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
28Visual Studio 2005 Work Items
- Similar to typical bugs in structure
- Both information and workflow in task
- MSs internal bug system productized
- Supports multiple task/bug types and allows for
custom types - Programmer can see work items in Visual Studio
29Visual 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
30Visual 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
31Visual 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
32XNA Studio Expanding these tools further to
include Content Creators and Producers
33Summary
- XNAs 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!
34(No Transcript)