Microsoft tech days 2012 cheezia developing a windows phone xna game
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Microsoft Tech Days 2012 Cheezia : Developing a Windows Phone XNA Game PowerPoint PPT Presentation


  • 42 Views
  • Uploaded on
  • Presentation posted in: General

Microsoft Tech Days 2012 Cheezia : Developing a Windows Phone XNA Game. Rodrigo Barretto Software Engineer - MCPD on Windows Phone [email protected] http://www.attido.com. Agenda. Cheezia XNA Overview Game State Management Input Handling Update Method Draw Method

Download Presentation

Microsoft Tech Days 2012 Cheezia : Developing a Windows Phone XNA Game

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Microsoft tech days 2012 cheezia developing a windows phone xna game

Microsoft Tech Days 2012Cheezia: Developing a Windows Phone XNA Game

Rodrigo Barretto

Software Engineer - MCPD on Windows Phone

[email protected]

http://www.attido.com


Agenda

Agenda

  • Cheezia

  • XNA Overview

  • Game State Management

  • Input Handling

  • Update Method

  • Draw Method

  • Sound Effects

  • Configuration Files as Resources

  • Tombstoning

  • Configuring Metadata Files

  • References

2


Cheezia

Cheezia

  • Puzzle / Reaction game

  • Originally developed in Flash for iOS and Android devices using Adobe AIR

  • Windows Phone version:

    • Over 54k downloads

    • Featured in Channel 9’s Hot Apps

    • Full source code is available at http://www.attido.com/techdays

3


Xna overview

XNA Overview

  • High performance game framework

  • Enables creation of 2D and 3D games for Windows Phones, Xbox 360 and PC

  • Provides a content pipeline that compiles game assets into XNBs

  • Polling loop model instead of event driven

  • Provides GraphicsDeviceManager and ContentManager

  • Initialize

  • Load Content

  • Update

  • Draw

  • Unload Content

4


Game state management

Game State Management

  • ScreenManager

    • Inherits from DrawableGameComponent

    • Manages one or more GameScreen instances

      • Calls Update and Draw of each GameScreen instance

      • Routes input to the topmost active screen

      • Activates / deactivates each GameScreen instance

  • GameScreen

  • GameScreen

  • Activate

  • Deactivate

  • Unload

  • HandleInput

  • Update

  • Draw

5


Game state management1

Game State Management

  • InputState

    • Reads input from keyboard, gamepad and touchpanel

  • InputAction

    • Evaluates which buttons and keys have been pressed

  • IScreenFactory

    • Instance is added to Game.Services

    • CreateScreen -> Activator.CreateInstance(screenType)

6


Input handling

Input Handling

  • ScreenManager refreshes input states in each Update

  • XNA supports up to 4 input points

  • Special button: Back

  • Accelerometer is event driven

    • Bind to ReadingChanged event and call Start

    • Guide.IsScreenSaverEnabled

  • Guide exposes virtual keyboard: BeginShowKeyboardInput / EndShowKeyboardInput

  • HandleInput

  • InputState

  • Gestures

  • TouchState

  • HandleInput

  • InputAction.Evaluate

7


Update method

Update Method

  • Update game variables

    • Speed, acceleration, position, score, timer, animations, ...

  • Check for game over / level accomplished / achievement unlocked, ...

  • GameTime exposes important properties

    • ElapsedGameTime

    • TotalGameTime

    • IsRunningSlowly

8


Draw method

Draw Method

  • Draws into the back buffer

    • Rendered in the next frame

  • Order matters!!

  • Transparency from .png or Color Key property (default is Magenta)

  • XNA supports .png, .bmp, .jpg, .tga, .dds, .spritefont, .x, .fx, .fbx

  • Use fonts from:

    • The system: default is Segoe UI Mono

    • Own .ttf installed on development machine

    • .bmp file

  • GraphicsDevice.Clear

  • SpriteBatch.Begin

  • SpriteBatch.End

  • SpriteBatch.Draw

  • SpriteBatch.DrawString

9


Sound effects

Sound Effects

  • Loaded as content items

  • SoundEffect

    • Plays the sound until the end

  • SoundEffectInstance provides more control:

    • Volume, pitch, pan

    • Playback capabilities

  • XNA supports .wav, .mp3, .wma

  • XACT sound fields are not supported on the phone

  • Content Manager

  • Sound Effect

  • Play

  • Play

  • Pause

  • Resume

  • Stop

  • Sound Effect Instance

  • Volume

  • Pitch

  • Pan

10


Configuration files as resources

Configuration Files as Resources

  • Additional .xml files to configure:

    • Level design

    • Achievement related data

    • ...

  • Corresponding classes must be implemented in a separate Game Library project

  • Automatically parsed when loading via Content Manager

11


Tombstoning

Tombstoning

  • The player might be interrupted while playing

  • Needs to maintain the illusion that the game was never interrupted

    • Bind to PhoneApplicationService’s events in main game class

      • Launching, Activated, Deactivated, Closing

    • ScreenManager takes care of activating/deactivating each screen and knows if instances were preserved (fast app switching)

    • Save and load states and values of properties of each screen

      • Temporary data -> PhoneApplicationService’s state dictionary

      • Persistent data -> Isolated Storage

  • Call

  • SMS

  • Start Button

  • Search Button

  • Camera Button

  • Screen Lock

12


Configuring metadata files

Configuring Metadata Files

  • Make sure you fill them with information regarding your game

    • Title

    • Description

    • Author

    • Publisher

    • Version

    • Genre: ”Apps.Games”

13


References

References

  • App Hub

    • http://create.msdn.com/

    • http://create.msdn.com/en-US/education/

  • MSDN Library – XNA Game Studio 4.0

    • http://msdn.microsoft.com/en-us/library/bb200104.aspx

15


Microsoft tech days 2012 cheezia developing a windows phone xna game1

Microsoft Tech Days 2012Cheezia: Developing a Windows Phone XNA Game

Rodrigo Barretto

Software Engineer - MCPD on Windows Phone

[email protected]

http://www.attido.com


  • Login