developing games for windows phone 7 with xna game studio 4.0

41
Developing Games for Windows Phone 7 with XNA Game Studio 4.0 Your Name Here

Upload: peta

Post on 23-Feb-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Developing Games for Windows Phone 7 with XNA Game Studio 4.0. Your Name Here. SMART DESIGN. Windows Phone 7 Series has a smart design that focuses on what is most important to you and works the way you would want. A different kind of phone. INTEGRATED EXPERIENCES. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Developing Games for Windows Phone 7 with XNA Game Studio 4.0

Your Name Here

Page 2: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

A different kind of phone

Designed for life in motion

So you don’t miss a moment

SMART DESIGNWindows Phone 7 Series has

a smart design that focuses on what is most important to you and works the way you would want

INTEGRATED EXPERIENCESWindows Phone 7 Series organizes the web and applications to simplify what you do everyday

FOR DEVELOPERS

A single, cohesive API set and platform

Page 3: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Windows Phone Games Hub

Page 4: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

LIVE is Bringing Gaming Services

Windows Phone will extend the Xbox LIVE brand beyond the console for the first timeWindows Phone is the first step towards our vision of a ubiquitous gaming service

Premium placement helps your titles stand out and avoid the race to the bottom

Identity

Friends

Achievements

Merchandising Premium Placement

Page 5: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Powerful

Portable

Productive

Page 6: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

XNA Game Studio

Creating

Games

Makes game development easier

XNA Framework provides robust APIs for games

C#, .NET & Visual Studio tooling

Solutions for game content processing

Not an engine solution

Page 7: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

XNA Game Studio 4.0

Develop games for Windows

Phone 7 Series Simplified

graphics API’s

Visual Studio 2010

integration

Enhanced audio support

New configurable

effects

Page 8: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Powerful

Page 9: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Managed Code for Game Development

Uses the .NET platform

Windows Phone 7 Series

Managed code only, no unsafe or native code

XNA Game Studio 4.0 is C# exclusive

800+ managed code games on XBLA/XBLIG

Windows games published through portals such as Steam

.NET is being used for games today

Page 10: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Frameworks designed

for performance

Addressing Performance Head-on

Frameworks designed

for performance

Frameworks designed

for performanceFrameworks designed

for performance

XNA Framework designed for

gaming scenarios

Commitment to future

of managed code No unnecessary

garbage generation

Math libraries optimized

Efficient APIs with tuned transitions to

native code

Three+ years of profiling

and investment

We’ve built for performance on

Windows Phone 7 Series

Page 11: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Productive

Page 12: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Visual Studio & .NETProductive development with .NET & C#

High performance IDE

Intellisense makes coding faster

Integrated build/deploy/debug experience

MSBuild engine for build automation

Page 13: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Manage assets in Visual Studio

Importers for common game data formats

Optimize data into binary format for efficient loading

Fully extensible

XNA Framework/Game Loop not required

Content projects external in XNA Game Studio 4.0

Content PipelineSimplify Your Content Usage!

Page 14: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

XNA Framework Game Loop

System integration with Windows phone 7

Translated to existing XNA Framework concepts

Traditional update/draw/present frame loop

Core programming model consistent with previous releasesChanges implemented yield better power performance on devices

/// <summary>/// Allows the game to run logic such as updating the world,/// checking for collisions, gathering input, and playing audio./// </summary>/// <param name="gameTime">Provides a snapshot of timing values.</param>protected override void Update(GameTime gameTime){

// Allows the game to exitif (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)

this.Exit();

// TODO: Add your update logic here

base.Update(gameTime);}

/// <summary>/// This is called when the game should draw itself./// </summary>/// <param name="gameTime">Provides a snapshot of timing values.</param>protected override void Draw(GameTime gameTime){

GraphicsDevice.Clear(Color.CornflowerBlue);

// TODO: Add your drawing code here

base.Draw(gameTime);}

XNA Framework Game Loop ExampleStart Simple and Customize!

Page 15: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

GraphicsLet’s Get Visual, Visual!

Page 16: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Graphics Overview

Evolution of our existing immediate mode rendering API

