Tuesday, 19 February 2019 08:01

while True: learn() Review

Written by

In the educational puzzle game while True: learn(), you play as a programmer who is trying to communicate with his cat by creating a program that translates cat speech to English. You start off using rudimentary programming techniques that get crudely explained to you via mock web searches, forum posts, and newspaper articles. You are slowly guided toward using better techniques, and in this way you are given a rough history of how programming has developed in real life over time.

While playing, you learn.

If you're hoping or expecting to learn programming skills by playing while True: learn(), you will be disappointed. What you will learn might be very, very loosely related to programming in the sense of helping you to think abstractly about certain kinds of problems in certain ways — but that's all. I was quite let down when I realized the puzzles involved would never graduate to anything resembling programming, but if you never expect that, then you can enjoy the puzzles for what they are: complex, solvable, intriguing, adequately frustrating (as all good puzzles should be), and varied.

There's a good mix of easy, medium, and hard puzzles, and they require you to adapt along the way. The puzzles are problems in routing optimization, which is something humans aren’t very good at. They’re a kind of problem a computer is good at solving if you program it correctly, but writing that program is not your task in while True: learn(). Instead, you solve the puzzle yourself using tools that show up in certain kinds of programs. This puts you neither in the place of the programmer nor of the computer. Instead, your attempts vaguely represent iterations a computer might make to solve the problem.

Connecting nodes.

Gameplay consists of choosing "jobs" (levels) from a screen that maps out your progress on a tree chart. Each level has its own story and each is a puzzle, but you don't have to complete them all, as many are optional. You only need to complete levels that are on the main trunk of the tree to finish the game, although you might find yourself wandering off the main path to earn more money, to find an easier puzzle, or just because you're curious. No matter what the level is, you solve it using nodes: these boxes work like switches or filters, redirecting input along a path you specify. Different nodes do different things; some simply split all input in half down two different paths, while others sort colors and shapes. You will have a different set of nodes available to you for each puzzle, and you have to figure out which ones to use in which combination. Sometimes you'll have a lot of nodes to choose from, which can be overwhelming, and sometimes you might only have one or two, making it a lot easier.

The brilliance of these puzzles stems from their simplicity. You will always know for each puzzle what you start with (the input), what you need to end with (the output), what your constraints are (how much run time you're allowed, and how many of each node type you can use), and what nodes you have available to use. From there, it's all you. You can be as creative as you want. Many puzzles can be solved multiple ways, although some ways are obviously more or less optimal than others. If you want to find the optimal solution, you'll have to try different strategies… and that's what makes while True: learn() addictive and challenging.

The cat made me do it.

To pass a level, you'll at least earn a bronze medal, yet striving for silver or gold has its incentives. You'll be motivated to get gold medals in as many levels as possible because you need at least three gold medals in each chapter to unlock that chapter's gold ending, and apparently the ending of the game can differ based on how well you've done. If you don't care about that, however, you might care about unlockables. You earn more money for doing better in a level, which you can use to buy things like upgrades, skins, and decorative items. So you might just find yourself redoing a level until you've got gold, no matter how many tries it takes.

Maybe the cat drew it?

I like and dislike the graphics of while True: learn(). On one hand, they're serviceable, quirky, and even a little bit charming in how inept they are. On the other hand, they feel unprofessional and basic. If I could wish for better graphics, then scenes would be animated instead of the mere stills they are. But the graphics do fit with the tone of while True: learn(), so I can't really fault it too much. Just don't expect anything too impressive in that department.

Meow, meow, meow, meow...

The background music is a looped song that somehow isn't annoying after a thousand plays, which is quite impressive. The song varies enough that it won't grate on your nerves, but it's subtle enough that's it's also easy to tune out while you're busy thinking about how to solve a puzzle.

Did the cat write it?

The writing is pretty bad in while True: learn(). Explanations are vague or entirely missing, word choice is off, and the dialogue is never deep or realistic. Luckily, that's kind of okay. The sense of humor in while True: learn() is one of its strengths. If only the developer had stuck more to being funny and tried less to be informative or serious, then I think a lot would be improved. Too many of the mechanics and controls remain a mystery even after they're explained, which can seriously stall you. Eventually, you can probably figure it out on your own, so you can just think of it as an extra layer of puzzles to solve.

Everyone loves cats. (Or at least they should.)

There are plentiful flaws to pick at in while True: learn(), but what it comes down to is that it took me over six hours to complete my first playthrough, and there's probably at least that much content left for me to go back and do. Trying to get gold in every level creates great replay value, as well as unlocking the bronze or silver endings. It might be fun to try to do a run where I only find the sub-optimal (but passable) solutions, for example. You might hate while True: learn() for an hour or two, during an infuriating stretch where you can't figure out what you're doing wrong, but once you persevere and find the solution, you'll feel a great sense of satisfaction.


The Verdict: Good

I can readily recommend while True: learn() to any puzzle-solver out there who doesn't mind a few quirks and isn't looking for programming-related puzzles specifically. Don't expect much from the visuals, music, or story, because it's all about the puzzles. These puzzles will give you hours and hours of I-don't-understand-why-it-isn't-working torture that is extremely addictive.

Read 3969 times
Tiffany Lillie

Proud Editor-in-Chief here at OPNoobs, Tiffany is ready and willing to help sentences in need. (Sometimes all she can do is make them comfortable before they're deleted.) Her hobbies include trying to survive in Don't Starve: Together and designing 3D houses in Blender to upload to the virtual world of Second Life. Originally from Canada, Tiffany says "about" strangely sometimes (but it sounds nothing like "aboot") and she's enjoying her transition from snow to rain in Seattle. She graduated with an Honours Bachelor of Arts from the University of Toronto, majoring in English and minoring in Philosophy and Writing & Rhetoric. She believes thinking helps writing and vice versa.