When I play One DreamerDemo of June, I think this might be something special. It looks like a game about a failed game developer, presented using a combination of point and click puzzles and coding, but in an accessible way. And that’s what it is! Acclaim! In fact, it’s much more adorable, attractive, and amazing than it looks.
Frank is a game developer who has had an indie hit, a VR multiplayer MMO called ProxyLife That’s a big deal in the short term. But now it is struggling, the player count is dwindling, and the lack of a constant feed of new features is weakening its player base. At the same time, Frank is doing some soulless freelance work (a situation familiar to most indie developers), helping an AAA game implement DRM more closely or reduce the chance of a statistic getting player’s in-game money.
However, none of this is outspoken. Instead, through what appear to be sequences of dreams, we learn the history and motivations for creating ProxyLife, in extensions, where Frank can edit the code of objects in the world around him. Here, using the game’s pseudocode (a simplified version of C# that even I can understand), you can – say – reprogram a duck to meow like a cat, or More usefully, control a lever so that it opens a locked gate in the distance.
In parts of the real world, where Frank’s work is surrounded by overdue bills and threatening letters, such programming is restricted to his computer. Here, you are tasked with making these mercenary changes to the AAA game, while trying to pick up your own pieces. As someone who has never had access to games that require me to learn and implement code, I’m happy to report that’s not the case here. This is so cleverly designed that it behaves like quizzes, while surreptitiously teaching me the basics of code structure. But amazingly, it mostly taught me how to dodge.
There’s a lot that’s smart about One Dreamer, from its narrative structure to its ridiculously beautiful pixel graphics, but the way you’re required to solve puzzles using coder bodging is just great. You need to remove that feature that gives new players 100 coins? Change the value of a small CoinRewardTier from another section of the game’s code, then copy and paste that into the NewPlayerData such that startingCoins = CoinRewardTier.Small. Sure, that’ll likely break something else somewhere else, but it does the job for now.
This idea of making do, of cutting corners, permeates all the puzzling in the game, making it so delightfully honest, brilliantly teaching bad habits. So many coding games are so exhaustingly worthy, acting as if they are benefiting the player with wondrous knowledge–not here. Here, in this superbly crafted game, even the coding puzzles lean in to the disheartening tone of trying to stay afloat during disaster.
The story is told very out of order. The introductory spiel I gave you at the top is where it feels like things start, but as you play you jump about the timeline in a way that’s very deliberately under-explained. For the most part this works very well, but there are occasions when I found myself confused. There’s also one rather pivotal moment that’s somewhat underplayed in a cutscene, leaving me pretty unsure about what had just happened. I mean, I figured it out, but it’d have been nicer if it had been somewhat better explained.
My only other gripe with the game is how slowly Frank moves when going up and down stairs. That’s something you do with him a lot, as he traverses the 2D side-scrolling scenes, and it allows for the game’s beautiful moments where the location changes as you enter a door, or climb a staircase. But he really takes his time, and it does start to drag. But, heck, when this is my main complaint, you know you’ve got a cracking game here.
The art is just spectacular, especially the lighting and bloom on those pixel characters, which is made even better by superb voice acting, and a really lovely soundtrack. This is so damned solid.
It’s also an awful lot longer than I was expecting. At a point where I figured things were winding up, I looked at a YouTube playthrough (in order to re-watch the confusing scene I mention above), and learned I was barely halfway. So at this point, I’ve not finished, but I’ve played enough to know how much I wish you would too. This is something properly special, a fascinating and moving exploration of the drives behind so much indie development, and how incredibly unhealthy and toxic it can become. And yet it also feels full of hope, full of the potential of creation. And, somehow, it’s even got a doofus like me solving coding puzzles.