Game Design – NORTHWAY Games https://northwaygames.com Makers of Rebuild and I Was a Teenage Exocolonist Wed, 29 Nov 2023 00:16:20 +0000 en-US hourly 1 https://wordpress.org/?v=6.0.3 The Narrative Octopus of I Was a Teenage Exocolonist https://northwaygames.com/the-narrative-octopus-of-i-was-a-teenage-exocolonist/ https://northwaygames.com/the-narrative-octopus-of-i-was-a-teenage-exocolonist/#respond Sun, 01 Oct 2023 17:00:51 +0000 http://northwaygames.com/?p=5838 Originally posted to GameDeveloper.com in August 2022:

How the home-rolled scripting language Exoscript helped us design a flexible open world narrative of nearly 600K words.

Solving a Mystery with the Gang
Solving a mystery in I Was a Teenage Exocolonist

My favorite narratives are ones where the reader – or player – is a participant, taking the author’s text and telling their own stories with it. For our narrative RPG I Was a Teenage Exocolonist, I wanted this: organic worldbuilding, characters with their own lives, replayability, and major events as signposts in a larger narrative space the player can explore. Not a linear visual novel, but a loose and vast narrative intertwined with deckbuilding and stats raising, dynamic yet deterministic.

I’m Sarah Northway, co-founder of Northway Games and creator of I Was a Teenage Exocolonist, as well as the narrative city-building series Rebuild and other games. I grew up an avid reader and writer before games became my life. I even considered writing a young-adult sci-fi novel instead of this game, but I know my strengths lie in programming and game design, and it would be a waste not to combine them with the story I wanted to tell.

With Rebuild 3, the similarly large 200K word narrative was delivered as an assortment of procedurally generated events involving a post-apocalyptic settlement. But for I Was a Teenage Exocolonist, I had a new challenge: to tell a coherent narrative along a 10-year timeline, involving characters who grow up, change dramatically, and may (or may not) even die mid-game.

I worked with co-writer and narrative designer Lindsay Ishihiro to produce Exocolonist’s huge and complicated narrative, with approximately 6 novels’ worth of text and 800 triggered events.

Collecting Roots in the Prosaic Plains
Clicking a question mark while exploring will start a story event

The Octopus

With our focus on replayability, I wanted players to only see a small amount of the narrative during each life, but without forcing them into one track at a time. For a dynamic open world, we’d need events to occur with or without you there to witness them, and you could pop in on a plotline in the middle of some crisis which might be too late to solve.

I wanted you to see the world from different points of view as you grow up in the game: as a child or an adult, as a farmer or a soldier, as a romantic or a rebel.

A branching narrative wasn’t going to cut it, or at least not just one. We needed many different plotlines overlapping and affecting one another, and hundreds of one-off triggered events to build a narrative world you could explore at will. And we couldn’t always control what order events would fire in, or what state the world would be in when they did.

Our narrative wasn’t a branching tree, but a juggling octopus. Flexible and interconnected, with a core narrative and many wriggling limbs.

Closest thing we have to an Octopus: the Vriki
What passes for an octopus in Exocolonist: the vriki

Event Categories

Our 800 narrative events break down into these types and trigger methods:

1) Main plot

These occur in every playthrough, and tie the game together with the consistency of changing seasons. Every year there is an event for your birthday, then the Vertumnalia harvest festival in midyear, then an event during glow season as the planet begins to reject the colonists’ presence. Unique challenges happen during specific years, always on the same date in every life, but the outcomes can be changed by your decisions and skills.

The predictability of main plot events provides an anchor as the months tick by, and reinforce the current mood of the game as it grows darker over time.

2) Sequential threads

Spend time in geoponics, and you’ll discover a friend’s secret pet, which over ten events grows up to be a huge problem. Work in the command wing, and you’ll get embroiled with a secret club with plans to free the colony from tyranny. There’s a series of world-building events as you improve in each of the twenty-five school, hobby or career paths, which often give the player a choice between two or three cards to build their deck, representing how the player is growing as they increase particular skills.

Sequential events always happen in order, but might be skipped if you’re too old. They’re triggered with the main plot events after you do an activity for the month. If two or more happen at once, I try to pick the highest priority one and delay the others.

3) Friendship events

Characters have love meters which trigger sequential events as you get to know them. These tend to be less connected to larger colony plotlines, and they’re optional, requiring you to walk up and talk to the character when they have a speech bubble over their heads.

Relationship Events
Some of the most emotional moments are in friendship events

4) Exploration

These appear as signposts, creatures or floating question marks out in the wild, and feel like miniature RPG encounters. Many involve a card battle or a skill challenge, and they’re scattered around semi-randomly depending on the region, season, and year.

5) Barks

