Oni Central Forum

A forum for the Oni community

You are not logged in.

#1 30/4/08 13:09

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Modular Mods

It's been a while since I started a thread.  I am still in crunch time at work and in life in general, but I wanted to get this thought out before I forget.  If anyone agrees with it, the idea can be developed over time.

I think geyser was planning to offer optional features when installing the Edition.  This would presumably be checkboxes or arguments on the command line that tell the big_deal.sh, etc. scripts which modded files to install.  I'd like to propose something a little broader than that.

I propose that we have a universal "mod packaging system".  This is nothing fancy.  It could be as simple as adopting the use of the x3delta system that geyser already has in place in the Edition package.  Right now the x3delta app is called by the installer scripts in a hard-coded way -- the names of the files that x3delta is supposed to change are hard-coded.  My proposal is just that we make that process option-based and package-based, like so:

First, we make the installation GUI-based.  I'm sure that would be easy for someone like geyser or another programmer-type to do something simple for Windows, and it's pretty easy for Ed and I to do a Mac version in AppleScript.

Next, each mod (for instance, the always-dash mod that's already part of the Edition, or the breakable glass mod that's not) gets a folder, in which are modded .oni files and/or a bit of scripting code.

Then, each mod's folder has a text file inside that identifies it, like OMMalways_dash.txt (OMM = Oni Modular Mod).  It looks something like this:

Oni Modular Mod ID file
Name: Always Dash
Description: Makes all characters dash instead of run.
Level: any
Version: 0.9
Type: C
Code: copydash.bat
Resources:

Type C is Code only (meaning "just run the file with the name on the next line"), Type R is Resources only ("just copy the .oni files to the levelX_Final folder which are named on the Resources line"), and type RC is Resources and Code, meaning "there's a script to run that will install the resources, the names of which are listed next".  The above mod needs no resources, it only copies Konoko's dash behavior over the AI characters' (could be wrong here, but let's say I'm right for the sake of this example).

The GUI Installer looks at the mod folders in its directory (could be edition/install) and opens each OMM file.  It presents the option of installing a mod that's not installed already (showing the mod's name, description, version number, and intended level for use, if any), updating a mod if the version number in its OMM file is higher now, or removing the mod if it's already installed.  It checks that each package is complete by looking for the code and resource files named in the OMM file.  It keeps backups of the modded .oni files from the levelX_Final folder that it can restore when the user wants to uninstall the mod.  Finally, it allows the user to choose which level to apply which mod to (with the option of making it a global mod by going to level0_Final).

The Edition will have its own "official" set of mod packages in their own folders, but the Installer allows the user to check boxes for each mod package to install, so some people could say, "Yes, install the breakable glass, but don't install Loser's modded TRAMS" (no offense Loser, just an example; I like your TRAMs :-).

When you get down to it, this is a pretty simple task for a programmer, so I think it's well worth the time.  And since I doubt that the "final" release of the Edition this August will be the final one (I'm sure we'll find at least one bug, it's how these things go), this method would also allow geyser to keep people in line when they install an older copy of the Edition and don't know what version is installed.  Any Edition released with the OMM protocol above would allow the Installer to tell the user right up front, "You've got the core Edition v1.0 installed and Loser's TRAMs v2.0", and troubleshooting would be a snap.

Whaddya think, sirs?


byproducts are fine, but where's the beef?

Offline

#2 30/4/08 13:22

s10k
Member
From: Portugal
Registered: 14/1/07
Website

Re: Modular Mods

I like the idea very much!

It will be great if we could choose wich mods edition should install.

Last edited by s10k (30/4/08 13:23)

Offline

#3 30/4/08 13:32

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Modular Mods

For the visually-oriented (fear my formidable drawing skills in Paint):

OMM.jpg

I forgot to put in Remove buttons, so let's say that if you hold down Alt or Option, the Install/Update button turns into a Remove button.  Also, it only tells you what version it can install.  The currently installed version number should probably be next to the checked checkboxes.  Notice that the Edition Core can't be updated in this example because it's still at 1.0 based on what the Installer is seeing in the mod package's folder.  The Always Dash mod *can* be updated.

