How to contact the Team in private?

Talk about anything here.
User avatar
geyser
Posts: 20
Joined: Fri Apr 20, 2007 8:56 pm

Post by geyser »

Plugins:
Myrd didn't really make it obvious that plugins were stored separately and only loaded by the game's engine, at runtime.
(the alternative would have been that Fear & Loathing be used: by the modders, to fabricate a set of tags that they'd release instead of whole archives; by the end-users, to inject those tags into their archives locally)
(that's more or less the way we can expect to do it now)
At any rate, the plugin-handling source is something we'd gladly have a look at.
As I said, Oni uses pretty much the same system of tags as Myth. If we can add a plugin-loading module to the main engine's DLL and a plugin-writing module to "Oni Un/Packer" (our public tag-managing dev-tool), we'll be happy no end. Alternatively, we could do it that other way (injecting tags into original archives rather than loading them at runtime).

DLLs:
Our main (dis)assembler released a set of minimal DLLs for the demo, Russian and standard English versions. I'll be linking to them soon, here and on the Oni forum and wiki. Meanwhile, you may want to wipe the dust off your copy of Oni and remember how to play it :)
Apart from that, the modding so far is made of sporadic hacking and scripting. The most systematic effort so far was Oni Team Arena (a series of modular scripts, no tag modding) that emulated multiplayer, with bots. Then there were a number of more or less modular, more or less patch-friendly hacks, such as glass-breaking combos, enhanced weapons, smarter and deadlier AI, recombination or "revelation" of original content... Because of the time required by a full-scale mod integrating all the knowledge, there was only one such initiative and a half so far: a heavily modded (and somewhat buggy) Syndicate Warehouse. Not by me :)

Answering Myrd, the only alternative to DLLs on the Mac is to add Mach-O sections. Whatever they are :) We're PC folks, and while we have added a few features to Omni's port (sometimes without even disassembling it... :shock:), we (the current "we" ;) ) probably won't be able to keep the OS X port "up to date".

Dislaimer:
About myself. I'm by no means the "lead programmer" there. I hardly know how to code in C++ :) What I've been doing is monitoring/coordinating/whatever all the knowledge between the few hackers around. I've done some hacking myself, but so far it was all about pushing the envelope in terms of potential.

It's hard to make plans at this point, but if we get enough people (old and new) to work on systematic, modular upgrades, there could be something like "Oni 7th Anniversary Edition" by January 2008. The ingredients are there ;)

Lothar & Some Loser: thanks for the tips, I'll check. The reason why we still may want to contact T2 is that, dammit, the source would help a lot!
Depending on how realistic "Oni 7th Anniversary" looks, say, a month from now, it could be quite an incentive for T2 to give us the source.

Dunno... We need to have another look at what we have. And who we have (new content just won't happen without modders) :)
Eddaweaver
Posts: 1026
Joined: Mon Sep 13, 2004 6:05 am
Location: M.E.

Post by Eddaweaver »

I don't think you have any chance of being handed the source code by Take2, but good luck if they do.
User avatar
Khadrelt
Posts: 479
Joined: Tue Aug 29, 2006 2:59 pm
Location: Utah, USA
Contact:

Post by Khadrelt »

Oni is one of my favorite games in the universe (does my avatar clue you in?)! Good luck to you guys!

I'd like to help, but I know absolute jack about programming/hacking and whatever...even looking at hex editors gives me the heebie-jeebies. I've tried making a few custom Oni scripts, but I fear I didn't get very far. So I'm not sure how useful I could be.

I especially hope for Mac support - it would suck big time if Oni did get multiplayer and I couldn't use it! Even more than not being able to play Hellgate is going to suck!

Maybe I'll have to use Boot Camp after all...ugh.

Anyway, good luck on your quest geyser. Oni had great potential that was prematurely squashed. The very fact that it's still so great after being squashed is testament to that.
The cake is a lie.
User avatar
TarousZars
Site Admin
Posts: 565
Joined: Wed Mar 31, 2004 9:15 pm
Location: Utah, USA
Contact:

Post by TarousZars »

I've written a few applications that can read and alter myth tags. In the old days people used hex editors to figure everything out. I did a decent amount of hex hacking, but the vengeance source code really helped me figure out how the tags in the plugins were setup. Maybe it can help you see how myth reads plugins.
User avatar
geyser
Posts: 20
Joined: Fri Apr 20, 2007 8:56 pm

Post by geyser »

Heh. I'm still confused about the amount of source you guys had. Why did anyone have to hex-hack anything if you had the whole source all along?

As for Vengeance: we had a look at the source a short while ago, once our tag structure was long figured out.
There is the very same "template manager" in Oni, which allowed us to check on a few of our own tags.

Still, what would help us most to see how Myth reads plugins is obviously the source for the part of Myth that reads plugins :)
Vengeance (and the few other "Source" things on the Tain) don't seem to be it (well, I wouldn't expect the source to be public).

