This is a 2D raycaster that uses DDA for fast intersection calculations. This is one of my earlier projects. I previously used SFML with C++ for graphics, but this is a ported version that uses canvas.
Guide:
Controls:
Reference material used: