Cub3D

OS GitHub top language Grade Status


💡 About the project

This project is inspired by the world-famous Wolfenstein 3D game, which was the first FPS ever. It will enable you to explore ray-casting. Your goal will be to make a dynamic view inside a maze, in which you’ll have to find your way. For more detailed information, look at the subject of this project.


cub3D: Exploring Ray-Casting in C

cub3D is a graphic design project inspired by the world-famous Wolfenstein 3D game, allowing users to explore ray-casting and create a dynamic view inside a maze. This project serves as a playground to explore the playful practical applications of mathematics, focusing on windows, colors, events, and shape filling, all built using the C programming language.

Untitled.mp4

Introduction

Developed by Id Software and published in 1992 by Apogee Software, Wolfenstein 3D is considered the first true "First Person Shooter" in the history of video games. It laid the foundation for subsequent games like Doom (1993), Duke Nukem 3D (1996), and Quake (1996), serving as eternal milestones in the gaming world.

In this project, you get to relive history by creating a dynamic view inside a maze, inspired by the mechanics of Wolfenstein 3D, where you'll have to find your way through.

🧱 Dependencies

cub3D is dependent on the miniLibX library for graphical rendering and interaction. Ensure that the miniLibX library is properly installed and configured on your system to run the project successfully. For more information and installation instructions, refer to the miniLibX documentation.

🛠️ Installation

To install and run cub3D, follow the steps below:

# Clone the repository to your local machine
git clone https://github.com/mouadd55/cub3D-42Cursus
# Navigate to the cloned project directory
cd cub3D-42Cursus
# Compile the mandatory part
make
# Compile the bonus part
make bonus

🕹️ Usage

To run cub3D, use the command below:

# Execute the mandatory part with a map file
./cub3D Maps/map.cub
# Execute the bonus part
./cub3D_bonus Maps/map.cub