Introduction to modding: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (heading fixes and limiting TOC to top heading level)
m (→‎Text: correction, it's not at the top anymore)
 
(45 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{finish}}
This page provides an introduction to modding that does not assume that you have prior modding experience or knowledge of the Oni engine. Links to more technical parts of the wiki are interspersed below or can be accessed directly from the wiki's Main Page.
{{TOClimit}}


<div class="toclimit-2">
==What is modding?==
__TOC__
[[Image:No easy button.png|150px|right]]
</div>
Modifying, or "modding", a game is generally easier than creating one, because you might only be changing some of the game's existing elements, or creating a limited amount of new data. Nevertheless, modding can be an intimidating field to get into. Our community does not have the polished modding tools of the big engines like Unreal (but we're getting better). You should have a [[wikt:DIY|DIY]] personality and a high tolerance for technical details. We do not yet have any modding solutions with a big red button that says "easy".


==Introduction to modding==
Modding your first game is always the hardest, but after that you can more easily pick up new ones. If you take things one step at a time, you can learn a lot from Oni about how to make games in general; in fact, many game developers started out as modders. Additionally, there are lots of different ways for someone to mod; whether your interest is in coding, art, sound, 3D modeling, or general game design, there's something for you to do, and collaborating with others to divide the work according to your abilities can lead to a memorable, rewarding creative experience.
[[Image:No_easy_button.png|150px|right]]
Creating or modding a game is like writing a theater play: in both cases, you have stages, actors, scripts, and music. A level is built so that when the player performs certain actions or reaches certain locations, further events are set in motion. The player is told what to do through various textual instructions, voice acting, and cinematics (cutscenes).


Modding can be an intimidating field to get into, but taking things one step at a time, you can learn a lot about how to make games. Like learning a second language, modding your first game is always the hardest, and then you learn the common points that games share and you can more easily pick up new ones. Additionally, there are lots of different ways for someone to mod; whether your talent is art, sound, modeling or design in general, there's something for you to do, and collaborating with others to divide the work according to your abilities can lead to a memorable, rewarding creative experience. Because of the DIY nature of our work here, it's recommended that you have an interest in, or at least a high tolerance for, technical details. We do not yet have any modding solutions with a big red button that says "easy".
* Go to the {{OMD}} to see what kinds of mods are available, or;
* Install the [[Anniversary Edition]] to try out the mods, or;
* Continue reading to get an overview of the game engine.


==Introduction to the engine==
==What engine does Oni run on?==
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.
Oni runs on a custom engine that could be built for Windows, the Macintosh and the PlayStation 2 (console games are not easily modded, so we don't work with the PS2 version of Oni). The engine consists of various subsystems, some of which have colorful animé-related names like [[wp:Akira|Akira]] (environment), [[wp:Motoko Kusanagi|Motoko]] (graphics) and [[wp:My Neighbor Totoro|Totoro]] (animation).


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.
Unfortunately, the game was rushed to completion during a change of ownership, and it was not possible for the developers to release any tools or information to aid the fans in modding. Thus, fans had to explore the wild jungle of the raw game data and create modding tools through reverse-engineering. It took over seven years to unlock most of the game's secrets, but we can now mod almost all types of data effectively, allowing us to create entirely new levels and characters.


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.
Altogether, we have identified over 100 types of resources (often called "file types" on this wiki, and "tags" in many other game modding communities) in the game data, however we only directly edit about half of these. It may sound intimidating at first, but depending on the kind of modding you want to do, you might be able to start working with only a little knowledge of the engine.


==Kinds of modding==
* Go to [[Oni]] for the full story on Oni's development, or;
===Scripting===
* Go to [[History of Oni modding]] to read about the community's accomplishments up until now, or;
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.
* Continue reading to learn about the game data files.


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.
==How is the game data structured?==
A game can be compared to a theater play: in both cases, you have <u>stages</u>, <u>scripts</u>, <u>actors</u>, and <u>music</u>. A level is built so that when the player performs certain actions or reaches certain locations on the '''stage''', further events are set in motion according to the '''script'''. The player interacts with [[wp:Artificial intelligence in video games|AI]] '''actors''' along the way. '''Music''' will often play dynamically behind all this, changing along with the flow of events.


Go [[BSL|HERE]] to start learning about scripting.
In Oni's case, the stages, actors and music (and other sounds) are all packed together into files inside GameDataFolder/ that end in ".dat", ".raw", and, on Macs, ".sep". The level0_Final files provide resources for all levels, and when you load a Chapter, an additional set of data files provide the level-specific resources for that Chapter (e.g. level12_Final for Chapter 10). The scripts are stored in separate plain-text files ending in ".bsl" inside GameDataFolder/IGMD/. The player's progress is stored in persist.dat next to the Oni application.


===Binary modding===
* Go to [[Oni (folder)]] for information on each file, or;
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.
* Go to [[Game data terminology]] to learn the precise terms for Oni's data, or;
* Continue reading to learn the general process of modding.


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.
==What is the workflow for modding?==
The general order of events in creating a mod is (1) unpacking the resources you wish to edit, (2) editing them, and (3) re-packing them as Oni level data. You can rely on the Anniversary Edition Installer to re-pack your data; you simply create the mod package in the format that the AEI requires. If you are only creating a script mod, then you don't need to unpack any data, but you'll still need to know how to place your script(s) in a mod package.


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).
===Data unpacking===
The game data cannot be edited easily until our tools convert it into something more modder-friendly. You will usually start by using OniSplit to break level data files (those .dat/.raw(/.sep) files) into their component resources, which are saved as .oni files. Then you will need to convert those resources into something editable. The editable format you arrive at will depend on the kind of data you're editing. It might be plain text, XML, PNG, Collada, WAV, etc. The editors which you'll use on this data will be third-party programs suited for each file format.


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.
===Third-party tools===
If you are scripting, then you might need nothing more than a text editor. For editing textures, you might only need a free bitmap editor. For creating levels or characters, you'll need a full 3D modeling package. Since Oni doesn't have modern 3D graphics, you won't need to know as much about modeling/texturing as you would with a modern game, and there are free modelers available. Our recommendations for tools will be found under the subsections of "Modding resources" below.


