Exocolonist Plushies Are Here!

Sol and Vriki plushies
Preorder your Sol and Vriki plushies now!

This is such a dream come true for me – I love merch and plushies are kind of the ultimate, aren’t they? We’re creating them through Makeship, which runs limited time campaigns sort of like Kickstarter. We need to reach our minimum goal of 200 sales before January 5th 2024 to get them made. So if you’ve been waiting for an Exo plush, lemme say it again:

🍄🍄🍄 Go get those Exocolonist plushies!! 🍄🍄🍄

The first 200 sales of each doll comes with a free Steam key for I Was a Teenage Exocolonist, which I’m told make excellent gifts (as do plushies!) if you’re in the holiday gift-giving spirit. Makeship hasn’t made them yet, except for these product samples I get to play around and take silly pictures with, but they should be shipping out by the end of March.

Once again: these are a one-time run available only for a limited time until January 5th!

Sol riding the Vriki
Save 10% if you buy both plushies together!

There are so many neat details, like the Vriki’s tentacle suckers and Sol’s removable jacket. They use a combination of printing and embroidery, and the material is so, so soft. They even fit together so Sol can ride the Vriki? Which is not exactly canon, but Vrikis can technically grow big enough, so I’m allowing it.

We’re doing these as a limited run not to torture people who are reading this after Jan 5th 2024 and missed out (I am SO sorry), but because we can’t handle fulfillment ourselves, so this is the only way they could get made. Imagine how much space 2,000 plushies would take up if I had to order that many!

Although that would be a pretty cool looking apartment, hmm…

Vriki beans and double Sol

Optimizing Glow Season in I Was a Teenage Exocolonist

Originally posted to GameDeveloper.com in August 2022:

How a Unity scene with 1600 lights was optimized for consoles.

Final product: Glow Season in I Was a Teenage Exocolonist

Taking a game from Unity prototype to Switch and PlayStation can involve compromises, but what you need most are some good tricks and custom shaders. Our narrative deckbuilding RPG I Was a Teenage Exocolonist is set on the alien jungle planet Vertumna, which you run around and explore as you grow up. I was still getting to know Unity when I created these outdoor scenes, and mistakes were made. But over five years I learned how to make our complex outdoor scenes fast and efficient.

I’m Sarah Northway, co-founder of Northway Games and creator (/designer/coder/co-writer/art director) of I Was a Teenage Exocolonist, as well as the narrative city-building series Rebuild and other games. I work with different artists for every game, from Flash browser games, to mobile, PC, VR, and now consoles.

I might be best known for traveling the world with my husband for five years when we first went indie. It was the jungles of Central America and the coral reefs of Southeast Asia that inspired Exocolonist’s lush landscapes and focus on the natural world.

Glow Season Concept Art
Exocolonist Glow Season Concept Art by Sarah Webb

To bring this world to life, I worked with concept artist Sarah Webb, illustrators Meilee Chao and Eduardo Vargas, and 3d modeler Sarah Roland on our beautiful outdoor scenes.

Quiet, Pollen, Dust, Wet, Glow

In the main colony region, all the plants, terrain textures, and weather effects change with the season. Some plants have yearly lifecycles, growing taller or flowering then returning to buds. 3d elements like rocks and colony walls are tinted to match the weather, which includes rain, snow, heat shimmer and clouds of pink pollen.

Our seasons have cute names (Quiet, Pollen, Dust, Wet) but are roughly equivalent to winter, spring, summer, fall. There is no night cycle, but during the fifth season, Glow, Vertumna’s two suns are below the horizon for several weeks. During that time, nature comes alive with firefly-like particles and light-emitting plants.

The five seasons of the planet Vertumna
The five seasons of the planet Vertumna

Exocolonist’s lighting is flat with only painted-in shadows, no normal maps or specular sheens. I used the built-in render pipeline and forward rendering to layer hundreds of semi-transparent Sprite-based plants. The Terrain uses a tri-planar shader and swaps its TerrainLayer textures when the season changes. 3d rocks have soft gradients applied based on their orientation, and plants and other 2d objects are billboarded to face the camera. The overall effect is of a painting come to life.

During Glow season, the colony gates close, characters hide indoors and the lights come out, all toggled by Components that enable or disable child objects based on the season.

