Star Citizen’s Developers Choose Vulkan Over DirectX 12
Posted on March 20, 2017 11:00 AM by Rob Williams
I think few would argue the fact that Vulkan is an excellent graphics API, and one that all game developers should consider supporting. Why? For starters, it’s lightweight, designed to offer better gaming performance than we’ve ever seen from the likes of heavier APIs, a la DirectX 11. Beyond that, Vulkan is cross-platform, so games that are developed using the API for Windows have a far greater chance of being ported to other platforms, like Linux, or even mobile.
Despite Vulkan’s huge promises, and the seemingly strong industry support behind it, we haven’t been hearing much about new games coming down-the-road that support the API. This page at Wikipedia, for example, tracks Vulkan-powered games, and it hasn’t changed that much over the past year. Vulkan does have one thing working against it, though: it’s new. As time goes on, and brand-new games being their development, it seems certain that Vulkan isn’t going to be completely out-of-mind for most game developers.
DOOM has been one of the most notable Vulkan-powered games to date
When Sony launched its upgraded PlayStation 4 in the form of the PS4 Pro (our review), what we saw from the get go was awful game support. It’s because at the time the Pro was announced, countless developers already had work to finish, and at that point it just wasn’t possible to add an entirely new mechanic to the development process. Vulkan suffers the same kind of reality: support simply can’t be amazing out-of-the-gate, because most game developers are unwilling to put the effort in to convert their game to Vulkan (and they can’t be blamed – it’s not a simple process in many cases.)
However, not all developers are avoiding that work, and in fact, some are choosing Vulkan over other APIs, including DirectX 12. Case in point: Cloud Imperium Games’ Star Citizen, which was just revealed to be moving towards using Vulkan, and dropping DirectX 11. Oh – and DirectX 12 support? Won’t happen.
I am the furthest thing from being a Star Citizen expert, but you don’t have to be one to appreciate the sheer complexity of the game, and the kind of performance demands it has. This is a game that could benefit greatly from seemingly minor performance tweaks, because it’s a game that’s suitable for future hardware as well, not just current hardware. It’s in the developer’s interest to make sure that the game runs as best it can on a variety of hardware, and supporting a low-level API like Vulkan is a great step in making sure that happens.
Here’s a quote from the game’s graphic’s designer, Ali Brown:
Years ago we stated our intention to support DX12, but since the introduction of Vulkan which has the same feature set and performance advantages this seemed a much more logical rendering API to use as it doesn’t force our users to upgrade to Windows 10 and opens the door for a single graphics API that could be used on all Windows 7, 8, 10 & Linux. As a result our current intention is to only support Vulkan and eventually drop support for DX11 as this shouldn’t effect any of our backers. DX12 would only be considered if we found it gave us a specific and substantial advantage over Vulkan. The API’s really aren’t that different though, 95% of the work for these APIs is to change the paradigm of the rendering pipeline, which is the same for both APIs.
The bold text is my emphasis, because I find it to be a pretty bold statement. According to CIG, or at least this developer, DX12 simply doesn’t offer tangible gains over Vulkan, and thus the choice of API is easily made. That’s something Microsoft’s sure to balk at, if it chooses to respond at all.
It’s also worth noting that a couple of weeks ago, NVIDIA announced that some of its GameWorks technologies (FleX, Flow, and VRWorks) were coming to DirectX 12, which would make for one feature Star Citizen‘s Vulkan base would be missing out on. While GameWorks is often bagged on because of its proprietary nature, the features carried over to DX12 would be open to run on all graphics hardware. That said, if Vulkan industry support continues to grow, it seems likely that it will also be treated to some NVIDIA GameWorks goodness at some point.
Nonetheless, it’s great to see Vulkan support coming to such an ambitious title. We can hope that CIG’s confidence in the API will help tip others off to the benefits of using it as well.