]> git.localhorst.tv Git - blank.git/blobdiff - doc/protocol
second attempt at "nice" client state correction
[blank.git] / doc / protocol
index 43c14dae4933a0ad9de335dd7cf2bebd0f52d58b..749e0995c775aa490294caff56c7bda6f8aa202b 100644 (file)
@@ -17,6 +17,15 @@ 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)
 
 but that's by accident and will break if conversion code is ever
 added)
 
+Common Types
+------------
+
+Name          Size  Type
+vec3          12    3x 32bit float
+vec3i         12    3x 32bit signed int
+quat          16    4x 32bit float
+entity state  64    vec3i, vec3, vec3, quat, vec3
+
 
 Packets
 =======
 
 Packets
 =======
@@ -56,8 +65,7 @@ it's changing worlds.
 Code: 2
 Payload:
         0 entity ID of the player, 32bit unsigned int
 Code: 2
 Payload:
         0 entity ID of the player, 32bit unsigned int
-        4 chunk coords of the player, 3x 32bit signed int
-       16 pos/vel/rot/ang of the player, 13x 32bit float
+        4 entity state of the player
        68 name of the world the server's currently running
           max 32 byte UTF-8 string
 Length: 68-100
        68 name of the world the server's currently running
           max 32 byte UTF-8 string
 Length: 68-100
@@ -82,6 +90,60 @@ Sent by clients to notify the server of their changes to the player.
 
 Code: 4
 Payload:
 
 Code: 4
 Payload:
-        0 chunk coords of the player, 3x 32bit signed int
-       12 pos/vel/rot/ang of the player, 13x 32bit float
+        0 entity state of the player as seen by the client
 Length: 64
 Length: 64
+
+
+Spawn Entity
+------------
+
+Sent by the server to notify the client of an entity entering spawn range.
+
+Code: 5
+Payload:
+         0 entity ID, 32bit unsigned int
+         4 entity's skeleton ID, 32bit unsigned int
+         8 entity state
+        72 bounding box of the entity, 6x 32bit float
+        96 flags, 32bit bitfield with boolean values
+           1: world collision
+       100 entity name, max 32 byte UTF-8 string
+Length: 132
+
+
+Despawn Entity
+--------------
+
+Sent by the server to notify the client of an entity leaving spawn range.
+
+Code: 6
+Payload:
+       0 entity ID, 32bit unsigned int
+Length: 4
+
+
+Entity Update
+-------------
+
+Sent by the server to notify the client of updated entity properties.
+Contained entities must be ordered by ascending entity ID.
+
+Code: 7
+Payload:
+        0 number of entities, 32bit int, 1-7
+        4 entity ID, 32bit unsigned int
+        8 entity state
+       72 next entity...
+Length: 4 + multiple of 68, max 452
+
+
+Player Correction
+-----------------
+
+Sent by the server to tell a client that its prediction is way off.
+
+Code: 8
+Payload:
+        0 sequence number of the offending packet, 16bit unsigned int
+        2 entity state of the player's entity on the server
+Length: 66