Home
Softono
Cub3d-Advanced-Raycasting

Cub3d-Advanced-Raycasting

Open source MIT C
224
Stars
10
Forks
0
Issues
4
Watchers
3 years
Last Commit

About Cub3d-Advanced-Raycasting

Cub3d-Advanced-Raycasting is a first-person 3D game engine built from scratch in C using the mini-libx graphics library. The project leverages raycasting technology to render a three-dimensional environment with a style reminiscent of classic titles like Wolfenstein 3D. It demonstrates advanced low-level programming skills by calculating wall collisions, depth, and perspective projection to create an immersive 3D effect on a 2D screen. Key functionality includes full player movement controls for walking, running, jumping, and crouching, as well as mouse interactions for aiming and shooting. The system supports dynamic weapon selection via scroll and includes a toggleable overhead map for navigation. Users can customize control mappings to suit their preferences. The engine processes map files to generate interactive worlds and provides a robust framework for 3D visual output. It is primarily designed as an educational project for computer graphics and systems programming, often utilized in academic settings s

Platforms

Web Self-hosted

Languages

C

Links

Cub3D 👾

The goal of the cub3d is to make something using raycasting (like Wolfenstein 3D).

First of all:

The more time I spend on the project, the much more I like it.

This project is written in c using mini-libx Library, This old library has a little builtin-funcs that's can make my project show on the graphics

Preview 1

Preview 2

Walk Through:

Documentation

Commands

KEY Action
ESC manual control
SPACE BAR run
ENTER jump
CONTROL crouch
A move left
D move right
W move forward
S move backward
turn right
turn left
shift hide/display map
MOUSE RIGHT CLICK shoot
MOUSE LEFT CLICK aim - focus
MOUSE SCROLL change weapon

you can customize the control keys inside the game settings

Run Programe:

_ if you'ar a 42-student :

  cd /Users/$USER/goinfre ; git clone [email protected]:ael-bekk/cube3d_advanced_raycasting.git
  cd cube3d_advanced_raycasting ; make ; ./cub3d maps/test.map

_ if not :

  git clone [email protected]:ael-bekk/cube3d_advanced_raycasting.git
  cd cube3d_advanced_raycasting ; make ; ./cub3d maps/test.cub

📝 License

This project is licensed under the MIT - see the LICENSE file for details.