This project is a 3D graphical engine developed using the Raycasting technique, inspired by the legendary 90s classic Wolfenstein 3D.
| Key / Input | Action |
|---|---|
| W / S | Move Forward / Backward |
| A / D | Rotate Camera |
| Mouse Move | Rotate Camera |
| TAB | Toggle Cursor (Show/Hide) |
| E | Open / Close Doors |
| Space | Trigger Weapon Animation (Shoot) |
| M | Toggle Minimap (Show/Hide) |
| ESC | Exit Game |
- Clone the repository:
git clone https://github.com/SuPuHe/SuPuCub3D.git cub3D cd cub3D - Compile using the Makefile:
make
- Run with a map file:
./cub3D maps/best_map.cub
🗺 Map Configuration
The engine parses .cub files to generate the world. You can customize the textures, colors, and layout by editing or creating new map files.
Texture & Color Setup Define paths to textures for different wall orientations, doors, and RGB colors for the floor and ceiling:
NO ./textures/TE_1E.png # North wall
SO ./textures/TE_1E.png # South wall
WE ./textures/TE_1E.png # West wall
EA ./textures/TE_1E.png # East wall
DOOR ./textures/DOOR_4A.png
F 128,128,128 # Floor RGB
C 128,128,128 # Ceiling RGB
Grid Legend The map is a grid of characters where:
-
0: Empty space
-
1-9: Different wall types/textures
-
D: Interactive Door
-
N / S / E / W: Player spawn position and initial orientation
Key Features Implemented
-
DDA Algorithm: Efficient raycasting for high-performance rendering.
-
Dual-Wielding HUD: Animated weapon sprites triggered by user input.
-
Dynamic Minimap: Real-time player tracking with toggle functionality.
-
Interactive Environment: Ray-based door interaction system.
-
Hybrid Control Scheme: Smooth camera rotation via both keyboard and mouse.
Credits
SuPuHe and Vspaceman11
