Automation Survey

From Step Mods | Change The Game
Revision as of 22:49, September 4, 2016 by Airbreather (talk | contribs) (First version, getting something onto the page so it can be improved and extended.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Overview[edit | edit source]

At the time of writing, the process of setting up STEP can be quite painful. There are many manual steps in the process. Some of these steps have to be done in a particular order, but others can be done in parallel. Some of these steps have to be done manually, whereas others can be automated. The goal of this page is to do a survey of what it takes to go from "I just bought Skyrim Legendary Edition on Steam!" to a working STEP system (with zero or more packs installed on top of STEP Core, perhaps with different Mod Organizer profiles), and what parts of that process can be automated.

Glossary[edit | edit source]

Special terms used on this page:

  • [RR] = Research Required. This section can be improved by spending some time looking into specifics.
  • [N2H] = Nice-to-Have. This idea could be skipped entirely, and most users probably wouldn't mind.
  • [INC] = Incomplete. This section is just a placeholder and needs to be filled in.

Automation[edit | edit source]

In general, "automation" here refers to using a tool of some sort to perform a process without user interaction that would have otherwise required it. Automation is highly desirable for STEP for these reasons:

  1. The automated parts should run much faster than otherwise
  2. Reduces the number of ways users can make mistakes during the setup process
  3. Reduces the burden on a user to have to learn how to use several different power-tools
  4. Simplifies the setup process, bringing in more users; some of these users may become contributors themselves

Automation does, however, have some disadvantages:

  1. Expensive to set up in the first place: the time we spend automating STEP is time we could have spent improving something else
  2. May not help "advanced" / "power" users who want to deviate slightly from what the guide recommends

STEP Setup Process[edit | edit source]

At a high level, this is what the STEP setup process looks like. High-level sections should more-or-less correspond to the STEP guide.

Install Skyrim[edit | edit source]

Install the latest version of Skyrim, with all official DLC, cleanly (no local modifications).

Automation Opportunities?[edit | edit source]

Assuming that the user has purchased a legitimate copy of Skyrim with all official DLC, Steam handles this entire process for us. Still, this step requires transferring multiple gigabytes of data over a potentially slow network connection and writing it to potentially slow persistent storage, so there are some opportunities here.

  1. [RR] Can SteamCMD be used to check if Skyrim is owned with all DLC, download if not present, and verify local cache if it is present? If not, we can fall back to AutoIt / AutoHotKey scripts to run through the Steam client UI, but that feels tricky and fragile.
  2. [RR] / [N2H] Can we install a separate instance of Skyrim to cover cases where users have been having a jolly old time with their install, maybe even with a few Steam Workshop mods here and there, and don't want to abandon their old saves etc. until they've had some time playing around with STEP? Piggy-backs off of the SteamCMD idea above.

Initialize Basic Structures (Skyrim Launcher)[edit | edit source]

Initialize the structures that the Skyrim Launcher initializes when it starts up: registry keys, baseline INI files stuff.

Automation Opportunities?[edit | edit source]

We can automate the creation of the corresponding registry keys, but that feels sketchy. Having a one-off AutoIt / AutoHotKey script open the launcher and click through to exiting it probably wouldn't be the end of the world.

INI file stuff might be handled by the section that's dedicated to INI tweaks, but we might as well copy the baseline INI files to the place where the Skyrim Launcher would have copied them, because it's really awkward trying to launch vanilla Skyrim using TESV.exe without ever having run the launcher.

Tweak INI Files[edit | edit source]

Change vanilla configuration options stored in INI files.

Automation Opportunities?[edit | edit source]

Easy to automate without having to open the launcher. We can probably just distribute fully baked INI files crafted for whatever setup we're automating. If that's not cool for one reason or another, we can probably have the tool start from the Bethesda-provided baselines instead and apply specific changes to the defaults instead.

Update & Tweak Graphics Drivers[edit | edit source]

[INC]

Calibrate Display[edit | edit source]

[INC]

Download Mods & Third-Party Tools[edit | edit source]

Typically from Nexus.

[INC]

Unpack / Install Mods & Third-Party Tools[edit | edit source]

[INC]

Apply Patches[edit | edit source]

Typically contained within the mods.

[INC]

Finalize Mod Organizer Profile[edit | edit source]

Includes running LOOT.

[INC]

Add Packs (if any)[edit | edit source]

[INC]