timnicolas / bomberman

3d remake of the classic game Bomberman in C++ with OpenGL.
https://tnicolas42.github.io/bomberman
MIT License
7 stars 0 forks source link

bomberman [42 project] Build Status

logo

πŸ’£ The project

A 3d remake of the classic game Bomberman.

The project is fully written in C++ with the OpenGL framework.

πŸ“š Rules

Bomberman is a series of video games from Hudson Soft where the player plays a bomber, the aim being to use bomb to protect yourself from opponents and exit the level.

View the full game rules in the in-game help menu.

demo gif

⌨ General controls

You can see and update all controls in the in-game settings menu.

control menu

Some hidden debug controls:

Key Description
F1 Show the menu navigation shortcuts
F3 Show debugs infos (fps, nb of entities, ...)
C Enable Free Flight Camera (only available with the DEBUG flag)
WASD Move the camera (only available if Free Flight Camera is enabled)

πŸ’Ύ save & load system

Save and load your progress:

save menu

πŸ‘©β€πŸ’» Cheatcodes

You can enter cheatcode by pressing the / key.

cheatcode menu

Command Description
/help [ command, ... ] Get general help or help on a command.
/clear [ history | all | lines ] Clear lines or/and history.
/log \ \ Log a message in the system console, /log list to get the list of types.
/tp \ \ Teleport player to a given position (if possible). Use relative position with ~ (~-1, ~3, ...)
/tp ~3 ~: Tp the player 3 blocks right to you.
/getbonus <bonus ...> Get a bonus effect, /getbonus list to get the list of bonus.
/loop \ \<commands ...> Execute commands nb times, example:
/loop 3 "/clear" "/getbonus life"
/exec \<commands ...> Execute multiples commands, example:
/exec "/clear" "/log info \"cleared\""
/summon \ \ \ Summon an entity at specified location, /summon list to get the list of entities
/unlock \<levelId ...> Unlock specified level
/rmbonus \<bonus ...> Remove a bonus effect /rmbonus list to get the list of bonus
/restart Restart the current level
/debug [ show | hide | reset ] \<elem ...> Show/Hide/Reset debug element, /debug list to get the list of elements, example:
/debug show collider
/volume [ master | music | sound ] \ Change master/music/sound volume. /volume list to get the list of volumes's type

πŸ’» Installation

Bomberman is compatible with OSX🍎 and Linux🐧.

If you are on OSX🍎 you can directly download the dmg build here.

πŸ‘· Manual installation

Clone the repository and install the dependencies

git clone https://github.com/tnicolas42/bomberman
cd bomberman
make install

Compile the project

make -j8
make -j8 DEBUG=1  # to compile in debug mode

Execute the game

usage: ./bomberman [-u] [--reset] [--reset-settings] [--reset-history] [--reset-saves]
    --reset --reset-all: reset all users data (settings, history and saves) before starting
    --reset-settings: reset all users settings before starting
    --reset-history: reset commands history before starting
    --reset-saves: reset all users saves before starting
    -u, --usage: show usage

πŸ—‘ Uninstall projet

To uninstall the project, and remove app, settings and saves's games

make uninstall

πŸ—œ Makefile and Build

If you need to generate a .dmg for osx

make create_dmg

ℹ️ To get more infos about the makefile commands

make help

πŸ“– The code is fully documented with doxygen

Check the documentation here

🍩 3d models

All 3d models are made by us with blender, some are animated using Mixamo, Inspect 3d models here.

πŸ¦„ Authors

See also the list of contributors who participated in this project.

License

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