~hristoast/hristoast

6c6b610011fd9b58d5c2baf47345899ba5ef360d — Hristos N. Triantafillou 1 year, 10 months ago 62a68f0
Proofreading edits

Thanks, Sten!
1 files changed, 30 insertions(+), 30 deletions(-)

M site/blog/fallout-3-on-linux-with-mods.html
M site/blog/fallout-3-on-linux-with-mods.html => site/blog/fallout-3-on-linux-with-mods.html +30 -30
@@ 15,11 15,11 @@
</h3>

<p>
  You might be wondering "why is this guy writing about games", or "why is he writing about <span class="italics">that</span> game". Indeed, if I'm going to choose favorites New Vegas wins by a huge margin. But there's something about the world of Fallout 3 that is irresistable. Not to mention seeing Washington D.C. in ruins is... an experience that's hard to describe. <span class="footnote"> I can <a href="/i/fo3-2021-01.png">show it to you</a>, but even then it's not quite the same as being "there", "in" that world.</span>
  You might be wondering "why is this guy writing about games", or "why is he writing about <span class="italics">that</span> game". Indeed if I'm going to choose favorites New Vegas wins by a huge margin. But there's something about the world of Fallout 3 that is irresistable. Not to mention seeing Washington D.C. in ruins is... an experience that's hard to describe. <span class="footnote"> I can <a href="/i/fo3-2021-01.png">show it to you</a>, but even then it's not quite the same as being "there", "in" that world.</span>
</p>

<p>
  Aside from all that: it's a really fun RPG by Bethesda Softworks, the modding community is still quite active. I should also note that playing Fallout 3 on its own, without mods, is a relatively trivial affair. The game works exceptionally well via wine, so it's a good base to do something like modding on top of.
  Aside from all that: it's a really fun RPG by Bethesda Softworks and the modding community is still quite active. I should also note that playing Fallout 3 on its own, without mods, is a relatively trivial affair. The game works exceptionally well via Wine, so it's a good base to do something like modding on top of.
</p>

<h3>


@@ 31,7 31,7 @@
</p>

<p>
  It comes down to personal preference; Some folks might like using Linux, but they don't like the idea of doing extra work to play games. That's fair, because often times extra work will indeed be required to get thigs just right (more on that in a bit).
  It comes down to personal preference; some folks might like using Linux, but they don't like the idea of doing extra work to play games. That's fair, because often times extra work will indeed be required to get things just right (more on that in a bit).
</p>

<h3>


@@ 39,7 39,7 @@
</h3>

<p>
  Playing Fallout 3 on Linux without mods is a pretty simple process, no special tricks are needed to get the game working. Install it, and run it. Even on Windows, using mods adds extra time and effort required to game, as well as complexity into the overall setup. So why bother with mods if it creates extra work?
  Playing Fallout 3 on Linux without mods is a pretty simple process, and no special tricks are needed to get the game working. Install it, and run it. Even on Windows, using mods adds extra time and effort required to game, as well as complexity into the overall setup. So why bother with mods if it creates extra work?
</p>

<p>


@@ 47,7 47,7 @@
</p>

<p>
  Mods allow for not only fixing leftover bugs and performance issues, but also for upping the visual quality in ways that isn't just "add HD textures". It's possible to use a few mods and vastly improve the game, and this is what I aim to do.
  Mods allow for not only fixing leftover bugs and performance issues, but also for upping the visual quality in ways that isn't just "add HD textures". It's possible to use only a few mods and vastly improve the game, and this is what I aim to do.
</p>

<h3>


@@ 55,7 55,7 @@
</h3>

