Skip to content

yuvalkansal/ENGG1340-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ENGG1340-Project: Group 115

Group Members:

  1. Yuval Kansal (30356643497)
  • BEng Year 1 student
  1. Abhigyan Kashyap (3035661669)
  • BEng Year 1 student

Game Description:

The game we present here is an example of a strategic text-based retro adventure game, wherein the storyline focuses on the player finding/rescuing his brother from an old dilapidated castle. From solving coded cyphers to taking major gambles, the choices the user makes ultimately decide his fate, and that of his brother.

The Plot:

It all started when your younger brother Sean and you decided to spend the summer break with your aunt in her quaint village. You had heard stories about the old run-down castle situated at the far end of the village, particularly the legend of the monster that had been imprisoned there. That evening, as you stared the castle from the window of your room, those thoughts re-emerged: Was it all true? Could there really be something there? Seeing your tense and nervous face, your brother cracked up and challenged you to a game of hide-and-seek at the castle. Embarrassed and determined to not come across as a wimp, you accepted it.

He’s already gone off to the castle, and now as you walk up to it, you look up at the menacing towers and realise there’s no backing out of this one. You know you don't want to wait around and see if the myth is real or not: you just want to find your brother and get out of this creepy place as soon as possible. You start walking up to the courtyard, and remembering all the other times Sean has gotten you into trouble, think: "Ah shit, here we go again…"

Instructions:

  • The game starts off with you walking up to the courtyard, which is interspersed with skulls and bones. You come across a few weapons. But here's the catch: You can only carry one of those with you. The choice is not going to be easy and what you choose will go a long way in deciding your fate in the game.
  • After picking up a weapon, you get to choose between two ways that lead you to different locations in the castle. You can either go to the towers or the scary dungeons.
  • After choosing a path, you must face and overcome many obstacles to locate your brother.
  • Choose wisely and remember your ultimate goal find your brother and get out of the place, pronto!
  • Best of luck navigating through this myriad of adventures, and may the odds be ever in your favour!

Game Features:

  1. The game consists of many alternate endings which depend on the decisions you make throughout the game.
  2. At every corner the player's wit and wisdom is tested by ciphers and riddles such as the three door riddle and the Caesar's Ciphers, that eventually lead him to make the right choices.
  3. The player's data such as his username and his progress are stored in his personalized file using dynamic memory manipulation in files.
  4. Probability of overcoming hardest obstacles is jointly dependent on the weapon the player chooses and using the random function to generate probability (e.g if you have the right weapon, your winning probability might be 75% -90% whereas if you choose the wrong weapon it would only be 50%). We use the die roll and the coin toss to determine this probability at various places in our game.

Coding Techniques Used:

  1. Implementation of random generation of events: Outcomes of various levels and fights of the game rest on events like the toss of a coin, or depend on a random statistic generated by the weapon the user chooses.
  2. Data structures: Data structures such as vectors shall be utilized to efficiently store game status. We have not used classes since we are not using any sensitive information like passwords and thus, there is no requirement for them as such in our game, as none of the user's information will be hidden from him/her.
  3. Dynamic memory management: Dynamic memory management has been used in various places such as creation of temporary strings to open the required user files using usernames and these have been deleted later on to free up memory.
  4. File input/output: Files shall be used to store the various levels and their branches and display them accordingly. They shall also store the game status.
  5. Program codes in multiple files: The code for the program has been stored in multiple files. Multiple header files have been made and included according to their requirements. This ensures that the code is modular.

How to Start the Game:

  1. Clone and Download the files from GitHub using the following command:
git clone https://github.com/yuvalkansal/ENGG1340-Project.git
  1. Open Terminal/Command line on your system.
  2. Go to the enclosing folder.
cd ENGG1340-Project
  1. Write the following commands for running the game:
>make
>./main
  1. To run the game later, you can just use >./main
  2. To remove all .o files and the main executable file, you can use the command >make clean

Data Structure:

Our data structures will encompass vectors and strings with data members such as:

string username; //to store the name of the user
vector<string> LEVEL_CODE; //to store the level the user is currently on and his progress if her returns back to the game

Advanced Features:

  1. The game makes extensive use of files to display the features of the game, such as the weapons, the castle, etc.
  • Files have also been used to store the information about the user such as his username and other details such as weapon choice.
  • Program has been divided amongst various files. Different header files have been made and included as per the requirement of the program to ensure modularity of code.
  1. Furthermore, we have employed an extensive use of ASCII art to portray many features of the castle and have designed some of the ciphers ourselves to ensure an enthralling experience for the user.
  2. We give the user the option to exit game at any point of the game and save his progress. This ensures that we store individual progress and the user can always come back to where he left off without any loss of his data/progress.

Playing the game:

  1. Our game consists of simple commands such as pressing 1 or 2 or X or E or B or entering the answers of the riddles in one word through the keyboard.
  2. At the start of the game, the user can press '1' to login as an existing user or press '2' to sign up. Or login function immediately detects if you enter a new username that does not already exist and directs the user to the sign up function.
  3. We also have a help page which you can refer to at any level by pressing 'H' and come back to your level by pressing 'B'.
  4. The user can press 'X' at any level to exit the game. The progress will be saved and he can login anytime again using the login function at a later time.
  5. There are multiple endings to the game. It depends on which way you go to. We have 33 alternate levels that the user may get into and the game has over 5-6 different endings.

About

A group project for ENGG1340 taken in sem 2 of year 2019-20

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors