Making a Fantasy Newsroom Bot

By Damien Crawford (Twitter,Website)

I was working on a game during the summer that involved managing a guild and doing paperwork in order for your adventurer to be able to do anything. I was considering how to set up things like quests, local characters and shops; the local stock market for trade goods and such, and so on — but I wasn't sure what guidelines I wanted, or where I even wanted to start.

Then I heard that PROCJAM Summer '18 was about to start, and decided to use it for inspiration. Making a twitter bot (using for an hour every day fit with my work schedule, and wouldn't be hard to have quick and tangible results. For the sort of information I wanted it to generate, the theme of a newsroom that reported on incidents and goings-on sounded interesting.

Thus began the concept for the Fantasy Newsroom Bot (@RPGNewsroomBot). After doing some research on how other people put their bots together, I started looking at actual news shows and considering what to make it report on. One of the big goals was to have quest concepts, but I felt like that was a narrow topic and wanted to make it more like a proper newsroom report, so that category was renamed “Employment”. With that category, I could also talk about specific regions that are looking for certain classes to participate which worked really well with my original game's concept. Weather reports are common on the news, so I added that in too; since I'm working with potentially magical weather, I also made the reports mention what sorts of impact on trade and magic that the weather affected. More report topics like politics, crime, and celebrity news were added too.

From there I had to figure out a generation method for the reports that was coherent enough to sound like a proper news report, but still random enough to be interesting. The first report I wrote was this:

"In Weather today, #itempre.a# #weathertype# #weatherentry#, #eleeffect# #percent#%."

The news reports for weather always start with the same introduction; the terms in between the hashes are what categories the words it uses are pulled from. #itempre.a# pulls a word that makes sense for an item prefix (Flaming, Astral, Iron, etc.), as well as putting an a/an in front of it. #weathertype# picks a type of weather system, #weatherentry# picks a way for it to show up, #eleeffect# picks what elemental type is affected and in what way, and #percent#% picks a number and adds a percent sign behind it. A report generated with this setup looks like this:

In Weather today, a patient tornado materialized, increasing Ice-type skills' power by 75%.

From there I focused on making three types of reports for each category for variety's sake, and adding more vocabulary for the bot to draw from. By the end of the jam it had about 16 different report types, and a lot of different ways for them to go.

As I continued to add to the bot it grew away from my original concept (to help with ideas for a game) and became its own project that I still add to from time to time. It now invents names of dungeons and magical diseases, and more is added every now and then. I do think that it would be interesting to make a game that actually uses it in some way, as some of the things that it comes up with are amazing and nothing I would ever have come up with on my own. However, I'm glad that this bot has become its own stand-alone creation, and I'm glad to have made it.