<p>
  Of course I'm using mods as stated in the post title, but I will not be using any kind of mod manager software. I'm personally not a fan of any in existence (except <a href="https://gitlab.com/portmod/portmod/-/wikis/Getting-Started">Portmod</a>) because they tend to cause more problems than they help with. <span class="footnote"> I couldn't resist making the heading title sound like Choking Victim's "No Gods, No Managers", which itself is a spin on the old slogan "No Gods, No Masters". Please don't hate me for trying to be clever.</span>
  Of course I'm using mods as stated in the post title, but I will not be using any kind of mod manager software. I'm personally not a fan of any in existence (except <a href="https://gitlab.com/portmod/portmod/-/wikis/Getting-Started">Portmod</a>), because they tend to cause more problems than they help with. <span class="footnote"> I couldn't resist making the heading title sound like Choking Victim's "No Gods, No Managers", which itself is a spin on the old slogan "No Gods, No Masters". Please don't hate me for trying to be clever.</span>
</p>

<p>


@@ 96,7 96,7 @@
</p>

<ol>
  <li>Install <a href="https://www.gog.com/game/fallout_3_game_of_the_year_edition">Fallout 3 GOTY from gog.com</a> with wine.</li>
  <li>Install <a href="https://www.gog.com/game/fallout_3_game_of_the_year_edition">Fallout 3 GOTY from gog.com</a> with Wine.</li>
  <li>Select the mods I want to use.</li>
  <li>Give them a rough, logical order and put each one into its own directory.</li>
  <li>Extract each mod into their own directory (the one you assigned in the previous step).</li>


@@ 118,7 118,7 @@
<h3>Install Fallout 3</h3>

<p>
  I've written <a href="https://wem.hristos.co/">WEM</a> as a way to simplify interacting with wine for complex game setups, and I'll be using WEM commands and configurations in this post.
  I've written <a href="https://wem.hristos.co/">WEM</a> as a way to simplify interacting with Wine for complex game setups, and I'll be using WEM commands and configurations in this post.
</p>

<p>


@@ 137,7 137,7 @@
    --wine-exe \$HOME/.local/share/wem/proton/Proton-6.10-GE-1/files/bin/wine</code></pre>

<p>
  Breaking this down: I'm defining a wine "env" with specific options for DXVK, fsync/futex2, Proton, and various paths. The result is that future interactions with the env will involve little more than a <code>wem run fallout3</code>. Note that I've got the installer files in the <code>$HOME/games</code> directory.
  Breaking this down: I'm defining a Wine "env" with specific options for DXVK, fsync/futex2, Proton, and various paths. The result is that future interactions with the env will involve little more than a <code>wem run fallout3</code>. Note that I've got the installer files in the <code>$HOME/games</code> directory.
</p>

<p>


@@ 147,7 147,7 @@
<pre><code>$ wem install fallout3</code></pre>

<p>
  This will kick off the install process. Make sure the install directory is set to <code>C:\game</code> (this is a pattern I do for every wine game install).
  This will kick off the install process. Make sure the install directory is set to <code>C:\game</code> (this is a pattern I do for every Wine game install).
</p>

<div class="center">


@@ 168,10 168,10 @@
  <li><a href="https://www.nexusmods.com/fallout3/mods/944">ArchiveInvalidation Invalidated</a>: In a nutshell, this one enables other mods to work (by working around silly engine quirks). This one has unique install steps, be sure to check the included HTML document for those details.</li>
  <li><a href="https://www.fose.silverlock.org/">Fallout Script Extender (FOSE)</a>: This is a requirement for the unofficial patch and a few other mods. As the name implies, it extends the game's scripting engine. I used the beta version (v1.3b2).</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/23682">Command Extender</a>: A required dependency for the unofficial patch.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/19122">Updated Unofficial Fallout 3 Patch</a>: This one fixes many of the numerous bugs left in the final released and patched game. If you only used one mod, it should probably be this (and the dependencies, of course).</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/19122">Updated Unofficial Fallout 3 Patch</a>: This one fixes many of the numerous bugs left in the final released and patched game. If you only use one mod, it should probably be this (and the dependencies, of course).</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/6938">RH_IronSights - FOSE</a>: Adds ironsights aiming to the game, to replace the weak zoom you get by default. Note that this doesn't magically make the game's shooting what you'd expect from a "real" FPS, but it does potentially help.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/20183/">Fallout 3 - Enhanced Camera</a>: Gives your first person perspective a body, so when you look down you see your legs and whatnot.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/3729">CASM</a>: Periodic auto-saving. If the game wasn't so prone to crashing you might not need this, but even if you think you don't need it you actually do because you will be burned by a crash sooner or later, and you don't want to lose a bunch of progress because you didn't think to save.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/3729">CASM</a>: Periodic auto-saving. If the game wasn't so prone to crashing you might not need this, but even if you think you don't need it, you actually do. This is because you will be burned by a crash sooner or later, and you don't want to lose a bunch of progress because you didn't think to save.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/1854">Sprint Mod</a>: Adds a sprint mechanic to the game, similar to what's in Skyrim.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/9592">Underground Hideout</a>: This is a player home mod; you don't necessarily need this one or any other player home mod, but there's something neat about them. Skip or replace this as desired.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/626">Better Booze</a>: Give alcoholic beverages a nicer look, optionally with real-world brands.</li>


