-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2.7.5 protocol updates #194
Comments
BADUnknownPacket:0x4c821d3c is presumably the new ClientHeartbeat. I shall reverse-engineer the JamCRC shortly. efbeadde 1c000000 02000000 00000000 08000000 # HEADER c2s len=28 |
Couple of questions here:
|
Actually, never mind on question 2. It's the packet subtype. |
I'm being dumb. 0x4c821d3c is valueInt So the new valueInt subtype 0x24, WITH NO ACTUAL INTEGERS is the client heartbeat. 😆 |
Haven't determined which clients send it. I suspect ALL clients do, because if I connect and just "do nothing", I get the usual stream of unsolicited objectUpdates and everything for about 12-15sec, then it just stops dead. |
My first few example captures (available on my usual archive site): |
What's with all the random-looking numbers? |
Packet counts in 5 files - EG one "game" had 31 ClientHeartbeat and 37 (server) heartbeat |
I think we should rename As for why it doesn't drop the connection when the heartbeat is lost, I suspect that it may have been an intentional design decision by Thom. Clearly he can make the software disconnect if he wants it to, as there is a button to do exactly that! It could be that in the case that there's still a connection but no heartbeat, Thom simply wanted to let the humans make the call if they actually want to disconnect. After all, if the connection recovers you can jump back in more quickly than if the connection flat-out dies and you have to reconnect. |
As long as we're clear that neither HeartbeatPacket nor ServerHeartbeatPacket correspond to the JamCRC hashes (I'm pretty sure that's already clear), I'm good with this! 👍 |
Apart from the ClientHeartbeat, I'm not aware of any other 2.7.5 protocol changes BUT I'm deeply suspicious that there's another valueInt subtype 0x23 we haven't found yet. Presumably a client2server packet. I am notoriously bad at testing c2s compared with s2c. server2client I can just run a server in AI mode for a few hours and expect to see everything. client2server, I have to actually do stuff in the official client 😆 It's also possible some Object enumerations have new values, but almost certainly no new object bits/fields. |
I don't know if this is new behavior or since what version, but it appears that there are changes to when
|
simpleEvent:0x0f is AKA "All Ship Settings" right? I used to see that appear in EVERYONE'S streams when ANY new client connected. When you say "sent regularly", is it possible something it connecting regularly? |
It's happening pretty consistently for me, and I know there isn't anything else trying to connect. I wonder if there's a packet that I'm sending that is now used to request an update to the game and ship state. Is this not happening for you? |
So I figured it out: When the game starts, it sends not only We should update the docs to reflect that |
Also rename HeartbeatPacket to ServerHeartbeatPacket per discussion in issue artemis-nerds#194. Also add information about periods of both heartbeats being 3 seconds. Signed-off-by: Dave Thaler <[email protected]>
Also rename HeartbeatPacket to ServerHeartbeatPacket per discussion in issue artemis-nerds#194. Also add information about periods of both heartbeats being 3 seconds. Signed-off-by: Dave Thaler <[email protected]>
Mostly "note to self" and a place to discuss 2.7.5 changes.
The docs describe a client heartbeat that is used by (at least) helm/weapons/eng so the server can spot half-dead TCP connections and avoid those consoles being locked out. Assume this has a new packet?
Some of the not-so-new Elite Abilities are now officially documented.
Any other updates?
The text was updated successfully, but these errors were encountered: