Skip to content

Raycasting engine based off the famous game Wolfenstein3d, written in C and using the SDL library. This is a team project made as part of the cursus at 42.

Notifications You must be signed in to change notification settings

maxencealluin/Wolf3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wolf3d

Raycasting engine based off the famous game Wolfenstein3d, written in C and using the SDL2 library. This is a team project made as part of the cursus at 42.

Description

The goal of this project is to create a raycasting engine from scratch. The project is heavily inspired by the game Wolfenstein3D and the textures used are in direct reference to the game.

The game responds to keyboard and mouse input and places the player in a labyrinth that is defined in the file passed as argument. The player must wander in the labyrinth and find the end which will trigger the win screen. Sounds and musics are implemented through SDL_mixer.

Main features:

  • Raycasting engine with basic shading
  • Skybox
  • Collisions (can 'slide' on walls if an axis is blockde)
  • Can look around, sprint ('shift'), open doors ('e')
  • Map of level ('m')
  • Basic animation (fire gun)
  • Basic UI (only aesthetic)
  • Different zones for different set of textures
  • Real-time, 60 fps on our CPU

Usage

./wolf3d <map file>

Map file must follow a strict syntax detailed in the format_map file.

Installation

First you have to install the SDL Library, the following command will download the sources and install it:
make sdl

Once installed you can compile the project:
make

In case there is any problem during the download and installation of SDL2, you can use:
make sdlclean
make sdl

About

Raycasting engine based off the famous game Wolfenstein3d, written in C and using the SDL library. This is a team project made as part of the cursus at 42.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published