@@ 184,11 184,11 @@
  <li><a href="https://www.nexusmods.com/fallout3/mods/20053">HD Smoky Fire and Explosions for FO3</a>: You'll be seeing a lot of fire and smoke, best to make it look a bit nicer.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/12056/">NMCs_Texture_Pack_for_FO3</a>: Very high-quality texture replacements for a large amount of the game's assets. In my opinion, they look fantastic and you need this.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/20373">PipBoy 3000 HD Retexture</a>: You'll potentially look at this thing a lot while playing, so make it look a bit better as well.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/9250">Realistic Interior Lighting</a>: This one makes interiors really dark. As the name of the mod implies (hey, you can't always go on that in the mod world) it in my opinion seems to be a relatively realistic level of lighting. Makes subways very creepy.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/9250">Realistic Interior Lighting</a>: This one makes interiors really dark. As the name of the mod implies (hey, you can't always go on that in the mod world), it in my opinion seems to be a relatively realistic level of lighting. Makes subways very creepy.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/866">Terrain_Pack_ROCKS_ADD_ON_PACK</a>: Very high resolution rock textures; I'm using the 8K version.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/8260">https://www.nexusmods.com/fallout3/mods/8260</a>: Give the UFO DLC a facelift to go along with what NMC and others have provided.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/591">Whats Your Brand - cigarette texture megapack</a>: Give the cigarette packages high quality textures based on real world brands. I went with Camel because that's what I used to smoke <span class="footnote"> I'd honestly be okay with having a smoke now and then, but it's hard to find good tobacco. I'm not really down to smoke Camels or any other store brand nowadays.</span>.</li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/21174/">LODGen</a>: This one generates better and more distant objects to see in the distance. It comes with a plugin that you need to have enabled while running it, but not while you're playing (more on that later).</span></li>
  <li><a href="https://www.nexusmods.com/fallout3/mods/21174/">LODGen</a>: This one generates better and more distant objects. It comes with a plugin that you need to have enabled while running it, but not while you're playing (more on that later).</span></li>
</ul>

<p>


@@ 196,13 196,13 @@
</p>

<ul>
  <li>The game engine has stability issues even on windows, the more mods you add or textures/meshes you replace the more you increase the overall volatility.</li>
  <li>When you start to get a large list of plugins, the chances of having two or more that modify the same objects is pretty good and you will require a merged patch to properly resolve this. More on this below.</li>
  <li>It's easy to get carried away and add all kinds of things, but the base game and DLCs have a ton of content so in my opinion you don't need that much extra content.</li>
  <li>The game engine has stability issues even on Windows.  The more mods you add or textures/meshes you replace the more you increase the overall volatility.</li>
  <li>When you start to get a large list of plugins, the chances of having two or more that modify the same objects is pretty good, and you will require a merged patch to properly resolve this. More on this below.</li>
  <li>It's easy to get carried away and add all kinds of things, but the base game and DLCs have a ton of content, so in my opinion you don't need that much extra content.</li>
</ul>

