Generating a play data file of Dungeon Crawl Stone Soup using GPT-2

Week 10: Dungeon Crawl Morgue Generator

Overview

A screenshot of Dungeon Crawl's ASCII version

Dungeon Crawl Stone Soup is a roguelike game that is playable in the web. The web version of the game stores 'morgue files' in the server, which records the information of the player when the game has ended. I collected these morgue file data and trained them into Runway’s GPT-2 model.

Data collection

Dungeon Crawl's morgue page containing recent player data
Python code for running Selenium
Example of the morgue file, containing player data

You can see a list of recent game datas as .txt files from here. I used python’s Selenium library to automatically save all the txt files from the page. As a result, I collected a total of 72 .txt files which includes the play data of 72 gameplay sessions.

Training

Training 72 txt files inside Runway's GPT-2
Work-in-progress screenshot of training the model
Work-in-progress screenshot of training the model

I put all the document-separated text data into Runway’s text train tool, which uses GPT-2. It took approximately 60 minutes to train them.

Output

Generated text from the trained model (1)
Generated text from the trained model (2)
Generated text from the trained model (3)

While some of the text was almost expected and could be easily seen from the existing morgue files, it was surprising to see the GPT-2 generating some new elements that weren't included inside the game.

For example, the second screenshot above mentions the Frostmistress, but there is nothing called the Frostmistress inside the game. Also, I could see the GPT-2 trying to generate some ASCII dungeon map inside the game, since the trained data also contains some map data.

While some of the results contained legible results, most of the results were hard to decipher since it contained a lot of symbols. Preprocessing and splitting the training data would have made the results more plausible.