Linux Format

GAMING: Steam & Lutris

John Knight takes a long-overdue deep-dive into the tools that make up Proton and the Steam Play gaming scene.

- John Knight When he’s not running away from Australian snakes and spiders, John can either be found writing retro gaming columns, or punishing a drum kit..

John Knight takes a long-overdue deepdive into the tools that make up Proton and the Steam Play gaming scene.

Gaming on Linux used to be a dead-zone. Then along came Valve and its ill-fated Steamos and BOOM! From its ashes rose Steam Play – based on its Wine-powered Proton technology – and a first-world gaming experience for Linux users that can bear a walled garden. Since its inception, Steam Play has developed a rich ecosystem of third party add-ons that we thought was finally worth exploring.

For the uninitiate­d, Steam Play is Valve’s overall service for Linux, using the Steam software service to run both native Linux games and Windows games through Proton. Proton is a modified version of Wine developed by Valve that allows compatibil­ity for newer Directx games, and uses the new Vulkan graphics API for strongly increased performanc­e.

As such, before we can continue, it’s vital to have the latest graphics drivers possible installed on your system or Steam Play titles may not run. With that out of the way, join us as we explore the Steam Play gaming scene.

Installing Steam

There are a number of methods to install Steam (it has 32-bit library dependenci­es that can complicate selfinstal­ls) and it’s worth checking your distro’s package manager or software store before resorting to anything needlessly difficult. Many distributi­ons have some kind of shortcut to install Steam as painlessly as possible – it could even sit somewhere in your menu. It doesn’t matter if you get an old version because Steam will update itself anyway, so you may as well use the easiest method available.

If Steam isn’t available somehow on your system, you can download it from the website. Unfortunat­ely, it only provides .DEB files (because everyone runs Debian or Ubuntu, right?), but there are sources for other package formats, such as https://pkgs.org/download/ steam. If you can’t find a package here, you can also install Steam as a Flatpak through Flathub at flathub. org: https://flathub.org/apps/details/com. valvesoftw­are.steam

However, if you can install Steam through other methods, that would be preferable. Flatpaks are designed almost exclusivel­y for desktop applicatio­ns and don’t provide the same proper terminal commands as a normal package. This could spell trouble with some third-party applicatio­ns that are relying on a nonexisten­t steam command.

Installing Proton

Try installing a random Windows game on a fresh copy of Steam and you’ll just get an error. Steam Play needs to be fully enabled, which will then prompt Steam to download Proton. Don’t worry though, it’s not difficult.

From Steam’s main menu, click Steam>settings. In the new window, open the Steam Play options. Under the Steam Play Settings check the box for ‘Enable Steam Play for supported titles’.

Don’t stop there though. By default, Steam will only work with a collection of ‘white-listed’ titles approved by Valve. No one sticks to this list, and no one expects you to. Under the Advanced section, check the box labelled ‘Enable Steam Play for all other titles’.

Not only does this enable you to try Proton with any Windows game you like, but if you browse the dropdown list, you can specify which version of Proton you want to use by default. Once this is enabled, Steam will prompt you about needing to restart.

To get started with Proton gaming, right-click any Windows game in your library and click Install. Proton won’t have been downloaded yet, so it will download along with your first Windows title. Once both downloads are complete, you can launch your Windows

game. The first time you launch a new Windows game you’ll get a warning screen saying that you’re using a compatibil­ity tool. This is nothing to worry about, just click Continue and with any luck your game will launch.

Dosing with Boxtron

Steam has a sizeable number of classic DOS games that are still commercial­ly available. If you’ve ever tried to play a DOS game through Steam, it usually runs the game through a Windows version of DOSBOX. An emulator running through a translatio­n layer – the results are often less than brilliant. Thankfully, the folks at Boxtron have sought to rectify that problem, providing a tool that runs games through a native Linux version of DOSBOX. Boxtron has optimisati­on scripts specific to individual games and integrates into Steam’s interface in the same way as Proton.

