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!
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Developing great games for Windows 8 by Lorenzo Barbieri
1.
2. 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?
3.
4.
5. Paid downloads,trials,andin-apppurchases.Youkeep
70% of thefirst$25k,80%of therest
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.
6.
7.
8. 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
9. 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
10. 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
11.
12. 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
16. 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
17.
18. 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
19. 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!
20. 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
22. 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
23. 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
Landscape Portrait
24. 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
25. • 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
26. 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
27. Roaming across devices
• PLM State management
• Checkpoints and background
game play saving
• Play, pause, resume experiences
• Continuous gameplay across devices
• Consistent settings and options
28.
29.
30. • 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