Fast paced 2D top-down game with upgrades and unlocks. Playing as a beaver in a forestry machine you race against a raging forest fire, maximizing harvest of timber and dealing with nasty goblins.
A weekend solo project spanning over 4 months. I did all the designing, scripting and art from scratch for the game.
Collect timber before the wild forest fire burns it all down. The core gameplay revolves around optimising the collecting of trees while exploring the maze-like levels, handling invading goblins, and putting newly unlocked abilities and upgrades into best use.
The forest fire visualizes a timer that puts pressure on the player and enforces movement and exploration.
Totorializing and distributing a manageable flow of new mechanics along the player progression dictated the level design and pacing. Not pushing too much new stuff on the player while still delivering appropriate challenges and areas to try out the new abilities and upgrades you acquire.
Appendix: Spreadsheet outlining introduction and pacing during progression.
The first tutorial sections are built up by short text descriptions supported by visual clear examples. No nonsense. The player can control the character from the start and can progress into the real game content within seconds.
Lure the player to their death
Dying is a part of the game. It gives the chance to switch out your upgrades and try again. I teach the player this by luring the player into a death trap by using the familiar level design layout from previous levels against the player:
Going to the left:
• Previous levels leds only to the left.
• Gold tree draws the player to the left.
New abilities and upgrades unlocks as a reward after each level. Before starting the next level or doing a rerun, you have the chance to switch up your setup. This was to encourage the explorations of new playstyles as well help the player to get unstuck on a level.
My goal as to have the player get into a nice flow while playing, being forgiving and generous in the design to support that. I wanted to reduce hiccups for the player and the feeling of unfair scenarios.
• Clearly telegraphed attacks.
• Small hitboxes for the player.
• Large hitboxes for enemies and trees.
• Input buffer time, making slightly early or late inputs still valid.
• Rounded collision corners for smoother movement.
• Dying gives a chance to respec and retry, no progression loss.
• Dynamic difficulty (read further down).
The enemies are acting on a basic state machine, switching between 3 states with some conditions including randomness. What's most interesting is the choice of direction in the movement.
Influence movement
The direction and speed the enemies move in are determined by several values to give them more life. The vectors in debug mode represent positional relationships between the enemy and different points of interests. The longer a vector is, the more influence it will have on the direction the enemy moves in.
• Move towards player. Line of sight + distance threshold
• Avoid Fire
• Avoid grouping up. Avoid other goblins
• Stay close to the spawn area
• Random noise
Abilities and enemies have multi purpose and can interact with each other. The goblin wants to bash you, but if fire is near they might prioritize running away to avoid getting scorched. When bashing they can also stun other goblins, creating opportunities for fun scenarios.
The blade ability that revolves around the player covers a larger area you when on the move. Combining this with the grappling hook will more than double the surface area covered. Grapple hooking a running enemy will pull you along for even further. Besides cutting down trees, the blade abilities have the multi-purpose of destroying rocks and stunning goblins.
Based on any failed attempts the player has during a game session, the difficulty automatically will adjust without the player's knowledge. This would minimize players getting stuck on a level. Making the auto balancing without giving it away is important to keep the sense of accomplishment. The goblins' movement speed is slightly modified as well as the precision of the bashing attack. Since the aim of the attack always has a random element to it, any suspicion regarding balancing could pass as pure luck. The spread rate of the forest fire is also altered without the casual player consciously noticing it, effectively giving the player more time to complete the level.
Soft Start → Intense Endgame
Part of a self-balancing negative feedback loop is the tree resource. At the start of a level trees are everywhere, effectively creating a soft start followed by a tougher and more intense endgame once scarcity rises.