Skip to content

This project is inspired by the world-famous Wolfenstein 3D game, which was the first FPS ever, to explore ray-casting. Pair-programming project with @GioGardinali

License

Notifications You must be signed in to change notification settings

biralavor/42_cube3D

Repository files navigation

42_cube3D

cub3de-with-bonus This project is inspired by the world-famous Wolfenstein 3D game,
which was the first FPS ever, to explore ray-casting.
Yes, this game repository is being built with NO GAME ENGINE.
image

Tip

  • We are building this game without any game engine (like Unity, Unreal Godot, etc). Instead, we are using just the Math Library and a Image Controller Library called MXL Codam
  • Our game will simulates a 3D environment (but it is totally 2D inside), using raycast calculations to a faster image rendering
  • This is a Pair-programming project with GioGardinali, in a TBD mode (Trunk Based Development which help us to do small merges, in a non-stop iteration). You can follow the Project Development at Github Projects
  • You can follow our Automated Tests at GitHub Actions

Here is what we have done so far:

The majority functions of map_validation_manager was built in boolean type. This approach helps code maintenance and readability.

  • Map Validation Manager

    • Map File Manager
      • Valid Extension Checker
      • Map Reader
      • Unique Definitions for Compass Points
      • Nothing After Map
    • Map Player Checker
      • Player Detected
      • Player Free To Go
    • Map Boundaries Validation Manager
      • Create paddad at at Top
      • Create paddad at at Middle
      • Create paddad at at Bottom
      • Flood Fill it
      • Are Sides Valid
      • is Position Valid
      • is Map Closed
    • Testure Path Manager
      • Texture Path Tester
    • Map Colors Manager
      • Color Digit Counter
      • Color Digit Quantity Checker
      • No Garbage at Color Values
      • Color Values into Array
      • Color with Min and Max Values

    This means that our $\color{BurntOrange}{Map Validation}$ is ready to go \o/

image

How to run it:

Cloning this repository:

mkdir 42_cube3D && cd 42_cube3D && git clone https://github.com/biralavor/42_cube3D.git .

Compiling the executable file with Makefile.

It will generate a cub3d file

make

Calling the executable cub3d with a map file attached.

This executable needs a map file. You can check all map files already created at the folder maps/. There is more than 20 maps that could be added to the executable file. To do so, you need to:

./cub3d maps/{add_the_map_filename_here}

Or, you can go faster by calling the default.cub map by typing:

make go

Do you want to stress the executable?

We can help you with that! We have a Makefile prepared to assist you with your curiosity:

Run valgrind to verify memory leaks and invalid read/write at memory:

make val

Run gdb to debug

make gdb

Run game instructions

make help

Watch the gameplay of Cub3D!

Promo-video-Cub3D.webm

All 42 Badges -- the astronomer Human Coder -- were done by Larissa Cristina @mewmewdevart

About

This project is inspired by the world-famous Wolfenstein 3D game, which was the first FPS ever, to explore ray-casting. Pair-programming project with @GioGardinali

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •