Indie Games and
Game Jams
Shovel Escape
(Shovel Escape section is WIP)
What started as a 48h game jam turned into a 4 month solo project after which I released this speedrun-able, vertical platformer to itch.io here.
This is an in depth look at my design processes while creating this game, and what I learnt along the way!
Summary
The massive hole you've spent months digging is collapsing on itself and lava is erupting from underneath your feet! Throw your magical shovel against the falling debris to climb to the top and escape!
Details
PC Only
2D side-scroller
Vertical Platformer (traverse up, not right/left)
Designed to be speedran
Created by Tobias Brunner (@PudgeMeBaby) and me
Brainstorming & Prototyping
Problem/Challenge:
Brainstorm, then draft a plan for a game with our skill and resource restrictions.Restrictions
48 Hours - With only 48 hours (minus self-care) to complete the game, we had to scope small.
Game Maker Studio 2 - Tobias, who would do most of the coding, preferred to work with GM2, and I wanted to learn a new engine to broaden my experience.
2D - Game Maker Studio 2 is limited to 2D.
Pixel Art - Tobias had experience making his own pixel art games, and I wanted to practice it as well.
“Falling Apart” - This was the game jams' given theme that we had to incorporate into the design.
Goals
Create a game the like of which neither of us has before; to challenge ourselves creatively.
Easy to learn; hard to master. Replayable.
Solution:
We wanted to create a platformer, something we were both familiar with, but with no combat/enemies, both to challenge ourselves to think outside the box and to avoid complex enemy AI in the limited time we had.
I had always wanted to test the concept of the “Stepping Stones in the Sky”, where you gain altitude as you jump from one falling object to the next above it, and having something above you “Falling Apart” to create these stepping stones fit the theme perfectly!
Game Jam Submission
Problem: There is an extremely easy way to exploit the game by throwing the shovel into the wall and hanging on it, jumping up as you recall the shovel, then throwing it back into the wall where you jumped to. This allows you to easily scale the wall very quickly.
Design intent: You’re able to throw the shovel into the wall to get around badly generated rock patterns, or to avoid falling while waiting for a rock to get into range.
Playtesting revealed: Good players saved their teleport to get around these bad rock spawns, and it even saved them time, so it was optimal. This meant, they did not even use the shovel in the wall much and that mechanic could be removed to encourage this behavior.
Solution: I widened the level, while not allowing the blocks to spawn too far on the sides, and disabled putting your shovel into the wall.
worked!
Problem: Teleporting to a rock placed you on top of the rock, and platforming around rocks is difficult, so players over-rely on their teleport to get around rocks instead of learning how to jump around them.
Solution: Player dangles off the end of the shovel, instead of being able to stand on top of it like a platform.
This also fixed many collision issues.
Closed Beta
Five of my gamer friends played this version for over an hour each.
Problem: No tutorialization in game lead to confusion on what all the given tools where.
Solution: Text prompts teaching the mechanics, that would only advance to the next when you got high enough.
Problem: Players were losing their double jump and struggling to manage their jump cooldown?
Observations: Players were unwillingly pressing “W” , which I had set as an alternative button to Spacebar, at the same time as “Spacebar” to jump! This caused them to sometimes double jump immediately.
Solution: Since they were pressing W automatically, I tried taking spacebar away as a jump option, but this resulted in less accurate jumps, so I changed it to Spacebar only. This solved the bug and made players more actively think about their jump input.
Other improvements in this version:
A more varied level, with areas on the sides to stand, that you first had to navigate around. These platforms served as checkpoints if you fell, but still required you to pay attention, as you could get squished between the platform and a rock from above.
Crystal alternative win condition (observed: threw in at first from a nice to have feature, but this turned into the main replayablity/late game/mastery feature)
Release Version
Problem: Without being able to hang on the wall, players are pushed towards the middle of the map, where they would naturally avoid a lot of the interesting level shapes that were meant to serve as challenges and resting areas.
Solution: I implemented a wall jump.
This allows players to gain verticality without having to rely on rocks for every jump and made movement a lot more fluid, as you could jump off the sides of rocks now too, instead of just the tops.
Other improvements this version:
Critical Bug Fix: Was able to fix what was making players stop their jump upon hitting a rock from below.
This ended up being the biggest change that made gameplay feel fluid and smooth.
Better rock spawns
Better collisions
Post-launch unresolved problems
Problem: Controls are very hard for certain players, if they were…
new to PC’s WASD/Space controls.
new to controlling with the left hand and and using mouse with the right hand.
used to playing platformers on a controller.
playing on laptops with a trackpad.
Problem: It’s still unclear, when to optimally teach the teleport ability.
Playtests revealed, that players who had learnt it early, overly relied on the mechanic.
They would teleport high up, like how far it took them, and then wait in that spot for the cooldown of the teleport to come back. This lead to them falling further than they will be able to teleport before the cooldown is refreshed, leading to their overall descent.
Teaching how to jump from one falling rock to another, and to use the wall jump, first should have helped with this, however…
some players gave up before getting high enough to learn about the teleport, and then found a lot more success and fun after being told how to do it before they got high enough for it.
some players did not understand the importance of the teleport when taught later on, as they were too focused on the base platforming, and the tutorialization was just text.
Meta Problem: When trying to get streamers to play the game, there was a big buy in for them…
to download and trust a file that wasn’t on steam, especially when it triggered anti-virus software due to being an unknown executable.
A browser port would have diminished this hurdle significantly, but my attempts at a port caused new, game breaking bugs, which I did not plan to invest my time time into debugging.
to play a game for free, when some of these streamers where big enough to have devs pay them to play/advertise their game.
I put a few gifted subs on the line if they could beat the game, and some streamers took on that challenge for the content.
to play a game in front of their viewers that might be unpolished, buggy or even against ToS.
to switch to a different game from the one their current viewers specifically clicked on.
This meant, I had more luck with variety streamers or those in the just chatting sections.
Things I learnt
To get the best results, playtests should be conducted with at least a handful of players.
I learnt a lot from watching people play with varying degrees of experience in keyboard and mouse controlled platformers.
Having good players come back to test changes proved to help me refine the difficulty.
I had a lot of difficulty at first wrapping my head around Gamemaker’s collision system.
Unlike Unity, where you have collision boxes and simulated physics, we opted to work around scripts that would predicts is certain sprites would overlap one another in the next x frames.
This was my biggest pain point with Gamemaker, and why I will be sticking with Unity as my preferred engine in the future.
I realized that I still have a lot to learn about debugging.