Last edited by Iritscen (23/7/17 9:42)


byproducts are fine, but where's the beef?

Offline

#4 30/4/08 16:39

Gumby
Member
From: Seattle, WA, USA
Registered: 30/8/07

Re: Modular Mods

You know, you can get stirght lines by holding down "Shift" ;D

A good idea though.


Iritscen: roll
Iritscen: it's amazing this program even works
Gumby: i know
Iritscen: and that statement applies to my code, not just yours

Offline

#5 1/5/08 8:45

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Modular Mods

You know, you can get stirght lines by holding down "Shift"

Yeah, but then I couldn't get that nice scribbled-on-the-back-of-a-napkin feel to it. :-)

One last addition: the OMM file should have the version number of the OMM protocol in it, so the first line would say something like:

Oni Modular Mod ID file v1.0

(ignore the line that says Code, I wish I could get rid of that)

That way if we think of a new way to package mods, we can build it into a new version of the protocol, ("v1.1, v2.0"...) and the Installer can tell how it's supposed to read the file.  This is largely a formality, since the protocol might never change, but it's good to plan ahead.

---------------------------------
If we want to make this happen, we just need three things, and we already have the last one:

A. geyser's acceptance of the idea; if he doesn't agree to package the Edition with an "OMM____.txt" file so the Installer can read it as "OMM" (or whatever we call it), then there's less of a point to doing this; others could still release their mods this way, but if we want to make them play well together, it's pretty important to know what the Edition has installed in Oni's folders already; this requires no changes to the way the Edition actually installs, by the way.
B. Someone to program a simple Windows-based GUI Installer such as I outlined above.  The only tricky part that I foresee is managing backups of the .oni files when applying/removing mods, but we can work that out.
C. Someone to program the Mac version of the Installer -- heck, between Ed and I, this one's a fait accompli (that means it's as good as done).

If someone steps forward to do B, then we can write the actual program right in this thread, in steps of pseudo-code (plain English), so that the Windows version and Mac version start from the same exact foundation.  Also, there's no rush to do this right now -- I'd say getting it out the door by August is fine, so even if you think you'll probably have the time to work on the Windows version in the next few months, that's good enough.  We just need to start planning now.


byproducts are fine, but where's the beef?

Offline

#6 1/5/08 9:09

Diaboy
Member
From: Edinburgh, Scotland
Registered: 1/5/08

Re: Modular Mods

So it's essentially a Mod manager? (for the ignorant, like me tongue)

Offline

#7 1/5/08 10:05

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Modular Mods

That's the idea.  Still in the earliest planning stages, as you can see.

Because the Edition breaks the levels' binary data files into individual files for each piece of data, it's a lot easier to mod, but I also feel like things can get out of control.  How do you remember which sets of .oni files you replaced with others, etc., and whether they were the last version of if there's a newer version of the mod (that happens a lot).


byproducts are fine, but where's the beef?

Offline

#8 1/5/08 10:46

Diaboy
Member
From: Edinburgh, Scotland
Registered: 1/5/08

Re: Modular Mods

Yeah, it's a very good idea; I always used to get confused when I modded EV Nova and T.A and such, because I always ended up forgetting what was there and what wasn't!

Edit

And haha, I have to commend your "back-of-a-napkin" paint skills =P

Last edited by Diaboy (1/5/08 10:47)

Offline

#9 1/5/08 11:20

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Modular Mods

EV Nova... I don't suppose you're a Mac user, are you?  I see it was released for Windows too, but we were really big on EV on the Mac side, so I have to ask.


byproducts are fine, but where's the beef?

Offline

#10 2/5/08 8:15

Diaboy
Member
From: Edinburgh, Scotland
Registered: 1/5/08

Re: Modular Mods

Macs FTW!

