When I decided to take on this article I thought it would be easy. Grab a few quotes from some developers, re-hash WINE support, check out the latest version of Battle for Wesnoth... Simple stuff.

I was wrong. I wanted it to be fairly comprehensive, and quickly realized there was far too much material for that. So instead of a comprehensive run-down of every Linux game I hope only to give Linux gamers a few more options to feed their addiction.

Linux may still be the red-headed step child when it comes to major game developers, but the thriving indie game climate, along with new ways to get non-native games, has made 2011 a great year to be a Linux gamer.

The Three Doors of Linux Gaming

As a Linux gamer you're essentially faced with three different ways of playing games on your OS of choice. Door number one holds native games: those that were built to run on Linux initially or ported to Linux by the developer. Door number two has compatibility layers: things like WINE that allow you to run non-native games on Linux, sometimes with a little bit of tweaking. Door number three is the online door, which includes browser based games as well as "streaming" game services like Onlive.

Door Number One: Native Games

One of the biggest developments in native games for Linux in the last couple of years isn't actually a game, but a way to market them: The Humble Bundle.

Ryan C. Gordon, of icculus.org, pointed out that "These guys are making massive waves, pulling in big money and demanding Linux support...and the Linux users are responding by throwing money at it. In their short time, they've done more to support Linux gaming than all of the other Linux game companies, ever, combined. They're also showing, time after time, that there is a definite market for Linux games."

Saying they've done more than any other company is a big claim, but one that is backed up by the numbers. In most of the bundles the Linux gamers have provided about a quarter of the total money collected, even though they were outnumbered by Windows and Mac gamers. This is because they have consistently given more than their counterparts in terms of donations, in some cases almost twice as much as Windows gamers. Take the current promotion, the Voxatron Debut, which will run through the 12th of November. As of the 9th Linux gamers are donating, on average. $8.08. Compare that with Mac ($6.38) and Windows ($4.62) and it's clear that Linux Gamers have no qualms about opening their wallets in support of games, when the conditions are right.

The conditions are important, though. I spoke with Jonathan Blow, the developer behind Braid. Braid is available on a plethora of platforms, including Xbox 360, PS3, Mac, Windows and Linux (Linux being the last platform to receive the game, as part of the second Humble Bundle). During the sale of Humble Indie Bundle 2 Linux and Mac users made up about 50% of all sales, and assuming Linux users made up about half of that (which has been the trend) that means that almost 60 000 Linux gamers purchased the bundle. That's a fair number, but since then Blow said that Linux sales have made up "very close to 0%" of direct downloads.

There are multiple explanation for that, of course. It's very possible that most people who might have purchased Braid on Linux got it on a different platform, and then the remainder bought it with the bundle when it came out, leaving very few to purchase it after the bundle. Still, as with any endeavor, marketing appears to be a key ingredient in a successful Linux game launch. Luckily developers have more ways to market their games now.

Liam Dawe (of gamingonlinux.com) pointed out that gamers who are new to Linux should check out "services like Desura, Gameolith and Indievania ... That and keep an eye on the various news sites." Not only do these sites provide a great way for linux gamers to keep tabs on what's available, but they're invaluable for an indie developer who is trying to market their game.

