Where the Forest Waits

A short, narrative-driven, top-down game designed, and built solo in Godot over two weeks


I created this game as a way of going through the weight and the strangeness that has followed me since Covid-19 happened. Since then, I have seen a lot of my peers and I rediscover what its like to go from being masked and isolated to suddenly back around others with not a lot transition in between. During lockdown, I used games as a way to connect with people that I care about despite feeling so far away — I even made more friends along the way. This game is a way to move past that and start giving back to the communities that took me in at my lowest.

Introduction

Premise

The game, Where the Forest Waits, was created in two weeks as a gift to my friends as some finished up college, started college, pursued job opportunities, or still discovering what they want to do. It is a short, narrative-driven top-down game about reconnecting with yourself after being stuck. You begin with a feeling of dread that resolves as you spend time with different parts of you that may have needed more attention in your absence. You end the game by moving on.

An important question I had prior to creating this was figuring out how simple interactivity and narration could carry emotional weight. I had previously designed arcade-style games and spent some time in Unreal Engine 5 to create different AI trees so I felt this new direction was exciting to explore. I was also inspired by games like Omori, Paper Lily, and Deltarune.

Process

I began drafting different stories. I like to understand the world that the game lives in so that each asset and decision can cascade off that starting point. I knew the general premise but finer things like how each character would represent a different facet of the main character and how the story would unfold was drafted and finalized within the first 3 days of the project. I planned the next 11 days meticulously and considered different assets like art, music, sound design, and systems to code. While I do like creating my own assets, I figured that the tight time constraint created a situation where I needed to compromise. My compromise was to create the sound design and character sprite sheets from a template by ErisEra() but also pull assets from Itch.io game assets, Cozy Tunes by Pizza Dog and Tiny Farm RPG Asset Pack by Maeve. For the systems, I learned from many tutorials and compiled what I thought would fit the project. Next, I dove into assets for 3 days and created custom sprite sheets for each character while making new sounds for the sound design and sourcing the tilesets and music.

With all the assets found or created, I started my project in Godot. I started small by making the player character move around. Then I created three autoload scripts. The first script was the dialogue system, since the game was a top-down narrative game all the interactions in the game would require a text box so the player can see it. It allows the creation of speech from different characters, interactable narration, and scene transition. The second autoloaded script in the game is the cutscene system. It allowed me to create cutscenes that either trigger off signals that emit after dialogue box interactions or trigger when a scene is loaded. The third autoloaded script was the game state, this would keep track of the checkpoints the game would use to advance the player through the story. After these systems were refined, I created tilemap layers for each scene. Some scenes like the opening bedroom scene and the village scene are reused and change cutscenes based on whether or not the task for each character is resolved. Each character, Hopper, Alice, and Tilia, have a task that the player is to complete. These tasks are managed by the individual house scenes and the game state script. One fun fact is that I made a tree generator to skip having to place every single tree in the scenes that the character walks to and from the village. It was a bit tedious and I created a system that allows you to generate trees in specific areas and ignore it in other places.

Emotional weight was something I wanted to prioritize as I built each interaction. For example, I added a fourth autoloaded script that managed the shaders in the game. As the characters’ tasks were completed, the shader updates and the dream world becomes more saturated. I also focused on writing so each interaction felt more meaningful.

I replayed the game start to finish each time I added a new scene or edited a system. This helped me resolve issues as it happened.

Challenges

Since it was a game for my friends and I had such a tight deadline, the game could have encountered scope creep pretty early on. Originally, I had planned easter eggs that allow you to equip accessories on the player and an inventory that you could cycle through to see which ones you had. I planned to make more involved cutscenes that may require additional shader work or pixel art after tasks were completed. I had anticipated needing to cut things so I created an minimum viable product that I felt satisfied about giving to my friends. The MVP would have used character sprites from the asset pack I pulled from the tilemaps, no autoloaded shader that updates when the player finishes tasks for different characters, and the writing would have been more sparse.

In terms of interactivity and emotional weight, I felt I had achieved a form of it. If I had better optimized the dialogue box and used it in varying ways across each character’s tasks, I believe the emotional weight I was searching for would have made a bigger impact. However, the way it is now still achieves what I had intended when I planned it out and I can tell that it meant a lot because my playtesters always told me about their favorite part or favorite characters. Some had parts that resonated with them or lines that made them rethink something, and that’s the intended effect I wanted from the interactivity.

This was my first big scale project on using tilemaps, sourcing assets, and pushing a full game to completion. I learned a lot about scheduling and how planning saved me a lot of time. I am proud of what I created under the constraints I had. I feel so ecstatic that my playtesters had remarked that the game had charming moments and aspects like the art and the writing were compelling. If I had more time, I would have added more easter eggs that could have made my friends smile when they see it on different playthroughs.

Reflection

Previous
Previous

FERA-T4

Next
Next

Vulkan Shader Demo