This review assumes you have played the game, and as such, it contains spoilers. You’ve been warned!

Contrast is the kind of game that could have only been produced by an indie studio. It’s a brief, three-hour puzzle-platformer based around a novel mechanic, and it doesn’t overstay its welcome. It’s charming, it has a fully-realized aesthetic, and barring a few bugs and some janky controls, it’s generally well put-together.

In Contrast, you control Dawn, the (not-so-)imaginary friend of a young girl, Didi. Dawn can move around in three-dimensional space, but she can also flatten herself into a wall and turn into a shadow, which gives her the ability to jump on other shadows, allowing her to get to previously unreachable places. Contrast’s numerous puzzles are built around this mechanic, and they all exhibit a lot of cleverness.

What really sets Contrast apart from other puzzle-platformers, though, is its setting. The game takes place in a cross between a dreamworld and a cityscape, with jazz music lightly playing in the background. The art direction here is fantastic, softening the edges of objects and making distant buildings appear fuzzy, which gives the setting an oneiric quality. Navigating this setting is a simple matter of walking and jumping around, but at times, the controls can be slightly floaty, which makes the game harder than it really should be. But the controls are never bad enough to be unbearable.

Contrast’s story is a surprisingly mature tale of a broken home. Didi is being raised by a single mother who kicked her husband, Johnny, out after he repeatedly failed to provide for his family. Over the course of the game, Didi discovers that her biological father is not Johnny, but a magician who goes by the name of The Great Vincenzo. Like most children in difficult family situations, Didi just wants her family to be whole again, so she does everything she can to make Johnny’s latest venture, a circus, a success. There’s a current of darkness that underpins the game’s events, even as Didi views them through her young eyes, and it’s interesting, usually unexplored territory for a video game. Didi’s naïveté and precociousness are occasionally somewhat annoying, but it usually provides a nice contrast (see what I did there?) with the game’s dark subject matter.

As interesting as this story is, though, the ending is at odds with the narrative’s tone; it’s too happy-go-lucky, and it feels cheap. Contrast really needed a bittersweet ending – preferably one where Didi didn’t receive closure with Vincenzo – and it really feels like the developers chickened out in order to give everyone a happy ending. Moreover, the revelation that Dawn was Vincenzo’s assistant who disappeared into the “shadow world” ruins the sense of mystery and dreamlike nature that permeated the rest of the game.

Still, control issues and bad ending aside, Contrast is a nice gem of a game. It’s a little on the short side, and there are a few too many cutscenes in the early going, but its unique setting and mechanics make it well worth playing. This is the kind of nifty, little title that I could never imagine being greenlighted by a major studio, so I’m glad that Compulsion Games decided to make it.