[WIP] Tool: Objective Install Order

Post » Thu Nov 01, 2012 10:23 pm

Hi,

I've never been active in the modding area, I've been mostly lurking on this forum, and I once helped a little bit BTB with tests and suggestions for BTB Game Improvements. I'm building my MW install for my next playthrough since about 3 years!, and according to several user / modder experiences I've read about here I'm not that eccentric ^^'

As some of you may already have guessed, I'm not a native English speaker. Worse, I'm French. So please excuse my approximate language.

I don't know if such a tool already exists and if it might be useful to players and modders but I'd like to have some feedback on the principle and eventually do a release. I haven't implemented a GUI nor command line options yet, all the config is an ini file. Some parts of the tool might be dependent on my computer and mod packages config. Also there is no doc yet. Thus it needs work before I can release it.

The tool has been tested on Windows 7 and Linux.

What the tool does

Help you install your mods. It uses "objective" criteria (as opposed to subjective) to order your mod packages (thx to numerical prefix in filenames) in your Installers directory. Its goal is to help you start from a not-so-bad order and then let you tune your list using a few configuration options. Finally the player can use Wrye Mash to perfect the order.

I know players use their tastes to decide which mod (data files) should override which other, by watching at textures/meshes, listening to sound files, assessing if the mod fits well with others ingame... but I really think we can use some objective information to automatically decide on most cases without doing too much corrections afterwards.

How it works

The tool anolyses all your archives (7z, rar, zip, but no support for uncompressed "projects") in a given directory, traversing recursively subdirectories if it find some (I like organizing my mods in categories and subcategories).
It looks for conflicting data files, then shows you a graphical view of the conflicts and its suggested order. Finally if you want to, it renames and copies your archives to the Installers directory, adding a numeral prefix to each conflicting archive so their default order will be preserved in Wrye Mash.

Every possible pair of packages are compared according to 3 "objective" criteria in order to decide which one shall override the other.

The 3 "objective" criteria I've found are:
1. Size of data files
2. Data files count
3. Timestamp of data files

The hypotheses behind the tool is we can hope that, in general, statistically:
1. The larger the data files, the better the quality (textures, meshes, sounds...).
2. The less files a mod has the more specialized it should be. I mean, big packs with lots of files like Visual Pack, Connary's or Darknut's little weapons should have a lower score than smaller graphic replacement mods (Umbra replacement?) to allow the latter ones to override the data files of the former ones.
3. The more recent a mod is, the more actual / updated / improved it should be compared to an older mod.

These criteria are computed for each pair of data files for each mod archive and then a final score is given for each pair of mods. The scores are used to build a mod install precedence graph, which is then linearized to get the final ordered list of mods.

The linearization might reverse one or more edges (overrides) if the algorithm produces loops in the graph.
Example: If we've got the overrides A > B > C > A, then the tool will reverse the pair having the smaller override score.
If that pair is (B > C), then the final result is A > B < C > A and the generated ordered list is B A C.

Example, with my own mod list

Here the graph produced by the tool with default options:

http://dl.dropbox.com/u/46975810/MW/overlaps-original.pdf

The thicker the edge, the greater the overriding score is.
Mods with no overlaps are not included.
The tool also generates a detailed text report on which mod overrides which other, for what data files, with what scores...

Then I wanted to change a few things, eg. it's not ok the Visual Pack overrides Darknut's Creature Textures and Little Weapons.

Tuning

The tool offers you several ways to tune your graph (through an .ini file):
- Global coefficients, one for each of the 3 criteria, eg size = 0.8 (instead of 1.0)
- Specific coefficients, applied on a specific mod archive, eg "Visual Pack.7z" = 0.5
- Specific overrides, let you force an override of a mod over another, eg "Connary Pack.7z" = "Visual Pack.7z" meaning you force Connary Pack to override Visual Pack.

In my previous example, I'd like to make Visual Pack as a base for other mods, so I set its specific coefficient to 0.1.
As I use 512 texture size version of few mods like Darknut's, they may get overridden by mods with high texture definitions.
With such a mod selection, I want to give advantage to more specialized mods over bigger sized mods.
So I reduced the size criterion to 0.8.

I set specific coefficients to a few other mods and I got the following final graph:

http://dl.dropbox.com/u/46975810/MW/overlaps-final.pdf

Specific coefficients are displayed in green.
Now I'm quite satisfied with the result, I can then let the tool copy and rename my mods to the Installers directory.
User avatar
maya papps
 
Posts: 3468
Joined: Mon Aug 07, 2006 3:44 pm

Return to III - Morrowind