Gaming with Linux: More Options Than You Thought!
The following article is part of a series of articles that provide tips and tricks for Linux newbies – or Desktop users that are not yet experienced with regard to certain topics. This series intends to complement the special edition #30 “Getting Started with Linux” based on openSUSE Leap, recently published by the Linux Magazine, with valuable additional information.
This article has been contributed by Sebastian Parschauer, Linux Developer L3 Support, SUSE. Sebastian tests games delivered with openSUSE and helps fixing related bugs.
Did you know that Linux can be used as a gaming platform just like Windows or macOS? The only difference: as gaming platform, it currently might have less users… Not all commercial games are available as Linux version, even if the situation in recent years changed significantly to the better, with Linux becoming more popular on the desktop.
Linux allows you to run non-native Linux games via some “helper” tools. For example, you can run Windows games with Wine, DOS games in DOSBox or ScummVM, or you can play Windows games in a virtual machine with 3D acceleration. The drawback: in many cases, these games do not run as stable as native Linux games on your system. And to make them run at all, they might require time consuming hacks and some in-depth knowledge (… it even happened that a user got banned from certain online games for not having using them in a supported way or on a supported platform …).
The really awesome fact about Linux is that the distributions provide Free and Open Source Software (FOSS) games. These can just be downloaded from the FOSS games webpage, or be installed from a software repository (by the way, one huge advantage is: it should be much easier to get directly in touch with the respective package maintainers and developers of a game, for example if you want to report a bug). The source code of FOSS games is freely available so that any developer can check how the game has been implemented, do modifications, and check which fixes have been applied already. These games often support many more platforms than commercial games do.
Commercial Linux Games
The most popular online stores for Linux games are:
openSUSE comes with a Steam installer (package steam), which also launches the proprietary Steam binary. You can just install it with zypper and run it from the command line or the window manager. To install it, type:
sudo zypper in steam
As Steam is commercial software, you have to first accept the license agreement. Then it is installed to ~/.local/share/Steam/. In the next step, it asks for your Steam account. After you are logged in, you can buy, download, and play Steam Linux games. But please keep in mind: The Steam binary and also many commercial game binaries for Linux are only available in a 32 bit version. This means that many libraries have to be installed in their 32 bit versions as well.
You should also be aware of the fact that Steam (the company) gathers many game statistics. For example, minidump crash dumps are created and sent automatically to them when a Steam game crashes. If you do not want Steam to spy on you, you should buy your Linux games from another store and ensure that they do not just sell Steam keys.
If you want to know more about Linux gaming, don`t miss the LinuxGameCast, which has a focus on commercial Linux games.
Wine for Windows Games
Wine is a compatibility layer capable of running Windows applications on Linux. It translates Windows Application Program Interface (API) calls into POSIX calls on-the-fly. For games it also translates Direct3D into OpenGL calls. There is no need for a Windows license but the translation does not always work perfectly. Thus Wine maintains an application database (AppDB) where users rate how well Windows applications run with Wine, and the AppDB maintainers review these test reports.
These ratings are:
- Platinum: installs and runs flawlessly “out of the box”
- Gold: works flawlessly with changed settings
- Silver: works fine for normal use but some parts do not work properly
- Bronze: application works, but it has some issues, even for normal use
- Garbage: cannot be used for the purpose it was designed for
As a non-technical user who doesn’t want to bother too much with technology details, you should go only for games or applications rated Platinum and Gold. Games rated worse than Gold often require time consuming workarounds or custom Wine versions with custom patches.
CodeWeavers is the company leading Wine development. With CrossOver, they develop a commercial product based on Wine which simplifies installing and running a limited number of supported Windows applications and games.
Wine can be installed on openSUSE with the command:
zypper in wine
A Wine environment is called a Wine bottle or prefix. The default bottle is located at ~/.wine/. It contains Wine parts provided as Windows libraries, executables, and settings. Each bottle comes with a configuration tool (winecfg.exe) and a file browser (winefile.exe). Let Wine install Mono and Gecko to run .NET applications and to handle HTML inside the bottle when it asks for it. To install games, the easiest way is to use the file manager winefile and to select the Windows installer of the game from there. It can also be used to create a new Wine bottle together with the WINEPREFIX environment variable.
The advantage of using a new bottle is that different settings and different Wine versions can be used. If the bottle or the application in it turns out to be broken, you can easily delete it. This makes most sense when you test an application for the first time. The WINEPREFIX has to be set for all Wine commands using that bottle. Thus you should have all Windows applications you actually use in the default bottle.
After installation, the game can be started from the window manager, the command line, or winefile. If you need to change settings to run the game, use the winecfg command. It lets you configure audio, graphics, the Windows version it should present to applications, libraries it should override, and more.
Also important is the tool winetricks. It provides a limited set of predefined applications and games to be installed, and it automates the steps to get these running.
Since the release of openSUSE Leap 42.3, PlayOnLinux is part of the openSUSE distribution. It is a tool to even more simplify and automate all Wine handling. It can install many more Windows games to separate bottles, and also automatically installs the Wine version that works best for the respective game. Data is stored in ~/.PlayOnLinux/.
Virtual Machines with 3D Acceleration for Windows Games
If you want to run games in a virtual machine (VM) with Windows and 3D acceleration, you will realize that you might encounter similar “challenges” as with Wine – as usually Wine libraries are used for running games in VMs.
In addition, a Windows license is required – so if you don’t have a spare license yet, the better choice might be to directly use Wine.
FOSS games usually do not use latest graphics. Most of them are developed as FOSS right from the start, without much inspiration from commercial games. They use free gaming technology and formats like the Simple DirectMedia Layer (SDL), OpenGL, OpenAL, Vorbis, and more. Very popular FOSS games are 0 A.D., Battle for Wesnoth, OpenTTD, Xonotic, and others.
Former commercial games like for example Warzone 2100 (long ago abandoned by their original developers) still subsist as FOSS with all original media being available for free. Unfortunately, it hardly ever happens that game publishers can be convinced to release their abandoned game completely under a free license for the community to take over.
For some games only the game engine is available as FOSS, means you still need the proprietary media files from the Windows or DOS retail version. An example for that is Hexen II. But also many DOS point-and-click adventure games to be run with ScummVM fall in this category. A license for the original game is still required, but the media files can often be gathered from abandonware websites. This is legal when original floppy disks or CDs are broken and cannot be replaced.
Often the media is also recreated with a free license to provide free clones of well known games like for example Freedoom, Freeciv, or Lincity. A funny method is to replace the protagonist with the Linux mascot Tux like for example in SuperTux or SuperTuxKart.
The games repository should be added on openSUSE. The command for Leap 42.3 is:
zypper ar http://download.opensuse.org/repositories/games/openSUSE_Leap_42.3/ games
All packages belonging to that repository can be listed with zypper:
zypper search -r games
Very few FOSS game engines still require multimedia formats which are not completely free. In that case, you need to add the Packman repository as well.
And now: Happy Gaming!