Although we otherwise haven’t recommende­d installing Steam through Flatpak, there is at least an advantage with Boxtron as it has a Flatpak package. You can browse Flathub, or install Boxtron with

$ flatpak install flathub Boxtron

Fedora users are also catered for, and users can install Boxtron with these two commands:

$ sudo dnf copr enable pbo/boxtron

$ sudo dnf install boxtron

Other users will need to do a little leg-work. First, make sure curl is installed, which is guaranteed to be in your repositori­es. Now you have to look for one of two directorie­s, depending on your distributi­on. Enable hidden files and folders in your file manager and see if you have the folder ~/.local/share/steam. If that doesn’t exist, head to ~/.steam/root.

Once inside either of those folders, create the directory compatibil­itytools.d. Open a terminal in either

~/.local/share/steam/compatibil­itytools.d or

~/.steam/root/compatibil­itytools.d and enter the following command:

$ curl -L https://github.com/dreamer/boxtron/ releases/download/v0.5.4/boxtron.tar.xz | tar xjf -

That should take care of the installati­on, restart Steam if it’s already running. To use Boxtron on a DOS title use the same steps as any other version of Proton. Right-click a title and choose Properties. In the new window, look to the bottom of the General tab and enable ‘Force the use of a specific Steam Play compatibil­ity tool’. In the drop-down menu that appears, choose ‘Boxtron (native DOSBOX)’. Boxtron may be a little awkward to install for some users, but given Flatpak and Fedora packages are already available, plenty of other distributi­ons are bound to receive their own packages, and may already have done so by the time this tutorial is printed.

Gather under the Lutris umbrella

If you’ve never tried Lutris before, it’s a gaming client designed to collect all your games into one central launch pad. Everything from eight-bit classics to modern Aaa-titles are supported, but more recently its primary cause for attention has been its abilities to easily augment Wine.

Lutris comes with specialise­d Wine builds that can be swapped around at will, and combined with technologi­es such as DXVK, VKD3D and Esync (more on those later). Lutris also comes with its own gaming database, where pre-made scripts can do all the hard work for you.

If anything doesn’t work under Steam Play, it’s worth trying through Lutris. Lutris can also run Windows applicatio­ns independen­tly of Steam, including gog. com releases, or in fact any Windows executable. By combining the two applicatio­ns, your chances of successful­ly running Windows titles greatly increase.

Before we continue, we must introduce you to the concept of runners: programs managed by Lutris that can run games, whether it be Linux itself, Wine, DOSBOX,

MAME, gzdoom and so on. With this tutorial the runner in question is Wine Steam. Although Lutris can call up Linux Steam and run any game from there, its real use is through running the Windows version of Steam with its own modified versions of Wine.

If you head to lutris.net and click the Downloads page, you’ll be presented with detailed informatio­n on how to install Lutris on multiple distributi­ons.

Towards the top-left of the Lutris window should be the Runners field, with a small gear icon. Clicking this opens the Manage Runners window. Scroll down to the bottom of this window until you reach the Wine Steam entry. Of the two icons, click the Install Runner button on the left. This will download Wine as well as the Windows version of Steam.

During the download you’ll be prompted about Mono and Gecko installers. Install these – you’ll have rendering errors if you don’t. Once the Wine Steam runner is installed, you can close the Manage Runners window.

Wine Steam

Back in the main Lutris window, the Wine Steam entry in the Runners column on the left will now have a play button icon to run Wine Steam, and a gear icon to configure the Wine Steam runner.

After all that effort you may as well try running Wine Steam and installing some games. But when you’re done, try configurin­g Wine Steam with the gear icon. This will open the Configure Wine Steam window, where you’ll be introduced to the main elements for tweaking any Wine programs through Lutris.

First, there’s the Wine version. When you open the drop-down menu, you’ll be presented with all versions of

Wine and Proton currently on the system. On a clean installati­on of Ubuntu we were given a choice of System (5.0), lutris-5.6-2 (default) and Proton 5.0.

