Thoughts: Baba Is You

baba_bridge

Baba Is… hmmm.

This is both something I have said to myself many times when considering Baba’s puzzles, and something I am saying to myself now when considering how to review Baba Is You. It’s a very clever game with a very clever core concept that nevertheless has a general design philosophy that seems perfectly calculated to drive me, personally, straight up the goddamn wall.

Baba Is You is a puzzle game based around pushing blocks about in a 2D arena in order to achieve some goal — I only recently discovered that this block-pushing puzzle genre has an actual informal name taken from the progenitor game Sokoban, which is slightly embarrassing when you consider I reviewed Sokobond years ago without ever realising the pun. In Baba your goal is usually (but not always) to get the eponymous sheep-thing Baba to an objective flag, surmounting the various obstacles the level throws in your way. Most sokoban games are puzzles of positioning and sequencing; you only have so much space to play around with and can quite easily get the level into an unrecoverable position, so you need to think very carefully about which moves you make and what order you do them in. That’s also a big part of Baba Is You, but with the added complication that the rules governing the level you’re in — which blocks are pushable, which blocks stop movement, which blocks are the objective you have to get to, and even (yes) which blocks are you — are themselves pushable blocks in the level and can be rearranged to literally rewrite how the level works, hopefully in a way which aids a solution.

baba_simple

Your standard Baba Is You level will start with a few basic rules already formed. BABA IS YOU is perhaps the most basic of them all, stating that You — i.e. the block that you move when you push the arrow keys — are Baba. FLAG IS WIN says that the Flag block is the one you have to move onto in order to win the level. But perhaps you are separated from the flag by a set of Wall blocks, and elsewhere in the level are written the fun-sapping words WALL IS STOP. Most blocks in Baba will happily sit on top of each other and Baba can move through them freely — unless they have an attribute that alters this behaviour such as PUSH or, in this case, STOP, which totally blocks your progress.

If you have access to all of the rule blocks and the necessary room in which to rearrange them, there are several ways to get past the Wall blocks and win this hypothetical level. A boring solution would be to simply remove the STOP verb from WALL, rendering them passable so that you could get to the Flag. But you could also make WALL IS FLAG, which would turn all Wall blocks in the level into Flags — and just so long as FLAG is still WIN, moving on to any of those Flag blocks wins you the level. A more interesting solution would be to make WALL IS YOU, which would drop your control of Baba in favour of being able to move every Wall block in the level, all at once. And then finally you could make BABA IS WIN. Since BABA is also YOU you’re on the block required to complete the level by default, and you win.

Being able to mess with the level rules in this way is extremely powerful, and my basic description hasn’t even scratched the surface of what is theoretically possible with Baba Is You’s set of verbs and logical operators. In practice most rule blocks are put somewhere where you can’t get at or manipulate them, like at the very edge of the level boundaries outside of an enclosing Wall (which is STOP), just to stop you from completely breaking every level. The amount of rules you can actually interact with during a level is deliberately kept quite small, which is the first of my problems with Baba Is You; it’s come up with a great twist on the Sokoban concept and then deliberately refuses to make full use of it. Because make no mistake, this is a Sokoban game, not a game about finding interesting combinations of rules and using that to win the level. The core gameplay component is still the pushing of blocks and the sequencing thereof, with the rule blocks in most cases reduced to providing a little extra intellectual depth as you have to consider the logical implications of making rule X and then Y and then Z as well as the two-dimensional space you’re pushing the blocks around in.

baba_baba

I found this somewhat disappointing, although perhaps for rather personal reasons. My points of comparison here are the Zachtronics games, with their similar basis on logical flows and operators; I really liked SpaceChem and Infinifactory, as these gave you a set of tools and a space to work in and let you come up with a very freeform solution to a set problem. I did not like Shenzhen I/O, as it constrained the toolset so that the solution space was much reduced compared to its predecessors1. As a general rule I do not like puzzle games which have a single narrowly-defined solution to a given problem, and despite the seemingly-daring decision to give the player control over some of the rules defining level behaviour Baba Is You is restrictive enough that it still falls into this category. This kind of puzzle game always blurs the line between “figuring out the solution to a level” and “trying to figure out what was going through the designer’s head when they were putting the levels together”, and since I’m not hunting down serial killers in a critically acclaimed TV show I prefer not to go to the effort of getting inside somebody else’s brain if I don’t have to. It’s a challenge, sure, but not the one that Baba Is You is supposedly about.

That being said, Baba Is You has been extensively playtested by people who weren’t the developer and the first few tranches of puzzles do fall on the right side of that divide. It’s during the opening few hours that the game is at its best, where the puzzles feel more like chess problems at times; you can see the layout of the level and the rule blocks you have available, and if you just think through the alternative rules you can make and what they’ll do to the level you can often solve it in your head without even moving Baba. That is elegant design, so much so that it’s a chore to then have to go and push blocks around to actually implement your solution when you’re already mentally moved on to the next level. The Sokoban part of the game repeatedly gets in the way here; as with all modern takes on it Baba Is You tries to make it as easy as possible by offering a step-by-step undo button if you stuff it up, but it’s still a strikingly awkward way of interacting with a level, especially given how elaborate some of the later solutions get. It’s very annoying to be on the right track with a solution, to know that you’re on the right track with a solution, only to have to go back to the start because you accidentally pushed a block one tile too far a hundred moves ago and now you can’t move it again because it’s up against a wall and you can’t get to the other side of it.

baba_move

