1 / 34

Introduction to XNA Studio

Introduction 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. XNA Team Mission Statement.

Download Presentation

Introduction to XNA Studio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction 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

  2. 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)

  3. XNA Background and Research talking with Game Developers

  4. 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 • 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

  5. Game Technology Map

  6. XNA Pillars Design/Content Creation Process Game Technology

  7. XNA Pillar Assessment – Core Problems Each group has their own major issues that exist across groups of products Not just technology issues – integration and standards issues!

  8. Other Findings: Studio staffing grows towards content… One example: Dev Studio 130 people at dev house, outsourced group, and publisher on game

  9. XNA BuildAddressing Content Management and Workflow Efficiency

  10. 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. I can’t tell you the number of times a build has failed because someone forgot to check something in We don’t delete anything from our source code control system because we don’t know what is connected to what. We just don’t have enough knowledge about what needs to be rebuilt to do incremental builds Content build comments:

  11. Complex content build scripts • Über tool builds everything • Intimate knowledge of content Today’s content build systems Today’s 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 shouldn’t 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

  12. Game Tools DCC Tools Studio Tools Asset Management Work Items Build Game content relationships • 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

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

  14. Relationship Store Work Items Asset Mgmt 1 2 3 4 4 3 2 1 XNA Build and content relationships • Add content build relationships • Record content relationships as seen by build tools • Establish common relationship store • 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

  15. XNA Build • Incremental builds • Distributed build support • XNA Build • HTML, XML, RSS build logging • Deployment for MS platforms • Debugging • XNA Build • Monitor and record game build tools into relationship store • Use for 1st build optimizations • Great editing environment • Complex content build scripts • Über tool builds everything • Intimate knowledge of content • MSBuild • Robust and extensible • Visual Studio build engine • Ships with .NET 2.0 XNA Content Build Today’s 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

  16. .ASE Mech.ini .ASE … .tga .tga .tga .tga .tga 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… unused files

  17. 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"/>

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

  19. Raw Log Output of Build Steps Currently support, XML, HTML, RSS outputs… <?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" /> …

  20. Generated Build Execution Report Build Report Summary Project:c:\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) Detailled output per target ProcessModels .\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

  21. Sample Read Analysis .csv file output as well as HTML, XML, and RSS – load into Excel and Pivot table to your heart’s content!

  22. Sample Write Analysis

  23. 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 game

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

  25. XNA StudioAddressing Process and day-to-day operations

  26. 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 We have two source code control systems: one for code and one for content. It’s a hassle managing and coordinating both. Artists don’t have the right tools to put things into the system. The asset wrangler puts things in the right places. Content build comments

  27. 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 Team System

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

  29. Scalable and robust • Integrated check in with work items • Extensible check in rules • Accessed through web services or .NET API 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

  30. Scripted nightly build • Generates reports • Code coverage, Unit tests • Bugs fixed, Bug Trends 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

  31. 2 way sync with MS Project, Excel • Project Portal • Access to high-level project information • Web access work items 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

  32. Game Content Creator Game Producer • 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 Work Items Source Code Control • Publisher specific reports • Milestone etc Build Automation Project Management XNA Studio – Expanding these tools further to include Content Creators and Producers

  33. 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!

More Related