There. Are. 1600. Lights

Here’s where things got complicated. Some plants emit light in Glow season: the bobblesprouts, mushtrees, and gnarlwood. Naively thinking “Unity will handle this for me”, I initially just embedded point lights into every plant prefab, which I toggled on or off based on the season.

The result was 1600 lights in one scene, up to a thousand at a time in the camera’s field of view, all affecting each other, the ground and the player. It was glorious.

Original glow with a thousand lights
Original Glow prototype with over a thousand lights

Glorious and slow. I cranked the concurrent pixel light count to 20 for screenshots (default for “Fantastic” quality is 4). The scene above was performing 6000 draw calls per frame, most with multiple lights, and ran at roughly 1 fps on my target low-end PC.

Batching Plants Blanches Pats

Let the optimization begin! I considered Unity’s tool for adding grass sprites to Terrain, but I couldn’t get the control I needed. Instead I dove in to custom shaders and prepared to batch the plant draw calls by tossing their art into an Atlas together.

I wrote editor tools to place a variety of plants in an area at once, clumping based on species parameters, avoiding duplicate art too close, and randomizing their angles and sizes. Then I tweaked them by hand to compose little vignettes.

Some plants wave, others bounce
Some plants wave, others breathe or bounce

Every plant is an individual object in the scene, rippling, bobbing, and bending when the player walks through it. Some species swell up and seem to breathe, showing the thin distinction between flora and fauna on the planet Vertumna. But they all use a single material, and up to a thousand can be rendered with a single forward-pass draw call.

To do this I used a custom vertex shader based on Unity’s default Sprite shader. Unity threw a wrench in by not supporting custom material property blocks on SpriteRenderers, so I passed the values I needed to calculate plant movement through the unused RGBA channels of SpriteRenderer.color. I was simultaneously horrified at my terrible hack, and pleased with how efficient it was.

Shader programming in a nutshell.

Batching took scenes down from 6000 draw calls to about 6. Next, I removed the Light components from the plant prefabs, and removed Unity’s lighting from the vertex shader. I wouldn’t need these where I was going.

Bloom

I stopped tinting the plants black via scene lighting, and instead I baked the tint in using Photoshop. Only the light-emitting parts of the plants are fully colored, and a murky fog tints distant ones. Then I started adding Post-process effects.

Everything looks better with Bloom and HDR, it’s a fact. I pushed it too far, then brought it back one notch. This gave the bobblesprouts and mushtrees the impression of emitting light into the world around them. And the geodesic greenhouses look fab.

Bloooom
Bloooom!

HDR porting gotcha: We had an issue on the Nintendo Switch with our post-process highlighting effect, which draws a glowing outline around interactive objects when you’re near them. We were using the alpha channel to store hidden info about the edges of objects, but with HDR enabled, the Switch ignores alpha during post-processing to save bits for the R, G, and B channels. To fix this we had to disable HDR on Switch, then adjust for the lower-bit alpha (even with HDR disabled, alpha is capped to 1). Luckily this was our only tricky rendering issue during porting.

Bake it Till You Make It

For the greenhouses and spaceships, I used an emissive texture map to layer additive light over a regular texture. Exocolonist’s 3D objects all use the same custom surface shader which includes Unity lighting, with soft Lambert shading and few shadows. But rather than render most lights on the fly, I switched to Unity’s baked lighting system.

After taking all 1600 lights out of the plants, I still wanted key areas of the ground and buildings to be lit by glowing flora. So I added back in baked lights here and there, matching the plants’ glowing colors. I did the same for the artificial lights on the colony walls and beside doors while I was at it. Only a few watchtower spotlights are still realtime, so they can illuminate the player and other characters moving under them.

Prototype (left) versus Baked lights (right)
Prototype (left) versus Baked lights (right)

The Baked Lightmaps system creates textures based on light positions that can later be additively applied to 3d objects while the game is running. As usual with optimization, I was trading increased ram (3-5 extra textures in memory per scene) for faster processing time. What made this possible was using Addressables to store most of our art in the filesystem when it wasn’t being used.

One catch: lightmaps had to be disabled when the seasons changed. I added a component to 3d objects which remembers their Renderer.lightmapIndex and sets it to -1 when not in use.

