Jump to content

Talk:History of Oni modding: Difference between revisions

removing old version of History article from Talk page so it doesn't confuse search results
No edit summary
(removing old version of History article from Talk page so it doesn't confuse search results)
Line 41: Line 41:


There is one important thing I just realized is missing (from the original text too): talking about how Loser fixed the AI. That's something that must be addressed in the article. --[[User:Iritscen|iritscen]] 20:48, 13 November 2008 (CET)
There is one important thing I just realized is missing (from the original text too): talking about how Loser fixed the AI. That's something that must be addressed in the article. --[[User:Iritscen|iritscen]] 20:48, 13 November 2008 (CET)
----
Since the original namespace "Modding Oni" is being repurposed, here's the original history text that geyser wrote so he can use it as a reference to point out my egregious falsehoods.
=History=
This is a sorta historical overview of Oni modding, that also offers some insight in the basic elements of modding and into the potentials and perspectives.
==Scripting==
[[BSL]] scripts are text-based, human-readable definitions of level logic, and so they were the very first way that Oni was modded by fans. The lack of documentation was somewhat compensated by the possibility to rip the names and descriptions of the [[BSL:keywords|keywords]] and preset [[BSL:variables|variables]] and [[BSL:functions|Functions]] from the engine. Despite the popularity and relative ease of scripting, BSL tutorials and guides have remained virtually non-existent for years, so that scripters are largely self-taught. Also, BSL is perhaps the most bug-ridden piece of Oni's engine. This starts explaining why no "expert scripters" have produced a consistent "course on BSL" yet.
One could point out three popular classes of scripts: original level logic with minor changes (e.g., cloned enemies, as in The Immortality or Titan Mode); "tournaments" (epic encounters one after another and not much of a plot, like "Mountain Rally", "Tournament in Real Time"); totally new objectives and mission layouts (e.g., Mariachi Bear's alternate storyline). Those last ones are typically more elaborate, but fully original scripts are all the more prone to bugs. The first two are easier to set up, but extreme situations tend to overload the engine (as in [[Blam]]!) in ways that the scripters usually don't control.
Generally, scripts tend to suffer from lack of thorough testing and insufficient knowledge of BSL. BSL's variables and functions allow for some creative scripting (Oni Menu, [[OTA]]), but in the absence of binary modding, they are limited to the resources that an original level has to offer, which are intended for the original missions and may not be suited for much else. Then again, people often script "just for fun", with little or no commitment to debugging or support, so the limitations of BSL-only modding are easily overlooked.
For a list of the scripts produced by the community, see "Category:Scripts".
==Binary modding==
Soon enough it became clear (to some of us, at least) that scripts alone would not allow us to design radically new single-player missions. Entities like [[OBD:BINA/OBJC/TRGV|trigger volumes]] or [[OBD:BINA/OBJC/CHAR|character descriptions]], for example, were originally designed and fine-tuned in parallel with the scripts. The interplay is such that modders with 100% original ideas typically have to mod the binary resources to adapt them to their scripts. The first one to have consistently done so is [[User:Loser|Loser]], with a massively reshuffled Warehouse. Loser's Warehouse mod included a global component (modified level0_Final), level-specific binary modifications, and highly custom scripts that took full advantage of the modified binaries.
Minor binary modding had already occurred before Loser's Warehouse (thus, while compiling the [[OBD]] database, ssg had released a version of level0_Final in which all of Konoko's combos were unlocked). Still, it was the Warehouse mod which first showed the "full" potential of binary modding. It inspired a short-lived initiative called the [[AE:BIP|Binary Improvement Project]], aimed at providing upgraded binaries for all levels, not just level0_Final and level1_Final. BIP was hindered by large upload/download sizes as well as by the potential legal issues and was promptly put in standby.
An equally short-lived alternative to supplying whole levels was developed in the form of [[OUP]]-based patches and was termed Oni ni Kanabô. The modder would edit his DAT/RAW files in [[OUP]], and then release a single binary resource. This was both bandwidth- and legalese-friendly, but suffered from one major limitation: the indexation of DAT resources and the offsets of RAW data vary a lot across the available versions of Oni. Thus, resources exported with OUP were not truly standalone or portable. Also, OUP still lacked the feature or generating or importing new resources alongside existing ones.
The advent of [[OniSplit]] marked a radical improvement. OniSplit decomposes Oni's data in truly standalone and portable modules, which can be recombined, cloned, or even generated from editable objects like (re)authored textures or meshes. The .oni modules, which only link to each other by name, can be arranged as the modder sees fit and then merged into Oni-ready level files by OniSplit, which handles duplicates, exceptions etc in a rather foolproof way.
Since the .oni files are largely independent of the user's version of Oni, a modder can distribute .oni modules which the user merges into his local installation. However, when the modules correspond to slightly modified original content (and thus fall under IP protection), an alternative is to distribute so-called "deltas": patches that check the integrity of the original module on the user's side and then upgrade it to the same state as intended by the modder.
OniSplit and "delta" patches form the core of the [[Anniversary Edition]], a project scheduled for release in summer 2008.