iamgreaser / iceball

Open-source rewrite of the VOXLAP version of Ace of Spades.
http://iceball.build
GNU General Public License v3.0
113 stars 32 forks source link

Heartbeat protocol changes #173

Open rakiru opened 9 years ago

rakiru commented 9 years ago

As this can't be done until the next major release, I'm making an issue in case we forget.

At a minimum, The server name max length should be increased. Any other changes we may want can go in this ticket too though.

Edit: A game field should also be added (base in most cases). Fields should be variable-length, either null-terminated or size-prefixed (a byte is long enough for each field, so same size of packet as null-terminated). We may wish to review size of other fields, but with variable-length, that can be changed at any time without breaking compatibility.

dany-on-demand commented 9 years ago

The server heartbeat should serve:

Beyond 0.3:

Maybe for another issue:

rakiru commented 9 years ago

No, the heartbeat server should give you a list of servers. That's it. Some stuff, such as player count and map are fine, as that's small, and should be viewable on the web list. Anything else can be added to a query plugin. I don't even understand why you'd want half of this shit anyway, and I certainly don't think anyone would want to download a 50MB serverlist every time they refresh.

At most, out of your suggestions, we could add an official tag to certain servers, but that would be on the masterserver=> client (i.e. JSON) side of things, so is completely irrelevant to this ticket.

rakiru commented 9 years ago

Updated main post.

BR- commented 9 years ago

We should shift to a protocol that lets us add or remove fields without changing the heartbeat version, JSON perhaps. That would also stop fixed-width fields, let us accept optional fields, allow servers to send stuff which is supported by one serverlist but not by another, and so on.

rakiru commented 9 years ago

JSON sounds like a good idea, purely because it allows changing the protocol whenever we want. None of this waiting for next major release nonsense.