After my review of game development on the PC, I came to realize that there is very little if any support for Linux as a viable platform from the creators of game engines for the PC. Even those that advertise that they are cross platform engines only go so far as to be cross platform for Windows and Mac.
As a gamer that has decided to use Linux as my primary OS for me and my family, I find this disheartening.
I am well aware of the small market share that Linux has world wide. (around 1%) It is not that small when compared to the Mac market. (around 5%). (source) So why is Linux's 1% valued so little compared to the Mac's 5%. Both are relatively small compared to Windows' astounding 92%.
Before we dive into that question, let's look at the commercial engine market again and their cross platform support in both player and development view points:
- Flash - Has native player support for Linux. This allows any game developed using Flash technology to run on a Linux computer. Unfortunately, Adobe has no viable SDK or IDE for development on Linux. It is possible to develop Flash games on Linux, but that requires numerous workarounds. Adobe's Flex SDK has a beta for Linux development that has been in beta for a number of years.
- Silverlight - Silverlight has both player and development support for Linux through the Mono Project and its corresponding Moonlight player. Microsoft itself does not support Linux in any way other than to release the core functionality of Silverlight to the open source community. They do hold some functionality back unfortunately. This is seen in the Netflix Watch Instantly Player. Because Microsoft holds back the underlying code for the Silverlight DRM, viewing of Netflix movies on Linux is impossible.
- Unity - Unity support only Mac and Windows in game play and development. There is no Linux support for their Web Player or development. Although a feature request has been open for 10 months, there has been no word from Unity Developers on the matter. (source) Yet, they have responded to a forum topic on the subject in which they stated they have no reason to support Linux due to the small market size (source)There is one quote in there from the Unity CCO that I will discuss later in this article.
- Torque - Torque only has support for Windows and Mac. There was at one point a community maintained version of their Torque engine, but that was abandoned several years ago. It would seem that the core trunk of Torque took a direction that was incompatible with Linux.
- Unreal and XNA - Only Windows support with nothing to indicate that these will be coming even to Mac.
So what are the major arguments against developing for Linux? For the first of the common arguments let's take a look at that quote from the Unity CCO I mentioned earlier:
So yes, the market just isn't big enough. We don't have the resources to cure the miniscule of the Linux-buying games community... If the linux community suddenly starts buying up huge amounts of games, then there is a case for us. So far, sadly, that is not the case.
The core of the argument is that not enough Linux users are buying games so they don't feel the need to support the platform. Isn't this the very definition of a Catch 22? So how are Linux users supposed to buy games if there are no games for them to buy?Does anyplatform have fans before the games start rolling in?
As a bit of a contrast to that viewpoint, I would like to make a case of 2d Boy's World of Goo. According to their blog announcement of the Linux version of the game Linux versions account for 4.6% of the full downloads from their site. (source) During their Birthday Pay What You Want Sale, Linux downloads accounted for 17% of all downloads. (source)
The next argument against Linux comes from the discussion of Linux support for the Unity Player. This comes from someone in the discussion as they have no relation with the Unity company.
The question is, does it make sense right now, in the real world of tradeoffs, limited resources and unintended consequences, and given the fact that most linux geeks are constitutionally unwilling to pay for stuff? It does not. (source)
The key take away from this point is the myth that Linux users are unwilling to pay for software. This is patently false. Yes the core idea behind Linux is the use of free and open source software. That does not mean that Linux users are unwilling to pay for quality games and software.
Again, we will look at 2d Boy for an example. During their Pay What You Want Sale, Linux users held the highest average price paid for World of Goo out of the three supported platforms. (source) So clearly Linux users were willing to pay for this game, why not others?
Personally I think these arguments have no merit. I think the games industry is looking at the Linux gamer in the wrong way. You really shouldn't be looking at Linux users in their willingness to purchase the games, but in their willingness to game period.
For this example, I point you towards the Wine project. (Wine HQ) Here is a community that is dedicated to trying to get the games that you make to work on the OS they choose. They want to play your games and they have to jump through some pretty amazing hoops to get there. Why would you not want such enthusiastic gamers buying your games?
Other things to consider as well is that many PC manufacturers are looking to Linux as an alternative OS to Windows. This is especially true for Netbooks. By ignoring this OS you are also ignoring the potential customers that choose those computers over their Windows based brothers.
In the end, I don't think the problem is with Linux or the users of Linux that brings about the shortage of games. It is the developers of the games whose unwillingness to support this emerging market that is failing here. If game developers took the initiative to support Linux as well as other platforms from the beginning, the impact would be negligible. It is easier to do it at the start of a project than to try to shoehorn it in at the end.
As an independent game developer, I have made the decision to only use technologies that will allow Linux, Mac and Windows gamers to enjoy my products. That is why I have decided on Flash for my first project and will be looking to the Open Source Community for the technologies I will be using to make PC games further down the road.