I'm afraid to say that most of the mods and things I did for EV Nova and TA were on a Windows computer; I never found the right tools for the Mac version. But, I mainly use the Mac OS. My new copy on Oni (which should arrive soon) is for Mac.

Last edited by Diaboy (2/5/08 8:17)

Offline

#11 2/5/08 8:56

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Modular Mods

Cool.  Mac users are about as rare as Scots on this board smile

AFAIK, it's just me, EdT, and Guido (who's away).  And you now.  So if you have any Mac questions, you'll know who to turn to (actually, you should probably still post questions publicly in the Troubleshooting forum so any other Mac-using lurkers can see the Q&A that goes on).

I'm glad to see that you have an history in the area of modding.  There's no pressure for you to do anything, and certainly not before you've given the game a good runthrough or two and played others' mods and the Edition.  But I'll just say this: some of these guys (and others who aren't on the forum) have spent years reverse-engineering the binary data for Oni's levels, and only in the last few months is the real modding potential of Oni becoming available thanks to their work.  We only recently gained the ability to import new characters/weapons, for instance.  In fact, they're still working the kinks out.  But there's many different ways, big and small, to contribute, if and when you're interested.  It's a wide open field.


byproducts are fine, but where's the beef?

Offline

#12 13/6/08 19:01

Tosh
Member
From: Oregon, USA
Registered: 14/1/07
Website

Re: Modular Mods

Not to skip over reading this whole thread or anything, but I made a mod manager a while ago.
I was planning to get in contact with Neo about making it partially a front-end for OniSplit but he didn't accept my offer for Yahoo buddies and I got lazy. tongue
Anyways here's the current version of it if you wanna fool around with it..
I'm planning to convert it to wxWidgets sometime to make it more easily portable to Mac.

Original thread: http://oni.bungie.org/community/forum/v … .php?id=87
Current download (0.9b): http://logicplace.com/pc/games/oni/modman.php
This is a beta because I dunno if everything is working flawlessly or not, it's been a while since I've touched it, but I think everything should work okay, the only thing that was really WIP is the bin exporter which will likely be replaced with or integrated into a front-end set-up for OniSplit, I dunno yet, I'll have to mail Neo and see if he's up for it.

PS: The intention of this was for original Oni, I dunno if it works with the anniversary edition or not.

Last edited by Tosh (13/6/08 19:05)

Offline

#13 13/6/08 20:59

EdT
Moderator
From: Los Angeles, CA
Registered: 13/1/07
Website

Re: Modular Mods

Tosh: I have a GUI for OniSplit but its for the Mac, all it does is run shell scripts for the commands of OniSplit.  Think of it as a GUI for the .bat files on the PC side. http://wiki.oni2.net/AE_talk:Anniversary_Edition_Tools

I'm interested to see how your wxWidgets version turns out.

Offline

#14 14/6/08 18:41

Tosh
Member
From: Oregon, USA
Registered: 14/1/07
Website

Re: Modular Mods

EdT wrote:

Tosh: I have a GUI for OniSplit but its for the Mac, all it does is run shell scripts for the commands of OniSplit.  Think of it as a GUI for the .bat files on the PC side. http://wiki.oni2.net/AE_talk:Anniversary_Edition_Tools

I'm interested to see how your wxWidgets version turns out.

Good to hear there is one for Mac already.
Also that's what a front-end is, just fyi.

Also just to clarify cause I don't really wanna lurk all the boards but .oni files don't currently install scripts right? That's the point of this thread? >.>;
If so I'll try to e-mail Neo and see what he says. But it should be an easy addition to OMM, would just have to make a section in the .pom format for .oni files and send that to OniSplit. Though I kinda wanna add a check for updates feature  and I don't really wanna work with OniSplit if it's still in .net so I'd wanna convert it to C++ and I have some fairly good export binary formats that if he doesn't currently have anything for that file I'd talk with him about adding mine. :x

Offline

Board footer

Powered by FluxBB