Simplifies for resource and render state management

Feature segmentation between “Reach”/“HiDef” profiles

Rendering primitives 2D & 3D

Page 17: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Five Configurable Effects

Plus hardware accelerated 2D sprite drawing

BasicEffect SkinnedEffect EnvironmentMapEffectAlphaTestEffectDualTextureEffect

Page 18: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

BasicEffect

BasicEffect SkinnedEffect EnvironmentMapEffectAlphaTestEffectDualTextureEffect

• 0-3 directional lights• Blinn-Phong shading• Optional texture• Optional fog• Optional vertex color

Vertex Cost Pixel CostNo lighting 5 1One vertex light 40 1Three vertex lights 60 1Three pixel lights 18 50+ Texture +1 +2+ Fog +4 +2

Page 19: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

DualTextureEffect

BasicEffect SkinnedEffect EnvironmentMapEffectAlphaTestEffectDualTextureEffect

• For lightmaps, detail textures, decals• Blends two textures• Separate texture coordinates• Modulate 2X combine mode (A*B*2)• Good visuals at low pixel cost

Vertex Cost

Pixel Cost

Two Textures 7 6+ Fog +4 +2

Page 20: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

AlphaTestEffect

BasicEffect SkinnedEffect EnvironmentMapEffectAlphaTestEffectDualTextureEffect

• For billboards and imposters• Adds alpha test operations (pixel kill)• Standard blending is free with all effects• Only need alpha test if you want to

disable depth/stencil writes

Vertex Cost Pixel Cost<, <=, >=, >

6 6

==, != 6 10+ Fog +4 +2

Page 21: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

SkinnedEffect

BasicEffect SkinnedEffect EnvironmentMapEffectAlphaTestEffectDualTextureEffect

• For animated models and instancing• Game code animates bones on CPU• Vertex skinning performed by GPU• Up to 72 bones• One, two, or four weights per vertex

Vertex Cost

Pixel Cost

One vertex light 55 4Three vertex lights 75 4Three pixel lights 33 51+ Two bones +7 +0+ Four bones +13 +0+ Fog +0 +2

Page 22: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

EnvironmentMapEffect

BasicEffect SkinnedEffect EnvironmentMapEffectAlphaTestEffectDualTextureEffect

• Oooh, shiny!• Diffuse texture + cube environment map• Cheap way to fake many complex lights• Fresnel term simulates behavior when light reaches

a surface and some reflects, some penetrates

Vertex Cost Pixel Cost

One light 32 6Three lights 36 6

+ Fresnel +7 +0

+ Specular +0 +2

+ Fog +0 +2

Page 23: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

System Support: Scaler & OrientationWrite your game without worrying about native resolution or orientation

Automatic rotation between portrait and landscapeTouch automatically supports both scale and orientation changes

Scaler can drastically improve performanceTrade off performance for “crispness” & shade fewer pixels800x480 = 384,000 pixels, 480x320 = 153,600 pixels

Upsample an arbitrary back buffer to native device resolutionFar higher quality than bilinear filteringAllows for easier porting from other platforms

Scaling/Rotation comes for “free” from Hardware

Page 24: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Portable

Page 25: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

XNA Framework designed to be cross platform

Smaller time investment & target more sockets

Project synchronization between platforms

Target Three Screens

Page 26: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

HiDef

Reach

XNA Framework Profiles

Create a clear development environmentTarget broadly or platform showcases

Designed for compatibility across screens/devicesThis profile includes Windows phone 7

Platform showcase featuresXbox 360/Windows Only

Page 27: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Gamer ServicesBetter Known as Xbox LIVE!

Page 28: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Gamer Services API

Framework API:Xbox LIVE Identity & Rewards

Single Identity(Gamertag) Achievements

Leaderboards Trial Mode

Page 29: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Audio & MediaCan You Hear Me Now?

Page 30: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Audio

