History of Oni modding: Difference between revisions

m
link fixes
(→‎Engine patching: update for Intel beta)
m (link fixes)
Line 1: Line 1:
:''This article is a historical perspective on Oni modding; for an introduction to how to actually mod Oni, see [[Modding Oni|here]]. To download mods, you can start [[:Category:Modding projects|here]].''
:''This article is a historical perspective on Oni modding; for an introduction to how to actually mod Oni, see [[Modding Oni|here]]. To download mods, you can start [[AE|here]].''


As has been documented on the page about [[Oni]]'s overall development, time ran out for Bungie West to do everything they wanted with this very ambitious game.  Just as some features had to be omitted, the promise of modding support
As has been documented on the page about [[Oni]]'s overall development, time ran out for Bungie West to do everything they wanted with this very ambitious game.  Just as some features had to be omitted, the promise of modding support
Line 44: Line 44:
This ultimate form of modding becomes necessary for modders who want to do things the game's code does not currently allow, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the PC Oni executable directly, but a revolution in this type of modding occurred in 2006 when Developer Mode was finally discovered in retail Oni's code, and a means for unlocking it was needed. The most foolproof method of altering the engine turned out to be replacing a library that Oni loads at runtime. Now known as the [[Daodan DLL]], this library-as-patch can alter many aspects of Oni's behavior.  This allows the fixing of bugs (some of which result from new computers running a {{age|2001|1|28}} year old game), as well as the adding of new features. (All changes made by Daodan are documented [[AE:EXE|here]].)
This ultimate form of modding becomes necessary for modders who want to do things the game's code does not currently allow, as well as to fix bugs. Bug fixes were the earliest notable achievement in engine patching, originally performed by a patching application that altered the PC Oni executable directly, but a revolution in this type of modding occurred in 2006 when Developer Mode was finally discovered in retail Oni's code, and a means for unlocking it was needed. The most foolproof method of altering the engine turned out to be replacing a library that Oni loads at runtime. Now known as the [[Daodan DLL]], this library-as-patch can alter many aspects of Oni's behavior.  This allows the fixing of bugs (some of which result from new computers running a {{age|2001|1|28}} year old game), as well as the adding of new features. (All changes made by Daodan are documented [[AE:EXE|here]].)
    
    
Not long after Daodan DLL was released for Windows, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Unlike Windows, the Omni Group port to OS X did not seem to have any libraries that could be exploited for runtime patching, so the changes were simply made with a hex editor, directly modifying the executable. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta|before release]] were still present in the code, and the ones that were needed to allow Macs to run (almost) all scripts written for the PC version were "unlocked" by [[User:EdT|EdT]] using hex edits. Certain changes made by the Daodan DLL does for the Windows version were also carried over in [[AE:OMNI|hex-edit form]]. Later, these changes were made in source for Feral Interactive's Mac Intel port.
Not long after Daodan DLL was released for Windows, it was discovered that the Mac versions of Oni still had Dev Mode in them, too. Unlike Windows, the Omni Group port to OS X did not seem to have any libraries that could be exploited for runtime patching, so the changes were simply made with a hex editor, directly modifying the executable. In the fall of 2008, it was discovered that numerous BSL functions and variables that were thought to be removed from Oni for the Mac [[Mac beta|before release]] were still present in the code, and the ones that were needed to allow Macs to run (almost) all scripts written for the PC version were "unlocked" by [[User:EdT|EdT]] using hex edits. Certain changes made by the Daodan DLL does for the Windows version were also carried over in [[AE:OMNI|hex-edit form]]. Later, these changes were made in source for Feral Interactive's [[AE:FERAL|Mac Intel port]].


One of the most visible changes to the game that the Daodan DLL (and equivalent hex edits on the Mac side) made possible came about in July '07, when an error in Oni's AI routines was corrected, allowing the AI to dodge incoming fire. Fans had originally expected to see at least basic dodging abilities in the AI, so when Oni was released, they were surprised to see the AI usually run blindly at Konoko while being shot at. With the community's patch in place, previously unused code is now enabled, allowing the AI to intelligently take cover from gunfire.
One of the most visible changes to the game that the Daodan DLL (and equivalent hex edits on the Mac side) made possible came about in July '07, when an error in Oni's AI routines was corrected, allowing the AI to dodge incoming fire. Fans had originally expected to see at least basic dodging abilities in the AI, so when Oni was released, they were surprised to see the AI usually run blindly at Konoko while being shot at. With the community's patch in place, previously unused code is now enabled, allowing the AI to intelligently take cover from gunfire.