A couple of years ago, Cloud Imperium Games the developers of Star Citizen, stated that they would be implementing Microsoft’s DirectX 12 low-level programming API into Star Citizen in the future, however according to a recent forum post by one of their development team, it appears they may have had a change of heart.
Currently Star Citizen is running on DirectX 11. But due to the graphics quality and fidelity, not to mention the oft repeated 10-year life span of the game, which developers of Star Citizen are trying to achieve, DirectX 11, while capable, lacks some of the features they are looking to take advantage of. Due to this, CIG had planned to use DirectX 12 as their future API in the game, however it appears they may have adjusted their plans and moved to use Khronos Group’s Vulkan in its place.
On CIG’s official forums their Director of Graphics Engineering Ali Brown shared CIG’s current plan regarding API situation in Star Citizen and the reason behind choosing Vulkan, as their future low-level API.
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.
Another interesting bit Brown mentioned is the number of moving objects (such as asteroids and debris) the developers are currently able to achieve with their current systems.
In terms of number of objects, when using our dedicated systems for asteroids & debris we can already handle over 100,000 individually moving objects on screen at well over 60fps, and intend to use an imposter system to handle the visualization of millions more in the background, so there’s no concerns there 🙂
CIG’s change of plans do make sense. DirectX 12 and Vulkan API at their cores are similar, however DirectX 12 introduces platform limitations as opposed to Vulkan, since DirectX 12 is only supported on Windows 10 based platforms, while Vulkan will work on any platform that will support it and on top of that is open source, allowing for third parties to freely contribute to the API overtime. While the current stable of games that support Vulkan is small currently, this is gradually increasing over time, with titles like DOOM, The Talos Principle and Dota 2 already providing support and titles like Ark: Survival Evolved soon to join them.
The developers of Star Citizen seem to be very confident in their overall progress regarding this change so hopefully it won’t have a negative effect on development, though when we will see Vulkan implemented in Star Citizen is still as yet an unknown. Star Citizen is expected to get the hotly anticipated 3.0 update sometime this year and Squadron 42, its single player story experience, is expected later on in the year too.