Building Great Universal Windows Platform (UWP) Apps for Xbox

Download this episode

Download Video

Download captions

Description

In the next version of Windows, you can build apps that work on Xbox using the same UWP technologies and Store submission procedures that you use for PC and phone. Come learn how to use familiar technologies like XAML and C# to build apps that deliver a great experience on the Xbox. We’ll talk about designing for the big screen viewing experience, optimizing for gamepad input, and handling multiuser cases. Learn how you can easily tailor a UWP app to be great on Xbox while continuing to delight your PC and phone users, all using the same source code.

Day:

2

Session Type:

Breakout

Code:

B883

Room:

Marriott Salon 8

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image
      dpiasecki
        • I posed the question "Why burden developers with 20+ year old standards for analog CRTs?" in response to the session's recommendations regarding TV-safe display area and color space.       The response:
          • "It is how we have always done it"
          • "Every other console does it"
          • "We have to support the small fraction of users whose TVs enable overscan"
          • "We would rather burden developers than users"
        • Just because it has been done that way or is done by others doesn't mean it is the best way...
          • Why are we providing a worse experience for the majority of users?
        • So I asked why the OS doesn't handle this (scale and pad for the overscan area, and scale the color space via the hardware LUT):
          • I was told "The OS can't do it since that would be too confusing to users to setup"
          • Regardless of a slight increase in complexity for users, I believe this is a far better solution. The OS can still default to padding the display area and scaling the color space so it "just works" for users who don't touch anything and ignore the initial setup. For everyone else, the initial setup can guide the user to at least set the overscan setting properly (we wouldn't want to attempt to get them to select the right color space), and users who want full screen and full color range can always delve into the settings.
        • I should not have focused my questions on the developer burden, as the problems the current approach result in are far more wide-ranging than that:
          • What about the burden on the hardware?
            • Are software developers happy that they have only 81% of the GPU resources to spend on rendering the "important" content (since only 81% of the pixels are inside the TV-safe area)?
            • Are the Xbox hardware developers happy that they have to oversize the GPU by 23% to be able to render all the "unimportant" pixels outside the TV-safe area?
          • What about consistency and its impact on the user experience?
            • The session recommended using different colors for the UI, but didn't mention that an app would need to also remap any photos or videos (not to mention the additional load of doing so instead of getting it free via the hardware LUT)?
            • The session recommended using the 10ft-UI property to switch to the TV-safe display area and color space, but these should not be linked - they need to be independent.
              • If they are linked, then it breaks the use case of the computer display used in 10ft-UI mode (he gave the example of a computer used as a TV by a college student in a dorm)?
              • If they are not linked, then it requires yet more app settings to control. How is this easier than a global setting for the system?
            • Some apps will implement support for the TV-safe display area and color space, but many won't, so a user who does want to get things right cannot choose a setting the works for everything.
            • Although UWP is not currently allow for games, the TV-safe area is an issue for HUDs in games, as they have to look good while optionally (when 10ft-UI is enabled) extending their size to fill the TV-safe border area (10% of each screen dimension).
          • Why not work to fix things?
            • Work with HDMI standards body so sources can provide overscan and color range data so TVs choose the correct setting automatically.
            • Is overscan really a part of the UHD standards? If not and it is still implemented by TVs, why not work with manufacturers to make it off by default for UHD sources?
            • Since UHD defines new color spaces like Rec 2020, at least the color range issue should go away when the new color spaces are used.
          • What about not creating a mess for the future?
            • Inconsistent app behavior may mean compatibility shims in the future.
            • What about new hardware, such as a future UHD Xbox that doesn't use overscan?
            • What about HoloLens, where apps may want to run with a 10ft-UI, but should not use overscan?
    • User profile image
      Winston

      how can we port appstudio apps with UWP to Xbox One?

    • User profile image
      paulgus

      @dpiasecki: Thanks for sharing your feedback on the TV-safe area and TV-safe colors topics.  Clearly it'd be simpler for all of us if these extra considerations around displaying to TVs didn't exist, but the inconvenient truth is that at this point in time they do.  It's not just 20-year old televisions, but even new flat-screen HDTVs that may hit these issues.  For example, a recent study found approximately 50% of Xbox customers have TVs with overscan and this was from a dataset where >70% of the TVs were fewer than 4 years old.

      As a platform, we've opted to give developers the same power and flexibility to address these topics as we give our own developers within Microsoft developing the Xbox shell and our first-party apps.  If an app author wishes to align to the same design choices that our Xbox shell and first-party apps made with respect to TV-safe area and TV-safe colors, we hope you'll find it's relatively straightforward to do so, as we showed in the talk.  If an app author wants to take a different design approach – e.g. prompt end users to adjust their TV settings not to overscan if possible and then place interactive content outside the TV-safe area – the platform gives you the power and flexibility to do that, too.

      I genuinely do appreciate your pushing on us to try to make this simpler for developers to deal with as well as explore ways to lead the TV industry forward here.  We've tried to strike the right balance on the tradeoffs for end users as well as developers, but it's worth recognizing this is also the first release of Universal Windows Platform for Xbox.  You're all part of the beginning of this journey and we're going to be learning from what all of you do with the platform, the pain points you hit, and the things you put out there that resonate with customers.  We'll continue to work to improve the platform to better meet everyone's needs and hit the right sweet spots based on those learnings.  So thanks and please keep the feedback coming!

    • User profile image
      spaulds

      Hi Paul and Nick, great session, really enjoyed the content and the tag team delivery. Really well presented.

      Will you be posting the source code for the President's app?

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.