As the puzzles get progressively harder, Baba Is You becomes progressively more intriguing — and progressively more frustrating. More and more rule blocks are introduced; a simpler example is MOVE, which makes any block it’s attached to move in the direction it is facing until it hits something with STOP, at which point it turns around and moves in the opposite direction. If there is a skull in the level and SKULL IS MOVE, then the skull will move each time Baba does — however, you can also push the spacebar to wait in place for a turn and have the skull move autonomously, which is the core of many of the later puzzles as you push the MOVE block back and forth around various entities to effectively manipulate their position via remote control. The tiles you make MOVE can themselves PUSH other tiles or rule blocks around, depending on the level setup; there are also tiles that have the DEFEAT attribute that will kill Baba (or whatever tile currently has the YOU attribute) if it moves onto them, so there are more than a few puzzles that involve using MOVE to send your remote agent past an otherwise-impenetrable wall of DEFEAT tiles to push or retrieve some block from the other side that’s critical to solving the level.

Other rule blocks have very specific interactions with each other; if KEY IS OPEN and DOOR IS SHUT, then pushing a key into a door will make both tiles disappear from the level, which is convenient if DOOR was also STOP. You’re usually given a simple puzzle that’s supposed to teach you what these rules mean, but later on as the rules get increasingly esoteric you’re increasingly forced into trial-and-error to figure out what a rule actually does. Take LONELY. LONELY is a block that gets appended to the start of a rule, i.e. LONELY BABA IS YOU. But what on earth does LONELY actually mean? I spent a couple of levels thinking that it meant Baba had to be next to another tile in order to move Baba, because if Baba has company then Baba is not LONELY, right? Well, half-right; what it actually means is Baba has to be on top of another tile to be moved; each level has background tiles such as trees and grass that are usually there for colour but can’t really be interacted with (unless there’s a SHIFT rule in play), and Baba is safe as long as it is moving through these tiles.

baba_lava

Of course, up until you figure that out Baba is just randomly exploding sometimes for no obvious reason. For every puzzle that has a devious, well-thought out solution, there’s another that is effectively asking you to find the weirdest, most counterintuitive interactions or sequencing of rules in order to finish the level. The behind-the-scenes order of operations (or lack of it) in which each rule resolves starts to matter more and more — and this is non-obvious to the player and becomes less immediately logical as you get deeper and deeper into the game. For example, one level can only be solved by making the apparently nonsense statement KEKE IS BABA IS KEKE IS YOU. Because I’m a programmer (not to mention a human being trained to read whole sentences) I read that as a single line of code that executes in sequence, with the following effects:

  1. Any Kekes (another blobby character with two legs instead of four) present in the level transform into Baba, because KEKE IS BABA.
  2. Any Babas then immediately transform back into Kekes before you get a chance to do anything with them, because the next part of the statement is BABA IS KEKE.
  3. You can then move the Kekes, because KEKE IS YOU.

This isn’t how the game treats it, though. Baba treats that statement as a collection of four discrete rules: KEKE IS BABA, BABA IS KEKE, and KEKE and BABA IS YOU, which can execute simultaneously or in sequence depending on how the game is feeling at any given moment. So the actual resolution is:

  1.  Keke transforms into Baba.
  2.  Baba transforms into Keke. This happens simultaneously with 2 (i.e. any Keke that was transformed into Baba by the first rule cannot be transformed back into Keke by this rule because they execute at the same time), effectively swapping Keke tiles with Baba tiles and vice versa.
  3.  You can then move both Baba and Keke. The overall effect is that each time you move Baba, it transforms into Keke. The next time you move Keke, it transforms into Baba — and this is how you win the level.

baba_world_map

If that all sounds very confusing, that’s because it is. The fact that the rules in Baba do not appear to execute in a predictable fashion (sometimes it’s simultaneous, as above, but sometimes there clearly is sequencing at play because otherwise the solution wouldn’t work) really throws a spanner in the idea that these levels can be solved by logical thinking alone. Instead I found myself effectively debugging the game to find the one obscure, nonintuitive edge case for this particular combination of rules that was key to the solution. I have done QA testing for games in the past and it was just as tedious as you might expect, but I was at least being paid to do so; Baba expects me to do it as part of the game itself, and to enjoy it. There were several levels where I gave up after half an hour of this trial-and-error experimentation and looked up the solution on Youtube, and I still didn’t understand how the rules were interacting behind the scenes to produce the in-game effects that I was seeing.

The further I got into the game, the more the puzzles are like this: increasingly less clever, increasingly more finicky. It is somewhat to its credit that Baba never fully succumbs to this tendency, always sprinkling a couple of pleasingly challenging, well-thought-out levels after every batch of trial-and-error-athons. It also does, eventually, somewhat deliver on the rules delivering big sweeping changes that subvert the puzzle game part of it — but my god, you have to sit through some utter dross to get there, and up until that point there’s a vanishingly small number of levels that actually support the wide solution space you’d expect from being able to rewrite the level rules. For the most part Baba Is You is, despite its apparent subversiveness, about as restrictive and prescriptive a puzzle game as I’ve ever played, not to mention one where the actual functioning of the game is constantly mystifying despite the rules being literally written into the level. There are plenty of people who like that style of puzzle game design, and I can understand why the current Steam rating for this thing is Overwhelmingly Positive since if you buy into that design philosophy it’s actually pretty well put together, with charmingly minimalistic pixel art and a great soundtrack. As far as I’m concerned, though, if I’m going to play a puzzle game that’s this prescriptive I’d much rather be playing Sudoku since it is 100% logical and has a set of very easy-to-understand rules — which are two very important qualities that completely elude Baba Is You.

  1. And also it was a game about programming that taught some very bad programming habits.
Tagged , ,

One thought on “Thoughts: Baba Is You

  1. A Baba is Poo

    They served it up to you on a silver platter and you didn’t take it!

Leave a Reply