]> git.localhorst.tv Git - blank.git/blobdiff - doc/protocol
send player updates from client to server
[blank.git] / doc / protocol
index 63055a267fce123b022ef54ba6fdfad26ef649c4..43c14dae4933a0ad9de335dd7cf2bebd0f52d58b 100644 (file)
@@ -1,3 +1,23 @@
+Structure
+=========
+
+Offset  Size   Type  Description
+ 0      4      data  protocol tag, must be 0xFB1AB1AF
+ 4      2      uint  sequence number
+ 6      2      uint  sequence ack
+ 8      4      data  bitfield with previous acks
+12      1      uint  type code for the payload
+13      3      none  padding, reserved for future use
+16      0-484  data  payload, contents and length vary,
+                     mostly depending on the type code
+
+all multibyte values are in LE
+the current code does no conversion, so only works on machines
+with native LE (or BE if the server and all clients are on that,
+but that's by accident and will break if conversion code is ever
+added)
+
+
 Packets
 =======
 
@@ -10,6 +30,7 @@ a while.
 
 Code: 0
 Payload: none
+Length: 0
 
 
 Login
@@ -23,6 +44,7 @@ Code: 1
 Payload:
        0 player name, max 32 byte UTF-8 string,
          shorter names should be zero terminated
+Length: 0-32
 
 
 Join
@@ -38,6 +60,7 @@ Payload:
        16 pos/vel/rot/ang of the player, 13x 32bit float
        68 name of the world the server's currently running
           max 32 byte UTF-8 string
+Length: 68-100
 
 
 Part
@@ -49,3 +72,16 @@ Optionally sent by the client on disconnect.
 
 Code: 3
 Payload: none
+Length: 0
+
+
+Player Update
+-------------
+
+Sent by clients to notify the server of their changes to the player.
+
+Code: 4
+Payload:
+        0 chunk coords of the player, 3x 32bit signed int
+       12 pos/vel/rot/ang of the player, 13x 32bit float
+Length: 64