Talk:History of Oni modding: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(well, I bothered others on YIM in your absence, but that's not to say I don't have a growing list of other questions for you :-D)
(moving Modding Oni's first section here until this "lies" business is settled)
Line 1: Line 1:
Not as much of a pack of lies as it could have been, but still a helluva pack of lies. A good thing this isn't linked to from anywhere but Current events, but I don't know when and if I'll be able to get the story straight. Thanks a lot, I guess -_- --[[User:Geyser|geyser]] 12:43, 13 November 2008 (CET)
Not as much of a pack of lies as it could have been, but still a helluva pack of lies. A good thing this isn't linked to from anywhere but Current events, but I don't know when and if I'll be able to get the story straight. Thanks a lot, I guess -_- --[[User:Geyser|geyser]] 12:43, 13 November 2008 (CET)
:All I've done is basically embellish the first two parts and add the third part. I researched everything as much as I could and spent hours reading old OCF threads. But of course I knew there'd be ''some'' errors. I was considering adding a link to this on the Main page, but I'll hold off for now if you think this page is so dramatically erroneous. --[[User:Iritscen|iritscen]] 16:19, 13 November 2008 (CET)
:All I've done is basically embellish the first two parts and add the third part. I researched everything as much as I could and spent hours reading old OCF threads. But of course I knew there'd be ''some'' errors. I was considering adding a link to this on the Main page, but I'll hold off for now if you think this page is so dramatically erroneous. --[[User:Iritscen|iritscen]] 16:19, 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 [[BSL:preset|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 [[OBD: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.

Revision as of 17:15, 13 November 2008

Not as much of a pack of lies as it could have been, but still a helluva pack of lies. A good thing this isn't linked to from anywhere but Current events, but I don't know when and if I'll be able to get the story straight. Thanks a lot, I guess -_- --geyser 12:43, 13 November 2008 (CET)

All I've done is basically embellish the first two parts and add the third part. I researched everything as much as I could and spent hours reading old OCF threads. But of course I knew there'd be some errors. I was considering adding a link to this on the Main page, but I'll hold off for now if you think this page is so dramatically erroneous. --iritscen 16:19, 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 keywords and preset variables and 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 trigger volumes or 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 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 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.