For certain purposes, I'm looking to emulate a few features of sourcenet. Right now I have a simple server which can do A2S_INFO, A2S_RULES, A2S_PLAYERS, master server heartbeats, as well as the complete signon process for actually connecting to it. I'm wondering if anyone knows the process involved in encoding net messages. I know each server->client message starts with 32 bit sequence, 32 bit ack sequence, and then messages are 6 bit integer for the message ID, then the data specific to that message type.
Problem is that everything beyond the first 8 bytes is encoded to prevent fake packets and tampering. I'm wondering if anyone knows about it.
I know source is similar to Quake 3. First the data is huffman compressed. Then Q3 xors everything with the last sequence ID and the client's challenge ID. [url]https://github.com/id-Software/Quake-III-Arena/blob/master/code/server/sv_net_chan.c#L36[/url]
This is kind of out there but so far I've seen absolutely nothing online about the process for source engine / goldsource or if it's even the same.
Didn't Ley write his own client and then get banned for some associated drama a month or so ago? Mayhaps could ask him.
Is any of that information visible in source sdk or does that all need to be reverse engineered?
It is not available, I already checked.
I don't think it needs to be totally reverse engineered because it's very similar to quake world networking. I can go that route if need be but for now I'm checking if anyone has done something similar before.
EDIT: Reading the hl2 leak code, hl2 uses completely different methods beyond the first 64 bits. But things are in a good place now.
Sorry, you need to Log In to post a reply to this thread.