#Off A text-based RPG for the messaging client Slack.
- Our game is seperated into many small adventures, each of which is randomly generated, but still relies on the same layout.
- We currently support enemies, weapons, armor, potions, and miscellaneous items. The information on these items is regularly called from JSON files.
- Our game currently has two places, one uses items and enemies found in classic RPGs. The second embodies our love of memes.
- We are using Firebase to store the character information, which is generated by Python and Slack API.
This product was designed to be an easy way to play games on Slack. Due to the fact Slack is used as a messaging client for many companies, we named our product Off, to reinforcement the term "slack off". We created this project because we thought the idea would be really entertaining.
##Getting Started First, install Python 3.6.x on to your computer.
Next you will need to import the following:
pip install python-firebase
pip install slackclient
pip install requests
pip install markovifyTo get the BOT_ID for your Slack Bot you will need to run the following file. Before you run this code, change the Slack Token in line 7 to a slack token you need to create. You can easily create a slack token using: https://api.slack.com/docs/oauth-test-tokens
python print_bot_id.pyYou will need to specify the url for the firebase project you will be using. Using the BOT_ID you found using the previous command and the Slack Token you created, set up your bot in your repository.
export FIREBASE_URL="firebase url"
export BOT_ID= "bot id"
export SLACK_BOT_TOKEN="slack bot token"
Roadmap
Our product, “Off”, is a text base RPG game created for Slack. The name originated from a wordplay with the messaging app, “Slack” and the word, “Off”. The game is fully playable and easy to follow. Because the RPG was created during a thirty six hour event, improvements will obviously be helpful. Our goal with this product is to make an enjoyable RPG game that daily Slack users could fiddle with. There are many improvments needed to make this text based RPG more enjoyable. We believe by making our code open source we can pull ideas from many talented and interested developers to constantly better our product. RPG’s are very broad thus storylines and entities are constantly being created and updated therefore, developers contributing to our product will greatly help achieve our goal.
Improvements that would significantly improve our product would be to expand on our storyline and have more of an RPG vibe so that users will have an interactive and capturing adventures. Our teams plan to achieve this goal is to work hard so that developers will see a potential in our product and decide contribute to it. For the next six weeks, our plan is to create a more friendly api, clean up our source-code and add more to the game. While this is happenening we will gauge peoples opinion of our product by letting some users test it. Afterwards, if we receive positive feedback, we will continue to work on the product, but let it be more open to the public.
python-firebase: https://pypi.python.org/pypi/python-firebase/1.2
slackclient: https://pypi.python.org/pypi/slackclient
markovify: https://github.com/jsvine/markovify
Our contributors guide can be found at Off/CONTRIBUTING_TEMPLATE.md
##List of Commands in Slack
@Bot adventureIf your character is in stages 0, 1, and 2. This allows your character to progress to the next stage.@Bot allocate attribute numPointsThis will allocate the specified number of allocation points to the attribute.@Bot attackIf your character is in an encounter with an enemy, this command will allow you to start attacking. In each attack, both the character and the enemy will attack in an order decided on by luck.@Bot buy itemUse buy to purchase items from the general manager in the village.@Bot drink itemUse this command to drink potions to increase your character's health.@Bot equip armorChanges your current armor to another specified armor in your inventory.@Bot expAllows you to see your experience points and allocation points.@Bot fleeIf your character has encountered an enemy, this command will allow you to flee back to the village. By doing this, you will be reset back to stage 0 or your current adventure.@Bot helpThis command will print a list of all commands you can use in the game.@Bot inventoryAllows you to see all the items in your invetory.@Bot moneyThis will return the amount of money you currently have in your inventory.@Bot newChar characterNameCreates a new character for your username. Each Slack user can have multiple characters, each is stored in firebase with it's information.@Bot sell itemThis allows you to sell an item from your inventory to the general manager in the village.@Bot statsWill display your character's attributes.@Bot tradelistThis will shows the items the general manager has to sell in the town.@Bot travelAllows you to travel to another town with different enemies. This command is unlocked after defeating a boss and achieving level 5.@Bot wield weaponChanges your current weapon to another specified weapon in your inventory.@Bot whereamiTells you which village you had previously visited. This also specifies the pack of enemies in this area.