Developing great games for Windows 8 by Lorenzo Barbieri
-
Upload
codemotion -
Category
Technology
-
view
325 -
download
0
description
Transcript of Developing great games for Windows 8 by Lorenzo Barbieri
![Page 1: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/1.jpg)
![Page 2: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/3.jpg)
![Page 4: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/4.jpg)
![Page 5: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/6.jpg)
![Page 7: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/7.jpg)
![Page 8: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/11.jpg)
![Page 12: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/13.jpg)
Controls: Input combination during play
![Page 14: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/14.jpg)
![Page 15: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/15.jpg)
![Page 16: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/17.jpg)
![Page 18: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/21.jpg)
User
Launches
App
![Page 22: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/25.jpg)
• 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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/28.jpg)
![Page 29: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/29.jpg)
![Page 30: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/30.jpg)
• 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](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/31.jpg)
![Page 32: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/32.jpg)
![Page 33: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/33.jpg)
![Page 34: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/34.jpg)
![Page 35: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/35.jpg)
http://go.microsoft.com/fwlink/?LinkId=228422
Submit
Concept
Microsoft
ReviewAgreement SDK Access
![Page 36: Developing great games for Windows 8 by Lorenzo Barbieri](https://reader033.fdocuments.us/reader033/viewer/2022060109/555843dcd8b42acb078b520b/html5/thumbnails/36.jpg)