Blog

A Stranger Things fan game powered by large language models

Posted on    by
Blog

A Stranger Things fan game powered by large language models

By 13 May 2025May 14th, 2025No Comments

Large language models (LLMs) offer new possibilities to engage with characters and stories from popular media. Writing in Transformative Works and Cultures, Nicolle Lamerichs predicted that with the advent of AI, ‘participatory culture will not only comprise like-minded individuals but also humans, nonhumans, businesses, data, and interfaces.’  The uptake of generative AI has been slow in traditional media production, but it may soon have a wider impact. Similarly, thanks to open-source models and frameworks like Ollama, fan communities are already building chatbots and other applications based on familiar IP story worlds.

Taking Lamerichs’ prediction as a starting point, I wanted to explore what is possible right now using off-the-shelf tools. Can LLMs enrich our interaction with a cast of characters from a TV show script? These are texts, after all. Directly generating video will have to wait, although local models are already making amazing strides.

To begin, I scraped about 8000 words of text from the Stranger Things Wiki, a fan-made online website that features an encyclopaedic database of descriptions about the plot, locations and characters of the show. I also found some (unauthorised?) scripts online allowing me to add relevant character dialog as well. I saved the text in several files associated with key locations from Seasons 1 and 2. These were  Hawkins Middle School, the Palace Arcade, the National Laboratory and Mike’s neighbourhood, where a lot of the action unfolds.

The player can “walk” around the locations like in a traditional text adventure game: by typing ‘East’, ‘West’, ‘North’ and ‘South’.  My coding skills limit the navigational possibilities, but at least the text adventure format is accurate to the time period of the TV series. When a player investigates a specific location, the program sends a prompt that includes that location, the time of day in the game, and other details I have set.

A typical output to the player looks something like this:

The language models reside on our own local server. It has a powerful GPU that can generate the AI text quickly  (although there is still a delay). When we upgrade to the latest Nvidia GPUs later this year, it should be able to return text instantaneously. However, this remains an expensive prospect for running a text-based game for most people. This is one of the limitations currently holding back widespread, local use of models for inference in interactive games.

There is a diversity of models available for use with Ollama, and more are added every week. They range from the small Llama 3.2:3b model I’m using in the video demonstration, to larger and more capable models like DeepSeek R1, and Qwen 3, which comes in a 32 billion parameter version that is exceptionally capable but requires more hardware. As language models get better, I can swap new ones in to see how they deal with the fictional world and the evaluative tasks I set in the game.

Another way I use LLMs is to determine the outcome of the final battle against the ‘AquaGorgon’ (my fan interpretation of an elemental final boss). Here, I feed the model some details about the fight, and I ask it to come up with a ‘win’ or ‘lose’ determination about the player’s chances. A different model specialised in creative writing then narrates the outcome of the battle. If the first model gives a ‘thumbs up’, then the program instructs the writing model to narrate a victorious outcome, still keeping track of what the player is holding in their inventory. The reason I do it this way is so that the main game program can track a variable indicating whether the player won or lost, and the player can get a more satisfying fictional description from a model specialised in writing prose.

Readers may notice that using concepts from Dungeons and Dragons helps the language model better understand its assignment. Stranger Things itself leans heavily on the 1980s tabletop role-playing theme. By telling the model that it is playing the role of a game master, it immediately clarifies that this is a fictional world, and the AI shapes its output accordingly. Using the prompt ‘D&D’ is a shortcut to achieving a useful response from the model.

Another thing I discovered while working on this project is that language models enable entirely new possibilities for game design. To have a better chance at defeating the AquaGorgon, the player can search for items around the game world. These items are – like other elements – generated by an LLM. I store them as an array of strings, each one describing a different unique object. These items were never programmed into the game; I can’t predict what the model will propose. But since they are words in strings of text, I can feed them into the final battle evaluation prompt, and let the model decide if items are useful in that context. The blurring of the line between hard-coded game data and creative writing is mind bending and opens up infinite possibilities in terms of content and development workflow. Imagine a game in the future where new magic potions can be added just by describing them out loud.

Finally, on the question of AI’s impact on fan works, I am persuaded by Lamerichs’ argument that this is an important activity to study. As traditional media shows trepidation in adopting AI technology, we should look closely at what fans are doing. Legal scholars will have noticed the potential copyright, data protection and personality rights issues introduced by this demo. These issues will only get more intense as skilled developers use the latest models and techniques. A fundamental question is, will IP rightsholders like Netflix tolerate these AI fan works, as they have done in the past with fan fiction? LLM-powered interactive experiences could present a whole new world of legal challenges.