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.

USAGE

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 markovify

To 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.py

You 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"

PLAN/ROADMAP

                                                        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.

OTHER SOURCES OF DOCUMENTATION

python-firebase: https://pypi.python.org/pypi/python-firebase/1.2
slackclient: https://pypi.python.org/pypi/slackclient
markovify: https://github.com/jsvine/markovify

Contributor Guide

Our contributors guide can be found at Off/CONTRIBUTING_TEMPLATE.md

List of Commands in Slack

  • @Bot adventure If your character is in stages 0, 1, and 2. This allows your character to progress to the next stage.
  • @Bot allocate attribute numPoints This will allocate the specified number of allocation points to the attribute.
  • @Bot attack If 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 item Use buy to purchase items from the general manager in the village.
  • @Bot drink item Use this command to drink potions to increase your character's health.
  • @Bot equip armor Changes your current armor to another specified armor in your inventory.
  • @Bot exp Allows you to see your experience points and allocation points.
  • @Bot flee If 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 help This command will print a list of all commands you can use in the game.
  • @Bot inventory Allows you to see all the items in your invetory.
  • @Bot money This will return the amount of money you currently have in your inventory.
  • @Bot newChar characterName Creates a new character for your username. Each Slack user can have multiple characters, each is stored in firebase with it's information.
  • @Bot sell item This allows you to sell an item from your inventory to the general manager in the village.
  • @Bot stats Will display your character's attributes.
  • @Bot tradelist This will shows the items the general manager has to sell in the town.
  • @Bot travel Allows you to travel to another town with different enemies. This command is unlocked after defeating a boss and achieving level 5.
  • @Bot wield weapon Changes your current weapon to another specified weapon in your inventory.
  • @Bot whereami Tells you which village you had previously visited. This also specifies the pack of enemies in this area.

Built With

Share this project:

Updates