Lifting Spirits
Lifting Spirits is a cozy up-scroller platformer with 6 levels where you climb up a tree and meet tree spirits who give you items to reach the top where your friend is.
Our game ranked #3 overall out of 209 games for the 2026 Spring Comfy Jam. We also ranked #2 for Polish, #7 for Art, #7 for Limitation, and #10 for Audio.
Genre: Platformer
Platform: Browser
Team Size: 5
Timeline: 2 weeks
Engine & Tools: Godot, Dialogic 2, Figma, Excel
My Contributions: Barks, Dialogue, Flavor Text, Worldbuilding, Lore, Shaping Character Design, Storyboarding, Narrative Direction
About the Game & Restrictions
Our game had to feature a seamless loop and incorporate at least one theme: strawberries, bees, or flowers. We built the loop around climbing a tree repeatedly, with new platforms and layouts revealed each time to increase the difficulty.
I wanted the repetition to have an emotional purpose: the power of persistence. By continuing to climb and show up for her best friend Clover, the player helps her break out of a spiral of feeling like she isn’t good enough. The disgruntled spirits we meet are also inspired to change with each climb.
Linear Dialogue
Because this was a two-week jam, I wanted to use a tool where I could rapidly prototype bite-sized dialogue that was easy for my teammates to follow its flow and progression, which is why I opted for Excel spreadsheets. I used the arrows “→” to mimic the “Continue” button and show how dialogue would be chunked, and also used bold to cue players in on key information, similar to the Ori games. (This would also remind me which words to bold directly in the game engine.)
Instead of writing longer character bios, I used the Spirit Type and Mood and Tone sections so that our Artist could have some guidance when concepting the characters. This was also used by our Sound Designer to help concept specific sound effects and the character ‘s ‘theme songs’ for each level they appear in and represent.
Implementing Dialogue in Godot
During the playable prototype phase, I was already implementing WIP dialogue into the game engine.
I used BBL formatting to bold key words and phrases from the spreadsheet, and also used text speed modifier code to control the pacing of how quickly or slowly a character was talking and delivery lines.
This could emulate voice and tone when we didn’t have time to implement different SFX for each character’s voice.
An example of how this was used was when Fauna is trying to insult the player and make them feel insecure.
There’s a brief pause with ellipses “…” that gets paced out, to imply that Fauna is waiting for us to react to her mean comment.
And when a response doesn’t come, Fauna gets flustered in true tsundere fashion.
This helps immerse the player in the characters and in the world.
Flavor Text for Items
I also created tab in the dialogue spreadsheet that included flavor text for each item the player collects.
I defined which column was internal usage and which were okay for in-game usage so that our Game Designer and Programmer would know which item did what.
Though we didn’t have time to implement the flavor text in the actual game, it would’ve appeared if the player hovered over the items. The only item that had in-game benefits was the Berry Boon, which increased the player’s stamina bar so that they’d be able to get to the top of the tree.
In a longer game, the other items could be used for other power-ups!
Worldbuilding
If the player was going to climb a big tree, it needed to feel ancient, meaningful, and grand.
Because the game was going to have 6 levels, each section of the tree should also feel different and contribute to the overall fantasy world.
I wanted the tree to still feel somewhat realistic in that the spirits that appeared in each section of the tree should coincide to the type of organism that would live at that tree height in real life.
The Game Artist and I brainstormed the world and its inhabitants during a 1-hour workshop in Figjam.
I came to the meeting with an environment one-pager for our Great Tree in Figjam, which we edited live together as we nailed down the characters we’d create and the ‘micro-world’ of each level.
We left the meeting with a clearer idea of the character concepts and how each level of the environment should look and feel different.
I also incorporated all lore and history sections into our Game Design Document for everyone’s reference.
Worldbuilding in Level Environments
Level 1 is at the trunk of the tree, so mushrooms and roots made the most sense with darker colors.
Level 2 are where flowers and branches shine, so a flower spirit would fit here and our jam’s theme, too.
Level 3 is near the top of the tree and should look more somber to show how The Great Tree was decaying and getting sicker. We also implied a little bit of a ‘class divide’ by having more humanoid characters like gnomes and fairies live at the top in houses, while more plant-like characters lived lower on the tree. (Implied classism!?)
Creating Lore and Shaping Character Designs
I also created lore around the game’s “Spirit Guardian,” which is the main conflict and main drive for why the player would want to keep playing our loop and climb the tree multiple times.
Though I began with a friendly rivalry theme between the main character and best friend, the best friend Clover was starting to look too ‘evil’ for a cozy jam.
We decided as a team to drop the rivalry theme and instead keep them as best friends and softened Clover’s look and feel.
Early Character Design Concepts
Final Character Concepts
Creating a Storyboard to Visualize Story Beats and
Narrative Flow at Each Level
I created a Figjam flowchart to show my team’s Game Designer/Level Designer and how the story beats connected to each level, and we aligned and how the game’s falling animation was interconnected.
Characters would appear at the start of each level and say their dialogue to provide ‘breaks’ for the player in between each level to balance active gameplay that requires an active mindset vs. passive play and a passive mindset.
My diagram ended up being a storyboard that the Game Designer, Game Artist, and Programmer all ended up using it to help program the pacing and sequencing of the game!
Directing the Final Cutscene
An idea I’m really proud of pitching and convincing my team to implement was on the final cutscene of the game.
In our second iteration, the final cutscene has Clover saying, “Would you like to join me for tea?” and simply faded to black with the player standing still, far away from Clover.
I argued that if the player and Clover are truly best friends—and if we really wanted to have an emotional payoff to our theme of persistence—then it’d be better to have the player character and Clover walk towards the tea table together as we slowly fade to black.
I think our final cutscene really tied all the lopse ends together, and makes the player feel satisfied that the two friends are finally reconnected!
What I Would Do Differently Next Time
Better game UX instructions on how to climb at the beginning of the game
While we taught players that the spacebar advanced dialogue, we should’ve added a line to the next tooltip explaining how to climb: “Hold Space AND a Key.” When I showcased the game at a local game dev meetup, I noticed players would hold the spacebar without realizing they also needed to press the Up Arrow or S key. Although they eventually figured it out, clearer instructions upfront would’ve made the mechanic more intuitive.Removed thorns from bush assets because they don’t fit the ‘cozy’ theme
Later levels include thorny bushes that block the player’s path. We originally planned for the thorns to “prick” the player and immediately make them fall, but ultimately decided that mechanic felt too violent for the cozy tone of the jam. I still would’ve preferred removing the thorns from the bush assets entirely to better maintain the game’s calm and cozy atmosphere.Change environment backgrounds with each ascent to show how The Great Tree was getting sicker
Due to time constraints, we kept the main environment backgrounds consistent across climbs and instead varied platform assets to represent different biomes and different gameplay mechanics. However, since the story centers on The Great Tree getting sicker, changing the backgrounds could’ve visually communicated that progression—for example, by having the tree trunk gradually fade, grey, or rot. This would’ve reinforced the story’s urgency and would’ve made the player’s goal of healing the tree feel more impactful.