In addition to our 800 triggered events, there are 1800 barks: short single paragraphs with no choices that play when there’s nothing else to say. They’re highly conditional, based on anything from the weather or your combat skill to obscure choices you made as a kid.

Enter Exoscript

Exoscript with N++ Syntax Highlighting
Exoscript with syntax highlighting in Notepad++

I considered various commercial scripting systems, including Inkle’s ink and the Unity asset store Dialog System, but none were quite right. I was planning to hire a co-writer, so I wanted something that would be easy for a non-programmer to learn and use. I wanted script that would look like plain English and feel simple and natural to write in, lightweight with a limited set of powerful features that we could use in complex ways. I wanted to be free to easily extend it, integrate it into the Unity project, and change events while running the game.

Ink came closest, and I would recommend it to someone in the same situation. But I was bitten by the desire for full control, and writing my own parser sounded like fun!

In the end creating Exoscript was indeed fun, and didn’t take as long as I’d expected. About a week to get the base features in, then another few weeks of optimization and upgrades gradually as we needed them. Co-writer / narrative designer Lindsay (who turned out to have a background in code) quickly got the hang of complex conditionals and started asking for more.

Example of Exoscript
Exoscript with choices, skill gates, and method calls

In this example, choosing “Try to distract it” sets an event-level variable (“~set var_distract”), then returns to the previous list of choices while removing itself (“>>>”). This will reveal a new choice to “Attack the monster!” now that you’ve distracted it (“~if var_distract”), which triggers a card battle (“~call battle(combat_10)”). But it has an additional bravery requirement (“~ifd skill_bravery >= 10”) which must also be met. If you win the battle, a new illustration will show (“~set bg = nearby_close”) and a permanent variable will be set (“~set mem_savedTonin = true”) to remember this for future events.

A Terrifying Encounter
Screenshot of the above Exoscript in action

Calls and Conditionals

Call statements like “~call battle()” use reflection to jump into a C# library of about a hundred methods that gradually grew through development. If they have parameters, those are automatically validated when the scripts are parsed, along with parameters used in any “~set” or “~if” commands. I wanted to be sure we’d catch typos in the IDs of skills, backgrounds, characters, or cards as early as possible.

The validation step also checks that referenced variables have been set at some point, and for unlikely cases like jumps causing infinite loops. This made my job as an editor much easier, and will be handy if players mod the game to add their own events.

Closely connecting Exoscript with the Unity project made it easy to trigger visual effects, for example “~set left = marz” slides the character Marz in to the left side of the scene, and changes the color of text in double-quotes to her color, blue.

Anemone's Barks
Anemone’s Barks

Our in-line conditionals (eg “[if skill_bravery >= 50] How brave you are! [else] Scaredy cat! [end]”) work like “~if” to determine which block of text to show. We use them all over the place, but prefer to put them around full paragraphs. This is both easier to read, and if we ever decide to localize one day it will make translators’ jobs easier.

Groundhog Day and Our Process

A key narrative feature in I Was a Teenage Exocolonist is a mysterious wormhole that lets you remember bits of past lives. On your second playthrough onward, new choices appear in events you’ve previously encountered. These can be used to shortcut difficult challenges, like curing a disease without spending years researching it, so you could eventually combine many lives of knowledge into one “perfect” life.

In honor of the classic Bill Murray movie Groundhog Day, these are called “groundhogs” or just “hogs” in the code.

Double Vriki
Wrangling our multidimensional octopus was no easy feat

The simplicity of Exoscript was a relief given how much we had to keep track of. Generally our system was: I blocked events out, Lindsay wrote them, then I edited and tested them in the game. Lindsay pulled in the direction of romance and longer prose, and I pulled towards blunt gameplay-oriented choices, and together we found a great balance. We hashed out the trickiest parts of the narrative together on Discord.

We had notes and spreadsheets of facts and jargon, and Exoscript was easy to skim for references, but writing Exocolonist really only worked because both of us were able to hold the entirety of the narrative in our heads for a few years.

The Future of Exoscript

The Stratospheric in Space
Launch is only the beginning

I mentioned modding above, which I hear Exocolonist fans are already doing before the game is even out! They’re adding their own events, and have even ported the syntax highlighting to other text editors. I tried to make modding easier by storing the story files in the filesystem in plain text, and if there’s enough demand I might implement Steam workshop support after launch.

Localization is something else we’ve wanted to do but have been unable to so far due to the enormous nature of Exocolonist’s narrative. But fan translations may also be possible some day via a modding system. And I’ll be using Exoscript again for my next (unannounced) game.

I’m looking forward to seeing what players think of the game, what stories they tell inside it, and how it inspires them creatively in their own writing and art.

