Let it Snow! Let it Snow!

September 15, 2017

As I write this, it’s a rather chilly, dreary, drizzly, grey day outside. What better time to jump ahead a couple of months and bring on the snow. Specifically the snow for the upcoming Sleuthhounds: The Yuletide Tail computer adventure game.

The Yuletide Tail is set at Christmas and features several outdoor scenes. I planned from early on in the design phase of the game that those outdoor scenes should feature snow gently coming down. In previous Sleuthhounds games I had incorporated various degrees of background animation – dust motes floating in the sun, gas lamps flickering, etc. – and they both helped to set the mood of the games and made the scenes more “alive” by providing constant subtle animation.

In the back of my mind, I had the thought that I might need to add a full blown particle system to Sleuthhounds in order to handle the snowflakes coming down. However, I did decide to do one experiment first using a technique I established way back in The Unlocked Room, the very first Sleuthhounds game.

[Dust motes in The Unlocked Room]
Dust motes in The Unlocked Room.

In The Unlocked Room there was a scene where rays of light were shining down from above. Within those rays of light floated little motes of dust. To achieve that effect, I created a mostly transparent image that had a handful of dots on it to represent the dust motes. I then repeated that same image multiple times to create a single layer of dust motes that I could slide across the scene. By placing several such layers and sliding those at slightly different speeds and slightly different angles I was able to achieve the look I was going for.

When it came to The Yuletide Tail I was concerned that the dust mote technique wouldn’t hold up. The dust motes themselves were semitransparent and they only showed up in a small region of the scene. This meant that both the repeating pattern of the dust motes and the fact that batches of the dust motes were moving in exactly the same direction wouldn’t be that noticeable. However, I was worried that if the same technique was used across an entire scene, with non-semi-transparent snowflakes, that the illusion would break down and players would see the patterns.

It turns out my concerns were unfounded. The snowflake experiment was easy enough to do, not requiring any new tech to be added to the game. I started by creating two basic snowflake patterns, like so:

[The basic snowflake tiles.]

[The basic snowflake tiles.]
The basic snowflake tiles.

I then set up eight layers of these snowflakes in a test scene; five with the smaller snowflakes and three with the larger ones. To help add to the illusion I set the layers at different depths. This means that as characters move forwards or backwards within the scene, fewer or more layers of snowflakes will cover them. It’s a subtle detail but it does help give “depth” to the snow.

Another detail I added in was breath puffs for the characters. As the characters stand or walk about the scene, small animations of their steaming breaths are played near the characters’ mouths. An interesting note about that: if a character has to run some special animation, like bending down to pick up an object, the breath puffs are suspended for that animation. This is to prevent a breath puff from suddenly appearing at normal standing height when the character is all bent over. It’s a subtle trick but I’ve been learning that a lot of what makes for a polished computer game are subtle tricks.

[The final wintery effect.]
The final wintery effect.

The end result of all these techniques is a subtly animated scene where it looks like snow is gently wafting down and the characters are experiencing the cold. You’ll be able to experience it too this December when The Yuletide Tail is released. Until then, stay warm!