Exploring The Danger Of A Microsoft PC Gaming Monopoly

microsoft-windows-10-pc-gaming-monopolyAfter years of a console focus, Microsoft are taking PC gaming seriously once again; from new software and initiatives such as DirectX 12, Windows 10, Universal Windows Platform to bringing former Xbox One exclusives such as Quantum Break and Gears of War onto the PC. But there’s a growing concern among both developers and gamer’s that Microsoft’s renewed commitment to the PC isn’t the best thing for the platform, and ultimately could lead to the PC gaming market essentially being controlled by Microsoft.

PC Gamers tend to focus on the PC’s faster GPU, better graphics and support for high resolutions when listing their system of choices primary benefits; and while its certainly awesome to run a game at 4K or at 144hz or having the option to crank the graphics sliders past the point of what a PS4 or Xbox One can handle, visuals are just part of the reason a growing number of gamers are shifting to the PC.

For myself and millions of other gamer’s, the real gem of the PC platform lies in the customization and choice it affords an individual for your gaming experience: rebind a games controls, disable visuals effects you dislike (why hello motion blur, I didn’t see you there), use virtually any controller your want, virtually unlimited backwards compatibility (thanks to virtual machines, DOSBOx and the like). That’s not to mention the countless number of mods for titles such as Skyrim, ability to run emulators to play classic retro titles and the community involvement too.

This naturally extends to the options we have to purchase our games – the physical releases of PC games are all but dead, as anyone who has visited a local video game store will testify too, but the a plethora of digital platforms have popped up in physicals place, offering a thriving and competitive ecosystem where the bulk of purchases are done now.

quantum-break-image
Quantum Break, coming to a Windows 10 powered PC near you (oh yeah, it’s coming out on Xbox One too)

It isn’t just Origin, Steam and Uplay battling it out (though they do take much of the limelight) – there are lots of resellers (including reputable and authorized websites such as GreenManGaming, Good Old Games and Humble Bundle) – sales of games ensure users have access deep discounts on a titles RRP – potentially even on new releases.  This digital ecosystem is starkly contrasts how Sony’s, Microsoft’s or Nintendo’s platforms handle the sale of digital goods. If you want to buy a title digitally for your Xbox One, there’s Microsoft’s store or nothing. Sure, you can buy “points” to redeem from Amazon or even your local supermarket, but you can only purchase your software by redeeming those points through one store.

So, where does this leave the PC platform then? Well, it’s pretty obvious Microsoft have been rather aggressive trying to get convince users to jump from Windows 7 or 8 to Windows 10. These tactics range from subtle hints to pushing Windows 10 as a recommended update, or even placing adverts in Internet Explorer for Windows 10. Then there’s a myriad of reports on Reddit (and other websites) of users having their machines receiving an upgrade to W10 without the users expression permission. This is particularly of concern for users who run certain legacy applications or hardware, which simply refuses to run on Windows 10 (despite trying compatibility mode and other solutions).

Microsoft’s clearly eager to push Universal Windows Apps (UWA) and equally eager to tell us the benefits of Windows Store… it’s also rather interesting that in many of their interviews, press releases and conferences they often refer to the PC as “Windows 10”; this is even true on the recent announcement of Gears of War 4’s Beta. “Beginning on April 18, fans who’ve played Gears of War: Ultimate Edition on Xbox One or Windows 10 will begin to receive tokens in waves for early access to the beta,” says the page.

Reading between the lines and it appears (at least to me) that Microsoft are pushing the Windows (10) brand over that of the PC; after all – the PC as a platform is open, and could run Linux, Steam OS or perhaps more confusingly to Microsoft, an earlier version of Windows. Pushing their brand is certainly their right, and if words on screen or paper were all that was happening then no harm, no fowl… but developers and users are growing increasingly concerned with Microsoft’s Windows Store, Windows 10’s nagging and other things we’ll detail as we go through this article.

Xbox-One-Console-With-Controller

To be clear, this I am not suggesting Microsoft can “force” developers to release games on the Windows Store or as Universal Windows Apps (UWA), but they can certainly give a hell of a lot of incentives for developers willing to use their platform – this can be anything from a myriad of tools or libraries exclusive to their platform, to providing Telemetry and Analytics to publishers so they can help design ‘better experiences’.

