top of page

Synchronizing Story and Mechanics To Explore Themes of Cycles and Loss in Starlight

Starting with a Heartfelt Premise

Starlight is a narrative game-poem that uses light touch movement and exploration mechanics to strengthen a poetic exploration of loss, change, and generational cycles. Heads up: there are many spoilers in this retrospective. If you would like to play the game before reading you can do so at itch.io.

 

The player takes on the role of a young girl who wakes up to find a series of mysterious letters. As the player continues the game it is revealed that the player is on a generation ship travelling to a distant planet. The ship can only support two people at a time: one mother and one daughter. Through exploring the ship and finding the letters from her mother, the player learns that her mother has chosen to die in order to make room for a new child, and that now the daughter character must process her loss so she can take on her new role as a mother. ​

starlight-intro.gif

Using A Game Engine with Built In Constraints

When I started work on this game, I had already written a short story, and I wanted to see if I could adapt it’s themes and setting in within the very limited technical palette of the Pico-8 fantasy console, which has a resolution of 128 X 128 pixels, 16 colors, and 4 tracks for music and sfx.

​

Pico-8 is a modern game engine that emulates a computer/console from the 1980s that never existed. It is the answer to the question: “what if there was a game console just between the Atari and the Nintendo”. It has strict technical limitations, but that makes it perfect for personal projects. It forces a designer/developer like myself to keep their vision squarely in scope.

​

pico8-demo.gif

Designing Mechanics To Accentuate Story

I chose to focus on a basic double-jump mechanic that emphasized the weightlessness of being on a spaceship, and a ‘find the objects’ mechanic that gave the player a reason to explore the space and slowly revealed the story beats. I also knew that I needed to tell the story in a way that didn't overwhelm the player, or give them a wall of text to read. So I chose to give them 3 lines of story as a reward each time they found a letter from the mother. The original story was written in 2nd person as a letter from the mother to the daughter, so the find the next letter mechanic felt like a good fit.

​

My hope was that players would have fun jumping around and finding letters, take in each small section of the story, and remain curious about where everything was leading. 

​

I also wanted to explore the themes through the game’s environment. For example, one of the themes was generational cycles. To explore this, I made the critical path through the game-map a literal spiral. As the player moved through this spiraling critical path, they would also see how water cycled through the ship, creating a self contained ecosystem. The player follows the water as it falls down to the bottom of the ship, is heated into steam, and then floats  to the top of the ship where it  becomes a cloud that rains down on a large garden area (which supplies the ship with food).
 

mechanic-demo.gif

Stretching My Skills as a Developer

Developing a full game, even a small one, challenged me to grow skills in programming and development. I started by following a ‘make-a-platformer’ tutorial from Nerdy Teachers which taught me to develop basic collision and movement within the Pico-8 framework. This helped me understand the Pico-8 dev environment and gave me a base of code that I could expand upon to develop other features. Drawing in my development background in Javascript and P5.JS, I was able to create an object oriented architecture that allowed me to quickly explore my vision with more advanced features such as the waterfall animations, cutscene events, and even fireflies that used Perlin noise to fly across the screen in a random but organic pattern. 

 

This was the first project where I I had to go beyond a small demo to create a whole game architecture with multiple pieces that all worked together. By creating this architecture and making it as elegant and easy to understand as possible, I was able to form a better picture of how whole game projects fit together.

​

One purpose of this project was to force myself to complete a small thing. Up until that point I had started and a few larger narrative designs and game projects that remained unfinished. I was surprised by how much effort it took to complete even this small 10 minute game, but was also incredibly proud as I saw it inch closer and closer to the finish line.

It felt great to see this idea come to fruition and especially to watch people play the game.I learned that I had it in me to finish something,  and that I had a distinct voice within the media of games.

code-example.png

Proud Moments and Lessons Learned

If I had to do this project again, there are a few things that I might do differently. Player feedback showed me that adding just one or two more challenge driven mechanics might have made the game more engaging. Also, although the emotions of the story came across, the details were a little too opaque. I would also have loved to explore creating an on-screen character for the player to interact with, maybe a robot who guides the main character and provides context for the story. I think this would have added more clarity and emotional depth.

 

However, I think this game did the job it set out to do. Players mentioned that they loved the floatiness of the jumping mechanic, liked finding letters and discovering the lore and connected with the story emotionally. One comment I’m particularly proud of goes as follows:

 

Thank you for sharing this. My mom passed away unexpectedly in 2017, a few weeks after my birthday. Months later, I was going through her things and found that she'd already picked out my next birthday card and stashed it in the back of her kitchen calendar. She hadn't written anything in it yet, but finding it felt like receiving one last letter from her and I was very sad because I knew I would never receive another. Playing this made me think of that, and reminded me that it's okay because that's part of the cycle of life.

 

Completing this project and seeing how it played gave me the confidence to search for synchronicity between story and gameplay in future projects. 

final-scene.png
bottom of page