Anyway, plugins are not an immediate priority. OmniPatch will do.
Same for Take2: no longer considered for immediate contact.
User avatar
TarousZars
Site Admin
Posts: 565
Joined: Wed Mar 31, 2004 9:15 pm
Location: Utah, USA
Contact:

Post by TarousZars »

Only a few people have access to the source code. So hexing was the only way to figure out tag structure.
Myrd
Site Admin
Posts: 4031
Joined: Fri Mar 19, 2004 10:17 pm

Post by Myrd »

geyser wrote:Still, what would help us most to see how Myth reads plugins is obviously the source for the part of Myth that reads plugins :)
Vengeance (and the few other "Source" things on the Tain) don't seem to be it (well, I wouldn't expect the source to be public).
Actually, Vengeance does read plugins. It's exactly what it does.

Or, more generally, Vengeance reads 'monolithic tag files', which include the foundation files and plugin and patch files. They're all the same (maybe a few bytes different in the header to indicate the type of file, but that's it).

What you're interested in, is combining the tags loaded from a plugin (which you can load using Vengeance-code) into the database of tags that Oni has already loaded from its foundation files. And modifying the lookup algorithm to take shadowing into account (that is, a tag is 'shadowed' if one with the same four-letter code is loaded from a plugin to replaced one that exists in the foundation files (or a previously-loaded plugin).

If they started with the Myth file code, it might already take shadowing & such into account, you just have to figure out how to add new tags loaded from plugins to the existing data structures that Oni uses.
User avatar
geyser
Posts: 20
Joined: Fri Apr 20, 2007 8:56 pm

Post by geyser »

Only a few people have access to the source code. So hexing was the only way to figure out tag structure.
I see... Only (still confused) in what sense did F&L make it easy to create plugins, then? :(
Actually, Vengeance does read plugins. It's exactly what it does.
Indeed. Had another look at it today: tags.cpp, tags.h and tagsprivate.h
The file- and tag-headers look quite different from those in Oni, so teaching Oni how to load plugins "à la Myth" will probably be painful.
There is a thing in Oni close to "shadowing" and we might use it to some extent, but probably in a way unrelated to Myth's counterpart.
Apart from that, the most promising direction is to recursively patch the resources with OUP (replace/remove/add/cross-link/whatever). It's closest to what we've been doing manually so far, and we "only" need to make it automated and user-friendly :)
You're welcome to toy around with OUP (it has an svn rep and a homepage on the wiki). It's in Delphi though.
As for "using" OUP, our home-made templates for tag definitions (so-called "struct defs") are currently nowhere near in-sync with the nearly complete documentation on the wiki.
Those that are up-to-date make the corresponding resource types quite easy to edit (except the more massive stuff like meshes, animations, grids, etc).
(credit where credit is due, we owe OUP to Alloc: Delphi guru, Linux freak and oni2.net hoster :D )

With the DLL done, we're ready to upload a "DemOni" bundle. Tomorrow(TM) :)
vinylrake
Posts: 3591
Joined: Wed Apr 07, 2004 12:52 pm
Location: here
Contact:

