What A HELL
A roguelike and turn-based RPG game
Members
Au Wing Yan, Ada (3035783728)
Chau Hiu Man, Humen (3035783716)
About this game
YOU DIED. Welcome to the HEll!
In this game, you control a dead man who falls into hell with plenty of monsters. Now you must find a way out… or stay trapped and tortured forever.
Game Rules
- Enjoy is the first most important :D
- Turn-based battles with your strategy
- WASD for movement control
- When HP goes zero, player dies with permadeath
- When MP or Energy goes zero, player cannot attack in battle
- When Energy goes zero, there are random punishment for the player. (i.e. player's HP decreases 1 per action)
- Energy decreases when player makes any steps on map.
- Game goal: defeat all the bosses and achieve different endings.
Features
- Level-up system with skill points & experience level to upgrade player's ability
- Total 10 levels in the dungeon (hell). Different levels of the dungeon offer a range of difficulty in monsters corresponding with the range of value in treasure.
- Generally, the difficulty in monsters increases with procedurally generated levels of the dungeon.
- Chests could be found on the map.
- Each level has a different theme and boss. Also, there are 5 floors for each level.
- NO AUTO SAVING and perma-death(i.e. player character loses all health are considered as dead and cannot be used anymore), is included.
- But there is a saving point after defeating the boss for each level.
- Monsters, NPC and chests are shown in different colors.
How do the features match the requirements
-
Generation of random game sets or events
- Generation of map, monsters, NPCs, and items, such as weapons and armors, is random
- The attack value of player and the monster's damages to player are generated randomly according to the ability of player and the monsters
-
Data structures for storing game status
- Class Player defines all the status of player, it contains:
- player's status (inc. mp, hp, energy, maxMp, maxHp, max energy, max Exp, damage, defense, level, game level, and coin)
- vector of player's buffs and debuffs
- player x, y coordination
- player's name, role, gender
- Structures for items, healing, armor, and weapon, contains:
- name
- description
- functions
- cost and price
- Class Map stores in a 2D array for the landscape, generation of the map, and removing icons
- Vectors to store player's items and shop items
- Structure to store NPCs information and array of string to store NPCs' figures
-
Dynamic memory management
- array and pointer using in map generation
- Array for player status, interaction, items
-
File input/output
- savings is file output and loading is file input. Saving includes the following types of information:
- Level of the player
- The game progress of player
- The states (inc. HP, MP and energy...) of the player
- The ability of players (inc. damage and defense etc.)
- The items in player's backpack (inc. money, weapons, armors, healings)
- Player's equipment (player's armor and player's weapon)
-
Program codes in multiple files
- programs are divided into:
- action.cpp & action.h: movement of player character; interaction of players between monsters, NPC and chests; ending of game
- backpack.cpp & backpack.h: generation and storage of items; interface for backpack; interactions between players and backpack
- fight.cpp & fight.h: interface for battles; deal with player's actions in battle; set up of monsters' ability according to player game progress
- homepage.cpp & homepage.h: menu for player to save/load/quit game
- map.cpp & map.h: generation of map, monsters, NPCs and chests; monster's movement
- npc.cpp & npc.h: render NPC with talk screen; NPCs' ability and figure
- player.cpp & player.h: status of player character; upgrade of player; add & update buffs/debuffs on player
- saving.cpp & saving.h: save game and load game (game file is in [player's name].txt); deal with repeat of player's name in creating files
- screen.cpp & screen.h: render map screen; print player's status on right side of map; help menu; clear screen
- setup.cpp & setup.h: set up player's information and storyline at beginning
- shop.cpp & shop.h: render shop screen; generate shop items; deal with player's actions in shop
- main.cpp: execute file
List of Non-standard C/C++ libraries
- conio.h:
Compilation and Execution Instructions
- Our game are supported in all kinds of operating systems (i.e. Mac, Window, and Linux)
- Download & Set up:
- Open terminal on your PC and go the directory that contains our game
- In Mac and Linux, you can create our game execute file by typing "make main". In Window, you can create it by typing "./Makefile".
- Start game:
- In Mac and Linux, you can open our game execute file by typing "./main". In Window, main.exe is created instead of main. Thus, please open our game by typing "./main.exe" in Window.
- Start game by entering '1' in our game menu
- Load game:
- if you already started our game and defeated a boss, you can load your game file by entering '2' in our game menu.
- to load your file, please fill in your character's name in your game (* no need to type in .txt).