SlideShare a Scribd company logo
Blog: http://blog.syntaxc4.net
Learning ObjectivesWhy Windows Phone 7?What is XNA?XNA Game Programming BasicsDream. Build. Play.Next Steps…“The hardest thing about creating your first game is finishing it. – @OwenGoss
Why Windows Phone 7?
What is XNA?** Disclaimer: Items are not to scale.
The Basics“Focus on gameplay! There's no point in having the latest, greatest tech in a game if the gameplay is terrible. - @Justin_Hebert
The Game LoopInitialize()LoadContent()The LoopUpdate()Draw()UnloadContent()
Demo #1: Stepping into the Game Loop
Textures
Sprites
Demo #2:Adding Textures and Sprites
Sensorsusing Microsoft.Devices.Sensors;AccelerometerReadingEventArgs accelState;Accelerometer _accelerometer = new Accelerometer();if (_accelerometer.State == SensorState.Ready){    _accelerometer.ReadingChanged += (s, e) =>    {           accelState = e;    };    _accelerometer.Start();}
InputTouchCollection touchState = TouchPanel.GetState(); //interpret touch screen pressesforeach (TouchLocation location in touchState){     switch (location.State)     {        case TouchLocationState.Pressed:             buttonTouched = true;             break;        case TouchLocationState.Moved:             break;        case TouchLocationState.Released:             break;    }}
TombstoningFor games, when the Back button is pressed during gameplay, the game can choose to present a pause context menu or dialog or navigate the user to the prior menu screen. Pressing the Back button again while in a paused context menu or dialog closes the menu or dialog.
Dream. Build. Play.
Dream
The Idea
It could be new…
…Or a new Twist
We’re going to borrow an Idea
Build
Alien Game LabThree Pillars of Game DevelopmentPrototypePerformancePolishURL:  http://hmbl.me/4BSBKO
Prototyping
ArchitectureConnected
ArchitectureDisconnected
Game State ManagementURL:  http://hmbl.me/4BSHGB
Demo #4:Creating a Screen
Performance&Code Quality
Enums are Handy
Avoid BoxingUse Generics
Array vs List
struct vs class
Trial ModeAn application must not invoke either of the Trial APIs in a tight loop. For example, a game application must not invoke either of the Trial APIs while in a game loop. The API should be called infrequently and the value returned should be cached bool isTrial = Guide.IsTrialMode;
Demo #5:Trial Mode
Polishing
Game Feedbackusing Microsoft.Devices;VibrateController.Default.Start(TimeSpan.FromSeconds(1));
Game FeedbackThis requirement does not apply to applications that play sound effects through the Microsoft.Xna.Framework.Audio.SoundEffect class, as sound effects will be mixed with the MediaPlayer. The SoundEffect class should not be used to play background music. SoundEffect alienFired = 	Content.Load<SoundEffect>("Tank_Fire");alienFired.Play();
Play
Side Load
Market Placehttp://create.msdn.com
Next Steps…
Q & ASorry, I don’t give out Game Ideas

More Related Content

DOC
Snake project report
PDF
Mainstage 3 for pc
PPTX
Windows 7
PPTX
Xna for wp7
PPTX
Intelligent Heuristics for the Game Isolation
PPT
Mc Vs
ODP
Unreal Technology
PPTX
Flappy Birds Project
Snake project report
Mainstage 3 for pc
Windows 7
Xna for wp7
Intelligent Heuristics for the Game Isolation
Mc Vs
Unreal Technology
Flappy Birds Project

Similar to XNA On Windows Phone 7 (20)

PPT
project on snake game in c language
PPT
Data Driven Game development
PPTX
Iproduct presentation(final)
DOCX
High and Low Card Game For IOs
PPTX
Galactic Wars XNA Game
PDF
Game development with Cocos2d-x Engine
KEY
Android game development
PDF
School For Games 2015 - Unity Engine Basics
PPTX
XNA And Silverlight
PDF
PresentaciĂłn Unity
PDF
DSC RNGPIT - Getting Started with Game Development Day 1
DOCX
Callum deighton engine terminology
PDF
Introduction to html5 game programming with impact js
PDF
Game Development with AndEngine
DOCX
Java term project final report
PDF
Pong
PDF
Run and jump tutorial (part 2) scenes
PPTX
Windows phone 7 xna
PPTX
Chapt 6 game testing and publishing
PPTX
XNA and Windows Phone
project on snake game in c language
Data Driven Game development
Iproduct presentation(final)
High and Low Card Game For IOs
Galactic Wars XNA Game
Game development with Cocos2d-x Engine
Android game development
School For Games 2015 - Unity Engine Basics
XNA And Silverlight
PresentaciĂłn Unity
DSC RNGPIT - Getting Started with Game Development Day 1
Callum deighton engine terminology
Introduction to html5 game programming with impact js
Game Development with AndEngine
Java term project final report
Pong
Run and jump tutorial (part 2) scenes
Windows phone 7 xna
Chapt 6 game testing and publishing
XNA and Windows Phone
Ad

