modDNA
modDNA aims to speed up and simplify installation of large mod collections such as S.T.E.P., while respecting rights of mod creators.
RATIONALE
Mod Organizer (MO) provides a very solid way of installing mods. Skyrim Total Enhancement Project (S.T.E.P. (wiki.step-project.com)) provides a very good collection of mods. Still, installing large mod collections (such as S.T.E.P.) takes many hours, mostly of menial and error-prone keypressing and mouseclicking.
This is what modDNA tries to address.
How modDNA is Different from Downloading the Collection as a Whole
modDNA is different to downloading whole collections in several ways:
- DNA generated by modDNA is orders of magnitude smaller than a full configuration which can be downloaded as a whole. For example, DNA for the whole S.T.E.P. Core configuration is less than 1 megabyte (not gigabyte!) after compression.
- In case of any changes to published DNAs, amount of re-downloading is limited to the DNA itself (which is small, see above) plus things which have changed.
- in particular, modDNA makes it relatively inexpensive (in terms of traffic) to download a version of collection which has a few files changed from 'lower-res' version to a 'high-res' one
- DNA generated by modDNA, is not a whole configuration as such; substantially it is only a set of instructions "if you go to such and such place and get such and such archive, and extract such and such files from it, and put them in such and such subfolders, and modify such and such .ini setting in such and such file to such and such value - you'll get a configuration which is substantially identical to what I have". These instructions don't copy any substantial information from the mod (for example, DNA doesn't contain any textures, just references to them), and can be easily automated by modDNA running on target computer.
- modDNA aims to create valid mod installations under Mod Organizer structure. This simplifies mix-and-match of mods (as well as further mod and configuration development)
- DNA generated by modDNA and "purified" according to modDNA guidelines, does not copy any substantial parts from the mod. To obtain mods, end-user still needs to download them from the Internet (usually from mod hoster such as Nexus), though modDNA may hint user what exactly needs to be downloaded for a specific collection.
While the latter download-from-source-only requirement somewhat complicates life of the end-user (and while it seems to be relatively easy to automate downloads completely without causing any copyright issues), this is current modDNA choice in an attempt to provide a fair balance of interests of mod hosters, mod creators, and end-users.
MECHANICS
modDNA provides a way to extract a 'DNA' from an already established MO profile; this 'DNA' includes info on all the files in relevant parts of her setup, but is only a few megabytes in size
- 'DNA' doesn't depend on the way how setup was obtained, but instead depends on specific files being in specific places. In other words, it doesn't matter if you installed mod manually or with installer, as long as the end result is the same.
- 'DNA' file does not contain any 3rd-party copyrightable information (such as textures); normally, only file names and cryptographic digests are stored
- 'DNA' file (as well as similar but less-computation-intensive-to-generate 'fingerprint file') is text-based and stable. As a result:
- it can be used to track changes between the setups (answering questions "what did I change?"). Using source control systems (Mercurial/Git/...) for setups also becomes possible.
- it can be used to see differences between different setups (for example, if two people have both installed S.T.E.P. core - done with modDNA or without, and one has it working, and another has CTD on start, they can see what's different between their setups)
DNA Replication
modDNA will provide a way (even for a newbie) to automagically replicate an existing 'DNA', to make her configuration an EXACT MATCH to a published 'DNA' file
- during replication any files existing in MO downloads folder, will be used
- if a file is missing, modDNA will tell what is missing and suggest where to download it
Expected Workflow
- Mod guru creates a setup (using MO and whatever means necessary), and makes a guru DNA out of it
- Users around the globe are downloading this guru DNA and replicating it on their computers.
Isn't Each Setup Unique?
Yes and no. Experience of S.T.E.P. shows that with just a few configurations it is possible to create setups which serve as very good starting points for further modding. Of course, if setup was intended for a monster machine with 6-core CPU and GTX Titan, moving it to a laptop won't be a good idea, but creating of a few standard configurations should be possible.
What's Exactly Included Into DNA?
modDNA aims to include everything relevant to ensure that 'replica' is identical to the source, from MO 'mods' and 'profile' folders, to skyrim.ini and driver settings. For current project status please see below.
On the other hand, verbatim data from current configuration is normally not included but rather is replaced with references to existing files from existing mods. There are two exceptions from this rule:
- auto-generated files (such as meta.ini generated by MO)
- small pieces DNA creator has created herself (such as information like 'set abc=123 in xyz.ini file')
These two types of information are the only parts which are allowed to be copied verbatim into a DNA file. In any case, DNA is always a human-readable file, so it can always be easily read to see if there are any copyright issues.
modDNA KINDA MANUAL
While there is no modDNA yet, there is a [Kinda Manual] for it. As of now, it is more of "what modDNA is trying to achieve".
PROJECT TASKS AND STATUS
PROJECT STATUS: JUST STARTED (a bit over 3000 LOC)
| Project Task |
Status |
| FINGERPRINTING AND DNA EXTRACTION |
In progress |
| Stable fingerprinting of generic folders |
Done |
| Fingerprint caching |
Done |
| Fingerprinting of all Skyrim/MO/BOSS folders |
Done |
| Fingerprinting of driver setup (NVidia) |
|
| Fingerprinting of driver setup (ATI) |
Cannot do myself |
Fingerprinting of DirectX DLLs (some programs hack DLLs which cause stuff like ENB to fail) |
Done |
| Fingerprinting of running processes |
|
| Scanning BSAs |
Done |
| Scanning downloads folder with support for .zip, .7z, .rar, and .bsa |
Done |
DNA resolution (compared to well-known files/downloads) |
Mostly Done |
| File to URL resolution |
|
| UI |
|
| Command line |
|
GUI (strictly on top of command line, to enable 100% scripting) |
|
| INSTALLER |
|
| DNA REPLICATION |
|
| MO mod generation |
|
| MO profile generation |
|
| NVidia Inspector profile generation |
|
| ATI equivalent |
Cannot do myself |
| AUTOCONFIGURATION |
|
| MO folder detection |
|
| Skyrim folder detection |
|
| FIREFOX PLUGIN TO SIMPLIFY DOWNLOAD |
Will appreciate any help |