cub3d is a project inspired by the legendary Wolfenstein 3D, aiming to introduce students to the basics of raycasting. The goal of the project is to create a simple 3D game from a 2D map using raycasting techniques, allowing a first-person perspective view.
- Raycasting Engine: Develops a basic raycasting engine to render a 3D view from a 2D map layout.
- Textured Walls: Provides textured rendering for walls to enhance visual experience.
- User Input Handling: Manages user inputs for movement and interaction within the environment.
- Map Management: Reads and validates maps to ensure they conform to specified requirements.
The bonus part of cub3d enhances the basic functionality with the following features:
- Wall Collisions: Gives the walls collisions stopping the player from traversing them.
- Minimap: Implements a minimap for easier navigation.
To clone the repository use:
git clone https://github.com/moop250/cub3d.gitCompilation & cleanup:
make: Compiles the standard code.make all: Compiles both the standard and bonus code.make clean: Removes object files.make fclean: Cleans up all files generated by running make, including the executable.make re: Cleans and recompiles all code.
Example usage of cub3d:
./cub3d maps/map.cub
Use arrow keys or W, A, S, D, ←, → to navigate the 3D environment. Explore the map and enjoy the raycasting demo!