More from Cory Fowler (13)

PPTX
5 Absolutely Beautiful Things about Platform as a Service (PaaS)
PPTX
Lessons learned from running massive WordPress sites at scale
PPTX
How Joomla and Microsoft are a Great Open Source Success
PPTX
Drupal DevOps on Microsoft Azure Websites
PPTX
Microsoft Azure Websites for PHP Developers
PPTX
Creating php cloud applications
PPTX
Windows Azure Web Sites Mastery
PPTX
Windows azure for startups
PPTX
AzureFest
PPTX
AzureFest
PPTX
Making data rain from the clouds version 2
PPTX
Taking it to the cloud version 3
PPTX
Taking It To The Cloud Version 2
5 Absolutely Beautiful Things about Platform as a Service (PaaS)
Lessons learned from running massive WordPress sites at scale
How Joomla and Microsoft are a Great Open Source Success
Drupal DevOps on Microsoft Azure Websites
Microsoft Azure Websites for PHP Developers
Creating php cloud applications
Windows Azure Web Sites Mastery
Windows azure for startups
AzureFest
AzureFest
Making data rain from the clouds version 2
Taking it to the cloud version 3
Taking It To The Cloud Version 2
Ad

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
 
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Approach and Philosophy of On baking technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
 
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Spectroscopy.pptx food analysis technology
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
MYSQL Presentation for SQL database connectivity
Per capita expenditure prediction using model stacking based on satellite ima...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
 
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Approach and Philosophy of On baking technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Building Integrated photovoltaic BIPV_UPV.pdf
Machine learning based COVID-19 study performance prediction
The Rise and Fall of 3GPP – Time for a Sabbatical?
 
Programs and apps: productivity, graphics, security and other tools
Mobile App Security Testing_ A Comprehensive Guide.pdf
Empathic Computing: Creating Shared Understanding
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectroscopy.pptx food analysis technology
20250228 LYD VKU AI Blended-Learning.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation theory and applications.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing

XNA On Windows Phone 7

Editor's Notes

  • #2: Welcome out to the Windows Phone Developer Briefing:[Intro]- Cory Fowler- ObjectSharp- Games Hobbyist
  • #4: Consumer facing PhoneXbox Live IntegrationFamiliar Development StorySilverlightXNAC# or VB.NET
  • #5: Brings Managed Code to Games DevelopmentCross Platform Development between ZuneWindows PhoneXbox360Windows 7All on One Code Base
  • #7: The XNA Framework like most games runs on a Game LoopInitialization ConstructorLoadContentLoad up main graphics required for gameplayThe LoopUpdateUser input Collection and Calculation of Sprite PositioningDrawRe-Draw the sprites on the ScreenUnloadContentGarbage Collection and Freeing up resources
  • #8: Open Visual StudioCreate new Game ProjectReview Code Blocks for The Loop
  • #9: Image files which are loaded into a game.There is a good chance that your game with be someone in the ballpark of 60-70% Textures.Your game can only take up 90MB of RAM while running.
  • #10: Sprites are images that move independently to the rest of the game.A Sprites position and other attributes are maintained in a instance of a class or struct.
  • #11: Add in two Textures and load them onto the screen with SpriteBatch.Draw
  • #12: Currently the only Sensor supported by the Phones APIs is the Accelerometer.
  • #24: Make sure that your Architecture is part of your prototype.Plan for when the phone is Connected…
  • #25: Plan for when the Phone is Disconnected…
  • #26: Knowing the Architecture Story of your Game will aid you in Laying out the Flow of your Screens.You can also find the Game State Management Project Template in the Extension Manager.
  • #27: Open AlienGame [Start Here] and create Pause ScreenInherit MenuScreenCreate MenuEntry for ResumeCreate MenuEntry for QuitAdd to MenuEntries Collection
  • #29: Enums are great for tracking state, which in a game there is a LOT of state.Enumsalso help make your code easier to ready, which allows you to use your brainpower for the Math.Smaller Operating cost than using Strings.
  • #30: Boxing is a processing intense operation.
  • #31: Arrays – Memory Allocation is going to be consistentList – Basically any hand rolled POCOAvoid - boxed
  • #32: structs are optimal for objects up to 16bytes in size and are good candidates for using arrays.Classes are a good choice if the size of the object is going to fluxuaterepetetively
  • #33: The Typical response time of this method is 6 MillisecondsShould only be called during Initialize and Activated