But this still doesn't address a lot of problems for developers though. A "universal binary" is great, but when an AAA game is 50GB+, what use is that to mobile and tablet users?
The store is cloud based. It serves the client exactly what it need.
For example, even if you install a .net application from the store it will no longer give you the intermediate bytecode which would require your pc to have the latest .net CLR and compile at runtime. The store now compiles in the cloud for your pc and you already download the correct binary for the specific device you are on.
The same works for assets, the developer sets the device families and the user downloads only what is needed.
How do you optimise your games for each platform? The dev time for that doesn't suddenly reduce just because you only compile once rather than four times. Even on cutting edge tablets, you're effectively going to be playing a different version of Forza to the one on your Xbox. So why go through the impracticality of one app container at one price point?
Just like you would anywhere. UWP allows specific code for each platform, including low level cpu and memory access.
But, on the specifics of games, Ms has been testing for years now, tools and apis for the game to auto scale. Not just resolution and framerate. They have tools for scaling dynamically model quality, texture quality, effects quality, and so on. Of course, some of those requires pipeline changes so it might take a while, but as seen on Forza 6 Apex, Ms already has in place tools to set a target performance and let the game itself decide the quality of each setting considering how much headroom the system has at a given time.
Are Xbox/mobile users going to appreciate having to download large, updated apps over their capped data because you've patched PC code that they don't use?
Updates can be deployed separately. Both mobiles and apps are already doing so. Every once and a while Ms updates either the phone or the pc version of one of their bundled apps, and the update to the other platform takes a while because of known bugs.
In some cases like the photos app, the pc version currently has more editing tools, that are said to being ported to mobile but they are still working on performance and UI.
We've already seen Apple maintain two separate App Stores because even they understand, even with their walled gardens, one size fits all dev tools and shared architecture between iOS, tvOS, watchOS and macOS, that trying to tie desktop and mobile versions of programs into one app container just doesn't work on a practical level. Not least because both publishers and consumers have different price/feature/performance expectations on each platform.
That's what you got wrong. UWP is not one size fits all, that was winRT and Win8.
UWP and Win10 is all about understanding the underlying platform where your app is running and adapt to it, with very specific UI and logic if so is needed.
UWP is answering questions no developer or user was asking and even then many of those are only hypothetical answers. This is a world where PC gaming is ruled by traditional Win32 apps distributed by Valve, where 99% of mobile users are on Android and iOS and where more than half of console users are on PlayStation. Nothing UWP brings helps publishers address any of that so, truly, what is the point?
Wut? Plenty developers ask for unification of platforms. Win32 even is a result of such requests, because before that you had one programming model for desktop windows and another one for server. And for devices that demand is even higher. Just see the entire PDA/Mobile windows history. Or when apple first introduced the ipad, or even now on Android/Chrome OS.
And you are still wrong when you say there's no point, because one of the main drivers of uwp is to bring apps from other platforms easily to it. (And there's also work to bring uwp to those other platforms) while porting them to win32 basically means throwing everything away and starting over. But even if that was the case, there's the fact that developers that already develop win32 apps and games can continue to develop them as uwp and now gain more markets to explore almost for free.
But what you've described there is effectively two separate games. They have different art assets and there's no way you'd be able to bring all the logic from a console game directly to mobile even if they do share the same codebase.
Well, that's basically why uwp is needed.
You want to use a system shell? Very close api and code on both mobile and pc and console. Want to make a direct x call to render something? The same deal. Or receive player input? Connect to xbox Live? Play a sound? Access the storage?
Basically all common interactions are well, common. You can, and should have unique code for every platform, but that's usually low level optimizations and interface logic, both of which are usually a very small part of the codebase.