I noticed it in the examples too, I’m speculating wildly that the ray cast is even angular steps rather than pinhole projection. Totally reasonable to not correct it, IMO, I’ve long thought we should have more non-linear cameras in games.
let rayAngle = player.angle - player.fieldOfView / 2; for(let rayCount = 0; rayCount < screen.width; rayCount++) { // ... SNIP ... // the ray moves at constant increments let rayCos = Math.cos(degreeToRadians(rayAngle)) / precision; let raySin = Math.sin(degreeToRadians(rayAngle)) / precision; // ... SNIP ... // increment the angle for the next ray rayAngle += incrementAngle; }
I noticed it in the examples too, I’m speculating wildly that the ray cast is even angular steps rather than pinhole projection. Totally reasonable to not correct it, IMO, I’ve long thought we should have more non-linear cameras in games.