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.
You can get War Thunder via their official website or through Steam.
QuoteQ: Is there any data you'd be willing to share about the number of players that are running Linux?
Few thousands :) Not many.
Few thousands is quiet big in my penguin book, I tried this game a few years ago on Linux and it was already pretty impressive back then. Might give it another try.
Thanks Liam and Gaijin.
Quoting: Avehicle7887Thanks Liam and Gaijin.And BTRE
Quoting: phalenyou missed an important question, do they plan to bring any of their other games to Linux. especially after they get Vulcan ironed out well.
Gaijiin is a very big name in online gaming (one that's surprisingly unheard of) and they are a linux friendly developer and publisher entitiy. They have some of their games on linux, such as Star Conflict.
1) Black screen with kwin and maybe several other window managers, meaning you need to start the game in a separate x window with xstart etc...
2) There are random crashes that occur and yet unexplained, I've had them on the main menu and also in-game, could be related to bug (1).
Hopefully they sort it out soon.
PS. Google just recently ported HLSL to Linux so now it should be possibly to run HLSL with Vulkan, without much change or something. That nugget is on phoronix news post.
PS2. To bypass the kwin and perhaps other window manager black screen issues, do the following in a new tty. (ctrl-alt-f2 for example)
cd '(steampath)/steamapps/common/War Thunder/' && startx ./linux64/aces Or just kill kwin_x11 before starting game.
I have NOT adjusted the path.
Last edited by TheRiddick on 27 June 2018 at 12:37 am UTC
You can killall kwin_x11 before launching the game if you wish to not run it via a separate xdesktop.
The problem doesn't occur with certain other window managers, mainly basic ones have no issues.
Someone will find a better solution, I just use the command below myself.
cd '/mnt/GamesSSD/SteamLibraryLinux/steamapps/common/War Thunder/linux64/' && killall kwin_x11 && ./aces
Last edited by TheRiddick on 27 June 2018 at 5:58 am UTC
For shader compiling see this:
https://www.phoronix.com/scan.php?page=news_item&px=DXSC-Google-Linux
Last edited by mike44 on 27 June 2018 at 8:49 am UTC
Last edited by Colombo on 27 June 2018 at 10:44 am UTC
Oh and the name doesn't mean anything but coincidentally could be pronounced as "Buttery" which suits me just fine.
See more from me