D2X-XL Worklog
Notes on features and problems from the development of D2X-XL, newest first.
D2X-XL and IPX (KALI) |
|
There have always been rumors that D2X-XL doesn't work too well in multiplayer games with other D2 versions. I could never really nail this down to a reproducible observation of problems in this area - until a few days ago, when I found other D2X versions got disconnected from D2X-XL hosted IPX (KALI) games. That problem was easily solved, but during the process of removing it I finally managed to find the reason for those slight, hardly tangible problems between D2X-XL and other D2 versions. 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 multiplayer 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 D2X-XL has all these nice extra multiplayer features, like 'TYPING' messages, new game modes and stuff, right? These features are signaled by sending messages with new tags the other Descent versions don't have a clue of. Here it comes: 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. Fortunately 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. As I am on it I would like to remind those die-hard Descent 2 purists out there that you can turn D2X-XL into the very
program you know so well and love so much with the command line switch '-nostalgia 3' (for details see the switches page). |




