120 likes | 271 Views
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
E N D
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 5th year senior CS major • Lead Developer for a Microsoft DreamBuildPlay finalist game, “Sprockets of Strife” • http://www.teamsprockets.com
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.. 3.2 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 • http://creators.xna.com/ • http://forums.xna.com/