Duke4.net Forums: How player info is passed from duke connector to the port - Duke4.net Forums

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

How player info is passed from duke connector to the port

User is offline   mike_s 


Sorry if the title of the question appears offensive.

But I'm making my own game port and effectively replacing the commit.exe that comes with duke nukem 3D so that people can play against people worldwide instead of being restricted to their local LAN.

What I discovered based on commit source documentation (found by searching for and downloading dukenet.zip from 3D realms site) is that when the game wants to communicate with players, all the commit driver will know is what data goes to what player number, but it doesn't go past defining what the player number really means.

In my case, my driver will have access to the entire network packet. (Heck, I could make wireshark for MS-DOS right now if I wanted to). This means it can access the MAC address and IP address and port number. Because of all this level of access, In order for me to send a packet successfully, I'll need to make the driver determine the remote MAC address, remote IP address and remote port as these three things combined will determine the player number.

Here are my thoughts on how to approach this situation for when a new multiplayer game starts, but I don't know if any of these thoughts match the approaches other ports would take:

Thought 1: Pass all info in as parameter to driver

This will be the easiest to implement at my driver end. Data could be encoded for security and speed purposes by the multiplayer chat software then my driver could decode it. The drawback is that I don't think any networking software related to Duke Nukem would capture MAC addresses.

Thought 2: Pass IP address and Port only

The disadvantage here is the need to issue broadcasting MAC addresses (FF:FF:FF:FF:FF:FF) when trying to retrieve the true mac address. More like doing an ARP/RARP request. Question is how well would routers deal with this.

Thought 3: Pass No info

While this may be most secure, it will be more difficult to implement, and for it to work, there needs to be a central server to connect to in order to collect all the info for the game.

Then again, I could make my software compatible with all the duke nukem network clients out there like yang if I knew the parameter format they pass to duke nukem 3D. Maybe the format is customizable from client to client I don't know but if I can adapt to a common format, then my port would work with the rest of the ports, except that mine would allow the real dos duke nukem 3D to run network style.

What do you guys think? Should I go with one of my thoughts? or should I follow a common format?

Share this topic:

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password

Sign in options