I decided to give the Desura Client a try and was impressed. After installing it on a fairly vanilla Ubuntu set-up (using a supplied script as the installer, not a repository) I set up an account and started browsing. Downloading new games to try was a cinch and the community looked quite active. This is especially useful when you run into problems (several comments on games included information for user's of 64 bit version of Linux, detailing how to get the games working correctly).

Most game markets like Desura are fairly similar to the biggest name: Valve's Steam. Though Steam on Linux rumors have swirled since time immemorial, it has yet to make an appearance. In fact, the only official word from Valve is that they're currently not developing a Steam client for Linux. Steam might come to Linux at some point, but it doesn't look like 2011 will be that year. As someone who has used Steam as well as the options listed above, though, I highly recommend giving them a try. You will be pleasantly surprised.

Steam notwithstanding, the various markets currently available are fairly easy to deal with, and a great resource for gamers and developers alike. While writing this article I also found that people who run Linux gaming blogs (like Dawe) are generally pretty easy to get a hold of, and very passionate about gaming. Throwing a few Linux blogs in your RSS reader is a great way to keep up on the latest in Linux gaming, and contacting the owner's of the blogs is a great way for developers to get the word out about their games.

In short: indie games are thriving on Linux. The Humble Bundles have not only helped publicize the games, but have also helped prove that there is an untapped market for games on Linux, and that Linux users have no problem paying to support the developers who support them. But there is still one area where gaming on Linux lacks. As Dawe pointed out: "The biggest obstacle for Linux gamers is still a lack of so called AAA games, not being able to just pick up big name games and play them." In the next two sections we'll talk about different ways to play a AAA title on Linux.

Door Number Two: Compatibility Layers

For many end users, the Operating System is less important than the applications you want to run. Macs became popular with the media crowd not because they looked fancy and were expensive (and let's be honest, they haven't always looked fancy) but because the software media people wanted could be found on the Mac.

But some people DO care about which OS they're using, and, because applications aren't always available on the platform you want, an industry has sprung up allowing people to run applications on platforms other than the originally intended one. On Linux the main program to do this is Wine.

The problem is that it's not perfect. Although many games run perfectly with little or no configuration (you can find a list at the AppDB), many games don't run at and it usually takes some time for a new game to work correctly with Wine.

Several companies have sprung up due to the success of Wine, such as Play On Linux and Codeweavers Crossover Games. These are built on Wine, but further optimized specifically for gaming (including the tweaks you may have to do by hand to get certain games running) and with paid support options available. There are even some very specific communities built around compatibility layers such as Steam Games on Linux, built around the goal of getting steam and steam supplied games up and running. But these still are based off of Wine and suffer similar problems: delays for some games, other games will never work, and there's a chance you'll take a performance hit.

Any engineer worth his salt know that the simpler the system the better. As Gordon said: "the best game experience will always be the native game." The problem is that many games will never be ported because "you need skilled developers, and you need at least enough cooperation from the original developer to hand off the source code." Since few major publishers would be willing to do so (a notable exception being id Software, where games are often ported by developers inside the company), Wine and other compatibility layers or emulators are necessary.

But there is one last option that may help get more AAA titles to Linux, albeit an option with a number of significant hurdles.

Door Number Three: Online and Streaming Options

Internet technologies are improving at an astounding rate. Browser based games used to be limited to simple flash or javascript, but recently we've seen a number of games that are successful on other platforms being ported to web technologies. The biggest example of this, of course, being Angry Birds. But the browser, though capable of a lot and increasing in sophistication, has generally been the arena of more casual games. We're still looking in to the AAA titles.

For those, the recent emergence of game streaming services may hold promise. The biggest example of this is Onlive. If you haven't heard of Onlive, think of it as VNC for gaming. Instead of running games on your computer, they are run on Onlive's server farm, and the video and audio is streamed to your computer, with your input being sent back. There are several hurdles, though.

First, there's the small fact that no official client exists yet, though one is rumored to be in development. It's just that, though, a rumor--Onlive hasn't said yay or nay to Linux support officially. If you're feeling particularly adventurous you can combine doors number two and three and run Onlive through Wine, but it's still very much experimental.

The elephant in the room, though, is network speed. Or as Dawe put it: "Streaming services could be extremely useful and popular but they have a massive drawback - net connections. I know plenty of people in the UK who can't even get 1MB Internet..."

If you have a high-speed connection Onlive could be just the tool you need to bring AAA titles to your Linux machine. But until high speed Internet is ubiquitous Onlive faces an uphill battle.

The Picture for Gamers

If you're new to Linux or gaming (or both) now is a great time to get into it. Indie studios are making Linux support a priority, and are producing some amazing games. Not only that, but Wine allows you to run a number of Windows-only games with little or no configuration. If you're looking for AAA titles the day they're released, though, you're still pretty much out of luck.

Not only is the software doing well, but graphics chip makers are paying more attention to Linux. When I asked Gordon a trend he found heartening in Linux Gaming he specifically mentioned driver support as both a positive AND a negative, pointing out that:

"...video drivers are becoming more available.

It used to be: get an Nvidia card and install the closed-source drivers for it, and everything works pretty well. Now there are several open source options (including for some Nvidia GPUs) making modern hardware work with modern games.

This is an awesome step forward.

But, as this is all work in progress (and, as new hardware ships, a moving target), it can certainly feel like a terrible step back."

Gordon also had a few tips for someone who is just now getting in to gaming on Linux:

The system is always improving, but you still need to do some cursory research to make sure your hardware will be well-supported.

If you don't have moral objections to closed-source drivers: get an Nvidia GPU. The drivers are very mature, so it's one less thing to worry about. That being said, I can't believe how far the open source Intel and ATI drivers have come in the past year or so.

On the software side I can't help but echo Dawe's advice that users find a market they like, as well as a few blogs to follow. After using Desura to research for this article I know I'll be coming back to it, along with some of the blogs I've found.

The Picture for Developers

When I asked Blow if he had advice for developers he gave me a definite answer:

Focus on making a good game, first and foremost, regardless of platforms. Platform considerations are very minor in comparison, because it doesn't matter what platform your game is on if it sucks.

Seeing as how his game wound up on a multitude of platforms I can't help but agree. When the game is created just focus on making the best game you can. That said, you definitely don't want to make any moves that would make it harder to port your game. As Gordon let me know when asked the same question:

Don't use middleware that doesn't come with source code, even if it works on all the platforms you care about today.

Use good open source libraries when you can: SDL, OpenAL, OpenGL, PhysicsFS, sqlite, ManyMouse, etc. You'd be surprised how far this goes to make your game Just Work on completely new platforms.

Don't sign up with a publisher at all. They'll only make your life miserable and eat your profits. You can handle your own marketing better than they will, and Steam/Apple/Google/whatever will handle distribution and updates. It'll make your life easier, and it'll save you a ton of money.

Most importantly, don't forget about Linux. Though the number of gamers may be less than other platforms, the humble bundle has made it clear that, if they think your project is worthy of support, they will give back more than any other community.