— a game made for ENGG1340 group project
Redacted due to privacy concerns
BombEscape is an uncompromising roguelike game. You will play as Marvolo, a rapacious wizard who overstudied dark magic and is now imprisoned in an unknown dungeon. In order to survive, Marvolo has to familiarize himself quickly with a randomly-generated environment that contains dangers including bombs and traps.
Enter a chaotic world full of pitfalls and bombshells. Try your best to gather resources scattered in this world to arm yourself. Good luck to your survival journey. Play your way as you unravel the mysteries of this strange dungeon.
- Marvolo must stay clear of the traps and bombs that are generated at random in the dungeon. If he gets in the range of explosion, he dies unless he has an item that protects him.
- Marvolo can destroy the traps by explosion either by placing a bomb himself or pushing those ones dropped into the dungeon close to the bomb.
- Marvolo can gain new abilities by picking up items in the dungeon.
- The longer Marvolo survives, the higher the score.
The map for the game is randomly generated to ensure a unique experience.
On the coding side, we organized the map generation utilites, the map class (Playfield
) itself and map rendering utilities into different files to limit bloating of a single file.
You can retry the game after you have died. In detail, returning to the main menu resets the GameState
object which contains your current status in the game, including your character (Player
), the map (Playfield
), and entities (stored with std::vector<Entity*>
, a dynamic list of pointers, in Playfield
).
The player can use the keyboard to control Marvolo.
You can also change the key bindings by editing the config.txt
file, which will be generated the first time you start the game. The key values are stored as their decimal ASCII codes.
↑
/←
/↓
/→
to move Marvolospace
to place a bomb in front of Marvoloenter
to confirm selection
The following non-standard C/C++ library has been used in this project:
curses.h
/ncurses.h
, for acquiring user input without blocking the processing and rendering the UI and graphicsunistd.h
, for using Linux utilities
Run make
under the root directory of the project (i.e. where this file is located) to compile.
If you ran into issues with make
, you can try make clean
and then try again with make
.
The executable file, generated once you have run make
, is located at bin/bombescape
. Note that config files and logs will be placed at where you called the executable file, not necessarily where the executable file is located.