Terminology
This page will explain terminology used throughout this entire section of the wiki, mainly to make describing certain concepts as easy and unambiguous as possible.
A lot of this terminology is of my own creation, especially all the ‘spaces’. You likely won’t see them used anywhere else.
Term | Meaning |
---|---|
(S->C ) Clientbound | Sent from the Server to the Client |
(C->S ) Serverbound | Sent from the Client to the Server |
Server | The piece of software that is responsible for communicating with and handling clients. Its job is to ensure serverbound data is legal and to simulate the world around the connected players |
Client | The piece of software run by the user that is responsible for communicating with the server, handling packets, displaying the world to the user and forwarding user input to the server |
Player | The entity that acts on the inputs of the user |
Entity | A pickup, mob, painting or clientbound player |
Spaces
Spaces describe where and how coordinates are expressed within the world.
Block space
Limited to signed 32-Bit Integers (-2,147,483,648
to 2,147,483,647
) along the horizontal axes and a signed 8-Bit Integer (limited, 0
to 127
) along the vertical axis. This space defines the grid that the blocks of Minecraft adhere to.
Player space
Limited to signed 64-Bit doubles (1.7E +/- 308). This space defines the positions of players on the server-side and is what causes the jerky movement as one approaches the edge of the world due to a loss of floating-point precision.
Entity space
Limited to signed 28.4 fixed-point* numbers (-67,108,864
to 67,108,863.9688
) along all axes. This space defines the positions of all entities in the world. The 4 lowest bits are used for in-block precision, meaning that within each block an entity has a decimal precision of 1/32nd of a Block (0.03125 Blocks).
*Sent as a signed 32-Bit Integer