Developing great games for Windows 8 by Lorenzo Barbieri

36

description

Windows 8 is now a reality on many different form factors, desktops, laptops, tablets, hybrids… In this session you will learn how to develop a great game on Windows 8, how to interact with the system and how to integrate and make money with the game!

Transcript of Developing great games for Windows 8 by Lorenzo Barbieri

Page 1: Developing great games for Windows 8 by Lorenzo Barbieri
Page 2: Developing great games for Windows 8 by Lorenzo Barbieri

Agenda

• Windows 8 Platform & Opportunity

• Windows Store

• A game is not enough!

• Must be a Windows 8 game!!!

• Framework and tools

• Is your game good enough?

Page 3: Developing great games for Windows 8 by Lorenzo Barbieri
Page 4: Developing great games for Windows 8 by Lorenzo Barbieri
Page 5: Developing great games for Windows 8 by Lorenzo Barbieri

Paid downloads, trials, and in-app purchases. You keep 70% of the first $25k, 80% of the rest

Robust analytics for free, including demographics, reviews, referrals, and usage & performance statistics

Use your own commerce engine and keep 100%or use the Windows Store’s full commerce platform

Advertise with Microsoft Advertising or your

preferred ad vendor.

Page 6: Developing great games for Windows 8 by Lorenzo Barbieri
Page 7: Developing great games for Windows 8 by Lorenzo Barbieri
Page 8: Developing great games for Windows 8 by Lorenzo Barbieri

HTML, XAML and DirectX

• HTML 5

• Canvas, SVG, or both!

• XAML

• Casual games, 2D games, simple 3D games

• Can be used together with DirectX

• DirectX is Fast Direct Access to Hardware

• DirectX gives you control of the low-level hardware

• Native in C++, can be used from C#/VB using SharpDX or MonoGame

Page 9: Developing great games for Windows 8 by Lorenzo Barbieri

3D Rendering

• All Windows 8 systems support

Direct3D

• The most direct graphics API

available in Windows 8

• Hardware feature levels’ range from DirectX9 to DirectX11

• Minimum required level must be specified in the Store

• If >9.1 app must check level when started – user can change Gfx

Page 10: Developing great games for Windows 8 by Lorenzo Barbieri

Hardware until mid-2014:

ARM systems are DX9_1 through DX9_3

No need to ship large DirectX 11 assets in the ARM package yet

x86/x64 systems are DX9_3 through DX11

No need for optimizing to a DX9_1 codepath on x86/x64

Page 11: Developing great games for Windows 8 by Lorenzo Barbieri
Page 12: Developing great games for Windows 8 by Lorenzo Barbieri

Input and sensors

• New breed of interaction opportunities beyond mouse and keyboard

• Multi-touch, swipes, and defined gestures

• Accelerometers can be used for steering cars or tilting game elements

• Device movement to rotate a character or a camera viewpoint

• Sensor Fusion to enable precise orientation and location data

• Shake to defend from enemies or reset

• Light sensor to change the mood or lighting of a game’s rendering

• Microphone or camera to integrate environmental elements

• XBOX 360 Game Controller

supported also on tablets

Page 13: Developing great games for Windows 8 by Lorenzo Barbieri

Controls: Input combination during play

Page 14: Developing great games for Windows 8 by Lorenzo Barbieri
Page 15: Developing great games for Windows 8 by Lorenzo Barbieri
Page 16: Developing great games for Windows 8 by Lorenzo Barbieri

Audio and Cut Scenes

• Media Foundation• Simplifies streaming audio such as background music

• Can access songs from music library via a contract

• Simplifies streaming video playback

• Supports a variety of media formats

• Video is integrated with Direct3D11 for optimal performance

• XAudio2• Optimized for low-latency playback of sound

effects

• Performs efficient mixing of multiple

simultaneous effects

Page 17: Developing great games for Windows 8 by Lorenzo Barbieri
Page 18: Developing great games for Windows 8 by Lorenzo Barbieri

Be a Perfect Windows Store app

• Activation

• Splash Screen

• Loading state

• Suspend/resume

• Saving State

• Screen Layouts

• Tiles and Notifications

• App Bar

• Settings Menu

• Sharing

Page 19: Developing great games for Windows 8 by Lorenzo Barbieri

The Splash Screen

• Included in your .appx package:

• Gets displayed by OS before app launch

• Covers time spent activating app

• App should provide additional cover if it can’t run immediately

• No synchronous loading more than 5 sec• Doesn’t pass WACK!

• Rejected by the Store!

Page 20: Developing great games for Windows 8 by Lorenzo Barbieri

1. Synchronous load on app start (e.g. under OS splash screen)

• This can hit the timer, and is not an ideal user experience

2. Set up a loading screen and load behind that

• Delivers user feedback via progress bar

3. Stream asynchronously to pre-fetch data on demand

• Async I/O routines help with this

4. Procedurally generate content

Page 21: Developing great games for Windows 8 by Lorenzo Barbieri

User

Launches

App

Page 22: Developing great games for Windows 8 by Lorenzo Barbieri

1. Level-based: Save state at end of level, or at each checkpoint

• Issue: Player will have to replay that level if app gets terminated

2. Save recent state on Suspending event

• Player can continue in the middle of a level, even after a terminate

• Need to be quick (5s limit)

3. Save state opportunistically

• Levels, checkpoints, pauses, major events, etc.

• Async file routines help here

Page 23: Developing great games for Windows 8 by Lorenzo Barbieri

Screen Orientations

• Apps can select preferred initial orientation

• And can elect not to rotate

• Apps can rotate their own rendering based on sensors

• Disable “system rotation” if using sensors

LandscapePortrait

Page 24: Developing great games for Windows 8 by Lorenzo Barbieri

Fullscreen, Snap and Fill

• Apps will get resize events for these• They only occur in landscape orientation

• Real-time games can just pause when snapped• Put up status info, etc.

• Avoid using sensors and controllers when snapped

Page 25: Developing great games for Windows 8 by Lorenzo Barbieri

• Standard item on ‘Charms Bar’

• Activated by swipe-in from right

• Users will know to look here for

• In-game options (difficulty)

• Input control settings/options

• Try not to use for:

• Graphics quality settings

• System features

Page 26: Developing great games for Windows 8 by Lorenzo Barbieri

Pausing the game

• Loss of focus or view changes

• Careful about rotation

• App bar swipes (or RMB)

• Toggle play/pause control

• Minimal or total obfuscation

• Countdown to return

Page 27: Developing great games for Windows 8 by Lorenzo Barbieri

Roaming across devices

• PLM State management

• Checkpoints and background game play saving

• Play, pause, resume experiences

• Continuous gameplay across devices

• Consistent settings and options

Page 28: Developing great games for Windows 8 by Lorenzo Barbieri
Page 29: Developing great games for Windows 8 by Lorenzo Barbieri
Page 30: Developing great games for Windows 8 by Lorenzo Barbieri

• This is an ideal mechanism for sending

• In-game screenshots

• Brag clips

• These can go into the user’s libraries or to online apps via the share contract

Page 31: Developing great games for Windows 8 by Lorenzo Barbieri
Page 32: Developing great games for Windows 8 by Lorenzo Barbieri
Page 33: Developing great games for Windows 8 by Lorenzo Barbieri
Page 34: Developing great games for Windows 8 by Lorenzo Barbieri
Page 35: Developing great games for Windows 8 by Lorenzo Barbieri

http://go.microsoft.com/fwlink/?LinkId=228422

Submit

Concept

Microsoft

ReviewAgreement SDK Access

Page 36: Developing great games for Windows 8 by Lorenzo Barbieri