Then there’s the three big boys: Enable DXVK, Enable VKD3D and Enable Esync. DXVK is a compatibil­ity layer for running Directx 10 and 11 games through Wine, using the much faster Vulkan backend instead of the old

Opengl API. VKD3D essentiall­y does the same thing, but is used for converting applicatio­ns written for Directx 12. If your game uses Directx 10, 11 or 12 then you’ll either need DXVK or VKD3D, or it’ll make a big difference to the speed of 3D rendering at the very least.

Then there’s Esync. When it comes compatibil­ity, Esync is the biggest trouble maker, but also has the biggest potential for proper performanc­e. Apparently, it “removes wineserver overhead for synchronis­ation objects”… whatever that means. Either way, it can increase performanc­e on anything that relies heavily on the CPU. If you performanc­e is juddery or suffering long loading times, Esync can eliminate these problems.

Unfortunat­ely many games simply won’t start at all when it’s enabled, or may crash randomly. Last year when trying No Man’s Sky, loading times were dramatical­ly reduced and FPS counts were noticeably improved, but it always crashed after half an hour of gameplay. Furthermor­e, Esync only works with compatible Wine builds, which doesn’t include Proton.

The best approach to take is to find a combinatio­n of these settings that works best for each applicatio­n. When it comes to Steam itself, it’s best to just use the default settings for compatibil­ity’s sake, and then use more advanced settings later for individual games (see the next section).

Wine away

Although you can simply use Wine Steam to launch games, once a game has been installed in Steam it can be imported into Lutris, where it can be launched from the main window and given its own settings. This approach enables you to apply tweaks to individual games without upsetting Wine Steam or any other titles.

To import your Wine Steam games, go to the top of the window and click the Add Game icon. From the menu, select Import Games. In the new window that appears, open the Steam for Windows tab, select any games you want to import and then click Import Games. Once imported, these games should appear in the middle of the main Lutris window.

You can launch a game by either double-clicking it, or selecting the icon and pressing Play in the field on the right. To modify the parameters of a game, right-click the title and choose Configure. In the new window, open the Runner options tab for the most important settings. As before with Wine Steam, you can change the Wine version and enable DXVK, VKD3D and Esync.

For extensive game testing, it’s also worth trying the ‘Windowed (virtual desktop)’ option and selecting a resolution that’s lower than your desktop’s. Playing in a window like this isn’t exactly cool, but it’s a much better way of testing launch parameters because any game crashes are much more easily dealt with: you can just kill the window!

It’s well worth enabling ‘Show advanced options’ if you know what you’re doing. Now you can tweak or enable just about all the options you could ever want, including Wine prefixes, mouse warp overrides, audio drivers and more.

If you open the System options tab, there are two more options that may help with performanc­e: Enable ACO shader compiler and Enable NVIDIA Prime render offload. Anyone playing older games should take note of the ‘Switch resolution to’ option. This will change your

desktop resolution to a pre-defined setting when you hit Play, and switch back to your former resolution when you press Stop.

This came in handy when testing 1997’s Tomb Raider II for example, which has a fixed resolution of 640x480. When we tested it under Steam using Proton, it would crash when we tried to quit the game. By matching the game’s resolution on startup, it no longer had to deal with modern changes in resolution and was able to quit cleanly. When we pressed Stop, our former resolution was restored without drama.

It’s also well worth enabling ‘Show advanced options’ under the System options tab. Among many other features, there are options to disable desktop effects, switch to a US keyboard layout, or restrict the applicatio­n to a single core. This latter feature can come in handy for old games that don’t work properly with multi-processors, or badly ported console titles such as 2009’s The Saboteur, which can run much better on a single CPU core.

Non-games

Although Wine has already been installed on the system by this point, it hasn’t been properly setup as a Lutris runner. Doing so will ensure that every GUI prompt you need will be there and will also enable you to add more versions of Wine. Whether you plan on running nonsteam programs or not, it’s worth setting up the Wine runner because any extra versions of Wine you install will also be made available to Wine Steam.

