Collisions

Minecraft's collision physics is very simplistic, yet it contains many glitches.

Instead of ray-tracing the collisions, the game simply attempts to move the player sequentially along each axis.

As a reminder, Minecraft's physics is updated 20 ticks per second. The player's movement and collisions are updated once per tick.

Order of collisions
Every tick, after the player's velocity has been updated, the game does these steps to check collisions:


 * Move the player along the Y axis. If a vertical collision is detected when falling, the player is now considered to be on ground.
 * Move the player along the X axis.
 * Move the player along the Z axis.
 * If the player is on ground and collided with a wall, perhaps they could step on top of it (e.g. if the wall is just a slab).
 * See Stepping for explanations and visuals.
 * This mechanic is responsible for Blips and Jump-Cancel, and their glitched variants.

X/Z Facing
Due to the X axis being processed before the Z axis, they are fundamentally asymetric: it's important to distinguish "X-facing" jumps from "Z-facing" ones.


 * X-facing refers to jumps that point towards East/West.


 * Z-facing refers to jumps that point towards North/South.

Some jumps are only possible when facing one axis or the other.

Players tend to find Z-facing neos more intuitive, but X-facing neos can actually be a bit easier.

Z-facing neos are very similar to linear jumps. To convert a neo to its equivalent, simply add 1.2 to its distance and increase its tier by one.

For example, a triple neo is equivalent to a "4.2+0.25" (these equivalents cannot be built, but are useful for analysis, as it's quite easy to determine whether a linear jump is possible or not).

The axis of a jump can be checked with F3.

1.14+
[WIP]