Page 1 of 1

Major flaw in D2X-XL communication with non D2X-XL versions!

Posted: Mon Jan 15, 2007 9:16 am
by Diedel
I found a major flaw in D2X-XLs IPX communication with non D2X-XL participants today.

D2X-XL has all these nice extra mp features, like 'TYPING' messages and stuff, right?

Now Descent doesn't send a tiny data package for every event in the game, but collects them until it has a few hundred bytes. Each mp message has its own tag. The receiver knows by the tags in the big data package how many data bytes follow. So it will nicely decode message by message.

Now Descent stops processing such a big data packet if it finds an unknown tag. That means if D2X-XL mixes legacy and D2X-XL messages, each legacy messages coming after the first D2X-XL message in the big packet will be ignored by non D2X-XL versions. D'uh!

I have to admit that Tankie was right with their observation that D2X-XL causes problems for non D2X-XL users. :oops:

Ofc there is a solution to this. D2X-XL will now separate D2X-XL and legacy messages. That will result in non D2X-XL versions simply discarding any D2X-XL messages, which actually is a desired effect. :)

Geez, this was really hard to find.

Posted: Mon Jan 15, 2007 3:24 pm
by Atixtasy
ouch...good thing you found it though. :)

Posted: Mon Jan 15, 2007 3:53 pm
by Diedel
Tankie had told me about this months and months ago, but I just didn't know what to make of it - until today. :)

Posted: Mon Jan 15, 2007 6:25 pm
by Atixtasy
Yea i know what you mean. Considering i'm a [novice] programmer myself. Direct3D 10 SDK, although powerful, is an extremely complex bunch of code and finding some little piece is near impossible.

This is why i respect you so much and all you have done thus far keep it up! :lol: 8)

Posted: Tue Jan 16, 2007 5:51 am
by Diedel
If I was you, I'd dig into OpenGL, OpenAL and OPL (Open Physics Layer) instead.

Screw Vista and DX10.

Fixing that KALI bug was ... difficult.

First I had to setup D2X-Rebirth for debugging on my system. That was a nightmare. The projects are a complete mess. I took me like two hours to finally get a debug executable.

Just as I had figured the bug causing the problems, my second test machine's harddrive broke. I managed to get another computer, but it had no sound drivers, the gfx driver was outdated and I could not access the inet with it to get all drivers I needed.

Took me another hour to get around that.

Then D2X-XL froze that machine repeatedly.

I finally installed D2X-R (non debug) on it and ran D2X-XL on my main development machine to see if everything worked now. Fortunately it did. I finished this in the very last minute I had for it.

Posted: Tue Jan 16, 2007 7:30 am
by The Lion
To debug DXX-Rebirth I just compile with -g and use gdb/valgrind on a `release' executable.

Posted: Tue Jan 16, 2007 7:45 am
by Diedel
Talking about Windoze, Lion.

On Linux, I am using DDD.

Posted: Tue Jan 16, 2007 5:26 pm
by The Lion
Hm, is there no suitable debugger for DXX on windows..?

Posted: Tue Jan 16, 2007 5:47 pm
by Tankie2
This is the best news I've seen all year! I'm glad you stuck with it, Diedel, and congratulations and thank you for your dedication to the project.
I am eager to play a few games with the new fix. There are a lot of good and dedicated players using XL and now I'll have the opportunity to get some QUALITY playtime with them.
You're going down, fellas!
Luv yas.

Tankie2


If it isn't Descent, it's just another interactive screen saver.

Re:

Posted: Tue Jan 16, 2007 6:08 pm
by Diedel
The Lion wrote:Hm, is there no suitable debugger for DXX on windows..?
The problem was the messed up MS Visual C project structure.
Tankie2 wrote:If it isn't Descent, it's just another interactive screen saver.
lolz
Tankie2 wrote:This is the best news I've seen all year!
Wasn't hard to achieve, given the year is barely three weeks old. :P

You should get a computer that can run D2X-XL and try it. There are a few neat features in it. You should see the smoke ...