A solid puzzle game is exactly the type of experience I was craving this week. Having just finished a huge, open-world extravaganza, I felt a need to play something small and focused, a digital palate cleanser. Made by student developers StarByte at the DigiPen Institute of Technology, Soulcaster sated that need with extremely polished puzzle platforming. Using a clever cloning mechanic to create intricate puzzle rooms, the smooth difficulty curve and constant introduction of new ideas keep the free game engaging from beginning to end.
Soulcaster‘s unnamed protagonist has found herself in quite a predicament. While exploring a Meso-American temple, the stone door slides shut behind her, trapping her within the ancient ruin. For a while, all hope seems lost — the protagonist has no special skills, and her weak jump is woefully insufficient for scaling the broken stones. Fortunately, in a dusty corner she finds a glowing blue gauntlet, which projects a second copy of herself when activated. With the aid of the ancient artefact, she scales the temple’s obstacles with ease, teaming up with herself to make her way back to the surface.
Puzzles in Soulcaster primarily revolve around placing blocks on switches to open up a pathway to the exit. This task, of course, is not as easy as it sounds. Many obstacles lie in the way of moving a block to the switch. For example, the adventurer cannot jump very high, so blocks also double as stepping stones to other parts of the level.
Her clone double can push blocks and stand on switches herself, but she also mirrors the player’s movements exactly, so finding ways to move one of the girls while blocking the other is very important. Shooting clones to higher platforms is a great way to ascend, as the two can switch places with a clear line of sight. However, in later levels walls of fog block the gauntlet’s line of sight, requiring the player to find another way around.
Balancing difficulty in a puzzle game is one of the hardest tasks a developer can achieve. Take too long to seed in new mechanics and players will get bored, but ramping up the difficulty too quickly will likewise put people off. Additionally, the varying skill levels of players and their familiarity with the genre makes it nigh impossible to keep everyone happy.
Considering this giant task, the buttery-smooth difficulty curve of Soulcaster is extremely impressive. Each level builds on concepts introduced in the previous stage, growing from simple block-pushing puzzles to an intricate web of zapping clones across the screen. The later levels are hard but never feel unfair, requiring far more planning than pinpoint accuracy. I was reminded of my favorite levels in Lemmings or Portal, as Soulcaster gave me that same great feeling of achievement when the solution clicked into place. The 21 levels are the perfect length for a single session, but I would love to see a longer version of the concept. For those who like a challenge, the Steam achievements add some replayability to the game, tasking the player to finish with a fast time or few clone swaps.
The aesthetics of Soulcaster are simple but have that all-important clarity for a puzzle game. One can tell at a glance where the switches, blocks, and hazards are, and the clone is distinct from the protagonist. I would have liked to see a bit more development for the story — returning the gauntlet at the end is a nice way to give the game a sense of closure, but I was curious about the protagonist and how she ended up lost in the temple. Nonetheless, music is simple but cheerful, the perfect background for mulling over the right order of button presses.
I was utterly charmed by Soulcaster. The core mechanic is fun to use, and the puzzles designed around it are clever without being aggressively hard. The student developers at Starbyte have a promising future indeed.
For next week’s game, I have been sworn to secrecy, but I promise it will be worth the wait! If you wish to share your thoughts about Soulcaster or any of the other free games, discussions are happening in the Discord server.