Raycasting Engine

C++ DDA Algorithm Operator Overloading Vector Maths Game loop design CMake Technical Research Debugging
View on GitHub
My first working version had no collision detection, no shading, and a flawed distance calculation that caused fisheye distortion and misaligned wall corners. To fix these issues I switched from a trigonometric derivation to DDA's own sideDist − deltaDist shortcut meant a full rewrite of the core maths.
I Ended up with a working 2.5D engine with correct perspective projection, side- and distance-based shading, and collision handling, controlled entirely by the keys WASD.