18,700
edits
(starting a rewrite) |
(more rewriting) |
||
Line 8: | Line 8: | ||
==Introduction to the engine== | ==Introduction to the engine== | ||
Oni runs on an engine that was custom-written for the game. At the time development started, Bungie did not yet have a true 3D engine, and it appears that the lead coders intended their work to be reused in future Bungie titles. In the course of events, this never happened. However, as a result of this advance planning, the Oni engine (which does not have a name ''per se'') is built in an industrial, abstracted way in two major layers: the BungieFrameWork (BFW), which contains general code for | Oni runs on an engine that was custom-written for the game. At the time development started, Bungie did not yet have a true 3D engine, and it appears that the lead coders intended their work to be reused in future Bungie titles. In the course of events, this never happened. However, as a result of this advance planning, the Oni engine (which does not have a name ''per se'') is built in an industrial, abstracted way in two major layers: (1) the BungieFrameWork (BFW), which contains general code for things like 3D graphics and scripting, and (2) the code for Oni itself, which adds stuff like the AI and the combat system. | ||
Due the non-existence of modding tools at the time of Oni’s release, fans had to tame the wild jungle of raw game data and create modding tools on their own. It took over seven years to ''unlock'' most possibilities –- and the work is still ongoing. Read the full story '''[[History_of_Oni_modding|HERE]]'''. The short version is that we can now mod almost all types of data effectively, meaning we can create entirely new levels with new characters, new scripts, new voice acting, and new music. | Due the non-existence of modding tools at the time of Oni’s release, fans had to tame the wild jungle of raw game data and create modding tools on their own. It took over seven years to ''unlock'' most possibilities –- and the work is still ongoing. Read the full story '''[[History_of_Oni_modding|HERE]]'''. The short version is that we can now mod almost all types of data effectively, meaning we can create entirely new levels with new characters, new scripts, new voice acting, and new music. Now we're turning our focus to making tools that are user-friendly so artists can work unimpeded. | ||
It may sound intimidating at first, but many of the data types (often called "file types" on this wiki, and "tags" in many other game modding communities) fold into each other, such that you only need to know a few file types well, and the rest are created for you. Depending on the kind of modding you want to do, you might be able to start modding with only a little knowledge of the engine. | Altogether, we have identified 124 types of resources in the game data, however only about 88 (and a half) are used. It may sound intimidating at first, but many of the data types (often called "file types" on this wiki, and "tags" in many other game modding communities) fold into each other, such that you only need to know a few file types well, and the rest are created for you. Depending on the kind of modding you want to do, you might be able to start modding with only a little knowledge of the engine. | ||
==Kinds of modding== | ==Kinds of modding== | ||
===Scripting=== | ===Scripting=== | ||
The easiest kind of modding is scripting. Scripts are written in | The easiest kind of modding is scripting. Scripts are written in the BungieFrameWork Scripting Language and stored as plain-text files with the suffix .bsl, so we often refer to scripts as "BSL mods". Scripts take a lifeless level and spawn characters in it (the AI-driven NPCs and Konoko), give the level a logical flow of events, make the AIs play certain roles, drive cutscenes, and alter the level's appearance. | ||
Scripting is the easiest way to mod because you can work with existing game data, and only have to modify BSL files using a text editor. It's quick and easy to see the results of your work (just reload the level), and you have lots of accessible examples to learn from (14 levels' worth!). That being said, scripts constantly reference game resources in sometimes technical ways, so you will have to learn how certain data types work in order to script effectively. | |||
Go [[BSL|HERE]] to start learning about scripting. | |||
===Binary modding=== | |||
This is where those 88 data types come into play that we mentioned earlier. Broadly speaking, the kinds of data we're talking about are: '''level geometry''' (architecture, triggers, and furniture), '''characters''' (class data, models), '''text''' (diary, objectives, subtitles, etc.), '''music''', '''voice-overs''', and '''sound effects'''. However, new levels do not require all this data to be made from scratch. You might decide to re-use a level or some of its resources, or make a new level populated with existing characters, etc. | |||
The game data is called "binary data" because it's made of raw 0s and 1s until our tools make it into something more modder-friendly. The basic process of modding game data involves breaking the level data (a .dat file supplemented by a .raw file and also a .sep file on the Mac) into its component resources (.oni files), then converting those resources into something editable. What that editable format is depends on the kind of data you're editing. It might be plain text, XML, PNG, DAE, WAV, etc. | |||
Thus, besides our community modding tools, the program(s) you need in order to mod will vary according to your modding task; you might need nothing more than a text editor, you might need a free bitmap editor, or you might need a full 3D modeling package. Thankfully, since Oni is graphically primitive, you won't need to know as much about modeling as with a modern game, and there are free modelers available (but not as good as the commercial ones). | |||
In any case, make sure you download the [[Anniversary Edition]], which provides a modding framework and installs modding tools. Go [[OBD|HERE]] to start learning about the binary data or continue reading to learn a little more about specific types of binary modding. | |||
===Characters=== | |||
Characters in Oni are built with a simple 19-part skeleton. Talk about ONCCs and related data here. Mention Mod Tool, Blender, Gimp, Paint.NET. | |||
===Animations=== | |||
{| border=0 cellspacing=20 cellpadding=0 style="float:right" | |||
| [http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XSI_modding/RAICOMthrow_fw_kick.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/XSI_modding/RAICOMthrow_fw_kick_TN.png] | |||
''An "appetizer screenshot".'' | |||
|} | |||
Talk about OBANs and TRAMs here. Mention Mod Tool and Blender. | |||
' | ===Levels=== | ||
Script commands are useless when their addressed resources don't exist. Talk about AKEVs and related data here. Mention Mod Tool, SketchUp, and Blender. | |||
==Tools, documentations and tutorials== | ==Tools, documentations and tutorials== | ||
Line 81: | Line 81: | ||
====HEX==== | ====HEX==== | ||
* any hex | * any hex editor | ||
* tool download: [http://www.mods.oni2.net/node/67 OniUnPacker] | * tool download: [http://www.mods.oni2.net/node/67 OniUnPacker] | ||
** tutorial: tweak [[OBD_talk:TRAM|animation]] | ** tutorial: tweak [[OBD_talk:TRAM|animation]] | ||
Line 98: | Line 98: | ||
==Need some inspiration?== | ==Need some inspiration?== | ||
Play some existing mods to get ideas ( | Play some existing mods to get ideas (which you can install with the [[AE]]), or look at the pages below. | ||
* [[Modding_brainstorms|Modding Brainstorms]] | * [[Modding_brainstorms|Modding Brainstorms]] | ||
* [[Review criticisms]] | * [[Review criticisms]] |