<h1 id="title">Steam for Windows on GNU/Linux - how I do it</h1>
<div id="dates">
<span>Posted: <time id="post-date">2015-10-13</time> | Updated: <time>2019-11-09</time></span>
</div>
<p><span class="bold">UPDATE:</span> Another post that was made before <a href="https://github.com/ValveSoftware/Proton">Proton</a> existed. So much has changed!</p>
<p id="post-excerpt">But wait! Why do you want to mess with Windows' version of Steam when there's a native client for GNU/Linux systems?</p>
<p>The fact is that although the number of <a href="http://store.steampowered.com/browse/linux" target="_blank">games for Steam on Linux</a> is pretty large and growing fast, there is a massive number of games that aren't currently slated for release outside of Windows - or they have a FOSS implementation that isn't loudly advertised (if at all) on whatever store you happen to find a game on. In some cases, it is an easy way to gain access to game files that you want to use with a particular reimplementation of a particular game.</p>
<div class="well">A side note: GOG is sort of an exception here with their GOGmixes; the community can assemple lists and if a game has a reimplementation, chances are high it will be listed in a GOGmix. Pretty handy actually!</div>
<p>Steam has a <a href="https://appdb.winehq.org/objectManager.php?sClass=version&iId=19444" target="_blank">gold rating on the WineAppDB</a>, and tools like <a href="https://github.com/Winetricks/winetricks" target="_blank">winetricks</a> make installation and usage a breeze. There's nothing really special about the process, but seeing as there are so many ways to do this I thought I should lay out what works really well for me.</p>
<div id="toc"></div>
<h4><strong>$WINEPREFIX</strong></h4>
<p>Before we get rolling with installing things, it's important to understand what setting a <code>$WINEPREFFIX</code> can do for you. <a href="http://wiki.winehq.org/FAQ#wineprefix" target="_blank">The official docs put it best</a>, but in a nutshell it allows you to create a new windows install. This is useful if you don't want to install a bunch of different applications into <code>~/.wine</code> or if it gets too messy. It can also be useful if you want to test something out but don't want to mess with an existing, clean wine prefix.</p>
<h4><strong>winetricks</strong></h4>
<p>Installing winetricks is easy, just git clone the source and run <code>winetricks/src/winetricks</code>. There's a Makefile for system installation, but I find it easier to make a symlink to some local directory that's in my <code>$PATH</code> - YMMV.</p>
<h4><strong>Steam</strong></h4>
<p>Installing Steam is simple, just run <code>winetricks</code> with your desired <code>$WINEPREFIX</code> set. For example:</p>
<p><code>WINEPREFIX=${HOME}/games/WineSteam winetricks</code></p>
<p>A couple dialog boxes will be displayed, winetricks will inform you about a few workarounds it will apply to make steam more usable, and that's pretty much it. Within a few minutes Steam should be up and running.</p>
<p>I use a small shell script to handle launching Windows Steam, something like this:</p>
<pre>
<code>#!/bin/sh
export WINEPREFIX=${HOME}/games/WineSteam
cd ${WINEPREFIX}/drive_c/Program\ Files/Steam
wine 'C:\Program Files\Steam\Steam.exe'</code></pre>
<p>A decent number of "Windows-only" Steam games work quite well via this method - I've managed to play bits of various Bethesda games (Skyrim, Fallout 3/NV, etc) but you'll need a decent video card (preferrably Nvidia) if you want to get that crazy. One game I frequently play on wine is <a href="https://appdb.winehq.org/objectManager.php?sClass=version&iId=27985" target="_blank">Age of Empires II HD Edition</a>; it's a really slick update to a great classic and isn't grahpically demanding yet still looks great.</p>
<p>Anyways, that's about it for now I suppose. Enjoy!</p>