The Lightbearer

The floating particle effects just worked, they’re mad efficient out of the box. My only optimization was to make their world-space emitter a limited size volume that follows the player around.

But the player character still needed one final touch: a dynamic light they “hold” which illuminates everything they walk near – ground, plants, structures, and characters.

Glow season
The ParticleSystem using a texture sheet and noise turbulence

I played around to find an efficient way to do this. Since the plants already knew the player position to be able to bend out of their way, I used it to calculate the light in my vertex function:

o.playerLightColor = fixed4(1, 1, 1, 1);
if (_IsGlowSeason) {
	float3 playerWorldPos = _PlayerPos.xyz;
	float3 vertexWorldPos = mul(unity_ObjectToWorld, v.vertex);
	float distToPlayer = distance(vertexWorldPos, playerWorldPos);
	float lightRadius = 3;
	float lightPower = (lightRadius - min(lightRadius, distToPlayer)) / (lightRadius + 0.001);
	o.playerLightColor = fixed4(0.82, 0.80, 0.73, 1);
	o.playerLightColor.a = lightPower * 10;
}

The playerLightColor is then added in per-pixel during the fragment or surface method. I update _PlayerPos via Shader.SetGlobalVector as the player moves, and _IsGlowSeason when the season changes.

The Result?

Well, it’s a whole hecka-lot faster now! Glow season is a smooth 60fps on most systems.

I was ready to have to rewrite the reflective water shaders or downres our textures to 2k for Switch, but it didn’t come to that. Once Glow was settled, most of our porting woes involved controller support, ugui menus, and save timing. Oh, and being forced to upgrade Unity at the 11th hour (you’ve been warned!).

Enjoying Glow Season with Dys
Enjoying Glow Season with your buddy Dys

If we ever port to mobile I’m sure I’ll revisit some of these decisions and find more ways to reduce gpu cycles and lighten the load in ram. But I’m proud that Exocolonist has come so far, from “let’s throw a bunch of lights together hey that looks cool” to scenes that are attractive, consistent, stable and fast.

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

The Narrative Octopus of I Was a Teenage Exocolonist

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.

Beautiful Ugly Xmas Sweaters

Colin modelling a prototype Exo Xmas Sweater.

As you may know, I can’t seem to stop making Exocolonist merch.

I’ve been intrigued by Jacquard loom woven textiles that are getting easier to make on-demand. The design is woven into the stitches instead of printed onto fabric! I bought a cool scarf from the A MAZE Berlin festival this year, which might have been made by German company wildemasche.com.

They have an online creator and no minimum order size, so of course I was instantly hooked.

Colin and I at A MAZE, playing a game that involved permanently affixed fake nails.
I’m wearing the scarf!

Automated knitting has been around since the dawn of the industrial revolution (and lead to the first computers!), but only now is it automated enough to let us consumers easily design our own knitted fabric.

Yes, you too can create a singularly unique ugly Christmas sweater. Or you can buy the Exocolonist-themed one I designed!


Chunky knit sweater with acrylic yarn. I don’t think we’ll sell any of these officially, but you can order it directly from the manufacturers here (size chart):

Small
Medium
Large
X-Large
XX-Large

These are made on demand. I suggest you get a size up to go for that loose and bulky look.

Another option: fine knit sweater with cotton yarn.

These are tighter knit with thinner yarn so there are less visible stitches (2 stitches per pixel). These look less like a hand knit sweater and won’t keep you as warm. They’re thinner and softer, fancier and more expensive (Compare):

Small
Medium
Large
X-Large

Wildemasche also makes Beanies, Football Scarves, and bolts of custom-knit fabric you could sew into whatever. My Exo design doesn’t tile easily since every row has a different tile width, but here is the raw file if you want to modify it.

You could also conceivably knit this pattern by hand!

It’s easy to change yarn colors, just hit Edit Design!

