presentation/presenter title slide
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Introduction to Introduction to Microsoft XNAMicrosoft XNA
and how it can affect you and your children …and how it can affect you and your children …
presented by Jon Davispresented by Jon Davis
Presentation/Presenter Title Slide
From Manual to Managed From Manual to Managed CodeCodeWindows 95 era: Game developers begged for better Windows 95 era: Game developers begged for better (abstracted) access to hardware resources(abstracted) access to hardware resources
Microsoft came up with DirectXMicrosoft came up with DirectX
People were concerned about performance, but DirectX People were concerned about performance, but DirectX proved itselfproved itself
.. Fast forward .... Fast forward ..
DirectX 8 introduces the programmable shaderDirectX 8 introduces the programmable shader
Type libraries exposed to Visual BasicType libraries exposed to Visual Basic
.. Fast forward .... Fast forward ..
Microsoft .NET replaces VB6Microsoft .NET replaces VB6
People need access to DirectX from .NET (not VB6)People need access to DirectX from .NET (not VB6)
Microsoft introduces Managed DirectXMicrosoft introduces Managed DirectX
People start grumbling that Managed DirectX being only a People start grumbling that Managed DirectX being only a wrapper for C++ doesn’t save them development timewrapper for C++ doesn’t save them development time
From Windows to the From Windows to the ConsoleConsoleTo this point, all platforms have been To this point, all platforms have been supported by Microsoftsupported by Microsoft
The desktop PCThe desktop PC
The serverThe server
Tablet PCsTablet PCs
Pocket PCsPocket PCs
Smart phonesSmart phones
Embedded XPEmbedded XP
.. .. exceptexcept for Xbox 360 for Xbox 360
From Business to GamingFrom Business to Gaming
Game development has always Game development has always required a very special set of niche required a very special set of niche skillsskills
It has always been very difficult for It has always been very difficult for business professionals to develop business professionals to develop enthusiast game programming skillsenthusiast game programming skills
C++ has traditionally been the de-C++ has traditionally been the de-facto standard for games, but most facto standard for games, but most software developers use a higher level software developers use a higher level language (Java, C#, VB.NET)language (Java, C#, VB.NET)
Embrace creator community on Microsoft platforms Embrace creator community on Microsoft platforms WindowsWindows
Retail Xbox 360Retail Xbox 360
Make writing games significantly easierMake writing games significantly easier
Establish a vibrant creator community Establish a vibrant creator community
Provide education solutions for academia using Provide education solutions for academia using retail Xbox 360 consolesretail Xbox 360 consoles
XNA Game Studio ExpressXNA Game Studio Express GoalsGoals
XNA Development Tools Overview XNA Development Tools Overview
XNA FrameworkXNA Framework
.NET game framework.NET game frameworkWrite games for your Xbox Write games for your Xbox
360!360!
XNA Game Studio XNA Game Studio ExpressExpress
XNA FrameworkXNA Framework
XNA Game Studio ExpressXNA Game Studio Express
Extends C# Express to Extends C# Express to support XNA Frameworksupport XNA Framework
Adds support for building Adds support for building game contentgame content
PlatformPlatform
XNA FrameworkXNA Framework
The XNA Framework is a .NET game The XNA Framework is a .NET game development platform that you use to development platform that you use to
create games for Xbox 360 and create games for Xbox 360 and WindowsWindows
XNA Framework LayersXNA Framework Layers
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ContentContent ComponenComponentsts
Legend XNA ProvidesXNA Provides You ProvideYou Provide CommunityCommunity
Extended FrameworkExtended Framework
Application ModelApplication ModelLets you focus on making your game and not Lets you focus on making your game and not
worry about the platform it’s running onworry about the platform it’s running on
Get up and running quicklyGet up and running quicklyFirst lines of code you write are for your gameFirst lines of code you write are for your game
Platform abstractionPlatform abstractionWhat’s the best way to design the game loop? What’s the best way to design the game loop?
How do I create and manage my Window?How do I create and manage my Window?
How do I follow platform best practices?How do I follow platform best practices?
GameGameThis is the main type for your gameThis is the main type for your game
Load, Update and Draw eventsLoad, Update and Draw events
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
The GameThe Game
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
Core FrameworkCore Framework
GraphicsGraphicsProvides low level render capabilitiesProvides low level render capabilities
Built on top of Direct3D 9Built on top of Direct3D 9Updated APIs that follow .NET Design Updated APIs that follow .NET Design GuidelinesGuidelines
EffectsEffectsResourcesResourcesLock/UnlockLock/UnlockVertex streamsVertex streams
Provided resourcesProvided resourcesMesh Mesh TextureTextureEffects and shadersEffects and shaders
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
GraphicsGraphics
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
InputInputMakes getting user input extremely easyMakes getting user input extremely easy
Immediate mode programming modelImmediate mode programming modelNo initializationNo initialization
No state managementNo state management
ProvidesProvidesXbox 360 controllerXbox 360 controller
KeyboardKeyboard
Mouse (Windows only)Mouse (Windows only)
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
InputInput
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
AudioAudio
Easier to play your soundsEasier to play your sounds
Build up sound assets using XACT ToolBuild up sound assets using XACT ToolAdd soundsAdd sounds
Adjust propertiesAdjust properties
Build “banks” of soundsBuild “banks” of sounds
Easier integration for developersEasier integration for developersAccess them via logical namesAccess them via logical names
Looping, streaming, and memory managementLooping, streaming, and memory management
No low-level buffer managementNo low-level buffer management
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
StorageStorage
Provides an easy way to read and writeProvides an easy way to read and write
game data and savesgame data and saves
StorageContainer acts as a virtual file StorageContainer acts as a virtual file systemsystem
Files stored in the correct location on each Files stored in the correct location on each platformplatform
Supports multiple storage devices and profiles Supports multiple storage devices and profiles on Xbox 360on Xbox 360
Stream based easily integrates with Stream based easily integrates with System.IOSystem.IO
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
MathMath
Math library for gamesMath library for games
Vector, Matrix, Quaternion, Plane, AABB, Vector, Matrix, Quaternion, Plane, AABB, Sphere, Ray, Frustum, CurveSphere, Ray, Frustum, Curve
Right-handed by defaultRight-handed by default
Easy integrationEasy integration
Intersection testsIntersection tests
Movement helpersMovement helpers
PlatformPlatform
CoreCoreFrameworkFramework
ExtendedExtendedFrameworkFramework
GamesGames
XACTXACT XINPUTXINPUT XContentXContentDirect3DDirect3D
GraphicsGraphics AudioAudio InputInput MathMath StorageStorage
Application ModelApplication Model Content PipelineContent Pipeline
Starter KitsStarter Kits CodeCode ConteContenntt
Comps
Pong evolvedPong evolved
Add background imageAdd background image
Turn paddle and ball to 3DTurn paddle and ball to 3D
Add musicAdd music
Keep scoreKeep score
Splash screenSplash screen
New rulesNew rules
Etc.Etc.
What’s coming in Part 2What’s coming in Part 2
XNA Framework Content PipelineXNA Framework Content Pipeline
XACTXACT
Resources usedResources used
www.riemers.netwww.riemers.net
www.xnaresources.comwww.xnaresources.com
www.turbosquid.com/xnawww.turbosquid.com/xna
Milkshape3DMilkshape3D
Nvidia FX ComposerNvidia FX Composer
Based on Pong Tutorial from David Based on Pong Tutorial from David BaileyBailey
Wrap UpWrap Up
XNA Game Studio ExpressXNA Game Studio ExpressAvailable NowAvailable Now
Requires C# ExpressRequires C# Express
ResourcesResourcesForumsForums
http://forums.microsoft.com/msdnhttp://forums.microsoft.com/msdn
XNA Developer CenterXNA Developer Centerhttp://msdn.com/xnahttp://msdn.com/xna
XNA team blogXNA team bloghttp://blogs.msdn.com/xnahttp://blogs.msdn.com/xna
[email protected]@microsoft.com