sir-lancebot icon indicating copy to clipboard operation
sir-lancebot copied to clipboard

Text Based Adventure

Open lemonsaurus opened this issue 6 years ago • 22 comments

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.

lemonsaurus avatar Jul 31 '19 22:07 lemonsaurus

Quick question: Could it be a rogue-like? (Just asking, I don't really think I could do this)

A5rocks avatar Aug 01 '19 13:08 A5rocks

Putting some notes down here: I have worked with recursive divide/etc. maze generation algorithms in an obscure game engine, but not with Python.

I was also thinking you can use the arrow indicators to move around, in reactions.

Chlorophytus avatar Aug 04 '19 09:08 Chlorophytus

I'd love to give this a shot!

ghost avatar Aug 04 '19 20:08 ghost

There are multiple people that have expressed interest in this issue, maybe we can work out a collaboration? I know Patrol was looking for someone to collaborate with for this issue on server, but they haven't commented here on the issue yet.

Edit: I've pinged Patrol in the seasonalbot-chat channel; let's hope they'll join the conversation here, too.

SebastiaanZ avatar Aug 04 '19 20:08 SebastiaanZ

Hi, I have arrived Sebastian

imPatrol avatar Aug 04 '19 20:08 imPatrol

Hi! You mentioned on server yesterday that you want to take a shot at this, but would really like to work together with someone. Maybe you and @glowingrunes can work something out for that?

SebastiaanZ avatar Aug 04 '19 20:08 SebastiaanZ

Yeah! of course, I would just need his discord so we can communicate better

imPatrol avatar Aug 04 '19 20:08 imPatrol

@imPatrol and @glowingrunes are going to collaborate on this. I'll mark it as "in progress".

SebastiaanZ avatar Aug 04 '19 21:08 SebastiaanZ

@imPatrol has told me that he no longer wants to collaborate on this project, so I'll be working alone on this for the moment. I'm open to working with someone new, but in the meantime I'll just be doing my own thing.

ghost avatar Aug 17 '19 20:08 ghost

Hello! It's been a while so I thought I'd give you a quick progress update. I've been collaborating with @Chlorophytus on this. Between us, we haven't had much time to work on it, but so far we've made the room navigation and an inventory system. We've got a long way to go, but we have a team Trello board with our remaining tasks on. I'll report back once we hit the next milestone.

ghost avatar Sep 23 '19 17:09 ghost

How many choices should the user make?

ChrisGallardo avatar Oct 04 '20 03:10 ChrisGallardo

I would be interested in taking this!

Kronifer avatar Mar 04 '21 20:03 Kronifer

@Xithrius is it ok if I take this one?

Kronifer avatar Mar 04 '21 22:03 Kronifer

Hi @Xithrius , please add @MrKomodoDragon to the issue, were doing this together

Kronifer avatar Mar 05 '21 02:03 Kronifer

Alright. Good luck on development! Remember, if you have any questions, feel free to post in #dev-contrib.

Xithrius avatar Mar 05 '21 04:03 Xithrius

They will have to participate in this issue if you want me to assign them.

Xithrius avatar Mar 05 '21 04:03 Xithrius

Yes?

MrKomodoDragon avatar Mar 05 '21 04:03 MrKomodoDragon

@MrKomodoDragon @Kronifer what's your status on this feature?

Xithrius avatar Aug 23 '21 07:08 Xithrius

I don't think it's happening at the moment

Kronifer avatar Aug 23 '21 14:08 Kronifer