<p>
  And, as a reminder: I've installed these in the order that they are listed. I've done that in a scrappy, manual way; by creating numbered directories (e.g. <code>01-ModName</code> and so on) and putting each mod into their own.
  As a reminder: I've installed these in the order that they are listed. I've done that in a scrappy, manual way; by creating numbered directories (e.g. <code>01-ModName</code> and so on) and putting each mod into their own.
</p>

<p>


@@ 222,7 222,7 @@
</p>

<p>
  It could be argued that even my relatively small loadout needs a merged patch, and while Wrye Bash works quite well on Linux via wine (or with the "plain" python build) for now I'm skipping it.
  It could be argued that even my relatively small loadout needs a merged patch, and while Wrye Bash works quite well on Linux via Wine (or with the "plain" python build), for now I'm skipping it.
</p>

<p>


@@ 252,7 252,7 @@
<h3>Merge Data Files</h3>

<p>
  With everything extracted and lowercase, it's time to copy the data files into the merged directory. This is done in a specific order, so you'll always want to overwrite and replace existing files when prompted.
  With everything extracted and lowercased, it's time to copy the data files into the merged directory. This is done in a specific order, so you'll always want to overwrite and replace existing files when prompted.
</p>

<h3>Install Mods</h3>


@@ 280,13 280,13 @@
</p>

<p>
  The LOOT Linux build is somewhat huge, clocking in at around 1.2 GB with a 1.1 GB <code>libcef.so</code> file being the main offender. Anyways, it's for this reason that the LOOT team has decided not to ship Linux binaries. But, it is possible to build one's self.
  The LOOT Linux build is somewhat huge, clocking in at around 1.2 GB with a 1.1 GB <code>libcef.so</code> file being the main offender. Anyways, it's for this reason that the LOOT team has decided not to ship Linux binaries, but it is possible to build one's self.
</p>

<h4>Building LOOT</h4>

