The code behind Quake's movement tricks explained (bunny-hopping, wall-running, and zig-zagging)