Skip to content
This repository has been archived by the owner on Jan 4, 2022. It is now read-only.
/ 42-Doom Public archive

In continuity of 42-Wolf3D, advanced 2.5D graphics and 3D physics engine.

License

Notifications You must be signed in to change notification settings

kibotrel/42-Doom

Repository files navigation

42-Doom

CodeFactor

Header

This project was made to learn about graphics and physics engine techniques along with audio play-back and mixing using SDL2, libsndfile and libao.

Install

Works on macOS Mojave 10.14.6 and Ubuntu Bionic Beaver 18.04.4, not sure about portability on other operating systems. This project contains several submodules that you must initialize beforehand :

$> git clone --recurse-submodules https://github.com/kibotrel/42-Doom.git
$> cd 42-Doom && make

If you are running under macOS, you'll need brew installed to compile the project since some dependencies are installed via this package manager.

Usage

Run the program

Once the program is compiled, run it with the following command line :

$> ./doom-nukem

If you don't pass any argument to the program, it will allow you to play in an hard-coded map used as a tutorial that explains some of the mechanics implemented in the engine. You can play any well formatted map by passing it as argument like :

$> ./doom-nukem map.data

Features

This program contains a three different sub-menus accessible through the main one :

  • Game Test-play either the tutorial or any map.
  • Editor Build levels and tweak parameters in real-time.
  • Settings Update game-rules and modify engine's behaviors.

For more information, click on each sub-menu to be redirected on its wiki or here for the main wiki page.

Error management

Whenever one error occurs during the process, it leads to a complete memory free before exit() with an error code and the correct error message displayed on the standard output. You can retrieve the code by running :

$> echo $?

More information available in the Error management wiki page of this project.

Screenshots

Screen2

Screen4

Screen0

Screen1

Screen3

Credits

Ressources

Helpful links

Colaborators

  • @nde-jesu - Editor menu and map generation.
  • @reda-con - Map parsing and user interactions.
  • @lojesu - Texture mapping and settings menu.