I made a Twitter Bot

I’ve been playing a lot of Spelunky 2 since it came out in September. I’m also a fan of house rules in games, and self-imposed methods of play.

I wanted an excuse to stop playing “to win” so much, and start engaging with all of the small systemic corners of the game that I don’t see so often. As an example: I think the camera is a really cool item that has some fun interactions, but I never use it because it’s just not high on my personal list of priority items for winning the game.

So my playful solution to this was to create a Twitter bot that generates unusual Spelunky challenges that are designed to take me out of my comfort zone. It’s running now and it’s called Spelunky Dare.

Every day the generator will spit out a dare, which is a randomly selected set of tasks and restrictions to complete during a run. You win by performing any three of the five task prompts you’re given.

I arrived at this format mainly so that there would be a better chance of a dare being winnable on any given Spelunky seed. As I have no way of knowing what items, level elements and occurrences will show up when someone plays, it wasn’t possible to prescribe the challenge with absolute specificity. But I came to actually enjoy the looseness of the three out of five format and how that affected the play experience. It gives players a fun degree of control over how to handle the challenge they have on their hands, and encourages planning on the fly as circumstances change over the course of a run.

Another fun touch I was able to build in: the difficulty starts easy on Monday and gets progressively harder throughout the week, like a daily crossword puzzle. (More games should use this structure!)

Hitman Roulette (https://thekotti.github.io/hitman.html)

I was partly inspired by Hitman Roulette, which was a fairly simple randomiser site that encouraged wild, unusual playthroughs of Hitman (2016). The site gave you a random selection of prompts, which you would treat as additional mission requirements. Playing using the site would introduce a lot of new and unfamiliar problems that required players to come up with fresh creative strategies in a game that they were mostly very familiar with.

One way in which I deviated from Hitman Roulette is that I wanted to provide one challenge per day instead of putting out a website that could generate them on demand. There’s an element of ceremony and importance to having a single “canonical” challenge for the day that I enjoy.

The Perchance editor screen

I built the bot using a platform called Perchance (which I recommend trying out if you’re interested in experimenting with random text generators!). I’ve used Perchance before for some tiny projects, so I had a little bit of experience there (it’s very good at making NPC name generators for tabletop RPG sessions 😉). However, it was my first time making a Twitter bot, so I was expecting to get stuck on that side of the process. To my surprise, I had a very easy time hooking the generator up to a free service that scrapes an RSS feed every day and tweets its contents. And that was it! It’ll run itself without any need for maintenance as long as the generator service and the RSS feed both stay up. I do have plans to add some more prompts to the generator though, and perhaps improve on the logic that decides what tasks can and can’t be chosen together in the same dare.

I was surprised to see that there was a pretty instant positive response to it when I showed it a couple days ago. A few people on the Eggplant Community Discord thought it was cool, and then eventually Derek Yu retweeted my post about it and it rapidly gained the attention of Spelunky fans on Twitter. It’s even been streamed on Twitch!

It’s very satisfying to watch streamers on Twitch puzzle through a challenge they’ve been set by the bot. Sometimes they ponder over the wording of a task and vocally weigh up the implications of what it means; one streamer took to chanting “don’t rescue the dog” over and over again in an effort to break the learned habit. Sometimes they bullishly attempt to go for all five tasks, and sometimes they strategically consider which of the three tasks are most viable on their particular run. It’s really cool to see how my little designed system interacts with the game, and the way players think differently about strategy in it.