Mortal Monkey on 16/12/2007 at 21:01
Quote Posted by Tos
Once the wrapper is working, there will be no need for players behind routers or firewalls to use Hamachi to connect to each other (as most players probably do with SS2, since the network code is identical), and lag should be reduced. The wrapper code will also be portable to SS2, so I'll release it for that as well if I can get it going.
Awesome! I always wanted to play SS2 multiplayer, but it was laggy, usually failed right at the start, and had all sorts of synchronisation issues.
SalaciousCrumb on 17/12/2007 at 00:00
No matter how far you get. If you can manage to make a LAN session working properly 1 out of 10 times, I salute you.
I hope you will develop this multiplayer stuff as far as you can. Even if it is not perfect, I am sure there is much fun to be had with it!!!::)
Best of luck!
Have you thought of starting a little community about this... like Thievery UT or the dark mod? If more people are working on this there is a higher chance of success maybe.
Tos on 17/12/2007 at 00:55
I'm open to offers of help. You'd need a good amount of experience with C++, and the more knowledge of the Dark Engine's workings you have, the better. At least a little assembly knowledge would make it easier to follow what I've done so far, but it wouldn't be absolutely necessary -- I've tried to keep inline asm to a minimum in my code.
What would really be helpful right now would be someone who knew more about DirectPlay than I did (I'm pretty much teaching myself as I go right now) and was familiar with DromEd.
Quote Posted by SalaciousCrumb
No matter how far you get. If you can manage to make a LAN session working properly 1 out of 10 times, I salute you.
It's actually
much more reliable over a LAN, and works pretty much every time when I test it over one. The bugs still make the gameplay a bit unsatisfying, though.
Karlfox on 20/12/2007 at 16:32
Wow - can't say I ever expected anyone to get even this far.. I know a fair number of people have looked into Thief 2's multiplayer code fragments, but it's always been declared unfeasible - to the extent that Thievery was created! Fantastic work Tos!! :thumb: (although I am a little curious as to what caught your interest given the game's age..)
intruder on 20/12/2007 at 17:22
Where can I actually find the Thief multiplayer code?
Are it those .crf files? I have no idea how the DarkEngine works in detail, but I could imagine that these files are "compiled" dynamicly, some kind like the shader .fx files for DirectX9 applications.
I'm kind of bussy with the progress of programming another game right now, but I like to take a look at the code...
But the idea of a multiplayer ready Thief would just be amazing! Playing in a thief guild and looting the city - great :)
demagogue on 20/12/2007 at 17:28
Yeah, just what we need ... bring back the TTLG clan/guild system.
I can already imagine what FMs would be great for co-op play, too ... Equilibrium & Lord Alan's Factory (share the work ... not sure, maybe it's a bad idea if they're off by themselves), Ominous Bequest & Rowena's Curse if they're not broken (e.g., handling teleports)... I'll think about it.
qolelis on 20/12/2007 at 17:31
...and just imagine what the FM authors can come up with.
Edit:
Ah, demagogue beat me to it.
Multiplayer probably works best if a new FM is created with it in mind. I wonder what (entirely) new kinds of playing styles the FM authors could come up with.
TheCapedPillager on 20/12/2007 at 19:06
I like the thought of being able to send one thief around to another section of a mansion for example, perhaps create a distraction or something similar. That kind of gameplay seems perfectly suited to all the non-linear, multiple entry type missions from this community.
It would also mean you could split the tasks between theives in some of the bigger missions, ie. Calendra's Legacy.
Nameless Voice on 20/12/2007 at 19:29
Yeah, that would be one of the problems with Thief Shock -- every single mission needs to be converted, and the more custom content the mission has, the longer that would take.
At least if you get the multiplayer code working straight through Thief 2, you avoid that problem.
Tos on 20/12/2007 at 21:56
Quote Posted by Karlfox
Wow - can't say I ever expected anyone to get even this far.. I know a fair number of people have looked into Thief 2's multiplayer code fragments, but it's always been declared unfeasible - to the extent that Thievery was created! Fantastic work Tos!! :thumb: (although I am a little curious as to what caught your interest given the game's age..)
Guess I just have a thing for older games. Looking Glass compiled DromEd with the debug information intact as well, which gave me a lot of insight as to how the engine worked and simplified the task considerably.
Quote Posted by intruder
Where can I actually find the Thief multiplayer code?
Are it those .crf files? I have no idea how the DarkEngine works in detail, but I could imagine that these files are "compiled" dynamicly, some kind like the shader .fx files for DirectX9 applications.
The multiplayer code is compiled into the executable. Most of it is directly copied from System Shock 2 (with a few Shock specific functions missing, such as the multiplayer menu page and chat functions).
Before anyone gets their hopes up about fan missions, I should point out that not all of even the original missions work properly with this. The game freezes completely for me when trying to climb other players' rope arrows on Eavesdropping, and Bank is completely broken -- the game desynchronizes about five seconds after the map starts. Running Interference, Shipping and Receiving, and Life of the Party all work mostly fine, though.
I'm considering releasing a (very early!) test version of this in the hopes that DromEders will be able to find out what's preventing some maps from working, or possibly find workarounds for other problems.
Now would probably be as good a time as any for me to ask what TTLG's policy towards cracked executables is, as I cannot see any way around using one for this. The SafeDisc protection on the 1.18 .exe makes it impossible to disassemble or modify, and several changes need to be made to it in order for it to load my DLL at startup.