There’s certainly an argument to be made that Microsoft’s involvement in the PC platform strengthens the likelihood of releases of your favorite titles (be they Microsoft first party titles such as Gears of War 4 or even third party titles such as Dark Souls 3) but one should also consider concerns from the likes of Tim Sweeney and Gabe Newell who’ve voiced their opinions on just these issues. I’ve said before “To Microsoft, they don’t really mind necessarily how you interact with their market place, games or ecosystem – what they care about is having you in their ecosystem” and it’s never been truer than now.

Reading between the lines and it’s hard to miss Microsoft are taking the first steps in making the Windows platform more inline with what you’d find on an iPhone or a Android smart phone. But, in this instance, substitute Google’s Play Store for instead pushing users towards the Universal Apps and Windows Store.

What about DirectX 12 ?

First a little history and context as to how and why DirectX became so dominant as it is today: Back in the mid 90’s (when 3d graphics were very much in their infancy) most games supported multiple API’s on their releases – the usual suspects being DirectX, OpenGL and Glide (which was an API specifically developed for 3DFX’s Voodoo cards). Some of these titles such as Quake (GLQuake) required patches to run, and this was a notorious practice back in the release of the original Voodoo graphics cards and their competitors. Early Tomb Raiders, Quakes, Half Life 1, Sin… I could go on for quite some time, all offered different API options.

quake-2-video-options-3dfx-opengl
Quake 2’s video options – Notice the ability to change the driver.

Unfortunately for OpenGL, the popularity of the Windows platform, combined with Microsoft’s support of DirectX help push DX as the logical choice for the vast majority of developers to pursue. As game engines became increasingly complex, and graphics cards were expected to perform ever more complex operations the time to optimize game code across multiple API’s was deemed as too much work, and thus a lot of titles no longer really pushed OpenGL. It makes logical sense – an early 3d card handled a little lighting, texturing and the vast quantity of other processes (even geometry) were calculated by your systems CPU. As more of the graphics pipeline were shifted to the graphics card (such as Triangle and Lighting setups) writing shaders became increasingly complex, and an easy to use API which acted to automate as much of this process as possible was imperative for quick development time.

Combining this with many gamers (or users in general) not running a distribution of Linux, and earlier versions of OpenGL (such as 2.x) becoming rather clunky to develop for, and it’s unsurprising Microsoft became synonymous with PC gaming. But as longer time PC gamer’s know, Microsoft’s commitment to PC gaming started to wane (particularly around the release of the Xbox 360) and while we’ve certainly had new versions of DirectX (the X360 ran on a DirectX 9 variant and now most of the PC’s latest games use DX11+) the API’s haven’t supported the features developers (and gamer’s) have been crying out for.

cmd_buffer_behavior-dx12

DirectX 11 was first introduced back in late 2009, 11.1 in 2012 and finally 11.2 in late 2013; but didn’t fix certain glaring performance flaws, the infamous two being poor multi-threading support and high driver overhead. In a world of PC’s capable of handling 4 threads or more (both Intel and AMD have been putting out processors for a number of years, even by 2013 capable of handling several hardware threads) having only just a few cores fully loaded up (and the others generally sitting fairly idle) isn’t good for developers.

This lead to crazy situations where PC hardware just wasn’t as capable of running as many Draw Calls as it should given the resolution and graphics settings. Even the early DirectX 12 tests show a 17x increase in the number of Draw Calls switching to DirectX 12 can achieve. Draw Calls are just the tip of the iceberg, we could wax lyrically about poor mutli-GPU usage, high driver overhead and more besides. AMD and Nvidia can tweaked their drivers the best they can – and developers can do their best to optimize the code, but the API (in this case DirectX) is responsible as acting as the bridge between the application (the game) and the graphics driver. If it isn’t doing its job in an efficient way, then there’s only so much the other two pieces of software (the game and GPU driver) can do.

Add this to the fact Microsoft can essentially force Windows upgrades on users by locking off DirectX versions to updated Windows; such as DX10 being a Windows Vista exclusive, or DX11 for Windows 7 or above, or 11.2 only for Windows 8.1 users and of course DirectX 12 being exclusive to Windows 10 and it essentially pushes users down a certain upgrade path.

