In the beginning, a brief historical overview.
While PC was the platform that enabled mass-scale game development as we know it now, its Golden Age only lasted from about 1992 to 2005. Back then PC replaced the arcade machines as the primary target for both AAA and smaller game developers, while console ports usually came after a successful PC release and were inferior due to a weaker console hardware.
Things have changed in mid-2000s, when consoles that were at least as powerful as a typical user’s PC appeared. Hard-core gamers with their beefy rigs still had the upper hand, but a mass user’s desktop (slowly turning into a laptop at that point) was outclassed by the console hardware - and this hardware came bundled with online services which were better than what was available on PC (Steam and GameSpy, let alone Games For Windows), without the need to muck with the drivers and run PunkBuster to weed out the cheaters. And, more importantly, the games on the platform were designed to be played from the couch, often together with a friend or a partner - very important thing if you consider the prevalence of casual players over the hard core ones on any platform.
Sales quickly reflected the changed environment - take any cross-platform game of the era and compare PC and 360 copies sold on a sales tracking site like VGChartz - PC figures will be consistently smaller (and don’t forget that PC price is usually lower).
No wonder that for non-indie game developers, PC has not been a popular platform since then. Game developers and publishers alike are more than willing to concentrate on the console market, which consistently accounted for the majority of the sales while being relatively easy to develop for.
What has changed?
“PC renaissance” of early 2010s happened largely due to two factors, one of them being proliferation of the “free to play” format. Initially unpopular in the console-dominated West, F2P spread like wildfire due to the success of MOBA type of games. Both because F2P favors a large installed base and because it is inherently resistant to piracy, F2P once again made PC a viable platform for making money.
The second important factor was the “indie revolution”. Easier access to professional tools (e.g. Epic’s UDK released for free in 2009) and inexpensive engines (Unity, Cocos2D), widespread acceptance of the digital delivery (Steam) and significantly improved compared to early 2000s hardware and software (on Windows side) of an average PC allowed small teams to develop games that could be played by millions.
That said, these days PC is still an “ugly duckling” of the AAA game development. Contrary to its golden age, it is now the PC version that is released after the game proved to be a success, if at all. For whatever reasons, AAA games that don’t utilize “free-to-play” mechanics but are instead sold traditionally, enjoy larger sales in terms of profit on the console platforms - and this is unlikely to change in the foreseeable future.
How does Linux fit into this picture?
I dare to say that it was PC renaissance that enabled Linux gaming and not vice versa. While it is certain that Humble Indie Bundles benefited from claiming Linux support, the Linux ecosystem was not (and is not yet as of now) able to sustain game development even of F2P games and has to piggy-back on OS X porting efforts - or, sometimes, on the fact that the Linux port is comparatively cheap due to a cross-platform engine.
Demands for the Linux version of a game can be sometimes quite vocal, but its actual release does not seem to bring much, if any, profit. This is not because Linux users are not willing to pay in general; rather, it means that targeting the platform is more expensive than the price that can be reasonably charged for a single copy. Other platforms are helped by the economies of scale, but this is not the case for Linux.
The above applies to the traditional model of selling games; targeting Linux for a F2P game is probably even worse, since this model relies on the large player base, which is seemingly not there in Linux case according to statistics.
All in all, it seems that releasing the game on Linux now is done mostly due to developers’ enthusiasm about the platform, goodwill or - rarely - “long term” investment in making their tech cross-platform in case SteamOS turns out to be popular (there’s no immediate value in being cross-platform - developers may fix some bugs while porting, but if those bugs never mattered for their best selling platform, this is still a waste of time).
What are the problems with Linux as a gaming platform?
The overarching problem is that Linux-based operating systems are not designed to facilitate running closed-source binary blobs, let alone blobs that depend on so many system components at once. Graphics drivers are the most visible part, but problems with window, audio and input systems can also be severe, if games are to be held to the strictest standards of competitive PC gaming, particularly for e-sports.
Part of the problem is what we call “Linux” is vague - there are several related, yet different OS sharing that name. Even within a single OS there is sometimes a multitude of choices, sometimes subtle, that can make a problem reproducible only on that user’s machine. There are numerous micro-decisions to be done while writing the software, and sometimes there’s no other specification than the de-facto behavior of the developer’s system. If a user’s system behaves differently, we have a problem.
This, to an extent, applies to Windows as well (which is one of the reasons why console platforms with their deterministic behaviour are cheaper to develop for), but the FOSS principles that put everything on user’s system under the user’s control greatly amplify that problem.
Another problem is the cultural clash. Game developers make money from selling their proprietary software (even if sometimes indirectly), and as such are inherently incompatible with FOSS goals. The effect of this is two-fold: not only the likelihood of the developers’ prior experience with Linux is smaller than what would be expected from an average user, but this operating system is built on the principles that are contrary to and sometimes outright incompatible with their modus operandi, which presents them with unique challenges not encountered on other (proprietary) gaming platforms.
To add insult to the injury, Linux gaming community abounds in radically minded folks, who often are not willing to bridge that cultural gap - in spite of Linux gamers themselves being an eclectic minority within the larger, and even more radical, Linux community. It is curious how people could hold seemingly incompatible beliefs at once, both despising the closed source software and demanding its authors to support it on more FOSS platforms (yes, there are people who attempt to run Steam on gNewSense).
What can be done to improve Linux gaming?
First of all, we (all people interested in Linux gaming) should understand and respect the status quo before attempting to change it. Linux users are the minority among computer users, and that applies to game developers as well. A typical game developer does not possess an intrinsic interest in Linux, they may not have necessary knowledge nor patience needed for an enthusiast OS based on principles hostile to them - and they may happily live the rest of their lives without it. Their enthusiasm lies in creating games, and the proprietary platforms are not hindering their creativity anyhow significantly - learn to understand and respect this world view.
Second, understand where the money is. For a typical, non-indie game, Linux sales constitute negligible percent of the overall PC sales, which are themselves dwarfed by the console sales - to such an extent that even Windows version can be cut. Even for indie games that only sell on PC, Linux sales are unlikely to surpass 10%. It is safe to say that turning profit on a Linux version is extremely hard - if you are a developer, expect to lose money. If you are a gamer, be friendly to developers who are not doing this for profit and can be sometimes bitter about their experience. Also, when trying to reach out to devs for the help, keep in mind that players usually outnumber the developers by several orders of magnitude.
Third, understand the platform - both as a user and as a developer.
As a user, realize that the freedom to build your own system has an associated responsibility - you get to maintain it. You may be the only person on the planet who runs this particular combination of software on this hardware! If anything goes wrong on your system, you - first and foremost - are responsible for fixing it, or at least diagnosing the problem. This is both the blessing and curse of FOSS.
As a developer, do not claim to support more than you actually do. If you only packaged the game for Linux without even running it, state so. If you only can afford to run it on Ubuntu using NVidia drivers to make sure it starts, be upfront about this. Try not to use vague terms as “Linux version”, don’t be afraid to brand it as “Ubuntu version” or “SteamOS version” (if you are testing on these OS of course). In the latter case, I hope that Valve will start a certification program to help provide a consistent experience.
Fourth - pay attention to the attitude and the self-fulfilling prophecies it starts. Support companies that invested into Linux. Right now the best thing you can do for Linux gaming is switching to SteamOS for your gaming purposes (Ubuntu is reasonably close). Embrace the proprietary drivers. Run Steam. Be friendly and supportive to proprietary software developers. This seems to be anti-FOSS - it’s not in the big picture. What is at stake now is whether free software can be used as a foundation for a large scale digital entertainment platform (which involves compromises with proprietary software). It certainly worked for Android, so let’s hope it can work for the SteamOS.
While PC was the platform that enabled mass-scale game development as we know it now, its Golden Age only lasted from about 1992 to 2005. Back then PC replaced the arcade machines as the primary target for both AAA and smaller game developers, while console ports usually came after a successful PC release and were inferior due to a weaker console hardware.
Things have changed in mid-2000s, when consoles that were at least as powerful as a typical user’s PC appeared. Hard-core gamers with their beefy rigs still had the upper hand, but a mass user’s desktop (slowly turning into a laptop at that point) was outclassed by the console hardware - and this hardware came bundled with online services which were better than what was available on PC (Steam and GameSpy, let alone Games For Windows), without the need to muck with the drivers and run PunkBuster to weed out the cheaters. And, more importantly, the games on the platform were designed to be played from the couch, often together with a friend or a partner - very important thing if you consider the prevalence of casual players over the hard core ones on any platform.
Sales quickly reflected the changed environment - take any cross-platform game of the era and compare PC and 360 copies sold on a sales tracking site like VGChartz - PC figures will be consistently smaller (and don’t forget that PC price is usually lower).
No wonder that for non-indie game developers, PC has not been a popular platform since then. Game developers and publishers alike are more than willing to concentrate on the console market, which consistently accounted for the majority of the sales while being relatively easy to develop for.
What has changed?
“PC renaissance” of early 2010s happened largely due to two factors, one of them being proliferation of the “free to play” format. Initially unpopular in the console-dominated West, F2P spread like wildfire due to the success of MOBA type of games. Both because F2P favors a large installed base and because it is inherently resistant to piracy, F2P once again made PC a viable platform for making money.
The second important factor was the “indie revolution”. Easier access to professional tools (e.g. Epic’s UDK released for free in 2009) and inexpensive engines (Unity, Cocos2D), widespread acceptance of the digital delivery (Steam) and significantly improved compared to early 2000s hardware and software (on Windows side) of an average PC allowed small teams to develop games that could be played by millions.
That said, these days PC is still an “ugly duckling” of the AAA game development. Contrary to its golden age, it is now the PC version that is released after the game proved to be a success, if at all. For whatever reasons, AAA games that don’t utilize “free-to-play” mechanics but are instead sold traditionally, enjoy larger sales in terms of profit on the console platforms - and this is unlikely to change in the foreseeable future.
How does Linux fit into this picture?
I dare to say that it was PC renaissance that enabled Linux gaming and not vice versa. While it is certain that Humble Indie Bundles benefited from claiming Linux support, the Linux ecosystem was not (and is not yet as of now) able to sustain game development even of F2P games and has to piggy-back on OS X porting efforts - or, sometimes, on the fact that the Linux port is comparatively cheap due to a cross-platform engine.
Demands for the Linux version of a game can be sometimes quite vocal, but its actual release does not seem to bring much, if any, profit. This is not because Linux users are not willing to pay in general; rather, it means that targeting the platform is more expensive than the price that can be reasonably charged for a single copy. Other platforms are helped by the economies of scale, but this is not the case for Linux.
The above applies to the traditional model of selling games; targeting Linux for a F2P game is probably even worse, since this model relies on the large player base, which is seemingly not there in Linux case according to statistics.
All in all, it seems that releasing the game on Linux now is done mostly due to developers’ enthusiasm about the platform, goodwill or - rarely - “long term” investment in making their tech cross-platform in case SteamOS turns out to be popular (there’s no immediate value in being cross-platform - developers may fix some bugs while porting, but if those bugs never mattered for their best selling platform, this is still a waste of time).
What are the problems with Linux as a gaming platform?
The overarching problem is that Linux-based operating systems are not designed to facilitate running closed-source binary blobs, let alone blobs that depend on so many system components at once. Graphics drivers are the most visible part, but problems with window, audio and input systems can also be severe, if games are to be held to the strictest standards of competitive PC gaming, particularly for e-sports.
Part of the problem is what we call “Linux” is vague - there are several related, yet different OS sharing that name. Even within a single OS there is sometimes a multitude of choices, sometimes subtle, that can make a problem reproducible only on that user’s machine. There are numerous micro-decisions to be done while writing the software, and sometimes there’s no other specification than the de-facto behavior of the developer’s system. If a user’s system behaves differently, we have a problem.
This, to an extent, applies to Windows as well (which is one of the reasons why console platforms with their deterministic behaviour are cheaper to develop for), but the FOSS principles that put everything on user’s system under the user’s control greatly amplify that problem.
Another problem is the cultural clash. Game developers make money from selling their proprietary software (even if sometimes indirectly), and as such are inherently incompatible with FOSS goals. The effect of this is two-fold: not only the likelihood of the developers’ prior experience with Linux is smaller than what would be expected from an average user, but this operating system is built on the principles that are contrary to and sometimes outright incompatible with their modus operandi, which presents them with unique challenges not encountered on other (proprietary) gaming platforms.
To add insult to the injury, Linux gaming community abounds in radically minded folks, who often are not willing to bridge that cultural gap - in spite of Linux gamers themselves being an eclectic minority within the larger, and even more radical, Linux community. It is curious how people could hold seemingly incompatible beliefs at once, both despising the closed source software and demanding its authors to support it on more FOSS platforms (yes, there are people who attempt to run Steam on gNewSense).
What can be done to improve Linux gaming?
First of all, we (all people interested in Linux gaming) should understand and respect the status quo before attempting to change it. Linux users are the minority among computer users, and that applies to game developers as well. A typical game developer does not possess an intrinsic interest in Linux, they may not have necessary knowledge nor patience needed for an enthusiast OS based on principles hostile to them - and they may happily live the rest of their lives without it. Their enthusiasm lies in creating games, and the proprietary platforms are not hindering their creativity anyhow significantly - learn to understand and respect this world view.
Second, understand where the money is. For a typical, non-indie game, Linux sales constitute negligible percent of the overall PC sales, which are themselves dwarfed by the console sales - to such an extent that even Windows version can be cut. Even for indie games that only sell on PC, Linux sales are unlikely to surpass 10%. It is safe to say that turning profit on a Linux version is extremely hard - if you are a developer, expect to lose money. If you are a gamer, be friendly to developers who are not doing this for profit and can be sometimes bitter about their experience. Also, when trying to reach out to devs for the help, keep in mind that players usually outnumber the developers by several orders of magnitude.
Third, understand the platform - both as a user and as a developer.
As a user, realize that the freedom to build your own system has an associated responsibility - you get to maintain it. You may be the only person on the planet who runs this particular combination of software on this hardware! If anything goes wrong on your system, you - first and foremost - are responsible for fixing it, or at least diagnosing the problem. This is both the blessing and curse of FOSS.
As a developer, do not claim to support more than you actually do. If you only packaged the game for Linux without even running it, state so. If you only can afford to run it on Ubuntu using NVidia drivers to make sure it starts, be upfront about this. Try not to use vague terms as “Linux version”, don’t be afraid to brand it as “Ubuntu version” or “SteamOS version” (if you are testing on these OS of course). In the latter case, I hope that Valve will start a certification program to help provide a consistent experience.
Fourth - pay attention to the attitude and the self-fulfilling prophecies it starts. Support companies that invested into Linux. Right now the best thing you can do for Linux gaming is switching to SteamOS for your gaming purposes (Ubuntu is reasonably close). Embrace the proprietary drivers. Run Steam. Be friendly and supportive to proprietary software developers. This seems to be anti-FOSS - it’s not in the big picture. What is at stake now is whether free software can be used as a foundation for a large scale digital entertainment platform (which involves compromises with proprietary software). It certainly worked for Android, so let’s hope it can work for the SteamOS.
Some you may have missed, popular articles from the last month:
As a side note. I just want to point out two of the main issues I see with people blindly claiming bundling libraries would solve everything. I do recognize there being real advantages, but still here are my thoughts:
- First of, the (L)GPL, if I interpret the license correctly (read it many times), may not allow you shipping your game this way. Sure you could try to use dependencies without copyleft but I don't imagine thing to be that simple. If it were, then more developers would already have done it.
In fact, if I remember right, was this not an issue once with the game "Game Maker Tycoon" way back? I vaguely remember the FSF reacting strongly there.
- Because of first point I would then assume, even if you bundle everything possible (license allowing), you could never prevent something like GCC5. Because, as stated above, I don't think the license allows for bundling this with your proprietary game.
If I am wrong about the GPL btw, please provide me with a proper reference and explanation. I would love to be wrong, because then I can (within reason) continue to advocate bundling.
No, where possible we should find other ways.
For example, I never use the steam runtime and yet I can play most games just fine ;)
(https://wiki.archlinux.org/index.php/Steam#Steam_runtime_issues)
Last edited by Maelrane on 7 July 2015 at 10:09 am UTC
I certainly hope that this isn't how many developers of games sees it. Yes, Linux started out as FOSS, but these days there are mostly Linux OS that are FOSS + closed source, meaning they easily offer installation of closed source software, codecs and such (many major distributions).
The core of Linux is still FOSS, meaning the critical components. That doesn't mean that you can't install closed source or libraries on top.
Personally I have no problems with closed source or proprietary software and packages that doesn't interfere with my core system.
Yes, I totally agree with this, as long as were only talking about the attitude. I still reserve the right to criticize when they say things that are not true about Linux.
I can run it as a secondary OS besides my normal Linux box, but I won't use a beta as main OS on my desktop.
Overall interesting article, thanks!
Last edited by Aryvandaar on 7 July 2015 at 10:20 am UTC
Users - Windows still dominates the PC market, with Linux and Mac taking very similar smaller shares.
AAA Game releases - I think Valve is the only one actively developing for our platform that isn't an indie developer. I think.
Linux has:
Good distributions - Ubuntu and it's "clones" (For lack of a better word) lead the charge. Valve themselves have targeted Ubuntu.
Good drivers - For the most part, nVidia and ATI drivers just work. I don't use the open source drivers, so I can't comment on those.
Game distribution - Most distros have their own package distro system with a very large number of free/open source games.. and then there is Steam. Steam has a very good number of Linux games already. Most of them are Indie, but Half-Life 2 runs amazingly well.
Support - Seriously, go to the forums of any major distro and you can get help.
OSes that are not aimed at mobile platforms. I am looking at you, Windows 8 (And to a lesser extent, Ubuntu)
I think you cannot distribute GPL licensed libraries at all in this case. LGPL as I understand, does allow this. GCC itself I guess has some exception to GPL3 to allow linking from a proprietary binary blob against GPL licensed library but it still does not allow distributing such libs with the blob. I may be wrong, so please correct me in that case. In any case, common sense is a good one to have. Shipping _everything_ from the dependency chain would not be that great idea. Shipping your own libraries should be only done when it is absolutely necessary and as small scale as possible.
I think my point was, not including the libs when necessary can not be used as an excuse since it can be safely done. Whether it is necessary and/or smart to include them, is another story.
Well, we certainly have our own version of the Windows "dll hell". Have you recently checked the amount of libraries you have installed on your system? Most of us have quite some, plus 32-bit libraries, multiple versions of libraries, etc. Shipping a few necessary libraries with a game is probably not that much of an issue if we talk about disk space. Of course shipping the whole dependency tree all the way to libc would be ridiculous.
Anyway, you're right, most of the time libraries are not (that much of an) issue and you can install whatever is needed. Until time goes by and you want to play a game few years old with a dependency to an old version of a library that might not exist in repositories anymore or has been patched to a point where game does not work with it anymore. That's where stuff like Steam runtime can be helpful.
Last edited by skry on 7 July 2015 at 1:41 pm UTC
This I can do.
I do know that most game devs would be less than willing to give out the source + assets, along with the usual legal issues for any third-party software they might be using, to purchasing customers due to the fact that no one wants their code to get taken and abused (yes, this would happen) but it would be nice for those of us who are competent enough to run a couple of make commands to have this option.
Sure, there's some middle ground that would be interesting to explore, like game studios freeing up their code (without the art assets) for non-commercial use or somesuch - which would incidentally also facilitate volunteer code contributions in the form of bug fixes - but that's just a pleasant dream for now.
* Fragmentation bogeyman is commonly overstated.
* Linux is not an "enthusiast OS" (it sounded like it's some kind of hobby project still). It is a fully professional OS.
* There is no need to respect bad status quo. A lot of it is caused by stupid FUD, not by any valid reasons.
* FOSS is not incompatible with selling products - it's a common fallacy. One can even sell fully open games, though it's not as easy to make viable. A common advice for those who want to respect FOSS better is to make the engine fully open and keep artistic assets private.
* Switching to SteamOS and using Steam isn't going to help any more than simply buying same Linux games from competitors (like GOG and HB). Supporting DRM is a problem on its own.
Last edited by Shmerl on 7 July 2015 at 9:35 pm UTC
Good to see you building stuff from source :D
Last edited by Shmerl on 7 July 2015 at 9:48 pm UTC