Gaming on Linux: A guide for sane people with limited patience
Where to get games, how, and why
Option 1: The Humble Store and the Ubuntu Software Center
The Humble Bundle is a fairly recent development in the world of PC gaming that regularly packages multiple indie games into a pay-what-you-want “bundle” for use on Windows, Mac, or Linux. Since its inception, it’s been almost singlehandedly responsible for more Linux ports than were available in the previous decade, and it’s probably going to be your best source for games that run natively and are thus (almost) guaranteed to work. Check the Humble Bundle website periodically, and if you miss a bundle, know that you can always get the same games individually for full price from the Ubuntu Software Center (similar to Apple’s App Store, it’s installed automatically, and will be where you obtain all your software that doesn’t come from external PPAs; nearly everything but the games is free).
Option 2: Steam
As I mentioned in the introduction, Steam is now (in beta) on Linux! This is really exciting, as it means that Linux is being taken seriously as a gaming platform, and as a result we might see far fewer headaches involving video drivers in the near future. That said, if you have Wine, there’s currently very little reason to use the Linux version of Steam. The selection is currently very small, since they provide only games that have native Linux ports (many of which are indies from the Humble Bundle), and virtually every game that’s been ported to Linux already worked in Wine.
For the time being, I’d recommend sticking to the Windows version of Steam, as it works flawlessly, and using the Linux version of Steam only if you really need an extra 5 or so frames per second in a game, since native ports will run faster by a (surprisingly) small degree. Alternatively, you could use Steam for Linux if you really want to support gaming on Linux (and don’t mind constantly logging out of Wine Steam to run Native Steam and vice versa, since you can’t be logged in two places at once) and/or you've waited several years after I’ve written this for more games to be ported over.
Installing and using Steam is dead simple, and here’s where you’ll see the power of Wine: simply head over to the Steam website, download and install the Steam client as usual (I mean it: Double-click the .exe, and it works like magic), buy and install games as usual, and voilà! Nine times out of ten (depending on your video driver, and provided you’ve done a little fiddling in winetricks), these games just work. If they don’t work—well, we’ll get to that in a minute.
Option 3: Emulation
If your taste in games tends toward console titles, you’re in luck—at least one emulator for just about every major platform has a Linux port. Some older consoles, like ZSNES for the Super NES and PCSX for the Playstation, will be available directly from the Ubuntu Software Center; newer consoles, like Dolphin for Gamecube/Wii and PCSX2 for the PS2, require that you add the developers’ PPAs.
As an example, here’s Dolphin:
sudo add-apt-repository ppa:glennric/dolphin-emu
sudo apt-get update
sudo apt-get install dolphin-emu
and here's PCSX2:
sudo add-apt-repository ppa:gregory-hainaut/pcsx2.official.ppa
sudo apt-get update
sudo apt-get install pcsx2
Again, compatibility varies—Dolphin works very well on Intel graphics in Linux, whereas PCSX2 tends to crash on anything but Nvidia.
Give it a go, and once you’ve got the hang of it, feel free to search for other PPAs containing software you know and love but can’t find in Ubuntu Software Center (they'll appear in the software center once you add them through the terminal). You’ll probably be pleased with the results.
Option 4: Older Native Linux Ports
This option is a distant fourth, but it’s worth keeping in mind: Over the past decade or so, there have been a number of semi-official Linux ports of PC classics that predate the current Linux golden age of gaming (via Steam and the no-mess Humble Bundles). An example is Unreal Tournament 2004: using the official Windows DVD, you can install it with a special Linux patch from the Linux Installers for Linux Gamers website (a good resource for finding several such patches, but not the only one), and voila—a native version of an over-eight-year-old game that works more or less out of the box on a modern version of Ubuntu. If you have limited affection for PC games released between 1998 and 2006, you can probably disregard this option, but there it is.
Troubleshooting (and when not to bother)
To keep things simple, here’s a point-form list to resolving the most common issues with Wine. If you have a problem that isn't addressed here, leave a comment below and ask around on the Wine forums for help; the Linux gaming community is full of friendly folks willing to lend a hand.
- The Microsoft.NET framework doesn't always work correctly in Wine. This is being actively worked on, but it’s especially likely to screw up games that use Games for Windows Live. To get around this, you can try tracking down and extracting a community software library replacement called “xliveless” into the directory containing the game’s exe, which will disable online functionality entirely.
- That said, the safest way to go as far as compatibility is to install only the bare minimum of required DLLs using Winetricks (as we did above) and let Steam handle the rest automatically, unless you're having trouble. Packages installed through Winetricks can be more compatible, but wrestling with multiple half-installed versions of .NET is more trouble than it's worth.
- DirectX 10 and newer don’t always work correctly in Wine. Luckily, there are next to no games on the market that can’t fall back on DirectX 9 if need be.
- Windowed modes are generally more stable than fullscreen modes (which can do irritating things like disabling your second monitor and not turning it back on afterwards). If a game is crashing before letting you try to change it to windowed mode and if you’re feeling bold, you can go hunting for the game’s settings file and try changing it manually. This is usually an .ini file, and it will be located in one of two places:
/home/[username]/My Games/[game title]/
Open the file and press Ctrl+F to search for settings named “Fullscreen,” which you’ll want to set to “0” or “False,” or conversely “Windowed,” which you’d want set to “1,” or “True.” Yes, it’s a bit janky, but once you’re in the habit it takes two minutes and is a pretty reliable fix.
- In some rare cases, I’ve seen Steam versions of games not work when instinct told me they really ought to be working (if they had pretty low-spec graphics requirements, for example). If a game has a demo version available as a stand-alone .exe, try that; if it works when the Steam version doesn’t, email the developer! In my experience, they're often receptive to feedback and willing to help more people play their games.
- If a game flat-out doesn’t start, and you’re feeling determined, you can try to run it from the terminal to see if it prints any intelligible errors. To do this, close Steam, open a terminal, and (on a default install) run:
wine “.wine/drive_c/Program Files (x86)/Steam/steam.exe”
Steam will reopen, printing miscellaneous output to the terminal. Try to run the game in question, and if you’re in luck, when it crashes, it may mention missing a specific library that you can install through winetricks or track down elsewhere. If there are no clues, my advice is to forget about it for now—you can bash your head into a wall all day, and if it’s thanks to a bug in Wine or your video driver, you likely won’t be able to do anything but wait for a fix.
- The Wine website is a great resource for tracking compatibility with various games in various versions of Wine. As always, they’ll be able to support you best if you’re using an Nvidia card with an updated version of Wine (in which case you’re less likely to have issues in the first place, but that’s sadly how the cookie crumbles). If you’re feeling confident and generous, please publish your own compatibility reports!
Hope that helps. If the wind is in your favor, you’ll be gaming on Linux in no time, and you might even find that you don’t miss Windows at all. Welcome to the world of free software! You are now a socialist with a very short temper.