nbelanger.dev
Public
GitHub

Raycaster Engine

A pseudo-3D rendering engine built from first principles in C++.

01.

Overview

A pseudo-3D rendering engine built in C++ from first principles. Inspired by the techniques used in Wolfenstein 3D, the engine uses a raycasting algorithm - casting rays from the player's viewpoint into a 2D grid map and calculating wall heights based on distance.

The result is a real-time 3D-looking environment rendered entirely through math with no game engine. I implemented player movement, reduced field-of-view distortion, and textured the environment. Building a renderer from scratch forces you to understand how graphics actually work - every pixel on screen comes from a custom built algorithm.

02.

What I Learned

  • Learned the math behind raycasting - DDA (Digital Differential Analysis), trigonometry, and perspective projection
  • Learned how early 3D games worked and appreciated the ingenuity of software rendering before modern GPUs
  • Practiced writing performance-critical C++ with tight render loops and careful memory management
  • Understood how graphics systems work at a low level by building one from scratch
  • Debugged visual artifacts - when the renderer misbehaves, there's no stack trace, just a broken picture
03.

Gallery

Raycaster engine running

Engine in action

Top-down prototype view

Top-down prototype

nbelanger.dev Designed & built by Nicolas Belanger ยท 2026 Built with Nuxt 4 & Tailwind CSS