Description
Slay the dragon! Implement an old-school text-based adventure for our bot!
You can write the adventure any way you want, and pick any theme you want, no dragons required! The only hard requirement is that you must implement this in a way that isn't super noisy. That means, we can't have the bot posting dozens of messages every time you play a game.
An example of an implementation that isn't very noisy would be that the text is posted in a single embed that gets updated whenever the game progresses. Player input could happen through emote reactions rather than having the player typing. That would contain the entire game in a single message, rather than requiring tons of messages to be posted from either the bot or the player.
If you'd like to tackle this with a friend, please feel free to!
Implementation details
- Come up with a story. Your story shouldn't be endless, this should be possible to complete in 5-10 minutes max.
- Design the levels and the game progression around your story. What are all the rooms the player can enter? Which ones will progress the story, and which are dead ends? What can the player see in these rooms? What's the win condition? Are the multiple endings?
- Write a playable prototype of your game as a bot command. It's fine to write this in a noisy way, initially.
- Make all player interactions reactions instead of having the player type commands.
- Make the entire game happen in a single message that the bot edits, instead of having the bot post new messages.
- Create a pull request with screenshots (or gifs), showing off what you've made.
- BONUS: Add graphics to show off stuff like bosses on special rooms.
- BONUS: Make a system that is possible to easily extend with new campaigns! The campaign data might be serialized as a YAML, TOML, or JSON file, and perhaps the command can take an optional argument with a
campaign_name
to load a different file than the default. This will make it possible for other users to create more campaigns without having to recreate the bulk of the logic.
Additional information
- Add your feature to the evergreen season.
- Keep us updated on your progress by leaving comments!
- Make sure to give you commits a descriptive commit message
- Please note the style guide and conventions listed in the various contrib documents
- If you use any graphics for your game, please make sure the assets are either created by you, or licensed under a compatible license to our MIT one. Ideally the assets should be licensed as Creative Commons or 100% free, but if you're comfortable navigating licenses, there may be other compatible licenses too.