Developing great games for Windows 8 by Lorenzo Barbieri


Published on

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!

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Developing great games for Windows 8 by Lorenzo Barbieri

  1. 1. 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?
  2. 2. Paid downloads,trials,andin-apppurchases.Youkeep70% of thefirst$25k,80%of therestRobust analytics for free, including demographics,reviews, referrals, and usage & performance statisticsUse your own commerce engine and keep 100%or use the Windows Store’s full commerce platformAdvertise with Microsoft Advertising or yourpreferred ad vendor.
  3. 3. 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 orMonoGame
  4. 4. 3D Rendering• All Windows 8 systems supportDirect3D• The most direct graphics APIavailable 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 
  5. 5. Hardware until mid-2014:ARM systems are DX9_1 throughDX9_3No need to ship large DirectX 11assets in the ARM package yetx86/x64 systems are DX9_3through DX11No need for optimizing to a DX9_1codepath on x86/x64
  6. 6. 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 Controllersupported also on tablets
  7. 7. Controls: Input combination during play
  8. 8. 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 soundeffects• Performs efficient mixing of multiplesimultaneous effects
  9. 9. 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
  10. 10. 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 itcan’t run immediately• No synchronous loading more than 5 sec• Doesn’t pass WACK!• Rejected by the Store!
  11. 11. 1. Synchronous load on app start (e.g. under OS splashscreen)• This can hit the timer, and is not an ideal user experience2. Set up a loading screen and load behind that• Delivers user feedback via progress bar3. Stream asynchronously to pre-fetch data on demand• Async I/O routines help with this4. Procedurally generate content
  12. 12. UserLaunchesApp
  13. 13. 1. Level-based: Save state at end of level, or at eachcheckpoint• Issue: Player will have to replay that level if app gets terminated2. 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
  14. 14. 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 sensorsLandscape Portrait
  15. 15. 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
  16. 16. • 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
  17. 17. 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
  18. 18. Roaming across devices• PLM State management• Checkpoints and backgroundgame play saving• Play, pause, resume experiences• Continuous gameplay across devices• Consistent settings and options
  19. 19. • This is an ideal mechanism forsending• In-game screenshots• Brag clips• These can go into the user’slibraries or to online apps viathe share contract
  20. 20. SDK Access