There’s few who’d deny that Microsoft’s release (in terms of support) of DirectX 12 is being handled considerably better than DirectX 10 or 11 however; and this can be said for either developers or gamer’s. The forcing of Windows 7 users to switch to Windows 8.1 left a bad taste in a lot of gamer’s mouths, and Valve’s head chief Gabe Newell famously called Windows 8 a Catasrophe for the PC platform.

dx12-cpu-vs-gpu-performance

“The big problem that is holding back Linux is games. People don’t realize how critical games are in driving consumer purchasing behavior,” Newell said at the time. “We want to make it as easy as possible for the 2,500 games on Steam to run on Linux as well. It’s a hedging strategy. I think Windows 8 is a catastrophe for everyone in the PC space. I think we’ll lose some of the top-tier PC/OEMs, who will exit the market. I think margins will be destroyed for a bunch of people. If that’s true, then it will be good to have alternatives to hedge against that eventuality.”

What about VULKAN?

Both Vulkan and DirectX 12 were heavy influenced by AMD’s Mantle (the first modern low level graphics API), but the key difference with Vulkan over DirectX is the open nature of the platform. Meaning a large number of companies and bodies have collaborated in the API’s development (including AMD, Nvidia, Samsung, Apple, Valve, Epic Games and Qualcom) and the API will run across a myriad of different devices. Potentially targeted devices include IOS and Android devices, Windows (both mobile and desktop), Linux and probably a turnip if you can get it to run code.

This is very different from the tight control Microsoft shows over its DirectX API, which ties you into Microsoft’s ecosystem. If Microsoft decides to halt production, push the API in a direction developers dislike or simply you’d like to game (or develop for) other platforms; there’s the rub. Microsoft’s latest iteration of their API is DirectX 12, which is an exclusive for the Windows 10 platform – forcing gamers to upgrade to the latest OS. While the upgrade is free – many user’s are unhappy about the push to upgrade (as discussed above), and it isn’t the first time this has happened. DirectX 9 was Windows XP or above, 10 was for Vista machines, and finally DX 11 for Windows 7, while finally 11.2 was relegated only to users running Windows 8.1 or above.

vulkan-api-status

Microsoft are also chiefly responsible for DirectX 12 (or future iterations of the D3D) API, and they must choose to release and maintain it. While the Xbox 360 hardware is a variant of DirectX 9, Microsoft have slowly released updated versions of their API’s. But for a long time, even the later iterations of DX11 several major problems with the API, including high levels of overhead, poor utilization of multi-core processors and all of this translates in to a low number of draw calls for games to push (Draw Calls are ‘instructions’ from the CPU to tell the GPU to draw a unique object on screen. The greater the number of Draw Calls, the greater levels of detail and unique objects a scene is able to include per frame).

DirectX 12 fortunately fixes most of performance issues (and the results can be rather startling), and I imagine a lot of gamer’s (whether they’re developers or just end users) are excited by the early promises DirectX 12 offers us. The issue though is that it’s still placing the ball in Microsoft’s court, and a growing number of developers are concerned by this.

oxide-vulkan-observations

Dan Ginsberg during Siggraph 2015 said the following: “Since hosting the first Vulkan face-to-face meeting last year, we’ve been really pleased with the progress of the API and we think it’s the right way forward for powering the next generation of high performance games.

“Here’s why we think Vulkan is the future. Unless you are aggressive enough to be shipping a DX12 game this year, I would argue that there is really not much reason to ever create a DX12 back end for your game. And the reason for that is that Vulkan will cover you on Windows 10 on the same class of hardware and so much more from all these other platforms and IHVs that we’ve heard from. Metal is single platform, single vendor, and Vulkan; we are gonna have support for not only Windows 10 but Windows 7, Windows 8, we’re gonna have it on Android and all of the IHVs are making great progress on drivers, I think we’re going to see super rapid adoption. If you’re developing a game for next generation APIs, I think it’s clear that Vulkan is the best choice and we’re very pleased with the progress and the state of the API. We think it’s gonna power the next generation of games for years to come.”

Limited modding and functionality of UWA releases

You know the story by now – a developer releases a shitty (excuse the language) port which is lacking resolution options, keyboard and mouse support, low resolution textures, poor lighting, bad frame rate or lack of anti-aliasing options (choose what’s appropriate for your given title). A modder comes along and fixes the game – Dark Souls, Tales of Zestiria and Watch Dogs are just a few titles modders have gone to down on.

