Narrative Design
Writing
Coding (Clausewitz Engine)
As an avid baseball fan and regular Stellaris enjoyer (obsessive), for all its virtues I felt the game lacked one of my favorite aspects of sci-fi worldbuilding: sports. Since the game is all about emergent storytelling and replayability, I also thought this would be a great way to challenge myself to craft some fun and meaningful story content where I couldn’t know what the player had experienced while still giving them a satisfying narrative arc.
Because I’ve put an embarrassing number of hours into the game, I was already intimately familiar with the way the devs structured their event chains (at least from a player perspective).
I knew I wanted to create an event chain where one of the player’s planets would randomly invent the sport of Podracing, and then the player could choose to participate in these ongoing events or not. Once I sketched out a rough narrative arc for the event chain and the initial text for the events themselves, I dove into the code to try and understand exactly how this could all come together.
I took an event chain I was familiar with from the game — Migrating Forests — and traced its footprints through every game file it touched to figure out how they all interacted with each other. Luckily, Stellaris is incredibly modder-friendly, so once I learned the syntax for their engine it became really easy (and super fun) to piece it all together.
The thrill I had when it all clicked into place for me was magical. I could see the building blocks and began to understand how to make my mod actually work. There’s a lot of fun in building a traditional branching narrative, but there was something uniquely thrilling about creating a bunch of distinct scenarios for the player to encounter that could build off each other to create a larger narrative unique to that player.
Once your planet invents Podracing, you get to either encourage or discourage it, which leads to different boosts for that planet and different possible outcomes for the first racing event. You get to choose whether or not to send an Admiral to participate, and if you do, they have a chance of winning, losing, or even dying.
The outcomes are randomized with different weightings and you can’t get the same outcome more than once in a single playthrough. I also wrote some late game events that depend on whether or not you’ve gotten a certain outcome. For example, there’s one race where your Admiral will lose to a young kid in a slapped-together silver podracer (sound familiar?). If you get that event, there’s a chance that in the last ever Podracing event, the kid will show up again as an adult and cement his legacy as a local legend.
To incentivize players to engage with the events, their leaders can gain powerful traits if they win or perform well (or, some negative traits if they try to cheat their way to the top).
With the initial version complete, I uploaded it to the Steam Workshop and expected to have to bribe my friends to try it out, but it became one of the most popular Stellaris mods for the first two weeks of its release, and has inspired tons of creative feedback and feature requests. I’ve since added an even more complicated Lightcycle event chain based on Tron, and am working on more additions all the time.
This project was so much fun and the reception has been beyond what I’d hoped for. And now that I’ve got a taste for emergent narratives, I won’t be looking back.