240 likes | 520 Views
Presentation/Presenter Title Slide Introduction to Microsoft XNA and how it can affect you and your children … presented by Jon Davis From Manual to Managed Code Windows 95 era: Game developers begged for better (abstracted) access to hardware resources Microsoft came up with DirectX
E N D
Presentation/Presenter Title Slide Introduction to Microsoft XNAand how it can affect you and your children …presented by Jon Davis
From Manual to Managed Code • Windows 95 era: Game developers begged for better (abstracted) access to hardware resources • Microsoft came up with DirectX • People were concerned about performance, but DirectX proved itself • .. Fast forward .. • DirectX 8 introduces the programmable shader • Type libraries exposed to Visual Basic • .. Fast forward .. • Microsoft .NET replaces VB6 • People need access to DirectX from .NET (not VB6) • Microsoft introduces Managed DirectX • People start grumbling that Managed DirectX being only a wrapper for C++ doesn’t save them development time
From Windows to the Console • To this point, all platforms have been supported by Microsoft • The desktop PC • The server • Tablet PCs • Pocket PCs • Smart phones • Embedded XP • .. except for Xbox 360
From Business to Gaming • Game development has always required a very special set of niche skills • It has always been very difficult for business professionals to develop enthusiast game programming skills • C++ has traditionally been the de-facto standard for games, but most software developers use a higher level language (Java, C#, VB.NET)
Embrace creator community on Microsoft platforms Windows Retail Xbox 360 Make writing games significantly easier Establish a vibrant creator community Provide education solutions for academia using retail Xbox 360 consoles XNA Game Studio ExpressGoals
XNA Development Tools Overview Platform XNA Game Studio Express Extends C# Express to support XNA Framework Adds support for building game content XNA Framework XNA Game Studio Express XNA Framework .NET game framework Write games for your Xbox 360!
XNA Framework The XNA Framework is a .NET game development platform that you use to create games for Xbox 360 and Windows
XNA Framework Layers Content Code Components Storage Math Audio Graphics Input Direct3D Starter Kits Content Pipeline XACT XINPUT XContent Application Model Legend Community XNA Provides You Provide Games Extended Framework Core Framework Platform
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Application Model Lets you focus on making your game and not worry about the platform it’s running on • Get up and running quickly • First lines of code you write are for your game • Platform abstraction • What’s the best way to design the game loop? • How do I create and manage my Window? • How do I follow platform best practices? • Game • This is the main type for your game • Load, Update and Draw events
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits The Game
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Graphics Provides low level render capabilities • Built on top of Direct3D 9 • Updated APIs that follow .NET Design Guidelines • Effects • Resources • Lock/Unlock • Vertex streams • Provided resources • Mesh • Texture • Effects and shaders
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Graphics
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Input Makes getting user input extremely easy • Immediate mode programming model • No initialization • No state management • Provides • Xbox 360 controller • Keyboard • Mouse (Windows only)
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Input
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Audio Easier to play your sounds • Build up sound assets using XACT Tool • Add sounds • Adjust properties • Build “banks” of sounds • Easier integration for developers • Access them via logical names • Looping, streaming, and memory management • No low-level buffer management
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Storage Provides an easy way to read and write game data and saves • StorageContainer acts as a virtual file system • Files stored in the correct location on each platform • Supports multiple storage devices and profiles on Xbox 360 • Stream based easily integrates with System.IO
Games Content Code Comps Extended Framework Core Framework Platform Direct3D Storage Application Model Content Pipeline XINPUT XContent XACT Graphics Input Audio Math Starter Kits Math Math library for games • Vector, Matrix, Quaternion, Plane, AABB, Sphere, Ray, Frustum, Curve • Right-handed by default • Easy integration • Intersection tests • Movement helpers
Pong evolved • Add background image • Turn paddle and ball to 3D • Add music • Keep score • Splash screen • New rules • Etc.
What’s coming in Part 2 • XNA Framework Content Pipeline • XACT
Resources used • www.riemers.net • www.xnaresources.com • www.turbosquid.com/xna • Milkshape3D • Nvidia FX Composer • Based on Pong Tutorial from David Bailey
Wrap Up • XNA Game Studio Express • Available Now • Requires C# Express • Resources • Forums • http://forums.microsoft.com/msdn • XNA Developer Center • http://msdn.com/xna • XNA team blog • http://blogs.msdn.com/xna • Contacts • xna@microsoft.com