====Characters====
===Community tools===
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.
Besides OniSplit, two of the key fan-made tools are Vago and XmlTools. Vago is a GUI for OniSplit which is much more user-friendly than using OniSplit on the command line. [[XmlTools]] is a technical tool that few modders need to use, but it allows the creation of patches (partial changes to a single resource which can stack on top of each other). Both tools can be installed from within the AE Installer. Once installed, they are found in AE/Tools/ alongside OniSplit.


====Animations====
===Mod creation===
{| border=0 cellspacing=20 cellpadding=0 style="float:right"
To see how mods normally look and how they're distributed and installed, you should download the [[Anniversary Edition]] and install some mods. You can then look at the packages that have been downloaded to AE/AEInstaller/packages/.
| [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====
* Go to [[OniSplit]]'s page to learn how to unpack and reassemble the game data, or;
Script commands are useless when their addressed resources don't exist. Talk about AKEVs and related data here. Mention Mod Tool, SketchUp, and Blender.
* Go to [[Vago]]'s page to learn how to use this OniSplit GUI, or;
* Go to [[Making a mod package]] to learn how to assemble a mod, or;
* Continue reading to learn about the types of modding you can perform.


==Tools, documentations and tutorials==
==Which resources should I be modding?==
===BSL===
Oni assembles its game world from the scripts in the IGMD folder, the game data in the .dat/.raw(/.sep) files in GameDataFolder, and [[persist.dat]]. It's easy to read the BSL scripts since they're plain-text, but how do you find the resource in the game data that you want to edit? Look under "Modding resources" below for a link to the XML database, which explains the function and location of each resource type.
* introduction and database links [[BSL|HERE]]
* tutorials: [[BSL:Tutorial/Scratch]]


===Editing scripts===
The easiest kind of modding is scripting. Scripts are written in a unique language called BSL and stored as plain-text files with the suffix .bsl in sub-folders inside GameDataFolder/IGMD/. Scripts take a lifeless level and spawn characters in it, give it a logical flow of events, drive the cutscenes, make the AIs perform certain roles, and alter the level's appearance.


===OBD===
Scripting is the easiest way to mod because you can 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. That being said, scripts sometimes reference game resources in technical ways, so you will have to learn how certain data types work in order to script effectively.
====file converting in general====
* tool download: [http://www.mods.oni2.net/node/38 OniSplit]
** tool download: [http://www.mods.oni2.net/node/69 AETools - GUI for Macintosh]
** tool download: [http://www.mods.oni2.net/node/72 OniSplit GUI for Windows]
** tutorial: [[XML_basic_tutorial|basics]]


* Go to the [[BSL]] namespace to start learning about scripting, or;
* Continue reading to learn what's involved with editing binary resources.


====3D====
===Modding resources===
* tool tutorial: [[User:Iritscen/BlenderTutorial|Blender]]
Broadly speaking, Oni's resources can be broken down as: '''environments''' (architecture, triggers, furniture), '''characters''' (class data, instance lists, 3D models), '''weapons''' (ditto), '''text''' (diary pages, objectives, subtitles), and '''sound''' (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.
* tool download: {{ModTool}}
** [[Mod_Tool|more information]] about Mod Tool
** obj export requires an [http://www.si-community.com/community/viewtopic.php?f=35&t=797 addon]
* tool tutorial: [http://oni.bungie.org/community/forum/viewtopic.php?id=1229 OCF's XSI thread]
* tool download: [http://sketchup.google.com/ SketchUp]
* tutorial: [[AE:Importing_character_models|Importing character models TRBS]]
* tutorial: [[AE:Importing_weapon_models]]
* tutorial: [[SketchUp_tutorials_and_tips|SketchUp]]


* Go to the [[XML]] namespace to get a simple introduction to the types of game data and learn the (relatively) user-friendly XML modding technique, or;
* Go to the [[OBD]] namespace to learn more technical details about the game data, or;
* Continue reading to start down the path to modding specific kinds of resources.


====Animation====
====Environments====
* tool download: {{ModTool}}
Levels are usually built in [[SketchUp tutorials and tips|SketchUp]]. The open-source tool [[Blender]] can be used for levels, objects, characters and animations. Formerly we preferred to do that work in [[Mod Tool]], but the community's support for Blender has continued to improve and it is now our modeler of choice.
: You need to add some stuff to that file to make it actually work as an animation. In particular the animation type, from/to states and varient needs to be set.
: For all I know this works with animations exported from Oni and modified in Softimage. If you come up with a completly new animation it should work as long as the skeleton is similar to the one used in Oni.
: Note that the geometry that is present inside the Collada file is used to compute the "vertical extents" so it better be the same or close to the one the animation is intended for.
: The biggest problem are the attacks. While it's not difficult to add attacks to [http://oni.bungie.org/community/forum/viewtopic.php?pid=23230#p23230 the xml file], computing the necessary "extents" is not going to be easy. I guess in the end I'll have to add some command to OniSplit to do it.
: '''Edit:''' attack extents becomes automatically calculated with onisplit v0.9.55.0 and newer
* tutorial: [[AE:Authoring_custom_camera_animations]]


* Tutorial: [http://oni.bungie.org/forum/viewtopic.php?id=2087 Creating the Lair]
* Tutorial: [[Authoring custom camera animations]]


====HEX====
====Textures====
* any hex editor
Modders have their own preferred bitmap editors for changing/creating textures. On one end of the scale are expensive programs such as Photoshop, and on the other end are free editors like [https://www.gimp.org/ Gimp] and [https://www.getpaint.net/ Paint.NET].
* tool download: [http://www.mods.oni2.net/node/67 OniUnPacker]
** tutorial: tweak [[OBD_talk:TRAM|animation]]
* tutorial: [[AE:Adding_spawnable_characters|Adding spawnable characters to a level CHAR]]
* tutorial: [[Adding_character_classes|Adding character classes ONCC]]


Textures always have dimensions of "power of 2": typically 32, 64, 128 or 256 pixels on a side. Mac Oni supports a maximum of 1024x1024 textures. Windows Oni supports textures up to 512x512.


====Sound====
These textures can be static, animated, transparent or have a reflection map (usually used for armor). Splashscreens (chapter start screens), win-level and lose-level screens are actually composite images made up of smaller textures due to Oni's limitation in texture size.
* Instructions how to import sounds and links to conversion tools can be found [[OBD_talk:SNDD|HERE]].


* Tutorial: [[Modifying textures]]


====Textures====
====Characters====
* tool download: [http://www.gimp.org/ gimp]
[[Image:Female stun.jpg|right|300px]]
* tutorial: [[AE:Modifying textures|Modifying textures TXMP]]
Characters in Oni are built with a 19-part skeleton. This skeleton is the same for all humanoid characters and simply tells Oni how the individual parts with their own geometry and textures are assembled. You cannot really compare this with the modern game industry's use of the term "skeleton".
 
A character's attributes are defined by their character class file which links also to the animation list that defines their moveset. The high modularity of character data allows Oni to share many resources between characters (especially animation collections and particles).
 
* Tutorial: [http://oni.bungie.org/forum/viewtopic.php?id=2423 Adding character classes]
* Tutorial: [[Importing character models]]
* Tutorial: [[OBD talk:TRAM|Tweaking an individual animation]]
* Tutorial: [[Adding spawnable characters|Adding spawnable characters to a level]]
 
====Weapons====
* Tutorial: [[Importing weapon models]]
 
====Text====
The text-based resource types are fairly easy to edit as long as you don't get confused by the IDs which they use to link to each other. The main textual resources are the pages you can view in the [[Data Comlink]] and the consoles you read in-game. The textual resource types are listed here: [[OBD:File types/Interface#List]].


====Sound and music====
Instructions on importing sounds, and links to conversion tools, can be found [[XML:SNDD|HERE]].


==Need some inspiration?==
==Need some inspiration?==
Play some existing mods to get ideas (which you can install with the [[AE]]), or look at the pages below.
To get ideas, play some existing mods (which you can install with the [[AE]]), or look at the pages below.
* [[Modding_brainstorms|Modding Brainstorms]]
* [[Modding brainstorms]]
* [[Review criticisms]]
* [[Review criticisms]]
* [[AE:Requests]]
* [[Animation ideas]]
 


[[Category:Modding tutorials]]
[[Category:Modding tutorials]]

Latest revision as of 22:23, 21 October 2024

This page provides an introduction to modding that does not assume that you have prior modding experience or knowledge of the Oni engine. Links to more technical parts of the wiki are interspersed below or can be accessed directly from the wiki's Main Page.

What is modding?

No easy button.png

Modifying, or "modding", a game is generally easier than creating one, because you might only be changing some of the game's existing elements, or creating a limited amount of new data. Nevertheless, modding can be an intimidating field to get into. Our community does not have the polished modding tools of the big engines like Unreal (but we're getting better). You should have a DIY personality and a high tolerance for technical details. We do not yet have any modding solutions with a big red button that says "easy".

Modding your first game is always the hardest, but after that you can more easily pick up new ones. If you take things one step at a time, you can learn a lot from Oni about how to make games in general; in fact, many game developers started out as modders. Additionally, there are lots of different ways for someone to mod; whether your interest is in coding, art, sound, 3D modeling, or general game design, there's something for you to do, and collaborating with others to divide the work according to your abilities can lead to a memorable, rewarding creative experience.

  • Go to the Oni Mod Depot to see what kinds of mods are available, or;
  • Install the Anniversary Edition to try out the mods, or;
  • Continue reading to get an overview of the game engine.

What engine does Oni run on?

Oni runs on a custom engine that could be built for Windows, the Macintosh and the PlayStation 2 (console games are not easily modded, so we don't work with the PS2 version of Oni). The engine consists of various subsystems, some of which have colorful animé-related names like Akira (environment), Motoko (graphics) and Totoro (animation).

Unfortunately, the game was rushed to completion during a change of ownership, and it was not possible for the developers to release any tools or information to aid the fans in modding. Thus, fans had to explore the wild jungle of the raw game data and create modding tools through reverse-engineering. It took over seven years to unlock most of the game's secrets, but we can now mod almost all types of data effectively, allowing us to create entirely new levels and characters.

Altogether, we have identified over 100 types of resources (often called "file types" on this wiki, and "tags" in many other game modding communities) in the game data, however we only directly edit about half of these. It may sound intimidating at first, but depending on the kind of modding you want to do, you might be able to start working with only a little knowledge of the engine.

  • Go to Oni for the full story on Oni's development, or;
  • Go to History of Oni modding to read about the community's accomplishments up until now, or;
  • Continue reading to learn about the game data files.

How is the game data structured?

A game can be compared to a theater play: in both cases, you have stages, scripts, actors, and music. A level is built so that when the player performs certain actions or reaches certain locations on the stage, further events are set in motion according to the script. The player interacts with AI actors along the way. Music will often play dynamically behind all this, changing along with the flow of events.

In Oni's case, the stages, actors and music (and other sounds) are all packed together into files inside GameDataFolder/ that end in ".dat", ".raw", and, on Macs, ".sep". The level0_Final files provide resources for all levels, and when you load a Chapter, an additional set of data files provide the level-specific resources for that Chapter (e.g. level12_Final for Chapter 10). The scripts are stored in separate plain-text files ending in ".bsl" inside GameDataFolder/IGMD/. The player's progress is stored in persist.dat next to the Oni application.

  • Go to Oni (folder) for information on each file, or;
  • Go to Game data terminology to learn the precise terms for Oni's data, or;
  • Continue reading to learn the general process of modding.

What is the workflow for modding?

The general order of events in creating a mod is (1) unpacking the resources you wish to edit, (2) editing them, and (3) re-packing them as Oni level data. You can rely on the Anniversary Edition Installer to re-pack your data; you simply create the mod package in the format that the AEI requires. If you are only creating a script mod, then you don't need to unpack any data, but you'll still need to know how to place your script(s) in a mod package.

Data unpacking

The game data cannot be edited easily until our tools convert it into something more modder-friendly. You will usually start by using OniSplit to break level data files (those .dat/.raw(/.sep) files) into their component resources, which are saved as .oni files. Then you will need to convert those resources into something editable. The editable format you arrive at will depend on the kind of data you're editing. It might be plain text, XML, PNG, Collada, WAV, etc. The editors which you'll use on this data will be third-party programs suited for each file format.

Third-party tools

If you are scripting, then you might need nothing more than a text editor. For editing textures, you might only need a free bitmap editor. For creating levels or characters, you'll need a full 3D modeling package. Since Oni doesn't have modern 3D graphics, you won't need to know as much about modeling/texturing as you would with a modern game, and there are free modelers available. Our recommendations for tools will be found under the subsections of "Modding resources" below.

Community tools

Besides OniSplit, two of the key fan-made tools are Vago and XmlTools. Vago is a GUI for OniSplit which is much more user-friendly than using OniSplit on the command line. XmlTools is a technical tool that few modders need to use, but it allows the creation of patches (partial changes to a single resource which can stack on top of each other). Both tools can be installed from within the AE Installer. Once installed, they are found in AE/Tools/ alongside OniSplit.

Mod creation

To see how mods normally look and how they're distributed and installed, you should download the Anniversary Edition and install some mods. You can then look at the packages that have been downloaded to AE/AEInstaller/packages/.

  • Go to OniSplit's page to learn how to unpack and reassemble the game data, or;
  • Go to Vago's page to learn how to use this OniSplit GUI, or;
  • Go to Making a mod package to learn how to assemble a mod, or;
  • Continue reading to learn about the types of modding you can perform.

Which resources should I be modding?

Oni assembles its game world from the scripts in the IGMD folder, the game data in the .dat/.raw(/.sep) files in GameDataFolder, and persist.dat. It's easy to read the BSL scripts since they're plain-text, but how do you find the resource in the game data that you want to edit? Look under "Modding resources" below for a link to the XML database, which explains the function and location of each resource type.

Editing scripts

The easiest kind of modding is scripting. Scripts are written in a unique language called BSL and stored as plain-text files with the suffix .bsl in sub-folders inside GameDataFolder/IGMD/. Scripts take a lifeless level and spawn characters in it, give it a logical flow of events, drive the cutscenes, make the AIs perform certain roles, and alter the level's appearance.

Scripting is the easiest way to mod because you can 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. That being said, scripts sometimes reference game resources in technical ways, so you will have to learn how certain data types work in order to script effectively.

  • Go to the BSL namespace to start learning about scripting, or;
  • Continue reading to learn what's involved with editing binary resources.

Modding resources

Broadly speaking, Oni's resources can be broken down as: environments (architecture, triggers, furniture), characters (class data, instance lists, 3D models), weapons (ditto), text (diary pages, objectives, subtitles), and sound (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.

  • Go to the XML namespace to get a simple introduction to the types of game data and learn the (relatively) user-friendly XML modding technique, or;
  • Go to the OBD namespace to learn more technical details about the game data, or;
  • Continue reading to start down the path to modding specific kinds of resources.

Environments

Levels are usually built in SketchUp. The open-source tool Blender can be used for levels, objects, characters and animations. Formerly we preferred to do that work in Mod Tool, but the community's support for Blender has continued to improve and it is now our modeler of choice.

Textures

Modders have their own preferred bitmap editors for changing/creating textures. On one end of the scale are expensive programs such as Photoshop, and on the other end are free editors like Gimp and Paint.NET.

Textures always have dimensions of "power of 2": typically 32, 64, 128 or 256 pixels on a side. Mac Oni supports a maximum of 1024x1024 textures. Windows Oni supports textures up to 512x512.

These textures can be static, animated, transparent or have a reflection map (usually used for armor). Splashscreens (chapter start screens), win-level and lose-level screens are actually composite images made up of smaller textures due to Oni's limitation in texture size.

Characters

Female stun.jpg

Characters in Oni are built with a 19-part skeleton. This skeleton is the same for all humanoid characters and simply tells Oni how the individual parts with their own geometry and textures are assembled. You cannot really compare this with the modern game industry's use of the term "skeleton".

A character's attributes are defined by their character class file which links also to the animation list that defines their moveset. The high modularity of character data allows Oni to share many resources between characters (especially animation collections and particles).

Weapons

Text

The text-based resource types are fairly easy to edit as long as you don't get confused by the IDs which they use to link to each other. The main textual resources are the pages you can view in the Data Comlink and the consoles you read in-game. The textual resource types are listed here: OBD:File types/Interface#List.

Sound and music

Instructions on importing sounds, and links to conversion tools, can be found HERE.

Need some inspiration?

To get ideas, play some existing mods (which you can install with the AE), or look at the pages below.