Welcome to the CUB3D project repository! This project was developed as a mandatory part of the 42 School curriculum in Heilbronn.
Authors: Kathrin Czichowsky, Luca Sordo
Email: lsordo@student.42heilbronn.de
CUB3D is a project that explores the fundamentals of raycasting and creates a simple 3D game using the C programming language. The primary objectives include:
- Understanding raycasting techniques for rendering a 3D environment.
- Implementing a basic game engine in C.
- Exploring concepts of graphics programming.
Throughout the project, I had the opportunity to gain hands-on experience and knowledge in the following areas:
- C Programming: I strengthened my skills in the C programming language, implementing algorithms for raycasting and game mechanics, text parsing and error management.
- Graphics Programming: I delved into the world of graphics programming, learning how to render a 3D environment using raycasting.
- Game Development: I gained insights into game development by building a simple 3D game from scratch.
During the development of CUB3D, I encountered various challenges:
- Raycasting Algorithm: Implementing an efficient raycasting algorithm for rendering the 3D environment posed a significant challenge.
- Game Logic: Designing and implementing the game logic, including player movement and interactions, required careful consideration.
- Graphics Rendering: Understanding and implementing the graphics rendering process was a complex aspect of the project.
To get started with this project, clone the repository to your local machine and follow the steps outlined below:
git clone <repository_url> <your_local_folder>
cd <your_local_folder>
make
Ensure you personalize all necessary files, including adjusting game settings and configuration files.
Launch a shell and:
cd <your_local_folder>
./CUB3D <map_file>
Launch another shell and:
cd <your_local_folder>
make clean
A big thank you to the 42 School in Heilbronn for providing the opportunity to work on this project and expand my skills in C programming and game development.
Thank you to Kathrin who has been the ideal partner to coauthor this project.
This project is open source and available under the MIT License.