12
C# Game Development with XNA Philip Degarmo

C# Game Development with XNA

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: C# Game Development  with XNA

C# Game Development with XNA

Philip Degarmo

Page 2: C# Game Development  with XNA

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

Page 3: C# Game Development  with XNA

Purpose of XNA

• Make game development easier and faster for the hobbyist developer

Page 4: C# Game Development  with XNA

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.

Page 5: C# Game Development  with XNA

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)

Page 6: C# Game Development  with XNA

How can XNA be used?

• Visualization

• GPGPU

• Skill Building

Page 7: C# Game Development  with XNA

Visualization

• Very easy to integrate your C# code into an XNA application

• Possible to integrate with .net Windows Forms

Page 8: C# Game Development  with XNA

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++

Page 9: C# Game Development  with XNA

Getting Skills

• Practice with performance-sensitive C#

• Opportunities to learn some very cool algorithms– Spatial Partitioning (BSP/Octrees)– Path Finding

• Portfolio work

Page 10: C# Game Development  with XNA

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

Page 11: C# Game Development  with XNA

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”

Page 12: C# Game Development  with XNA

Resources

• aclysma at gmail dot com

• http://creators.xna.com/

• http://forums.xna.com/