1: basic wolfenstein-like raycasting with fishbowl effect: https://xem.github.io/raycasting-experiments/1/
2: optimized casting, fishbowl correction, keyboard input: https://xem.github.io/raycasting-experiments/2/
3: more rays, colors, shadows: https://xem.github.io/raycasting-experiments/3/