Crossing Platforms: a Talk with the Developers Building Games for Linux
Games for Linux are booming like never before. The revolution comes courtesy of cross-platform dev tools, passionate programmers and community support.
In the last five years, the number of mainstream games released for Linux has increased dramatically, with thousands of titles now available. These range from major AAA releases, such as Civilization VI and Deus Ex: Mankind Divided, to breakout indie hits like Night in the Woods
For this article, I spoke to different developers and publishers to discover the shape of the Linux games market and find out what's driving its prodigious growth.
Figure 1. Multi-award-winning comedy adventure game Night in the Woods is one of many games simultaneously released on Linux, macOS and Windows, thanks to development tools that can build for all three platforms.
Why Develop Games for Linux?
Support for Linux has boomed with the introduction of cross-platform development tools that make it comparatively easy to release titles on multiple operating systems. Perhaps more important, almost all the developers I spoke to personally support the Open Source movement, even if their games are proprietary.
For Zack Johnson, creative director of asymmetric's stick-figure comedy RPG, West of Loathing, the game's origins as a spin-off from popular browser game Kingdom of Loathing played a significant role.
"There was a vocal contingent of original Kingdom of Loathing players who urged us to [release a Linux version]", he said. "We knew we'd be able to get information and support from them during development, so it seemed like a worthwhile thing to do."
His experiences making an online game also helped form that decision: "My first game project was built on the LAMP stack, so I wouldn't have a career without open-source software. And just in general, it's hard to understate its importance to the fundamental underpinnings of the internet."
Figure 2. New Britannia, the online world created for Portalarium's Shroud of the Avatar, has been accessible to Linux users since its early pre-Alpha releases.
At Portalarium, the company behind Richard "Lord British" Garriott's latest fantasy RPG epic, Shroud of the Avatar, tech director Chris Spears says the drive to support Linux came from within:
Like most game development studios, there are a lot of Linux advocates in the office. When we ended up choosing an engine that had support for Linux, it seemed like a no-brainer to support Linux.
Also, while the gaming audience for Linux is a fairly small market, they are passionate, typically more hard-core gamers, which matches up directly with what we want in our audience! We're a bit of a thinking person's game, and that meshes exceptionally well and appeals more to the Linux crowd than most other games.
Finji's 2017 indie hit Night in the Woods—a coming-of-age comedy set in a run-down industrial town and starring an animated cat called Mae Borowski—was built in the Unity game engine. The heart of its complex narrative system and branching dialog choices is The Secret Lab's Yarn Spinner, released under an MIT license.
Programmer Jon Manning says that "open source is what made Yarn Spinner, the narrative engine inside NITW, as featureful as it needed to be to ship the game. We're huge fans, and we'd love to see more people contributing to both games, game engines and tools to help game developers build their visions."
Figure 3. Yarn Spinner, available as a Unity plugin, allows developers to create and track complex narrative choices.
Lottie Bevan of Weather Factory, the studio behind Lovecraftian mystery card game Cultist Simulator, speaks highly of Linux fans:
We were impressed with the Linux community back when we were at [the team's previous employer] Failbetter—they were our smallest platform demographic, but they were by far the most helpful and the most technically aware. Linux users seem to understand that as they're so few it's not a necessary biz decision to support Linux, and therefore are quite appreciative and helpful if you do!
What Makes It Possible?
Many of the developers I spoke to emphasized the importance of cross-platform development tools in general and of the Unity game engine in particular. Here's Chris Spears of Portalarium speaking of their decision to use Unity:
We chose Unity 3D as our engine, and it has native support for Linux. While it isn't quite as simple as just checking a box that says "Support Linux", it is orders of magnitude easier than having to build our own engine to support multiple platforms. As a game company, most of our tech staff was already Linux-savvy, and more than a third of our engineers run Linux as their primary development OS.
Weather Factory's Lottie Bevan agrees: "Unity takes care of around 95% of the problems we'd have otherwise had to deal with, which is invaluable for a two-person microstudio!"
The West of Loathing team members at asymmetric also are fans of the game engine, which has supported Linux as a target platform since 2011 and has had a Linux version of its development environment available since 2015.
"We used the Unity engine to build West of Loathing, so right from the start, we had support for all the essential technology", says programmer Victor Thompson. "I do not have any particular knowledge about Linux! I used a couple different distributions in the distant past, but that was strictly for maintaining personal mail and web servers."
Although many core tools and libraries are cross-platform, a game's development strategy ideally should be designed from the ground up with Linux support in mind.
When Lizard Cube was developing its lush hand-drawn remake of Westone Bit Entertainment's classic platform game Wonder Boy: The Dragon's Trap, director Omar Cornut says:
We made all the data formats portable. Even if it meant, for example, using free software, such as a portable video player, which is very poorly optimized from a run-time point of view. But the simplicity of not maintaining different exports and proprietary players was really worth it. And we made all the tooling portable.
I'm heavily using my free software library, Dear ImGui, which allowed us to make a portable tooling UI. In fact, the game rendering itself is piped through Dear ImGui. This tooling even works on consoles—which aren't POSIX systems and are not supported by traditional UI toolkits.
Figure 4. When they created a remake of Wonder Boy: The Dragon's Trap, Lizard Cube's developers worked with cross-platform systems from the very start.
Kitsune Games' roguelike MidBoss, in which a lowly imp possesses other monsters to gain their powers, similarly supported Linux from early on. "We got a lot of requests for a Linux version during development", says studio founder Emma 'Eniko' Maassen-Yarrow. She adds, "The game was also built on Ethan Lee's FNA library, and after talking to him at some events we got the impression that the Linux gaming community is very good to developers who port to Linux, so we wanted to reward that."
Like many developers, she bought in expert assistance when it was needed: "The FNA library [an open-source reimplementation of the Microsoft XNA Game Studio 4.0 Refresh libraries] made the whole process pretty painless. We also hired Ethan to help us with the ports, and if you're working on an XNA/FNA game, I highly recommend that. In fact, we liked it so much that we've been porting our new custom game-making framework to use FNA!"
Figure 5. Kitsune Games' roguelike MidBoss relied on an open-source reimplementation of Microsoft XNA Game Studio libraries to bring it to Linux.
Porting specialist Feral Interactive highlights developments in graphics technologies as being particularly important. Feral PR manager Mary Musgrave says:
In recent years, Vulkan has made a huge difference, allowing us to make performance improvements that weren't available to us in OpenGL.
In terms of process, we build a lot on our own work. Internally, we have a set of unified libraries that we use across games (and sometimes platforms) that mean that no one port is entirely standalone. We have built up a strong core of knowledge over the years, meaning that our teams benefit from the learning gained from earlier projects.
Externally, our contributions to open-source projects and thus the wider Linux ecosystem have had a long-term benefit. For example, Feral developers have to date made 50+ commits to Mesa drivers, and we also fix issues in Khronos' Vulkan layers.
What Are the Challenges?
Even with tools that can publish to Linux as easily as to Windows, there still are overheads associated with supporting an entire additional operating system.
asymmetric's Victor Thompson says:
The main challenge was supporting (as in actually testing) a wide enough variety of Linux distributions. As the person most directly responsible for this aspect of testing, I had to get creative with a variety of USB install and test distributions.
We did have a couple of snags, both of which appeared as bugs found by users. In those cases, the users reporting the bug were helpful in finding out what was happening. One case I remember was caused by not setting an appropriate locale for the game (important because we read text from files, and numbers that look like "1.000" mean different things depending on locale settings).
I also (re)discovered the joy of alternate window managers, some of which alter the way our game will interact with the graphics driver. We had to scramble to add a graphics option for users who had this issue, and I still don't know what a Unity game can do to get around them automatically.
Figure 6. Quality assurance testing proved to be a key issue for ensuring proper Linux support in asymmetric's West of Loathing.
Quality assurance is a recurring issue. At Portalarium, the Shroud of the Avatar dev team has automated its builds for Windows, macOS and Linux, but "there are occasionally a few hiccups due to differences in the graphics library and shaders, but not too many that we have to address specifically for Linux platforms. Probably the biggest workload for supporting Linux has fallen on our tiny QA team since they have to test all new versions of the game on each platform."
Wube Software, the makers of manufacturing, logistics and resource management game Factorio, encountered some specific difficulties with cross-platform implementation due to the deterministic nature of the game's automated factories and processes. CTO Michal 'Kovarex' Kovarik says the team found that across different platforms:
Some compilers implement certain functions in different ways, causing calculations to vary over time.
It turned out that, in C++, basic trigonometric functions (sin, cos, asin, atan, and so on) are not guaranteed to give the same results across different platforms. We are not talking about precision here, it is about getting the same (though possibly imprecise) outcomes.
This meant that cross-platform multiplayer wouldn't work. In the end, Kovarex wrote custom implementations of these functions to produce consistent gameplay for all users.
An alternative to in-house parallel development is to bring in a porting specialist. Two of the most notable porting studios for Linux games are Feral Interactive and Aspyr Media, both of which started life as Mac porters before introducing Linux titles as their client developers began to take an interest in the platform.
Communications director Jonathan Miller says:
At Aspyr, we are Linux believers. In the past year, we have released Observer and InnerSpace on Linux, with Next Up Hero slated for release later this year. In addition, we released six DLC packs and the Rise and Fall expansion for Civilization VI. With the proliferation of SteamOS as well as smart TVs, we see a bright future for the platform. In short, we love our Linux supporters and will always endeavor to bring each of our titles to Linux, if at all possible.
Feral Interactive started putting out Linux conversions in 2014, with XCOM: Enemy Unknown. Since then, the company's most popular Linux ports have included XCOM 2, Rise of the Tomb Raider, Life is Strange and Deus Ex: Mankind Divided.
As a result of working with a number of different original developers, Feral handles a wider range of game engines and uses a greater variety of tools than most of the studios we've spoken to, porting titles originally developed in Glacier Engine, Crystal Dynamics' Foundation Engine and Unreal Engine.
Figure 7. A small, but growing number of AAA games are ported to Linux by conversion specialists like Feral Interactive.
Feral's PR manager Mary Musgrave says: "We saw Linux as an underserved audience, and because we had experience in Unix-based porting, we thought it would be an obvious extension to what we already do."
Linux gamers sometimes are frustrated that even games that have been ported to macOS often don't make it to Linux. Although modern development tools and game engines can make the job easier, there's still a lot of work involved.
The Feral team took us through the key factors involved in porting to Linux and explained where those critical differences come in:
- Compiler: "We compile Linux games with GCC, the GNU Compiler Collection, which behaves differently to the Clang compiler that we use on macOS."
- Drivers: "Linux uses a completely different set of drivers from macOS. In the case of open-source drivers, Feral developers often contribute to fixes that our games require."
- Graphics APIs: "In the last couple years, the advent of Metal and Vulkan means that our macOS and Linux games now use different graphics APIs. Prior to this, they both used OpenGL, although each platform required separate optimization processes."
- Hardware and software testing: "When we release a game, we thoroughly test it on a wide range of hardware and software configurations to determine what that game can officially support. Not only is there little overlap between macOS and Linux hardware and software, but there's naturally a lot more variation in terms of what hardware and software Linux users have."
Feral also has developed and released open-source tools to make life easier not only for themselves but also for Linux game developers in general. A recent example is GameMode (available now on GitHub), "an open-source tool that allows games to request that a set of performance-improving optimizations be temporarily applied to the host OS. Previously, some of our games required users to manually swap the CPU governor using sudo-privileged commands, but GameMode automates this, and ensures the CPU is restored to a more efficient state when they've finished playing."
The State of the Market
One of the biggest shifts toward mainstream Linux gaming came in late 2012, when Valve launched its Steam beta client for Ubuntu, along with its hugely successful zombie shooter, Left 4 Dead 2.
Since then, the company has been a strong supporter of Linux hardware and software development. Although Valve's SteamOS gaming distro received a somewhat muted response, the company continues to support it, along with other projects including SteamVR for Linux, a Steam Controller kernel driver and a Linux version of the Source game engine.
A little more than 20% of all games on Steam—around 5,000 titles in total—run on Linux, and it continues to be the biggest release platform for major game publishers.
Meanwhile, retro-loving, DRM-free GOG.com—a subsidiary of CD Projekt, developer of the Witcher games—operates a more curated digital storefront, with a total of just less than 2,500 games available. Since launching Linux support with 50 titles on August 19, 2014, 851 of the games on GOG.com—more than 35%—now have native Linux installers.
Indie gaming darling itch.io has supported Linux games since it first launched on March 3, 2013, with the first downloadable Linux title, Sophie Houlden's Rose and Time, coming to the platform later the same month.
itch.io creator Leaf Corcoran says that Linux games and open-source software are personally important:
I switched to Linux many years ago. I use it as my daily driver and to develop itch.io. I'm happy to see the reasons for going back to Windows for gaming are shrinking every day. Linux as a platform was supported the first day itch.io launched. We continue to prioritize it when launching new products, like our desktop app and our upload/patching tools.
As a distribution platform, itch.io is home to many games that can be played in a web browser. There are more than 38,000 of them right now—around 35% of itch.io's total—all of which work on Linux browsers. There are also 15,000 downloadable Linux titles, adding up to another 13.8% of all itch.io games. This makes it the biggest Linux distribution platform in terms of sheer numbers, and the games on it range from artistic experiments and game jam entries to better-known games, such as Doki Doki Literature Club, Night in the Woods and Everything.
How Many People Play Games on Linux Anyway?
Lizard Cube's Omar Cornut says the number of Linux players of The Dragon's Trap is "quite low, unfortunately. Last time I looked, Linux was about 1.5% of our Windows sales. I think if we add up Linux and OS X sale, we just recouped external cost there, so it's not too bad!"
However, he feels that a simultaneous release may have bumped up dedicated Linux sales figures. "We made a mistake where due to timing issues, we didn't launch all platforms simultaneously, so that didn't help the Linux and Mac sales I suppose."
Figure 8. Cultist Simulator tells stories through the medium of a virtual card game.
Figures are similar across the board. Just 2% of Cultist Simulator's current player base uses Linux. For West of Loathing—on Steam, at least—it's a little more than 1%. A little more than 2% of MidBoss's players are on Linux, while Wube Software reports that between 1% and 2% of Factorio players are using the open-source OS.
For Night in the Woods, Finji director Adam Saltsman says that Linux makes up just 0.4% of the game's total users across all platforms, which includes consoles as well as computers.
Although Portalarium's Shroud of the Avatar has both online and offline modes, it's most widely played as an online multiplayer game, and Chris Spears says its Linux players are particularly committed: "Right now only about 2% of our player base plays on Linux, but they average more hours per player. We have seen this growing slightly over time, and we have a number of players who play on multiple platforms."
Linux users make up only a tiny percentage of these games' total players, but most of the developers' figures are still a marked improvement on the 0.55% Linux market share reported in Steam's April 2018 hardware and software survey. Numbers vary, but when a company goes to the trouble of releasing a mainstream game for the OS, they can expect some 2% of their customers to play on Linux.
Figure 9. On indie-friendly itch.io, Linux downloads make up around 12% of the total.
The figures become even more optimistic on itch.io's indie-oriented distribution platform, where Linux downloads account for roughly 12% of the total, tied with macOS. itch.io founder Leaf Corcoran says that Linux users generate more downloads per game on average than their Mac-using counterparts too.
If you're keen to start developing games for Linux, there's never been a better time, with tools ranging from beginner-friendly text-game-maker Twine to fully-fledged integrated development environments, such as Unity and Unreal Engine. Both support a wealth of third-party assets and plugins to help you craft anything from a point-and-click adventure game to a modern first-person shooter.
Figure 10. The Unity game engine is the development tool of choice for most of the Linux game programmers I spoke with.
Although margins are tight, many developers genuinely appreciate the enthusiasm of their Linux-using players and are willing to support the OS if it's at all financially viable, even if it doesn't turn a huge profit.
If Linux users want more games to play, it's important to add them to your wishlists—this affects the visibility of pre-released games on Steam—and to buy them. Specifically, buy them from your Linux system, as many distribution platforms register what OS you're using at the time of purchase.
Help developers out with bug reports and reasonable feature requests. And if you enjoy a Linux title, leave a positive review for it. Reviews can have a real impact on a game's visibility and rating on online stores, as well as giving a warm glow to a developer who's gone to the effort of supporting what's still a minority gaming OS.
Sidenote: Steam's Best-Loved Linux Games
Steam250 aggregates the number of positive reviews games recieve on Steam to reveal which titles are best regarded by their players (source: https://steam250.com/linux250).
- Portal 2
- Left 4 Dead 2
- Euro Truck Simulator 2
- Stardew Valley
- The Binding of Isaac: Rebirth
- Mount & Blade: Warband