Of all of my 1GAM projects so far, this is the one that most makes me wish that time would not be so rigid in its sequential nature. There's a lot here, more than I really knew going in how I would even handle, and only parts of the plan have made their way into the final package. But I'm happy with what's here, I've learned a lot, and I certainly never played this game before I made it, so let's look, you and I, at Thundersnow.
As has become a theme for me, there were several components, only loosely related if at all, that went into the making of this project:
I started by listening to the collection of available tracks by my friendly local musician and identifying songs that felt to me like they should inspire a theme for a game. I very quickly landed on "Thundersnow" and later added "Icepack" and "Caverns of Wind" because of how they flowed in my mind. This remains the structure of the game - the title screen uses "Caverns of Wind," phase one of the game uses "Icepack," the second phase of the game uses "Thundersnow," and the ending sequence comes back around to "Caverns of Wind." All of the themes of Thundersnow grew out of listening to those tracks.
These songs, and others, are available on Ben's SoundCloud page.
With the music in mind, and a vague idea of mechanics, the main theme of Thundersnow came from me brainstorming what the image of thundersnow could represent. I landed on the idea of thundersnow as a metaphor for suppressed emotion - the storm is a rolling force, rumbling and flashing with power, while the snow represents a gradual deposit of ice, freezing the world over and covering up the rough spots in a smooth, clean surface.
All of the themes of Thundersnow grew from this idea. The setting, the structure, the story, the visuals, everything is based on images of emotion and the physical and psychological effects of strong emotional responses. There's more to this, but it could change how a player responds to the game on the first playthrough, so I'll limit any more discussion of this to a section later on.
The story of Thundersnow is intentionally a little vague. That was also a part of the experiment for this game - some of the story is explicitly stated, some is implied, some is only suggested in the visuals without figuring directly into the game, and some is intentionally completely unspecified. There are some basic points and an overall theme that I hope are very clear, but the chain of events is left somewhat vague by design, because the situation is more general and doesn't necessarily have to be tied to any specific events or actions.
Thundersnow is based on a simple premise - the protagonist wakes up in a strange, snowy setting, unclear of how he got there, and concerned that an unnamed party he had been with in his last memory isn't here, so he sets out to reunite with that person and figure out where he is and what's happened.
As the game begins, the brief opening monologue introduces the two visual elements of the interface, hopefully in an intuitive way. When the pressure in his chest is mentioned, the pulse bar appears:
Then, when the idea of finding strength over time is raised, the wisdom bar appears:
I think these read pretty clearly - the pressure in your chest is a progress bar, labeled with a number, with a beating heart at one side and the grim reaper at the other. The mechanic is that exertion increases your pulse, and if your pulse gets too high, nothing good awaits you. As your pulse gets faster, the bar fills, the heart icon visibly pulses faster and faster, and you can hear your character's heartbeat grow louder as the bar fills. One happy side effect of having access to the composer of your game's music is that I was also able to get the soundtrack broken up into melody and percussion tracks, so during gameplay the volume of the percussion track is based on your pulse, the result being that the music will take on a more urgent and driving sound when you're in danger.
The wisdom bar is another progress bar, with a journey at one end and a symbol of strength at the other. This is a basic Experience mechanic - victories grant wisdom, and filling the wisdom bar allows you to cultivate your strengths:
This was the other part of a basic Action RPG structure I wanted to experiment with this month - experience, skill levels, and allocating points into skills to modify your abilities. It's a very basic system but it works and could easily be fleshed out if needed in another game, so I'm happy with how this worked out.
Combat works fairly well but is also part of the game that I wish I had more time to work on, so I'll probably keep developing this codebase over time in other games. The combat is functional, but it doesn't feel as smooth as it should, and the code ended up in a fairly embarassing state of multiple half-implemented structures and objects using other objects to get references to yet more objects to pass messages to. However, I'm still counting this as a win overall, as it represents both my most complicated worth with Mecanim so far, with several multi-layer animation controllers required for the various characters, and also my first successful integration of publicly-available motion capture data with Mecanim, which opens up a huge area of possibilities for future games.
The Other Stuff
So as I mentioned, there's more to Thundersnow, but knowing some of it going in will color how the player experiences the game the first time around, so just in case, the rest of the post mortem writeup is hidden away. If you've already played or just want to go ahead and know everything going in, just click the button below to reveal the rest of the writeup.
Based on the theme of suppressed emotion, two real world phenomena became the inspiration for the setting and mechanics of Thundersnow:
Takutsubo cardiomyopathy provides the "health" mechanic of the game - if your pulse gets too high, it can kill you outright. This is a bit of an oversimplification, of course, but only somewhat - the basic idea is sound.
Brief Reactive Psychosis provides the setting and themes of the game. The protagonist is suffering through a delusional state, where hallucinations have clouded reality and left him unsure of where he is and what's happening to him.
Both of these conditions stem from the same unstated event - something has happened which is so emotionally disturbing to the protagonist, his mind and body are quite literally malfunctioning.
As the player progresses through Thundersnow, it should become increasingly apparent that this is a place made of memories, dreams, fears, or whatever else haunts this person's mind. Locations are half-remembered, distorted, sometimes obvious in meaning and sometimes seemingly unrelated to anything. Two particular locations, required in order to progress through the game, are a partial memory of a school filled with fiery shadow children who throw words in your direction to harm you, and a house where everything seems oversized, as if you are a small child, and where large angry beasts manifest to attack you.
The player can eventually gain access to a holy place, seemingly a church or shrine of some sort, where a fiery image of someone dominates the area. The protagonist is forced to think of himself in terms of how this other person sees him, and is attacked by a shadowy form of himself. When he prevails, he begins to understand what he's been doing here.
The strengths that you've cultivated while battling the things inside of your protagonist's mind...
...are now revealed to be his crutches:
Each of the protagonist's three skill categories is designed to be easily viewed as positive at first while actually matching up to a common negative coping mechanism:
Sensitization is a process through which exposure to certain stimuli produces an increasingly strong response. The protagonist is actually learning to react more violently when challenged.
Dissociation covers a variety of situations but in general it involves separating your emotions from the events you experience, so they do not affect you as strongly. The protagonist is learning to ignore and deny his pain and problems instead of dealing with them.
Avoidance is simply a pattern of trying to steer clear of something that causes you stress. The protagonist is attempting to run away from his memories instead of confronting them.
After this point in the game, the player must fight against the protagonist's unleashed demons, all of which can now appear at various locations all over the landscape, while systematically tearing down these crutches that have made combat progressively easier. In terms of combat, each point removed from one of the crutches makes the player weaker in some way, even weaker than they were when the game began. The game is won when the player strips away all of the points allocated to the three skill categories, thereby putting aside his crutches and allowing him to begin dealing with his real problems.
Overall, this was an experiment on several fronts, and while I'd love to have more time to clean up all the rough edges, improve the combat, and fill out the world (which was originally intended to have many more visual elements and interactions), there's a lot here that I like, and I'd like to do more work along these lines later, especially now that I've figured out how to implement so many re-usable components in this code (e.g. rules-based and zone-based hostile spawning/management, combat with Mecanim animation and hit zone detection, easy cutscene injection with camera management, XP/skillpoint system, etc.).
As it is, it should be in a playable state, and is hopefully interesting enough in its theme and mechanics to keep players interested for the short time required to experience the story.
Note: the following builds are available for testing purposes but I don't have the ability to test them. These are Unity builds so I don't anticipate any serious issues, but I can't vouch for correctness or performance of these builds.