Anniversary Edition/Framework

From OniGalore
< Anniversary Edition
Revision as of 17:25, 16 May 2010 by Iritscen (talk | contribs) (→‎Package numbering: clarifying some of the language)
Jump to navigation Jump to search

The 2009-07 release of the Edition introduced a revised framework. You should place the unzipped contents of the AE release for your platform into a fresh copy of Oni's folder, rather than a copy of Oni that already had an older Edition installed. Following is a rundown of how globalization and mod installation work. To learn how to make your own mod package, which is required in order for the AE Installer to handle your mod properly, see Making a mod package.

The globalization process

When first running the Installer, this is a one-time process that takes the vanilla .dats in Oni's GDF and breaks them into thousands of .oni files in folders like Edition/GDF/level1_Final. Next, the Installer combines those folders of .oni files into singleton, large .oni files, one for each level, in Edition/install/VanillaDats/. Note that no data has been modded yet, just reformatted. This process of pre-compiling the data results in a large speed increase over previous recombination methods.

The mod installation process

Right after this, the Installer prompts you to choose some mods to install. When you hit the Install button, the Installer starts off by deleting the existing .dat/.raw(/.sep) files in Edition/GDF to start from a blank slate. It then iterates through each mod package you selected, and sends a command to OniSplit to combine the singleton .oni for that level (in VanillaDats) with the .oni files in whichever packages have files meant for that level. The final .dat/.raw(/.sep) files are then created in Edition/GDF.

Implications of the new process

The import of this is that the folders of .oni files in Edition/GDF/ are never used again after the globalization is done. In the old way of doing things, these folders were what you modded files in, and then recombined to generate new .dat/.raw(/.sep) files. However, if you tried that approach now, and altered those folders' files, and recompiled them, you would find yourself playing an Oni with only your mod and no AE mods, because the -import command you used on the "_Final" folder left out the AE's mods in Edition/install/packages/. And the next time you installed or removed a mod using the Installer, you would find yourself playing an Oni with only the AE mods, and not your own. Your modded files would still be in the "_Final" folder you placed them in, but the -import command that the Installer used didn't look at those "_Final" folders, it worked from the giant singleton .oni files for each level that were in VanillaDats instead.

Put even more simply, your new modded files have a mutual exclusion with the AE's modded files; only one or the other can be active at a time. No actual harm is being done in terms of lost data if you attempt to mod in this old way, but it means that the smart way to mod is always to make a package and install it through the Installer, even if you are merely testing something. This has the nice side effect of forcing you to be organized :-)

Package numbering

When the Installer sees that one package overlaps with another in some way, such as two packages that provide new textures for the same character, which one will take precedence? The answer is that the Installer goes by the number at the front of the name of the package folder. A package numbered 11111 will override package 11110 when they are installed into Oni.

So, how do you pick a number for your mod? Here's how you pick the first of the five digits:

10000s - Weapons

20000s - Characters

30000s - Particles

40000s - Animations (non-combat)

50000s - Animations (combat)

60000s - Sounds

70000s - UI (new menu screens, HUD, etc.)

80000s - New levels (and new textures for existing levels)

90000s - Scenarios (BSL mods for other people's levels)

Once you know which digit to start with, you should use the remaining digits to number your mod in a way that fits in with the other mod packages. For example, here's some hypothetical package numbers and what they tell you about the package:

41000 (a mod that tweaks animations)

41100 (this mod might be related to mod 41000, or else you are just looking for another free number and 42-4900 are taken)

41010 (probably someone's addition or improvement to mod 41000)

41001 (must be an addition or improvement for mod 41000, or why else would they be numbered so closely?)

Okay, so now you get the idea, but how do you know which numbers are free? First, check the numbers in use by the AE, which are listed on the AE Packages page. Next, go to the Mod Depot, and choose "By Install Method>Package" from the sidebar to see all packaged mods. The names of the files (under the "Download Link" column) will tell you the numbers for these third-party packages. Any number not used by an AE package or a package on the Depot should be safe to use.