I Was a Teenage Exocolonist launches on Switch, PS4, PS5, and PC/Mac/Linux on August 25th.

]]>
https://northwaygames.com/the-narrative-octopus-of-i-was-a-teenage-exocolonist/feed/ 0
Growing Up in Exocolonist https://northwaygames.com/growing-up-in-exocolonist/ https://northwaygames.com/growing-up-in-exocolonist/#comments Mon, 06 Jan 2020 20:00:06 +0000 http://northwaygames.com/?p=4865

When you get down to it, the point of I Was a Teenage Exocolonist is to grow up.

It’s how you win the game, or, depending on your goals, how you lose it. The game starts shortly after your 10th birthday. The colony ship you’ve lived on your whole life has finally landed and you step out to breathe real air for the first time.

It ends on your 20th birthday, or earlier if you’re less fortunate. When this happens, The question is not just what have you accomplished but who have you become?

You age 10 with your parents

Many games ask this question. Particularly RPGs, but really anything involving stats or leveling or equipment is fundamentally about becoming something more than you were. Exocolonist isn’t just about picking one path and excelling at it, but about discovering all the different paths and ways to grow up on a strange and dangerous alien planet.

Every choice you make in Exocolonist advances time by one week. On the planet Vertumna there are 4 (very long) weeks per season, and 5 seasons per year.

Seasons: Quiet, Pollen, Dust, Wet, and Glow

The name Vertumna comes from the Roman god Vertumnus; the god of seasons, change, and growth. His name comes from the Latin verb vertere – “to change” – which is the root of words like diverge, weird, universe, and wormhole.

See? I thought about it.

Marz and Cal age 10-13, 14-16, 17-20

In Exocolonist, you won’t be the only one who ages over the course of the game. Your childhood friends (or not-so-friends) from the ship will grow and change along with you. Anemone, Cal, Tammy, Marz, Dys and his sister Tangent. Their own dramas play out over those 10 years whether you witness them or not. Your involvement may change the course of their lives for better or worse, but you won’t have time to befriend everyone.

This is how it usually goes with dating sims. Yes, you can hook up with a bunch of different people. But finding every ending won’t be that trivial. There are disasters to prevent (or cause), mysteries to unravel, and a large number of career paths to follow. Your skills factor into these, so which activities you spend your time on are as important as the decisions you’ll make.

Rebuild 3 has some very difficult to get events, and Exocolonist will too.

In the tradition of Rebuild 3, there will be a hard to get “good” ending that requires not just the right balance of skills and “right place, right time”, but the combined knowledge of many past lives.

Because each time you reach age 20 and start a new game, you’ll remember certain things that happened before. In the code I call these memories “groundhogs”, a reference to everyone’s favorite bill Murray movie. They manifest as premonitions or memories of things that will happen… or at least could happen if you don’t act to change them.

More on this to come!

]]>
https://northwaygames.com/growing-up-in-exocolonist/feed/ 3
Rebuild 3: Research Projects https://northwaygames.com/rebuild-3-research-projects/ https://northwaygames.com/rebuild-3-research-projects/#comments Thu, 21 May 2015 17:21:53 +0000 http://northwaygames.com/?p=3558 In a post last year I showed an early version of the tech tree and explained why I’ve renamed scientists to “engineers” and tech to “research” in Rebuild 3. Since then I’ve changed how a few research projects work, added Preemptive Strikes and replaced Fort Policies with Survivor Management. Here’s how the research tree looks in its final form:

rebuild3research550

Zombies track:

Start on the left tree to kill zed more efficiently and reduce danger on missions.

Level Research What does it do?
1 Zombie Vitals 10% more efficient zombie killing – speeds up zombie killing missions
2 Basic Traps Craftable zombie killing building upgrade – kills 5 unmassed zed per day
2 Zombie Avoidance 25% less danger from mission distance
3 Disease Vectors Reduced chance of zombie bites – during random events
3 Anti-Zombie Armor 25% better zombie defense – lowers danger rates
4 Zombie Bait Draw in zed to a building – craftable from food, distracts mobs and roamers
5 Advanced Traps Better craftable zed traps – kills 10 unmassed zed per day
5 Fort Silence Fewer hidden zombies spawn beside the fort
7 Improved Defense Increase building defense by 1% per level, repeat

Buildings track:

Start on the center tree for more options in your fort buildings.

