TF on 12/2/2008 at 22:02
Damn, if only the game's .gam reader could be hacked up to overwrite the entries of the mission's normal .gam with a second "multiplayer.gam" or something which only has entries for the edited objects that are necessary for multiplayer, which should leave most of the other stuff intact.
Yandros on 13/2/2008 at 02:06
ObjTree supports importing of a gamesys via XML file. If Telliamed would just add code to export to XML and merge two XMLs, then we'd be set - you could merge any FM's gamesys with the multiplayer version of dark.gam. It could probably even be done with a batch file. But I know, that's probably a large effort.... and Telliamed's all but retired.
Guybrush Thiefwood on 13/2/2008 at 02:43
Looks like its all coming together. Keep it up!
Tos on 13/2/2008 at 23:30
Quote Posted by TF
Damn, if only the game's .gam reader could be hacked up to overwrite the entries of the mission's normal .gam with a second "multiplayer.gam" or something which only has entries for the edited objects that are necessary for multiplayer, which should leave most of the other stuff intact.
Sort of like an "override" .gam that's loaded after dark.gam and only contains modified objects/archetypes? This sounds like a good solution in theory, but I don't know if it's possible to start with a blank gamesys and just copy the things over from dark.gam that need to be changed.
I took a quick look at the load_gamesys command in DromEd, but that command invariably crashes the game for me -- otherwise I could use the code for that as a basis for creating something similar. It might have less disastrous effects if it were done immediately after dark.gam was loaded but before the map had finished loading completely, though. This would depend entirely upon the assumption that the first gamesys' contents won't be unloaded from memory or be unusable after the second one is loaded though, and that it's possible to create a blank gamesys and just copy and change what is necessary.
Quote Posted by Yandros
ObjTree supports importing of a gamesys via XML file. If Telliamed would just add code to export to XML and merge two XMLs, then we'd be set - you could merge any FM's gamesys with the multiplayer version of dark.gam. It could probably even be done with a batch file. But I know, that's probably a large effort.... and Telliamed's all but retired.
This would probably be the simplest solution for the moment.
Volca on 14/2/2008 at 14:01
Using Telliamed's DarkUtils could be enough for this task (it is the base for ObjTree anyway - excluding the data specifications in XML files, which could be useful for you).
I could also provide you with such tool - openDarkEngine already has the capabilities of handling GAM/MIS files, and the ability to manipulate objects.
If you'd like to, let me know what you'd need. I'd be able to create a GAM->XML and XML->GAM converter, or patching utility (only dunno how long this would take me, I have only a few free minutes a day left at the moment). I guess this would be interesting for DromEders as well, so worth the trouble.
I suppose the best way to patch the gam files would be to read some kind of patch file with operations, creating/updating/removing objects/properties/links based on such file, and writing it back to disk.
Yandros on 14/2/2008 at 15:21
Are you kidding? Dromeders have dreamed for 8 years of a tool that merges two gamesys files.
Volca on 14/2/2008 at 15:38
Quote Posted by Yandros
Are you kidding? Dromeders have dreamed for 8 years of a tool that merges two gamesys files.
Ok then, I'll try creating a prototype!
The Magpie on 14/2/2008 at 15:52
OMG, this is too cool. Two of the most interesting Thief programming projects in history - suddenly they're co-operating.
--
L.
vort on 14/2/2008 at 20:55
Quote Posted by Volca
If you'd like to, let me know what you'd need. I'd be able to create a GAM->XML and XML->GAM converter, or patching utility (only dunno how long this would take me, I have only a few free minutes a day left at the moment). I guess this would be interesting for DromEders as well, so worth the trouble.
We need some sort of tool to patch a GAM with the necessary changes for it to work in multiplayer, that is, after I figure out everything that needs to be changed and in what way.
Most of the changes are related to the sound (schema) trees in the .gam, I need to edit the playing parameters applied to them. The problem is, if I apply parameters to the parent of a tree that contains dozens or hundreds of schema entries, I need to manually look at every single one of them to make sure they don't have their own properties which override that of the parent's. This takes a
long time to do; I don't know if this would be possible but could you make some sort of tool to scan a tree (such as Sound->Schema->AI_SPEECH->AI_MAJOR) and find out which entries have their own properties, then allow me to edit the schema play params on all of them at once without messing up their specific volume, delay, etc settings?
I was editing a stock gamesys file last Friday getting it ready for a multiplayer beta release and it took me about 3 hours. I also screwed up a few things and it's causing some crashes related to the sounds, only a few of which I was able to track down and fix. I need to redo it completely a few more times until I get it right, which is going to be really tedious, not to mention no-one else will bother with this to get a single FM working with their own GAM file, which explains the need for the patcher. :P
Yandros on 15/2/2008 at 02:12
As I posted in the latest (
http://www.ttlg.com/forums/showthread.php?t=119793) OMG is Dromed dead? thread over in the FM Forum, perhaps instead of focusing on trying to make this mod working with all the FMs out there, the focus should be on just getting it all working well with the OMs. It will still work with many older FMs that used
dark.gam, and even more importantly maybe releasing it will inspire authors to go create a whole new breed of FMs that are designed to be multiplayer from the start. Perhaps it will even breathe a whole new life into the Dromed community.
It would also be really cool if the work being done here is incorporated into ODE so that if it gets finished, multiplayer will already be supported.