You, the knight, are exploring the ruins of a vast world. This project utilizes state pattern to generate different locations, and add functionality to each location. Each location exists as a state, and traversing between the states requires input from one of the methods defined in the State class.
Currently, there are 4 locations:
- Castle
- Cave
- Dungeon
- HQ
The knight can "explore" each location. Exploring a location can yield either fortune or misfortune of considerable proportion. It is up to the player when to explore and when to travel to another location.
Please submit as many pull requests as you would like!
- New pull requests will be welcome additions to this project. I have sent one pull request that implements an additional location and creates random actions at the start of a user arriving at a destination.
Functionality that you can add:
-
|!| More locations! 4 locations aren't very many- make this kingdom feel like its own world by creating paths (and blockages) between different areas the knight can explore
-
|!| Additional commands! AT the moment, the knight can only explore the current area. In a real old-style RPG, the knight would be able to do all sorts of things! For instance, maybe implement a random encounter enemy system, and code in battles between ferocious monsters! Or you can implement a feature that allows the knight to eat food or stock up on supplies!
-
|!!| Weapons/Armor! All RPG's should have some sort of weapon/armor system. Implement something where you can equip items and armor to change the tide of battles! (also implement battles)
-
|!!| Multiple Players! Currently, you can define multiple knights and have them explore each area. But what if a knight could interact with one another? Implement fighting, trade (currency, weapons, armor), and dialogue interactions.
-
|!!!| Web Front-End! No RPG is complete without a Web Front-End. Stylize the front-end to make for a flashier look, add functionality to make it a text input game (maybe change the inputs to be more user friendly) and connect that to a server and a game with Websockets!
-
|!!| Multiple Player Functionality! Imagine playing an RPG on a web-front-end, being able to enter in a username, and then also being able to randomly interact with users who are at the same location as you! Not to mention that playing the game in two locations at once would also be nice...
-
|!!| Store Database Information! In case the server closes, store the information in a database/file that's readily accessible to keep any progress for a specific user
-
Any other functionality you can think of- be creative!
|!| marks "intensity" - some additions are more time-consuming than others
If you made it this far, congratulations! You are ready to start programming. Any additions whatsoever are appreciated.