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, field-of-view controls, textured walls, and a minimap overlay. Building a renderer from scratch forces a deep understanding of how graphics actually work — every pixel on screen is the result of deliberate calculation.

02.

What I Learned

  • Deeply understood 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
  • Learned to debug 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