And that’s not to say anything about modders who’ve expanded the functionality or lifespan of games. How many PC gamer’s do you know who’re running vanilla copies of Skyrim (whether its texture mods, companions or a spell mod which allows you to create a hurricane the size of New York) all the way to folks who’ll mod Street Fighter with the likes of zany costumes or new background stages. Modding and tweaking games is part and parcel of the gaming experience.

Recently Durante (a famous modder) wrote an opinion piece over at PC Gamer, pointing out how the lack of interoperability of UWA could negatively impact hundreds of thousands of gamers.

Being able to ‘hijack’ or ‘inject’ a process between API calls is essential- everything from being able to take a screenshot thanks to FRAPS down to the social services of Steam. And then there’s the rather messy problems with Rise of the Tomb Raider where owners running a pair (or more) of Nvidia’s GeForce graphics cards couldn’t easily setup SLI with the Universal Windows Apps. Nope, the Windows Store version of Rise of the Tomb Raider required support fix to be applied in the initial version of the title, and Nvidia Inspector could do little to help frustrated users.

Rise of the Tomb Raider - Windows Store vs Steam options
Rise of the Tomb Raider – Windows Store vs Steam options

And while it isn’t a “mod” per see, I’d be silly to not at least mention the lacking Exclusive Fullscreen mode in UWP. Think about that for a moment – how basic of an option this is for developers to include. To some this might seem a trivial point; but the reality means that a title is going to suffer a performance penalty and both Nvidia’s G-Sync and AMD’s FreeSync will have massive problems with this mode. Considering the hundreds (possibly stretching in to the $1K+ region) gamer’s have dropped on this setup, the very fact Microsoft’s UWA can’t support this is pure insanity.

Now, that isn’t to say Microsoft should not have their own store – it’s their right and if done correctly could be an excellent competitor to Steam. But as it is, the Universal Windows Platform is locked down, and requires users Side Loading applications if they wish to update, install and tweak things outside of the Windows Store. Microsoft should embrace the decision of developers to release their applications as traditional Win32 executables, and not have a locked down ecosystem preventing tweaks, mods and fixes (as covered by Durante above).

Microsoft-universal-windows-applications

Microsoft are building Bridges

Microsoft are aware of our concerns, and have recently put together a blog post which details several initiatives aiming to build ‘bridges’ for traditional software and Windows Store integration. These include Web Bridge for HTML and Java Script applications, Project Centennial to port Win32 and .NET applications, and finally Windows Bridge for iOS (known as Project Islandwood), which helps developers bring Object-C applications to Windows Store and was released on GitHub as an open source project in August.

“The philosophy behind the Bridges has always been to make it as easy as possible for you to bring existing code to Windows, and our investments in the iOS Bridge will make this straightforward. We initially focused on API coverage for game developers, but we are expanding our API coverage for all app types by adding support for additional frameworks, etc. We’re aiming for significant development cost savings for the majority of ‘typical’ apps – keep an eye on the project on GitHub, and of course we welcome direct contributions, helping us all out!”

Microsoft’s Build 2016 conference starts on 30th March, so we don’t have much longer to know how all of this works in reality; and whether this tackles the “black box” nature of currently released applications such as Rise of the Tomb Raider or the missing features (such as Exclusive Fullscreen Mode) or even helps modders be more productive.

Finishing things up

Microsoft’s decision to embrace PC gaming once again could either end up as either a major positive or a major negative for the platform. Providing the right ecosystem, developer tools, support and marketing Microsoft could help the PC ecosystem thrive more than ever. If you’re a regular reader or viewer, you’ll know I (and the rest of the RGT team) are super excited about Virtual Reality, new GPUs and processors coming out over the next year, new APIs and game engines and the whole slew of technology which’ll help propel us into a new era of gaming.

But Microsoft’s history of trying to control the platform (whether that’s violation of antitrust laws, to burying settings should you wish to change default applications from Microsoft’s own… or the terribly thought out usage of Windows Live on PC) isn’t stellar.

We’re still early on in this, so let’s not point fingers and yell at Microsoft (or anyone else) just yet, but instead let’s be vocal and tell them (and other companies) what we what, vote with your wallets and whenever possible support the open ecosystems for development.