You can drop any image in the Wildemasche creator to start designing, but if you want to do a traditional stitch sweater, here’s what I did:

  • pick yarn colors first (4 max, limited selection)
  • pick size: size S acrylic is 226×242 pixels and XXL fine-cotton is 347×324, I don’t know the others but I used 300×300 with a gutter at top and bottom which worked for most
  • draw your pixel art image
  • paste it into their designer on all four pieces, and set the images to 100% scale (200% for fine-cotton)
  • you can also use their editor to tile if your pattern supports tiling (mine doesn’t)
  • line up the sleeves and the front/back by matching the bottom of the images
The sweater design in progress
The final design

If you buy one, or modify this one, or make your own, I’d love to see it! Make sure to tag us on socials or come show it off on the Finji Discord!

Exocolonist’s Original Design Docs

August has been Vertumnalia fest on the Finji Discord, featuring a talent showcase of fanart, fiction and food, and culminating in a live art stream and developer Q&A today (August 25th) at noon PT!

(My Exosona, or what I would look like if I was in the game world, a gift from our artist Mei! I never wrote myself in as an actual character, but it’s a hidden asset in the game files)

It’s been a year since I Was a Teenage Exocolonist launched, and just over six years since I started working on it. We’re doing a Q&A soon but to be honest, I couldn’t remember answers to questions like “how did you come up with the characters”. However, thanks to the magic of version control, I can travel back in time to August 2017 and read through my original design document to see what the heck I was thinking.

Some of the answers may surprise you. Maybe even upset you!

Themes: Kids should think about the future before they are adults. Politics matter. Colonialism sucks. Parents aren’t always right – distrust authority.

Like an explorer sifting through the glass sands of the Western Wresting Ridge for remnants of a previous civilization, I skimmed through 60 pages of notes, scraps, rants and ideas, trying to remember how it all began. Here’s what I found.

Interstellar
Wolf children
Destined to love
Oregon trail
Princess maker
Rebuild

Early character design – spoilers incoming!

It seems the central dateable Strato characters were invented all at once one day, after listing possible skills and jobs. I named them as if they were archetype classes from Rebuild 3: “the fighter”, “the scientist”, “the politician”. Some things changed, but so much stayed the same.

Growing up in Exocolonist
The fighter, energetic and normal. Red haired freckled woman does what’s told, seems to dislike female gender norms. If you don’t date her, she’ll get an overbearing boyfriend. He’s a rival. Energetic and excitable when she has a task, doesn’t care much about pro or anti alien politics…? Or maybe dislikes aliens only because they’ve killed her friends and she wants revenge.

The scientist, jaded woman wants to help cure earth problems, thinks bigger than the rest but always too busy working on it, can help her cure earth at the cost of this planet. Hard to date because busy. No rival. Long blonde hair held back in a ponytail, Asian features. Future person. Would probably would throw aliens under the bus to help earth.

The explorer, dreamer man hates people and secretly loves aliens. Leaves the camp a lot, befriend for alternate (non skill) way to meet and get in good with aliens. Sometimes depressed. Dates secret alien if you don’t date him. Dark short hair, sad pale face.

The politician, woman hates aliens misses earth. But earth is dead to her and she wants to recreate it only better. Dates the head construction team guy then dumps him for the head gatherer, then dumps him for another politician if you don’t date her. She’s confident and sexy and likes to sex. Straight dark brown hair, dark skin.

The farmer, manly worker, idealist man likes aliens and alien plants but frustrated by tech and politics and war, just wants to work hard and live happily in peace and compromise. Dates a kind of dumb girl if you don’t date him. Dad figure. Curly brown hair and brown skin. Might be religious, Muslim?

The mysterious alien man who is really no/all genders. Hangs with explorer and may date if you don’t date either one. Important part of the good ending, though in many runs you will never meet him because it’s a secret. Aliens are alien looking but this one appears as a tall lanky pale man with long black hair which maybe isn’t really hair. He’s trying to look human, like the explorer specifically.

All can fall in love with you regardless of gender.

(Cleaned up a teeny bit.) I wrote that hastily, and possibly late at night or on my phone, and you might be able to guess who all those characters became (including the “kind of dumb girl”, I’m sorry). Obviously they all got far more fleshed out over the next five years, especially once co-writer Lindsay joined the team.

Using archetypes for the different directions the player’s own life could go in was a good decision, but I came to regret defining their race/appearance so quickly and relying on tropes (vengeful soldier, cold scientist, simple farmer). We appreciate our sensitivity readers for helping us identify these early issues, and inspiring us to dig deeper into each character and bring forward what made them unique.

