Tous les projets

Raycasting

Raycasting — couloir du labyrinthe en 3D avec la mini-carte

La mission

Un moteur de raycasting fait maison, écrit entièrement en Rust avec Raylib, pour comprendre les maths derrière les premiers jeux 3D comme Wolfenstein 3D : pour chaque colonne de l'écran, on lance un rayon dans la carte et la distance au mur donne la hauteur à dessiner.

Le jeu est un labyrinthe : on se déplace et on pivote aux flèches, il faut ramasser 3 objets pour gagner. Les murs sont ombrés selon leur orientation, le sol et le plafond sont dessinés, et une mini-carte en temps réel montre la position et la direction du joueur, avec un compteur de score et un écran de victoire.

Le code est découpé proprement en modules (boucle de jeu et rendu, joueur et collisions, carte). Pour le faire tourner dans le navigateur, je l'ai compilé en WebAssembly avec Emscripten, car Raylib repose sur du code C et OpenGL.

Le rendu est volontairement sans anticrénelage pour garder le look pixel des années 90.

Mission suivante