Level Research What does it do?
1 Construction Build bars, schools, churches, labs, etc
2 Watch Towers Defensive building upgrade – +5 defense to upgraded building and +2.5 to neighboring buildings
2 Generator Power 10% faster workshop crafting – this research is automatically granted if you repair a power plant
3 Bunker Towers Defensive building upgrade – +10 defense to upgraded building and +5 to neighboring buildings
3 Fertilizer Extra food from farms – also increases max food storage
4 Improved Walls Better fort-wide defense – +1 to all buildings
4 Irrigation Prevent drought – also increases max food storage
5 Advanced Construction Build and fortify 25% faster
6 Turret Towers Defensive building upgrade – +15 defense to upgraded building and +15 to neighboring buildings
6 Electrified Walls Improved fort-wide defense – +1 to all buildings cumulative with Improved Walls
6 Pesticides Prevent pests, extra food on farming missions – also increases max food storage
7 Improved Farms 1% bonus to food production per level, repeat

Survivor track:

Start on the rightmost tree for management skills that make your survivors stronger.

Level Research What does it do?
1 Survivor Management See happiness, relationships, and talk to survivors – allows awarding level perks
2 Signposts Attract survivors – in random events
2 Improved Teaching 50% more skill from training
3 Paramedic Training 10% better chance of injury instead of death – for all survivors
3 Improved Scouting Reveal further when scouting – reveals adjacent buildings
4 Searchlights Attract more survivors – in random events
4 Medkits & Medicine Craftable medicine in workshops – use medkits to instantly heal injuries
5 Fireworks Craftable entertainment – use to improve happiness
5 Doctor Training Extra 10% chance of injury instead of death – stacks with Paramedic Training
5 Spotting Spies Saboteur units become visible
6 Preemptive Strikes Less dangerous to attack enemy units – 30% less danger
7 Increased Skills Gain skills 1% faster per level, repeat
]]>
https://northwaygames.com/rebuild-3-research-projects/feed/ 3
Rebuild 3: Real-time vs Turn-based https://northwaygames.com/rebuild-3-real-time-vs-turn-based/ https://northwaygames.com/rebuild-3-real-time-vs-turn-based/#comments Tue, 12 May 2015 20:17:50 +0000 http://northwaygames.com/?p=3519
must have
Chaos Overlords must have stuck in my subconscious – it looks like Rebuild!
Time for some 90’s game nostalgia!

I LOVE strategy games. My affair must have started with Civ I for the Amiga. I played endless times, obsessed with trying to conquer the world as England with only the one starting city. Then there was X-Com, and Master of Orion, and games like Capture the Flag and Chaos Overloads.

One of my all time favs was Master of Magic, a compelling mix of civilization building and turn-based combat with a magic system that was as much fun to exploit as it was to play properly. There have been some attempts, but I’m still waiting for a true spiritual successor.

I’ve always been in the turn-based camp: thoughtful instead of twitchy, chilling out instead of stressing out. I still play on harder difficulties and get my ass handed to me by the AI, but it’s cool – it’s all about learning systems and finding new strategies. Winning’s just part of the fun. So when I wrote Rebuild 1, naturally it was turn-based and had a “Nightmare” difficulty that even I couldn’t beat.

But what about real-time?

My favorite Starcraft unit, the Zerg Queen, causing trouble.
My favorite unit, the Zerg Queen, causing trouble for some marines.
I think of real-time strategy games as those tending towards intense multiplayer action. I always felt exhausted after a game of Starcraft with friends… fun but oh so stressful. And I’ve never been brave enough to try LoL or DotA, I’m so sure they’ll make me feel old and clumsy. So I didn’t consider real-time for the Rebuild series at first.

The games that drew me back around to real-time were ones like Sim City, Tropico, and Dwarf Fortress: single-player games that tick away in real-time but let you hit a pause button at will. They seem to have more life, some little spark of randomness that makes it feel like I’m interacting with more than a set of rules. For sim games this is especially important, and the Rebuild games are as much sim as strategy.

So for Rebuild 3 I bit the bullet and added a real-time mode. It was both easier and harder than I’d expected: I got the system working in a couple days, but am still finding bugs in it today. It brought up new performance and interface issues too. Some I rocked (letting you switch between real-time and turn-based) and some I flubbed (it’s hard to tell if the STOP button is a command, or the current state).

But it’s been worth it! In fact I like real-time mode so much I was tempted to make it the only mode for Rebuild 3. But I kept turn-based in because it’s much easier to test with, and I knew some fans of Rebuild 1 & 2 would never forgive the change.

These days when I play a game of Rebuild 3, I start out on max speed and try to keep up with survivors coming and going for as long as possible. I take the speed down a notch or two as the game gets busier and my tolerance for mistakes goes down. By the end of a city, danger or no danger, I’ve got one thumb on the space bar at all times nobody spends a moment longer relaxing in the fort than they have to.

I’m pretty happy that the game works with such different styles. Hopefully everybody else will find their favorite mode and speed too!

]]>
https://northwaygames.com/rebuild-3-real-time-vs-turn-based/feed/ 1