C# Game Development with XNA Philip Degarmo
Introduction What is XNA? –Microsoft’s replacement for “Managed DirectX” –“XNA” = “XNA Game Studio” – de facto but wrong –All VS SKUs supported (including express) –Only C# supported Who am I? –Texas A&M 5 th year senior CS major –Lead Developer for a Microsoft DreamBuildPlay finalist game, “Sprockets of Strife”
Purpose of XNA Make game development easier and faster for the hobbyist developer
Basic Features XBOX*/Windows cross-platform abstraction –Graphics –Sound –Input –Networking –and many other things Limited Zune Support (3.0 preview only) XBOX Live Publishing –“Community Games” –Commercial * - XBOX development costs $99/year or $49/4 months. PC development and all tools are completely free.
Setup Download from creators.xna.com Run the installer XNA Game Studio 2.0 requires VS 2005 SP1, any SKU (including express) XNA Game Studio 3.0 preview requires 2008, any SKU (including express)
How can XNA be used? Visualization GPGPU Skill Building
Visualization Very easy to integrate your C# code into an XNA application Possible to integrate with.net Windows Forms
GPGPU General purpose use of the GPU –Massively parallel stream processing –Becoming more common in everyday desktop computers XNA Graphics is a very thin abstraction –API calls are fairly direct –API calls closely mirror C++/DirectX –HLSL is compiled and runs on the GPU –MUCH easier to play with the GPU than it is in C++
Getting Skills Practice with performance-sensitive C# Opportunities to learn some very cool algorithms –Spatial Partitioning (BSP/Octrees) –Path Finding Portfolio work
XNA Shortcommings XBOX Performance –4 cores GHz.. No problem right? –No out-of-order execution –Compact framework GC, stiffer penalties for collection and creation Object pools can alleviate this –Inlining isn’t as good as PC Manual inlining can potentially yield a major speed improvement in a pinch
Outlook Adoption by games industry –Some in tools, casual games –No big $$$$ games – but that’s not XNA’s purpose! Long term support –Replaces “Managed DirectX”
Resources aclysma at gmail dot com