<p>
  Building LOOT for Linux is possible but it's not trivial. It has more specific requirements than most things I'm used to dealing with, so to me it made sense to try and use a docker container for building it. <a href="https://git.sr.ht/~hristoast/build-loot-linux">This repository</a> is the result of that effort, the readme describes how working binaries can be produced as well as how to configure the thing (though, I'll go into detail about configuring below).
  Building LOOT for Linux is possible, but it's not trivial. It has more specific requirements than most things I'm used to dealing with, so to me it made sense to try and use a Docker container for building it. <a href="https://git.sr.ht/~hristoast/build-loot-linux">This repository</a> is the result of that effort, the readme describes how working binaries can be produced as well as how to configure the thing (though, I'll go into detail about configuring below).
</p>

<p>


@@ 329,13 329,13 @@ $ LD_LIBRARY_PATH=. ./LOOT</code></pre>
</p>

<p>
  When you save your configuration, nothing will happen and you'll get an error when you try and select it from the profile menu at top-center. Close LOOT, re-run it, you should be greeted with a recognized load order.
  When you save your configuration, nothing will happen and you'll get an error when you try and select it from the profile menu at top-center. Close LOOT, re-run it, and you should be greeted with a recognized load order.
</p>

<h4>Sorting With LOOT</h4>

<p>
  Click the download icon at the top right to update master lists, then the button just to the left of that to sort your plugins. You'll be asked to Apply with a button, do that. The result should look something like this (the below image is just the base game files, and no mods):
  Click the download icon at the top right to update master lists, then the button just to the left of that to sort your plugins. You'll be asked to Apply with a button, so do that. The result should look something like this (the below image is just the base game files, and no mods):
</p>

<div class="center">


@@ 365,7 365,7 @@ $ LD_LIBRARY_PATH=. ./LOOT</code></pre>
</p>

<p>
  WEM makes it easy to run an arbitrary executable with the context of a specific wine prefix, you can use it to run LODGen like this:
  WEM makes it easy to run an arbitrary executable with the context of a specific Wine prefix, you can use it to run LODGen like this:
</p>

<pre><code class="language-sh">$ wem run fallout3 --exec "{{.RunWorkDir}}/FO3LODGen.exe"</code></pre>


@@ 375,7 375,7 @@ $ LD_LIBRARY_PATH=. ./LOOT</code></pre>
</p>

<p>
  I select all worldspaces, and I set atlas sizes to 4096x4096 since I'm using a lot of high resolution textures. Click OK to generate and let it work, it takes around ten minutes to finish for me.
  I select all worldspaces, and I set atlas sizes to 4096x4096 since I'm using a lot of high resolution textures. Click OK to generate and let it work; it takes around ten minutes to finish for me.
</p>

<p>


@@ 402,7 402,7 @@ $ for file in (find . -type f -iname "*.mp3");
end</code></pre>

<p>
  This takes a bit to crunch, and if you aren't using the radio mod I linked above you'll need to extract the MP3s from the game's related .bsa archive. <span class="footnote"> OpenMW comes with the <code>bsatool</code> executable, which would make this an easy task.</span> But when it's done, the radio tunes should play as expected.
  This takes a bit to crunch, and if you aren't using the radio mod I linked above, you'll need to extract the MP3s from the game's related .bsa archive. <span class="footnote"> OpenMW comes with the <code>bsatool</code> executable, which would make this an easy task.</span> But when it's done, the radio tunes should play as expected.
</p>

<h3>Playing The Game</h3>


@@ 436,13 436,13 @@ end</code></pre>
</ul>

<p>
  There's probably many other features you could tack in here. But feature bloat is part of why, in my opinion, other softwares in this category lack. They tend to do a lot, but none of it is done really all that well. <span span class="footnote"> Obligatory reference to <a href="https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/">The Law of Leaky Abstractions</a>.</span> A good mod manager should be useful, but not try to do everything. <span class="footnote"> <a href="https://gitlab.com/portmod/portmod/-/wikis/Getting-Started">Portmod</a> does quite a bit, aside from downloading mods in all cases it damn near does everything. So it is possible to have a lot of features, it's just not easy. Props to Ben Winger for his awesome software.</span>
  There're probably many other features you could tack in here. However feature bloat is part of why, in my opinion, other softwares in this category lack. They tend to do a lot, but none of it is done really all that well. <span span class="footnote"> Obligatory reference to <a href="https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/">The Law of Leaky Abstractions</a>.</span> A good mod manager should be useful, but not try to do everything. <span class="footnote"> <a href="https://gitlab.com/portmod/portmod/-/wikis/Getting-Started">Portmod</a> does quite a bit, aside from downloading mods in all cases it damn near does everything. So it is possible to have a lot of features, it's just not easy. Props to Ben Winger for his awesome software.</span>
</p>

<h3>Conclusion</h3>

<p>
  It seems that it is in fact possible to play Bethesda RPGs on Linux, even if there's no native release and I'm just using wine. LOOT sorting plugins for me is what really makes this possible; I live without a mod manager by doing things by hand, but the load order sorting isn't something you want to be doing by hand. That, as well as wine and DXVK of course.
  It seems that it is in fact possible to play Bethesda RPGs on Linux, even if there's no native release and I'm just using Wine. LOOT sorting plugins for me is what really makes this possible; I live without a mod manager by doing things by hand, but the load order sorting isn't something you want to be doing by hand. That, as well as Wine and DXVK of course.
</p>

<p>


@@ 450,7 450,7 @@ end</code></pre>
</p>

<p>
  When you consider that future modifications should be easy since I've already got an organized directory scheme, as well as the fact that I can use WEM to simplify interacting with wine, this was a worthy endeavor. I have a working game environment that should continue to work and is easily adjustable should the need arise. Additionally, the patterns I described should work for any Bethesda RPG from Oblivion to Skyrim.
  When you consider that future modifications should be easy since I've already got an organized directory scheme, as well as the fact that I can use WEM to simplify interacting with Wine, this was a worthy endeavor. I have a working game environment that should continue to work and is easily adjustable should the need arise. Additionally, the patterns I described should work for any Bethesda RPG from Oblivion to Skyrim.
</p>

<h3>Footnotes And References</h3>