framework
@victorporof
What about you?How many of you…Play video games?Would like to build a game?Have built a game?
“building a gameis hard”Painting by Brock Davis
First videogame ever?
First videogame ever?No.
1947: Cathode Ray Tube Amusement Device1951: NIM1952: Tic-Tac-Toe1958: Tennis for Two1962: Space WarLong time ago…
Cathode Ray Tube Amusement DeviceThe earliest known interactive electronic game was by Thomas T. Goldsmith Jr. and Estle Ray Mann: a missile simulator using radar displays from World War II.…they couldn’t really find a snazzy name for it 
NIMRODUsing a panel of lights for its display, this was the first instance of a digital computer only designed specifically to play a game.Nim is a mathematical game of strategy in which two players take turns removing objects from distinct heaps. The player to take the last object loses.
Tic-Tac-ToeIn 1952, Alexander S. Douglas made the first computer game to use a digital graphical display, created for his Ph.D. thesis on human-computer interaction.Photo by Loomis Dean, taken in April, 1952
In 1958, William Higinbotham made an interactive computer game named Tennis for Two for the Brookhaven National Laboratory's annual visitor's day.Tennis for Two
Spacewar!In 1961, MIT students Martin Graetz, Steve Russell, and Wayne Wiitanen created the game Spacewar! which also used a vector display system.
“No one will blame you for giving up. In fact, quitting at this point is a perfectly reasonable response”Making a game is no easy business!
“No one will blame you for giving up. In fact, quitting at this point is a perfectly reasonable response”“Quit now, and cake will be served immediately.”Making a game is no easy business!
“No one will blame you for giving up. In fact, quitting at this point is a perfectly reasonable response”“Quit now, and cake will be served immediately.”-- GLaDOS (Portal)Making a game is no easy business!
good games are designed in layersPainting by Brock Davis
good programmers think in layersPainting by Brock Davis
Yay! Cross-platform game development! = =
Yay! Cross-platform game development!Experience says no.!=!=
Yay! Cross-platform game development!Experience says no.!=!=!=and definitely
Purple screen of death
NIMROD
Yay! Cross-platform game development!No.things aren’t as cross-platformas they seemPainting by Brock Davis!=!=!=and definitely
Yay! Cross-platform game development!No.cross-platform means:“same framework, but take care of the hardware differences yourself”Painting by Brock Davis!=!=!=and definitely
New project -> Build and runDocumentation and tutorials available for downloadhttp://create.msdn.com/educationStarter kits“Take our games and make them your own”
New project -> Build and runDocumentation and tutorials available for downloadhttp://create.msdn.com/educationStarter kits“Take our games and make them your own”Awesome! Let’s see a demo!
Well, that’s easy!
Well, that’s easy!but…
Perfect for learningNot a very good long-term idea for game developmentDoes not make you a knowledgeable game programmerToo much “drag’n’drop” coding will make your graphics rendering inefficientLow framerate = bad gameplayStarter kits“Take our games and make them your own”Shamelessly copy-pasting code is evil!
Games are complex and expensive!
Halo 3$55 million
Gran Turismo$80 million
GTA IV$100 million
XNA is perfect for hobby games
XNA is perfect for hobby gamesLet’s see what goodies it has to offer
Game classesProceduresInitializeLoadContentUpdateDrawUnloadContentApplication Model
Content processing2D file formats.BMP, .JPG, .PNG, .TGA2D file formats.FBX, .X.FX.XAPContent pipeline
GraphicsSpriteBatchEffect, BasicEffectTexture2DGraphicsDeviceModelVertexBufferAudioSoundBank, WaveBankAudioEngineInputGamePadKeyboardMouseCore framework
MathMathHelperMatrixVectorStorageTitle Storage(Shaders, Meshes, Textures, Sounds)User Storage(Save games, Scores)NetworkNetworkSessionPacketReaderNetworkGamerCore framework
Project from scratch demo
?

Introduction to the XNA framework