Accelerating Windows Store Game Development with Open Source and Middleware Chas. Boyd Windows Graphics Program Management 3-187

Download Report

Transcript Accelerating Windows Store Game Development with Open Source and Middleware Chas. Boyd Windows Graphics Program Management 3-187

Accelerating Windows Store Game Development
with Open Source and Middleware
Chas. Boyd
Windows Graphics Program Management
3-187
Windows 8.1 new APIs
Accessibility
Data binding
Live tiles and
toast
Input
Controls
HTML5/CSS
XAML
Speech synthesis
Portable
Geolocation
Point of
service
Direct3D
Direct2D
Direct Write
Local
storage
SMS
HTTP
Skydrive
Sensors
Proximity
USB
Playback
Capture
PlayTo
Streams
Background
transfer
Contacts
Bing
HID
WiFi direct
Bluetooth
Canvas
SVG
WebGL
Syndication
Networking
Appointments
Azure
Mobile
Printing
3D
printing
Scanning
XML and
JSON
Contracts
PDF
Xbox Live
Application
services
Threading/timers
Memory
management
Globalization
Cryptography
Authentication
Diagnostics
Windows 8.1 Game Platform Technologies
Your Killer Game
Graphics
Movies & Cut
Scenes
Game Input
Audio
Local
Services
Connected
Services
Tools
Direct3D11.2
DirectX
Video
Pointer
Point
WASAPI
PLM
Windows
Azure
Live, Azure
Visual Studio
Direct2D
Media
Foundation
Sensor API
XAudio2
AppData
Windows
Store Install
Asset
Viewers
Contracts
Xbox LIVE
Asset
Processors
WiFi Direct
Shader
Debugging
HTML
XAML
XInput
Windows Game Developer Features
Windows 8
Direct3D 11.1
XAudio2
PointerPoint
MouseLook
XInput
C++
Windows 8.1
Direct3D11.2
Tiled Resources
Scalers & Overlays
HLSL Shader linker
8-25GB packages
Multi-mon
Wi-Fi Direct
But There’s More
Interesting game codebases rely on other components
These “middleware” components are critical to:
Accelerate time to market, reduce risk, increase stability
Simplify shipping across devices/screens (Developing “Cross-Microsoft Platform”)
Both open source technologies and commercial tech
We’ve partnered with the community to ensure these work well on
Windows 8
Open Source Technologies
Using Open Source
Link in the pre-built lib binaries
Be sure to get a Windows 8.1 version for use in 8.1 apps
Build the source in your environment
Then you can see how it works and tune to your scenario
Microsoft’s Community Contributions
We’ve made great starting points for Windows Store games
VS .sln solutions & Windows Store SDK API usage
Samples ported to Windows Store projects
Ported UI code in samples to XAML
Implementations pass certification & work well on ARM
This enables you to spend your energy on the game
Open Source Technologies
Box2D
ANGLE
Box2D
Physics of objects in a 2-D plane
Ballistics, collisions, rotation, friction, joints, constraints,
motors, ray-queries, etc. of
Circles, rects, polygons, chains, ropes, etc.
Used in:
Angry Birds, Tiny Wings, Cut The Rope, Crayon Physics
Deluxe, Limbo, Rolando, Fantastic Contraption,
Incredibots, Transformice, Happy Wheels, Cocos2D, etc.
Car driving over terrain -Before
Box2D Demo App
Car Scene
Windows Classic
Win32 UI
OpenGL
Car driving over terrain -Now
Box2D Demo App
Car Scene
Windows 8.1
XAML UI
DirectX
Passes certification
Bullet Physics
Physics of 3D objects
Ballistics, collisions, rotation, friction, joints, constraints,
motors, ray-queries, etc.
Used in: Hydro Thunder: Hurricane, Trials HD
Has had GPU-accelerated fabric simulation
using DirectCompute for years
ANGLE – Almost Native GL Engine
Open source OpenGL ES2 API wrapper
Enables easy transition from iOS or Android
Used by many popular products
Originally built on Direct3D9,
Now updated to Direct3D11 for Windows Store
Runtime shader compiles work in Windows 8.1
http://code.google.com/p/angleproject
Angle Asteroids
Cocos2D-x
Popular engine for sprite games on phones
1000s of games already shipped
Runs on Windows 8 phone, Windows RT,
Windows 8, etc.
http://www.cocos2d-x.org
OGRE - OO Graphics Rendering Engine
Full 3D rendering engine
Rich shader capabilities for photorealism
Includes native Direct3D module since starting
Used in: Ankh by Deck13, and Torchlight by
Runic, etc.
Runs on Windows Phone
OGRE Screenshots
http://www.ogre3d.org/wp-content/uploads/2012/05/3471006251_l.jpg
Using C#?
SharpDX
Efficient C# bindings to DirectX APIs
Low-level Direct3D access for best C# performance
Includes basic input, audio, file loading, etc.
Using C#?
MonoGame
OSS implementation of the full XNA 4.0 API spec
which Microsoft contributed to the community
Used in Armed, Skulls of the Shogun, Galactic Reign
http://channel9.msdn.com/posts/From-XNA-game-to-Windows-8
Feedback
Are there other open source projects you need?
Commercial Technologies
Commercial Middleware
Commercial Technologies
Game Engines
Renderers
Physics
Network Services
Audio
We’ve built partnerships to bring commercial
technologies to the Windows Store
Range of pricing models
You get commercial support, some include
source code
Most support custom plug-ins, scripting, etc.
Unity 3D
See Talk 3-044:
Building Windows Store Games with Unity
Friday 12-1pm
Also April Unity Windows 8 Event:
http://channel9.msdn.com/Events/WindowsCamp/Building-Windows-Games-with-Unity
Agora Hydra
Authentication & Identity
Friends List
Player Stats, Leaderboards, Achievements
Matchmaking -Real-time and Asynchronous
Synchronous (real-time) Multiplayer
Supports Windows Phone too
http://hydra.agoragames.com/windows
Other Connectivity Options
Share Contract
Link to your own store page
Windows Azure
Easy to roll up a very basic service
Xbox Live
great if you are coming from xbox
Havok
Popular physics library
Now includes Vision 3D rendering engine,
destruction, AI, and cloth modules
Supports the whole Microsoft ecosystem
Havok for Windows 8 and Windows Phone 8
Marmalade
Commercial implementation of OpenGL ES
on Direct3D
Includes a full native C++ game API set
Runs on Windows Phone too
https://www.madewithmarmalade.com/windows8
Game Salad
Full IDE for game creation
Asset marketplace
http://gamesalad.com/creator/windows-8
Graphine
Autodesk products
Several APIs available on Windows 8/Phone 8
Unity plug-in, iOS and Android support
Content Creation Tools
Maya
3D Studio
Conclusion: The Ecosystem is Ready
The most commonly used games middleware is available
for Windows 8 store apps
Both open source and commercial middleware!
Go for it!
What to do next
Update to the latest versions of any middleware components
Set up a Windows 8.1 build environment and build
Optimize performance/Tune for device feature levels
Add in cool new Windows features like:
Contracts, live tiles, and notifications, overlays, etc.
Ship!
Let us know if there is more you need!
Related talks
Title
Session ID
Building Games for Windows
2-047
What’s new in Direct3D 11.2
3-062
Massive virtual textures for games: Direct3D and Tiled Resources
4-063
DirectX Graphics Debugging Tools
3-141
Bringing Desktop PC Games to the Windows Store
3-190
Tales from the Trenches: Developing “The Harvest” and “Gunpowder” with Unity
3-044
Accelerating Windows Store Game Development with Middleware
3-187
Bringing Halo: Spartan Assault to Windows tablets and mobile devices
2-049
From Android or iOS: Bringing Your OpenGL ES Game to the Windows Store
3-189
Cutting Edge Games on Windows Tablets
3-043
Play Together! Leaderboards with Windows Azure and iMultiplayer with WiFi Direct
3-051
Innovations in High Performance 2D Graphics with DirectX
3-191