public SimpleSingleBufferSoundEffect()`{ effect = new SoundEffect (“ding.wav”);

// Play a “Fire and Forget” instance. effect.Play();

// Create 2D instances and play them. // You could also call Apply3D to 3D position the instances. SoundEffectInstance instance1 = effect.CreateInstance(); SoundEffectInstance instance2 = effect.CreateInstance(); instance1.Play(); instance2.Play();}

Audio Playback Example

public EventDrivenCapture() { mic = Microphone.Default; mic.BufferDuration = TimeSpan.FromMilliseconds(100); bufferDuration = mic.BufferDuration; Buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)]; mic.BufferReady += new EventHandler(OnBufferReady); DynamicPlayback = new DynamicSoundEffectInstance(mic.SampleRate, AudioChannels.Mono);} public void OnBufferReady(object sender, EventArgs args) { // Get the latest captured audio. mic.GetData(buffer, out duration); // Do some post-capture processing on it. MakeMeSoundLikeARobot(buffer, duration);DynamicPlayback.SubmitBuffer(Buffer); // Save the audio or whatever }

Audio Capture Example

Audio Capture & Playback

Simple API to play back WAV dataModify pitch, volume, pan audioAbility to play synthesized/buffered audioSerialize captured dataProvides more control over System.Media types on Windows phone 7 Series

Microphone/Bluetooth SupportPlayback through headsetCapture through mic or headset

Page 31: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Music Enumeration & Playback

Media – Music/Photos/Video // Constructs a song from a URIUri mediaStreamUri = new Uri(webAddress);Song streamedSong = Song.FromUri(mediaStreamUri);

// Play the songMediaPlayer.Play(streamedSong);

URI Song Playback Example

// Get the JPEG image databyte[] modifiedJpegData = ReadAndModifyJpegFromStream(image);

// Save texture to Media Library Stream jpegStream = new MemoryStream();awesomeTexture.SaveAsJpeg(jpegStream); MediaLibrary media = new MediaLibrary();media.SavePicture(“Awesome”, jpegStream);

Retrieve Image Data

Picture Enumeration & Playback

Video Playback

Control and enumerate users’

media within a gameAbility to play songs from URI/URL (i.e. music app)

Supports photo picking/editing/publishing

Uses standard video player APIShow/Hide controls

Page 32: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Input / TouchInteracting with games gets easier!

Page 33: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Cross Platform Input API

Touch API

Xbox 360 Controllers (Xbox/Windows)Keyboard (Xbox/Windows/Windows phone 7 Series)

Available across platforms for portability (fewer #ifdefs) Four points on Windows phone 7 Series and WindowsOrientation and resolution awareDeveloper can override

Input Overview

var touchCollection = TouchPanel.GetState();...foreach (var touchLocation in touchCollection){ if (touchLocation.State == TouchLocationState.Released) { ... }}

Touch Input Handling

Page 34: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

SensorsUsing Silverlight and the XNA Framework

Page 35: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Sensor Overview

Leverage Platform Features on Windows phone 7 Series

LocationAccelerometerVibration

AccelerometerSensor accelerometer = GetAccelerometer();accelerometer.DataChanged += (source, args) => { // access x, y, z, and timestamp information // from args.Value}

Accelerometer Example

VibrationManager rumbler = new VibrationManager();rumbler.Vibrate(TimeSpan.FromSeconds(2));

VibrationExample

Page 36: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Demo

Build a game in minutes…

Page 37: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Sum up SlidePowerful

Productive

Portable

Great managed code games, working todayWindows Phone provides a powerful platform for gaming

Focus on being a game developer, not a plumberGreat tools make you more productive

Target more platforms easilyFocus on your game differences, not the technology

Page 38: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Wrap Up / Q&ALet’s get it started…

Page 39: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Additional Resources

Lot’s of MVP’s and experts to help you get started! XNA Creators Club

@ http://creators.xna.com Team Blog @ http://blogs.msdn.com/xna/ Shawn Hargreaves @ http://blogs.msdn.com/shawnhar/ (Great Tech Info!)

Email: [email protected]

Blog: http://klucher.com Twitter: @mklucher

Peer Support @ http://forums.xna.com Blogs

Contact an expert !

Page 40: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

Questions?Thank you for your time!

Page 41: Developing Games for Windows Phone 7  with XNA Game Studio 4.0

© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the

date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.