This project involves creating a pseudo 3D game engine that uses raycasting and binary space partitioning techniques to render 3D environments on an OLED display powered by an Arduino.
This project is based on the raycasting algorithm used in games like Wolfenstein 3D, and it has been extended to include Binary Space Partitioning techniques (as seen in Doom) and a binary tree data structure for more efficient rendering of the game world. The engine's enhanced rendering capabilities include the ability to solve visibility problems using traversal algorithms, resulting in a more immersive gaming experience.
Final Engine and Game on OLED Display
Final Engine on LED Matrix
Game:
In this game, one player creates a pseudo 3D environment by placing walls, enemies, a start position, and a target position. The other player must navigate the environment using a compass and avoid Obstacles while attempting to reach the target. Additionally, the second player can place walls to eliminate enemies, adding an extra layer of strategy to the game.