Be aware that this will take a little more leg-work than other runners. You’ll need to install your applicatio­ns independen­tly, then manually locate the executable and add the necessary informatio­n yourself.

To get started with the Wine runner, either click the Manage Runners icon towards the top-left of the screen and scroll down to the Wine section, or you can simply look at the Wine entry in the Runners menu on the left. There should be an icon to Manage Versions and an icon to Configure the runner.

If you click Manage Versions, you’ll be presented with an extensive list of Wine variants, including some so-called ‘protonifie­d’ versions by TKG, which do work with Esync. It’s worth grabbing multiple Wine versions from different release cycles with different naming schemes. They’ll all have different strengths and weaknesses, and you can switch between them as much as you like.

Once you’ve grabbed your Wine releases, you can configure the Wine runner if you like, but with the Wine runner in particular it’s best to just configure each program individual­ly. With the Wine runner out of the way, you’ll need to install whatever games you’ll use independen­tly of Lutris using regular Wine, and then locate each program’s executable.

To add your applicatio­n to the Lutris menu, click the Add Game button at the top of the window and choose ‘Add Game...’ from the drop-down menu. In the new window that appears, give your program a name and select Wine from the Runner list. Now open the Game options tab. For the Executable field click Browse and select your applicatio­n’s executable file.

The Runner and System options tabs will contain the same tweaks we’ve already covered, so we’ll let you decide whatever you want enabled and disabled. When you’re ready to go, click Save and launch your applicatio­n from the main screen. If it’s the first time you’ve used a new version of Wine, you’ll have to download the Mono and Gecko packages again. Sorry about that. Otherwise, we hope it works for you.

Although Lutris is targeted at games, it can be used for any applicatio­n you like, and can even run Proton independen­tly of Steam. We used it to run Windows Blu-ray software for example, and any other Windows applicatio­n you’ve wanted to run is worth trying.

Proton’s main hurdle at the moment is with DRM and anti-cheat software, but agreements are being made between Valve and anti-cheat companies to finally enable compatibil­ity. When this hurdle is overcome expect a sudden jump in compatibil­ity rates.

Whether you’re into gaming or not, anyone interested in the future of Linux should keep an eye on Proton’s developmen­t. Although Wine and Proton are developed independen­tly, any progress in Proton eventually feeds back into Wine, and progress in Wine feeds back into Proton.

As this progress continues, Windows itself will become more obsolete by the day, and Linux faces possibilit­ies like being a drop-in OEM replacemen­t for cheap system builds. Remember, if it can run the next instalment of Call of Duty, it can almost certainly handle your spreadshee­t software.

 ??  ?? Valve’s Steam Play service provides easy access to the vast Windows gaming library, as long as you don’t mind a little trial-and-error.
Valve’s Steam Play service provides easy access to the vast Windows gaming library, as long as you don’t mind a little trial-and-error.
 ??  ??
 ??  ?? Boxtron enables old DOS titles to get in on the action with bespoke optimisati­on scripts.
Boxtron enables old DOS titles to get in on the action with bespoke optimisati­on scripts.
 ??  ?? Using Lutris extensions we managed to run a broken game like The Bureau: XCOM Declassifi­ed, albeit poorly.
Using Lutris extensions we managed to run a broken game like The Bureau: XCOM Declassifi­ed, albeit poorly.
 ??  ?? Beyond Valve’s small list of white-listed titles are perfectly running modern classics, such as 2017’s first-person shooter Prey.
Beyond Valve’s small list of white-listed titles are perfectly running modern classics, such as 2017’s first-person shooter Prey.
 ??  ?? The Runner options tab provides quick access to the most powerful tweaks you’ll want try with your games.
The Runner options tab provides quick access to the most powerful tweaks you’ll want try with your games.

Newspapers in English

Newspapers from Australia