A few months back I looked for directplay implementations but I could not find any.
Some incomplete work at Google Code, including a run at creating a Wireshark protocol plugin. Microsoft’s protocol seems fairly well documented.
I have implemented a fragment of the directplay. I lost motivation as I intensely hate implementing windowed protocols. The fragment was sufficient to pretend to be a FL server, i.e. show up in the multiplayer server window but nothing else.
If you are willing to share that fragment, I would appreciate it. I’d like to move on to the in-game stuff. Right now I’m just trying to identify fields and message types in the binary UDP exchange prior to the XML “game registration” with gun.fllistserver.com.
Why are you interested in the FL network protocol?
Most of it is just curiosity. I’ve been spending a lot of time trying to get my bearings within the structure of the game, and part of that is documenting things as I learn them, and reading other people’s work.
The fact that there doesn’t seem to be any publicly available information about the protocol is a motivator. I know some people know how it works, and I don’t, and that’s enough to get me going on the problem. I’d love to see an open-source, extensible Freelancer server and server directory, or a packet-inspection system that allowed for advanced anti-cheat (yay pie-in-the-sky). Given time and luck, I might be able to lay the groundwork for stuff like that.
Or maybe someone who knows more will lay the groundwork out, and I can get to work on something cooler.
This might be the wrong approach; completely replacing the game protocol with something a little more sane might be workable too. No idea if that would be even remotely feasible.