Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Text Based Adventure #238

Open
8 tasks
lemonsaurus opened this issue Jul 31, 2019 · 22 comments · May be fixed by #1653
Open
8 tasks

Text Based Adventure #238

lemonsaurus opened this issue Jul 31, 2019 · 22 comments · May be fixed by #1653
Assignees
Labels
area: backend Related to internal functionality and utilities category: fun Related to fun and games status: approved The issue has received a core developer's approval type: feature Relating to the functionality of the application.

Comments

@lemonsaurus
Copy link
Member

lemonsaurus commented Jul 31, 2019

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 lemonsaurus added status: approved The issue has received a core developer's approval intermediate labels Jul 31, 2019
@A5rocks
Copy link

A5rocks commented Aug 1, 2019

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

@Chlorophytus
Copy link

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.

@ghost
Copy link

ghost commented Aug 4, 2019

I'd love to give this a shot!

@SebastiaanZ
Copy link
Member

SebastiaanZ commented Aug 4, 2019

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.

@imPatrol
Copy link

imPatrol commented Aug 4, 2019

Hi, I have arrived Sebastian

@SebastiaanZ
Copy link
Member

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?

@imPatrol
Copy link

imPatrol commented Aug 4, 2019

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

@SebastiaanZ
Copy link
Member

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

@SebastiaanZ SebastiaanZ added the status: WIP Work In Progress label Aug 4, 2019
@ghost
Copy link

ghost commented Aug 17, 2019

@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.

@MarkKoz MarkKoz assigned ghost Aug 17, 2019
@ghost
Copy link

ghost commented Sep 23, 2019

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.

@sco1 sco1 unassigned ghost Jan 28, 2020
@sco1 sco1 removed the status: WIP Work In Progress label Jan 28, 2020
@ChrisGallardo
Copy link
Contributor

How many choices should the user make?

@Xithrius Xithrius added up for grabs Available for anyone to work on area: backend Related to internal functionality and utilities type: feature Relating to the functionality of the application. labels Mar 2, 2021
@Xithrius Xithrius changed the title [Feature Request] Text Based Adventure Text Based Adventure Mar 2, 2021
@Kronifer
Copy link
Contributor

Kronifer commented Mar 4, 2021

I would be interested in taking this!

@Kronifer
Copy link
Contributor

Kronifer commented Mar 4, 2021

@Xithrius is it ok if I take this one?

@ChrisLovering ChrisLovering removed the up for grabs Available for anyone to work on label Mar 4, 2021
@Kronifer
Copy link
Contributor

Kronifer commented Mar 5, 2021

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

@Xithrius
Copy link
Member

Xithrius commented Mar 5, 2021

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

@Xithrius Xithrius assigned Kronifer and unassigned Kronifer Mar 5, 2021
@Xithrius
Copy link
Member

Xithrius commented Mar 5, 2021

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

@MrKomodoDragon
Copy link
Contributor

Yes?

@Xithrius
Copy link
Member

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

@Kronifer
Copy link
Contributor

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

@Kronifer Kronifer removed their assignment Aug 23, 2021
@Xithrius Xithrius added category: fun Related to fun and games and removed category: retro gaming labels Sep 6, 2021
@wookie184 wookie184 added up for grabs Available for anyone to work on and removed status: WIP Work In Progress labels Sep 19, 2021
@Strengthless
Copy link

Strengthless commented Feb 24, 2025

Hi folks. We're a group of students from KTH DD2480, and we'd like to take on this issue. Can I please be assigned?

We'll be introducing an .adventure command that allows the user to play a text-based RPG. The plot will be JSON-based, with a graph-like structure, which allows the player to transit from one scene to another based on the decision they make at that point.

cc @Xithrius @SebastiaanZ

@Xithrius Xithrius removed the up for grabs Available for anyone to work on label Feb 25, 2025
@Xithrius
Copy link
Member

Sure! I've assigned y'all.

@Strengthless
Copy link

Some exciting sneak peeks 😄:
Image

@Strengthless Strengthless linked a pull request Mar 1, 2025 that will close this issue
22 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: backend Related to internal functionality and utilities category: fun Related to fun and games status: approved The issue has received a core developer's approval type: feature Relating to the functionality of the application.
Projects
None yet
Development

Successfully merging a pull request may close this issue.