Following the news that the explosive vehicular MMO, War Thunder, has a work-in-progress Vulkan render, I got in touch with the developer to ask about their experiences working with Vulkan and bringing their game to Linux.
The CEO of Gaijin Entertainment, Anton Yudintsev, was kind enough to answer the questions I sent him for the article. Some of the replies have been lightly edited for formatting.
Q: War Thunder and the Dagor engine seems to run just about everything these days. What prompted you to branch out so much, especially to smaller platforms like Linux?
Linux is the main platform for game servers. Because of that, the engine and game are already suitable for Linux, and the only thing left was the renderer. Back in the days, MacOS and Linux were both OpenGL, so it was rather easy.
Q: How difficult was it to port your engine to Linux in the first place?
Not much. Again, it was vital for our online games anyway.
Q: Now that you've been working with it for a while, how do you feel about the Vulkan API and its capabilities? Any particular challenges you've had trouble with?
Vulkan is a new low-level API which will replace OpenGL as an open API. Its concept and ideas are very close to how real hardware is working, and so it can (theoretically) provide the best possible performance. There are several issues with it though - first, it is not supported well enough by developers and so vendors do not invest much, and so developers have difficulties using it (driver issues, API issues, lack of documentation, etc) - it’s a catch 22. Additionally, HLSL is practically the standard shading language nowadays, and shading compiling to SPIRV (Vulkan shader language) is not anywhere near good enough.
Q: The new effects in the recent update to Dagor Engine 5.0 were really cool to see added to the game. Are there any interesting features that you think that Vulkan might help you add to your engine in the future?
Vulkan (as well as DirectX12) are adding more amazing opportunities to optimize the game or provide more out of less resources. There are some issues with keeping it compatible with DirectX-11 level of hardware, but we have high hopes for using it’s memory management and async compute capabilities, as well as particular vendor extensions.
Q: You have mentioned working with all GPU vendors for your Vulkan efforts. Have you considered working with the folks who contribute to Mesa? Both AMD and Intel have rather good open source Vulkan drivers.
We work with vendors to get working and optimized drivers. The main gaming platform is still Windows, so our best chance is having Vulkan adapted as supported and optimized low-level API by vendors on Windows - and that will bring opportunities to other platforms.
If developers and vendors will keep investing in Dx12 for Windows, Vulkan will keep being underdeveloped (unless other popular platforms change it, such as Android or Switch).
Q: Is there any data you'd be willing to share about the number of players that are running Linux?
Few thousands :) Not many.
Q: There were a few performance regressions reported by Linux players with some of the recent updates. So I wanted to ask about your testing process and setup. Do you have dedicated Linux test machines? If so, what distributions and hardware do you test on?
The reason for regression is that we used to keep OpenGl 4.4 (for Linux) and OpenGl 3.3 / 4.1 for MacOS rendering paths. Now, when migrating to Dagor 5.0, we cut legacy API support to one minimum - OpenGl 3.3 / 4.1 (MacOS branch), which is now used on Linux as well. We did that so we can free developers resources to invest in Vulkan, as even OpenGL 4.5 (which again, was used only by Linux gamers) is nowhere near as promising as Vulkan in terms of performance and feature set.
It may be a bit unpleasant at the moment, but it will bring a way better experience soon enough, and Linux gamers will benefit from it.
We do have dedicated Linux machines (or dual OS machines) in our QA, tens of them.
Q: And for the final and most important question: Do any of your developers use Linux at home? Any thoughts on what the best distro might be? ;)
A lot of our developers use Linux at home. Usually, not for gaming though :)
Ubuntu is (still) the most popular gamer Linux, but some of our developers prefer CentOS, Debian and Arch Linux.
I'd like to thank Anton for taking the time to answer these questions and being candid about his thoughts on Vulkan and Linux and I'd also like to thank the rest of the folks at Gaijin. It's a bummer to learn that recent performance regressions in OpenGL were due to their cutting legacy API support to a single (older) OpenGL version but, on the other hand, it definitely sounds like they're committed to pushing Vulkan. From my own testing, the game performs phenomenally with Vulkan and so I'll be eagerly awaiting to see when it'll be ready to be deployed to the general public.