With Windows 10 devices reaching nearly 300 million, this platform is becoming a very relevant platform for game publishers to target. Join this session to get a great overview of the Universal platform. We will cover the differences & similarities to desktop games development, the Windows store, and state of all the middleware engines and other Microsoft technologies you can use to easily port your game from other platforms (or desktop) to Universal.
2. 15 years at Microsoft, in Redmond, WA
3 years involved in gaming
Helps major publishers bring mobile
games to Windows
PC/ Retro gamer: Arcade, strategy
jaimer@microsoft.com, @jaimerodriguez
3. Natural User
Inputs
Dev Tool + One
SDK
Cloud
Services
Windows Store +
Dev Center
Adaptive User
Interface
Holographic XboxDevices +IoT Surface HubMobilePC
Growing
Middleware
Deeper Tool
Integration
Hardware
Partnerships
Broader Event
Presence
4. Services
App model
UI Framework
Mobile APIs Xbox APIs Desktop APIs…
Universal App Platform APIs
unified Windows core and app model that supports how you develop your game
15. Services
App model
UI Framework
Mobile APIs Xbox APIs Desktop APIs…
Universal App Platform APIs
unified Windows core and app model that supports how you develop your game
16. User interface
Fundamentals
Devices Graphics and media Communications and data Services
Geo-
location
Proximity
Direct3D Direct2D Direct Write
PlayTo
Contracts
Bing
Azure
Mobile
HTML5/CSS XAMLInput Controls
Authentication
Bluetooth
USB
HID WiFi direct
Point of
service
3D
printing
Scanning
WebGL
HTTP
Contacts
Appoint-
ments
PDF
Speech syntheis
Diagnostics
Portable
Sensors Playback Capture
Printing
SVGCanvas
Local
storage
SMS
Streams
Background
transfer
Syndication Networking
XML and
JSON
OneDrive
Live tiles and
toast
Accessibility Data binding
Application
services
Threading/timers
Memory
management
Globalization Cryptography
Xbox Live
17.
18. Direct3D 11 APIs
GPU reports its feature level based on capabilities
Feature levels provide guaranteed feature set
Feature level numbers correspond to API features supported by hardware
Each feature level is a superset of the feature level before it
Feature levels do not imply performance
On device create, app provides a list of
supported feature levels
Runtime will return the highest level the
hardware implements
D3D_FEATURE_LEVEL_9_1
D3D_FEATURE_LEVEL_9_3,
D3D_FEATURE_LEVEL_9_1,
D3D_FEATURE_LEVEL_9_3,
D3D_FEATURE_LEVEL_10_1,
D3D_FEATURE_LEVEL_11_0,
D3D_FEATURE_LEVEL_11_1
D3D_FEATURE_LEVEL_11_2
D3D_FEATURE_LEVEL_12_0
D3D_FEATURE_LEVEL_12_1
D3D_FEATURE_LEVEL_11_2
3D_FEATURE_LEVEL_12_0
D3D_FEATURE_LEVEL_12_1
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx
19.
20. HDR SDR
“Hollywood Says ‘Meh’ to 4K TV But ‘More!’ to High Dynamic Range” –
Variety
“NAB 2015 – HDR Outshines 4K - It is as stunning as the shift from SD to HD”
– Imagine
1080p+HDR just looks better than 4K+SDR – Radeon RTG Tech Summit
39. Objective-C compiles to native code
x86, x64 and ARM
Microsoft OSS implementation of iOS APIs
Recompilation required
Not 100% coverage of iOS APIs
Easy Integration with WinRT APIs
43. Support for existing .NET (WinForms/WPF) + Win32 apps
Desktop App Converter packages Win32 apps for the
Universal Windows installer and deployment technology
Access UWP APIs within your app instantly to use Live
Tiles, notifications, Cortana, and more
Choose the path forward that makes sense for your app:
• Enhance your app (e.g. access UWP APIs)
• Add a UWP process to the app package (e.g. add XAML
UI, app services, etc.)
Bringing your existing desktop apps to the Universal Windows Platform
.msi
.appx
44. Convert your app to improve the user’s installation and uninstallation process, while keeping the PC clean
Enhance and extend the app to light up new Windows 10 features, while migrating over time
Finally, expand to all Windows 10 devices like phones, Xbox One and HoloLens
Bringing your existing desktop apps to the Universal Windows Platform
Universal
Windows Package
Desktop app
Universal
Windows Package
UWP APIs
Desktop app
Universal
Windows Package
Desktop app
UWP app
Universal
Windows Package
Desktop app
UWP app
Universal
Windows Package
UWP app
45. Natural User
Inputs
Dev Tool + One
SDK
Cloud
Services
Windows Store +
Dev Center
Adaptive User
Interface
Holographic XboxDevices +IoT Surface HubMobilePC
Growing
Middleware
Deeper Tool
Integration
Hardware
Partnerships
Broader Event
Presence
Looking to improve the development ecosystem at every level
Already know about improvements to the Core OS. Relased all the time.
Features and tools – ongoing improvement, and large point releases. Hey, what did I say about BUILD?
Really it’s all about what we’re doing to make the third level – above OS and tools, but below the devices, attractive to developers and vendors alike: focus on growing middleware partnerships; ensuring they’re tightly woven into our tooling; work closely with hardware vendors & makers to create opportunities at every level; and finally, create awareness. Used events, but really it’s shorthand for using both owned and external channels to showcase both internal and external events. New commitment to taking the gaming show on the road for more dev-centric opportunities; creation of dev-centric evidence pieces that we promote.
Strong initial acceptance of Windows 10 has really taken over PC gaming: last survey from February, combined Win10 numbers are likely over 40% right now
Xbox One as a Windows 10 device bringing UWP content to console gaming in 2016 – soon
IoT Core – Raspberry Pi 3 running Windows 10
Surface Pro 4 and Surface Book. Gamers are *really* into them – dedicated GPUs for Surface Book, and SP4 offers many core gaming scenarios not possible elsewhere
But what do those big numbers actually mean?
The unified Windows core and app model powering the game experiences across these Windows devices is the Universal Windows Platform or UWP.
UWP provides common APIs that can be used across all different devices powered by Windows 10. Alongside these common APIs, there are extensions available for each of the platforms that offer distinct capabilities (such as Mobile, Xbox and Desktop). These extension APIs work with our API contracts functionality to enable developers to light up features on devices that have these capabilities, but ensure the core of the app works across all devices. UWP also provides a number of UI frameworks, such as Windows XAML, DirectX and HTML to act as the user interface layer of the apps.
Next to APIs, UWP also provides an app model that looks after the complete lifecycle of the games, from installation to uninstallation, providing a cleaner way for games to be installed, run, updated and uninstalled, preventing “Windows rot”. The app lifecycle also provides limited background execution of apps (only one foreground app executes at a time, with mechanisms in the OS to ask for specific background task execution (on a schedule, triggered by various events (e.g. Internet/Bluetooth connectivity, power changes, etc.) and in specific scenarios such as music playing or GPS tracking).
The third part of UWP is the unification of the services, providing a single distribution and monetization mechanism through the Windows Store. The notification model has also been unified, enabling developers to send notifications in a single format to the various Windows devices. A light-weight model to roam data across devices is also provided to reduce complexity in providing settings and small amounts of data across devices.
<click>
Finally, we haven’t forgotten about existing developers who have invested in building desktop applications and experiences on the web. We’ll talk about these “bridges” later in this presentation and how you can re-use your existing code to accelerate bringing your game experiences to the Universal Windows Platform.
The unified Windows core and app model powering the game experiences across these Windows devices is the Universal Windows Platform or UWP.
UWP provides common APIs that can be used across all different devices powered by Windows 10. Alongside these common APIs, there are extensions available for each of the platforms that offer distinct capabilities (such as Mobile, Xbox and Desktop). These extension APIs work with our API contracts functionality to enable developers to light up features on devices that have these capabilities, but ensure the core of the app works across all devices. UWP also provides a number of UI frameworks, such as Windows XAML, DirectX and HTML to act as the user interface layer of the apps.
Next to APIs, UWP also provides an app model that looks after the complete lifecycle of the games, from installation to uninstallation, providing a cleaner way for games to be installed, run, updated and uninstalled, preventing “Windows rot”. The app lifecycle also provides limited background execution of apps (only one foreground app executes at a time, with mechanisms in the OS to ask for specific background task execution (on a schedule, triggered by various events (e.g. Internet/Bluetooth connectivity, power changes, etc.) and in specific scenarios such as music playing or GPS tracking).
The third part of UWP is the unification of the services, providing a single distribution and monetization mechanism through the Windows Store. The notification model has also been unified, enabling developers to send notifications in a single format to the various Windows devices. A light-weight model to roam data across devices is also provided to reduce complexity in providing settings and small amounts of data across devices.
<click>
Finally, we haven’t forgotten about existing developers who have invested in building desktop applications and experiences on the web. We’ll talk about these “bridges” later in this presentation and how you can re-use your existing code to accelerate bringing your game experiences to the Universal Windows Platform.
I am sure some of you are thinking: One API, across a myriad of devices with very different hardware characteristics.. It is not doable…
You are right-on… How Direct3D takes care of this is through Feature levels…
Collaborating w/ DirectX team on HDR / Wide Color Gamut Support which is part of the REC 2020 standard.
HDR is a key differentiator, ideally targeted at game scenarios, and has broad adoption across all the major TV and PC monitor manufacturers announced at CES 2016
Leveraging the expanded color space adds an additional level of clarity and image fidelity with minimal engineering and content changes
HDR support will be available as a preview later this year on Windows 10
===
If a game uses phisically based rendering, high dynamic range support can be added with a “very minimal engineering cost.” That’s because PBR already generates most of the data necessary for HDR.
====
We keep saying this is coming this year. How will it be rolled out? Is it in RS1? Does it have a different shipping vehicle?
[For Arthur]
[AY]
Xbox: preview available in March 2016 XDK. The RS1 mid-year release will officially add HDR support.
PC: RS1 supports a developer preview that allows developers to output HDR. RS2 preview is required for a full set of APIs. RS2 is also required for consumers to get HDR as a feature.
I assume API is available to both Xbox and UWP app models, right?
[For Arthur]
[AY] Yes – with the timelines in question 1).
What are the hardware requirements for HDR? Do I need a specific graphics card? Is it a specific DX feature level?
[Claude] Arthur, correct me if I’m wrong, but as far as I know you don’t need a specific graphics card, as long as the graphics driver can send the data over HDMI correctly to the TV, it should work. I.e. it doesn’t matter what graphics card or which DX feature level you use, just have to send the data in the correct format over HDMI. You’ll need a HDR capable TV though, which could mean many things.
[AY] On PC, the driver will need to support WDDM 2.1, which essentially means at least a DX12 card.
It is my understanding we are doing Rec 2020.. but not sure how that maps to Rec 709... is the latter the superset?
Would we support 709 too? Or did we ‘skip it’..
[Claude] We’re supporting HDR10, which means Rec.2020 color primaries + ST.2084 transfer function. For SDR we have Rec.709 color primaries + Re.c709 gamma curve. Rec.2020 allows to represent a lot more colors than Rec.709, and ST.2084 allows to perceive actual bright values, vs. currently only perceiving up to white. For Windows, DWM will take care of legacy and new HDR content automatically.
[AY] What Claude said - Rec 2020’s color space is larger than Rec 709’s.
Very
Main areas of middleware use in apps include products that help with development, analysis, user acquisition, and monetization.
Middleware that helps develop apps takes advantage of solutions that allow a common code base to be used across platforms as well as tools to help with A/B testing, crash reporting, etc. Leading providers such as Unity, Cocos2d-x, Marmalade, Wave Engine, HockeyApp, Crittercism, BugSense support apps built on UWP
Analysis of usage and behavior with apps enables developers to optimize for usability, customer satisfaction and monetization. Visual Studio Application Insights and Mobile Engagement, Adobe Analytics, and Localytics provide solutions for UWP apps
User acquisition puts the ability to promote and gain users in the hands of the developers. Many different strategies can be employed such as improving attribution, retargeting, or programmatic marketing. Facebook, Vungle, Kochava, Urban Airship offer services to drive user acquisition
Monetization of apps is a key aspect of a viable ecosystem. Monetization can be through direct payment using the Microsoft Store commerce capabilities for charging per download or for in app purchases. Additionally, advertising offers monetization opportunities and Microsoft Ads, Smaato, Inneractive, Pubmatic, and AdDuplex offer solutions for Windows apps.
That’s why we’re so passionate building Universal Windows Platform Bridges that let you
start with your code,
no matter where it was born and
bring it to the Universal Windows Platform and Store .
Three chunks
Clang/LLVM, c1/c2, CTP of arm32, build for phone
Mentioned APIs, dozens more, not just that, import directly to Visual Studio, laid out in XIBs not programmatically, still preserved
Not just syntax highlighting, mix and match XAML, not just UI, full access to UWP APIs
Bridge is a bolt-on SDK, so you can use as much or as little as you want to, think about it, access to so much
Previously announced as Project ‘Centennial’ and now an integral part of Windows 10 and the Universal Windows Platform is Microsoft’s bridge for existing desktop apps, like Win32 and .NET
With the Desktop App Converter, package your existing desktop apps the same way as a UWP app, giving the you and the user the benefit of the streamlined (un)installation process while still delivering the full use of your existing app your users are familiar with. This is essentially a different installer technology which abstracts the app’s initial file system and registry operations so that installation and removal is an entirely discrete process and the app cannot make persistent changes to these systems during installation
Additionally, the app is given an app identity after the conversion process, which is the key to accessing many of the newer UWP APIs, allowing your existing desktop application to make use of all of the new differentiated features such as Live Tiles, notifications, Cortana, and more
This opens up the opportunity to either enhance your app with UWP APIs directly from your existing code or adding a UWP process to the app package, which can be used to migrate the app, add XAML UI, app services and more.
Note that existing desktop apps converted this way can only run on systems on which they ran before (that is, they remain bound to desktop) until they are migrated to stop using the desktop extensions
TODO
Looking to improve the development ecosystem at every level
Already know about improvements to the Core OS. Relased all the time.
Features and tools – ongoing improvement, and large point releases. Hey, what did I say about BUILD?
Really it’s all about what we’re doing to make the third level – above OS and tools, but below the devices, attractive to developers and vendors alike: focus on growing middleware partnerships; ensuring they’re tightly woven into our tooling; work closely with hardware vendors & makers to create opportunities at every level; and finally, create awareness. Used events, but really it’s shorthand for using both owned and external channels to showcase both internal and external events. New commitment to taking the gaming show on the road for more dev-centric opportunities; creation of dev-centric evidence pieces that we promote.