A Walk in the Woods Game Design Post in celebration of 1000 page views and 400 downloads


Recently, A Walk in the Woods hit 1k page views and 400 downloads. not a huge accomplishment but a note worthy one in my book. So in celebration of that, I thought I would take a moment to talk about the game design. Thank you to everyone who has played the game and thank you to those who made a video about it. ❤

I never really intended to make a horror game. I was testing Sprytile to see if it could be used as a PSX like level builder. pulling the mesh into Godot every once in a while to see what it would be like to walk around in. After finishing the starting area I continued to develop the level and branching it off into other areas. I planned to have a lake area at one point but I just couldn't get it to look right so I scrapped it all together.

After some time, I started playing with the lighting and the world environment to try to find the aesthetic I was looking for, a dark misty forest. I did end up having trouble with some things like whether I should use GLES2 or GLES3. Did I want all the features like glare, auto exposure and tonemapping, or do I want a game that anyone can play. I ultimately went with GLES2 because the psx didn't really have the power to do those things and I thought it fit the theme better.

One of the biggest problems I found when making a horror game was trying to figure out what was spooky. I personally don't like playing horror games or watching horror movies that have things jump out and make loud noises for the sake of scaring the audience so I really didn't want to make a game that was that way. One of my first interests in life is music and sound. I've been a playing guitar since 2007 and been doing electronic music since 2012. Knowing my background for sound I finally decided on what the horror theme of the game was, that feeling of uneasiness you feel when walking around in the middle of the night. Where every sound, whether it's a leaf moving in the wind or an animal knocking some gravel around is enough to set your brain into fight or flight mode. Wondering what could possibly be out there that is about to attack you.

The trees are something I spent way to much time on, but I'm pretty proud of. I wanted a lot of trees to really give the feeling that you were in a gully of a forest, but having hundreds of trees scattered around the map wasn't very performant even with the frustum culling built into Godot. So I dipped into the bag of Game Dev tricks of old and made a small LOD (Level of Detail) system that states when the tree is too far away or outside of the viewport, replace it with an image instead. In reality the LOD system is just a big collision Area strapped onto your face and when a tree leaves the collision area set it to an image, when it enters it's back to being a mesh. 

The trees models were made with the Sapling tree generator addon in blender, it's a really easy and simple way of generating trees that I use very often even in my still image 3DCG projects. The leaves on the trees are actually just a edited picture of a rendered tree that I use for LOD in blender, it seemed to have done the trick and it might not look the best, it's another one of those psx things that made sense to me.

Another big issue I found was how tedious it was just placing the events. Now I could have probably made it easier on myself by creating a special Area class that had a special audio event method but at that point I was rather fatigued with making the game. It was a mind numbing task of looking for the sound I wanted on freesound, editing the sound in fl-studio to make it work for my purpose, setting up the Area and adding the collision shape and then writing the script to activate the audio event. But my favorite has got to be the footsteps outside of the cave.

These footsteps were taken from the same walking sound that is used for the players footsteps. Used a small clip of it and sped it up in Edison, the fl studio audio editor, and on top of that added some panning and volume automation to make it feel like it was running from point a to point be to then fade off into the distance. The result is a pretty effective running sound. I thought later how I could have probably achieved the same effect by animating the audiostreamplayer from point a to point b but it probably wouldn't have had the same effect.

About the players footsteps, there's always something that bothered me about tutorials for game development and that's taking a single sound byte and randomly changing the pitch every time the sound needs to be played. The reason why I don't care for this is that it really doesn't feel realistic in the slightest. When you take a step on any surface the timbre of the sound depends on how hard you stepped on the surface, what speed you're moving and many other factors. These factors all change the character of the sound. So what I did was I took the sound file for the footsteps which was a long audio clip of walking on leaves and split in into 6 ogg files. For every sound file there was an audio emitter, each sound was randomly played on an interval while the player was moving to really give the impression that you were walking on a leafy forest bed.

Another thing I enjoyed was the sheets of fog strewn about the forest. Itself is also an old trick of game design. Instead of the fancy voxel based or raymarching based methods of real time volumetric we have today, it's simply an animated noise texture all made within the godot shader editor. except for the spherical gradient to give it a falloff at the edges. However, just like placing of the audio events, trees, rocks, logs and grass, these were tedious to place. If only I used something like a multi mesh instance or automated it in some form.

A big issue with using the psx shader, made by marmitoTH on Github, is trying to find a balance between polycount and visual fidelity. Where the polycount seems to be fine in most places, if it's too low the textures will do this weird stretching motion that feels glitchy and weird. This can also be caused by the camera being to close to the ground. it can be seen predominantly in the cave when exiting. This isn't a fault of the shader creator but really an issue with how the psx transformed vertices and was something I tried to fix many times by increasing the polycount in the cave but to no avail.

Even though this is something small and not entirely necessary, but I wish that I had used a finite state machine for the character, simple things like crouching and sprinting can be rather difficult to implement without one.

Will I ever make a horror game again? I'm not sure. The process was tedious at times and fulfilling in others and horror is a hard thing to get right. You can either make an experience filled with jumpscares and loud noises, or something more subdued. I personally prefer more subdued horror experiences but others might enjoy the rush of adrenaline when something jumps out at them. So if I ever make another one, I might not even intend to in the beginning and it just starts to take shape.

Get A Walk in the Woods

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.