Post by vinylrake »

geyser wrote:I see... Only (still confused) in what sense did F&L make it easy to create plugins, then? :(
Fear and Loathing are the user friendly tag translaters. They convert hex values into text strings like 'Dwarf', 'Pine Tree', etc.


Say you had an existing Myth map, and you want to change the dwarf unit to have some nifty new skill. Before Fear you had to make a copy of the tag file that contained the dorf tags (and everything else under the sun) then open it with a hex editor and try to figure out which set of 4Byte codes (hundreds or thousands of them in the tag file) correspond to the "Dwarf" unit, then you had to somehow figure out which of those Bytes controlled the Dwarf's 'abilities', attacks, etc and figure out what new hex values would give you the effect you wanted. This is like trying to a find a needle in a black hole.

With Fear you can open a copy of the map, then open up the 'Unit' tags, click on the Dwarf and then change his attacks, strength, spells, or change him to a completely different unit - pretty much whatever you want to do from easy to read pop-up selection lists. Fear lets you edit just about EVERYTHING related to maps/plugins - scenery objects, units, monsters, scenery, physics, sounds, etc.

When you are done tweaking you just choose the menu option "build plugin" and you are done.

Loathing gives you an easy way of combining the different kinds of graphics files you need for a map and an easy way of changing elevation, identifying which parts of the map are passable by foot, or flying (simplification), which parts of a lake are deep and which are shallow, and it lets you precisely place units, monsters, scenery 3D models, sounds onto a map. It also has a builtin script editor for creating scripts for solo maps.
Lots of Myth stuff at http://mythgraveyard.org.
Sometimes I put hard to find stuff in my my Udogs folder.
User avatar
AblitERateOR
Posts: 165
Joined: Sat Jul 01, 2006 8:30 pm
Location: Auckland, New Zealand

Post by AblitERateOR »

geyser wrote:Heh. I'm still confused about the amount of source you guys had. Why did anyone have to hex-hack anything if you had the whole source all along?
Hexing was mainly used for editing Myth TFL tags. Fear and Loathing were released along with Myth II. The aqcuisition of the source code came long after that
Mac OSX 1.4.9
Intel 1.83 Dual Core iMac
1GB RAM
User avatar
geyser
Posts: 20
Joined: Fri Apr 20, 2007 8:56 pm

Post by geyser »

Hexing was mainly used for editing Myth TFL tags. Fear and Loathing were released along with Myth II. The aqcuisition of the source code came long after that
That explains a lot.
Thanks for the overview of F&L, too.
_______________
DemOni is here! (well, actually HERE...)
OK, this would be the first official release by the oni2.net team.

DemOni. Technically, it's yet another download link for Oni's demo. No retail-only content is included.
However, we included Chapter 2, which was available in the first demo (later replaced by Chapter 4).
We also included a basic version of our "Daodan" thingie. It's a DLL that Oni.exe loads at startup.
The DLL then patches the EXE at runtime, fixing bugs, unlocking features, adding new stuff...
The nice thing is: all the demo content is thus distributed in its original state. No patches.
Major features: fixed Blam at startup; cheats; Developer Mode; DirectInput controls.

Installation is easy as in "piece of cake".
1) Download demoni.exe (self-extracting ZIP, 86.8 MB) somewhere (for example, to C:\Games)
You now have (for example) C:\Games\demoni.exe on your computer.
2) "Run" it. You will be prompted for a folder to extract to: by default, that's the folder you downloaded to (for example, C:\Games)
If you extract to C:\Games, you'll then find DemOni in C:\Games\DemOni. Run Oni.exe or windowed.bat to play.

Read NIKANABO.TXT for a vague parody of documentation.
Enjoy. Get your friends (and enemies) to download this thing :)

Updates and additions (patched mods, Oni Un/Packer) will be available separately.
(given the size of the download, we included only the more or less definitive stuff)
Post Reply