Anniversary Edition/Framework

From OniGalore
Jump to navigation Jump to search

[This is a quick and dirty draft just to get some info out there for public consumption. If anyone wants to flesh it out, knock yourselves out, or I'll get to it... some day. Or someone else could, sooner... ;-p --Iritscen]

About the Framework

The 2009-07 release of the Edition introduced a revised framework. You will need to install the unzipped contents of the AE release for your platform into an "Edition" folder in a new, fresh copy of Oni, rather than one that has already had an older Edition installed into it. Following is a rundown of how globalization and mod installation work and how to make your own mod packages, which is required in order for the AE Installer to handle your mod properly.

The globalization process

This is a one-time process that takes the vanilla .dats in Oni's GDF and breaks them into .oni files inside folders in Edition/GDF/. 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 precompiling the data results in a large speed increase over previous recombination methods.

The mod installation process

Right after this, you are prompted to check some mods to install. Whenever you hit the Install button, it runs through each checked-off package, and sends a command to OniSplit to combine the singleton .oni for that level (in VanillaDats/) with that package's .oni files. So, if there are three mods that affect level1_Final, the Installer sends a command to take the level1_Final .oni file and the .oni files in each mod package's level1_Final folder and create actual, final level1_Final.dat/.raw(/.sep).

Implications of the new process

Tthe 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 used on the "_Final" folder left out the actual mod packages. And the next time you installed or removed a mod from within 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, even though no actual harm is being done in terms of lost data if you attempt to mod in this old way. The only way to get your mod integrated with the existing AE is to make your own package, which is a simple process.


Making a mod package

[We can basically copy this text from Gumby's post in the AE forum. For now, just read it in-situ so I don't have to take the time to reproduce the formatting: http://oni.bungie.org/community/forum/viewtopic.php?pid=13624#p13624]