Dys’ theme song is Smith’s How Soon is Now.

If you date Mars, you do a lot of making out while you should be working.

I’m surprised I was thinking about romance this early! There’s also a longer description of Marz’s love life, and yes the people mentioned above became Rex, Utopia and Lum. We removed teens having crushes on or dating young adults for legal/bizdev/yuck reasons, and they barely even consider the existence of sex before age 17, as unrealistic as that may be.

We all agree not to think about Sym’s actual age (20,000 years give or take?).

What if aliens aren’t biological, they are data? an indigenous culture, or an ancient weapon? both?

Forgotten characters

Another treasure trove of old design notes was my original spreadsheet of characters, places, skills, jobs, events, and endings. There were many more adult characters circa November 2017:

Some of them are still mentioned in passing during events, but were never given art. Most were cut so we could focus on the teen characters, plus one adult council member for each department.

The player’s sister Vestibule and several younger kids were cut when we steered the game away from a Handmaid’s Tale-esque story involving forced childbearing to populate the new planet. It was too heavy, and it was more fun to instead try to make gender (and race, and sexuality) as inconsequential as possible in the utopian world of Vertumna.

Gameplay changes from early prototypes

really seems like it needs a minigame where you run around the jungle finding stuff. or maybe the whole thing needs to be like harvest moon style. how hard is that really….

I found notes outlining the main plot of the game, which didn’t change as much as I thought, but originally you were going to move to a new colony every year and design it yourself as part of a base-building feature. There was also a farming mechanic, colony defense minigame, and a lot more contact with Earth. Most of this was cut to focus on the narrative and characters.

Running around on 3d maps almost got cut from the game too, and it was a difficult decision to keep since it added over a year of development time. But it feels so good to walk around and feel Vertumna surrounding you! And it helps to set Exocolonist apart from other visual novels.

Enjoying Glow Season with Dys

The card game was a late addition, and it took years to settle on a design for it. Ironically, it seems I had the seed of the idea back in 2017 but dismissed it as silly and forgot all about it:

incorporate poker, yatzhee type stuff?
this is getting VERY random…

There was so, so, so much more in there, many other random ideas and notes that only I could understand. Gradually, over years, I edited and pared this document down to only things that would go into the game.

Naming I Was a Teenage Exocolonist

Colin tells me we were on a hike with our friend Justin when I finally decided on the name I Was a Teenage Exocolonist.

The prototype codename was Princess of Mars, after the 1912 Edgar Rice Burroughs book I’ve never read, but which has inspired everything from Indiana Jones to Avatar. Initially the vibe for Exo was going to be more swashbuckling and pulp and a little less trauma. Also “Princess” for “Princess Maker” which was a major inspiration.

I’ll leave you now with a section of the original doc regarding names:

Long name like Voices of a Distant Star
or Nausicaa and the Valley of the Wind
maybe a phrase like Thomas was Alone or She dreamt in neon
should have some word like Child or Youth in it?

heir
growing up
childhood
coming of age
springtide
maturing
rising
sprouting
what sprouts from alien soil
emerging from our chrysalises
i was a teenage exocolonist
blooming
budding
homestead
same old problems on a whole new planet
growing up on Vertumna-82d
ten earth years on Vertumna
a decade on Vertumna
the stuffed up mouse who couldn’t see the stars
faraway high
faraway home
lightyear
unexplored
beyond the horizon
beyond the heliosphere
progeny
in the twinkling of a binary star
children of earth colony Vertumna
colonization of a new world
children of a new world
children of a distant planet
children of the planet Vertumna
Growing up on Vertumna
My life on the planet Vertumna
Your life on the planet Vertumna
Life as a child of the planet Vertumna
where the trees breathe
colonyside
growing up exocolonist
my life as an exocolonist on the planet Vertumna
Life on Vertumna
Vertumna: Earth’s first exocolony
How we came to Vertumna
we came to settle Vertumna
building Vertumna
what happened at Vertumna colony
we didn’t mean for this to happen
it wasn’t supposed to be this way
how we escaped the earth
we came to find a home
on the soil of this planet
face down in the alien mud