This game is in early access state. A review code was provided to Culture of Gaming for review.
In recent years, there has been quite a push from organizations like Codecademy encouraging younger and younger kids to learn coding. No matter which program or language the organization wishes to teach, one universal factor is the method that is used to ease new students into the world of coding. This beginner friendly method is known as “Block Coding”. That is pre-done coding logic wrapped up into a pretty block and tied to an easy to understand GUI. Students learning through this method need only drag and drop these blocks of code to begin problem solving. It is an incredible way to ease people into the logic puzzles they may experience while actually attempting to code.
Also in recent years, there has been a renewed interest in machine and deep learning AI. That particular field as an industry is set to see some renewed and steady growth. However, most aforementioned beginner friendly intro to coding programs never stray into this field.
So what happens when you want to apply the tried and true block coding learning method to the field of machine learning?
You get the game known as: while True: learn().
while True: learn() takes you on a historical journey through the field of machine learning, but disguises it by you playing as a freelance programmer taking jobs to advance his knowledge towards the ultimate goal of developing a machine learning based program to understand your cat.
To work towards this goal, you are presented with programming logic puzzles solvable by pre-programmed blocks of logic, and this is what the core of gameplay consists of. Dropping and ordering these blocks of logic to meet the objective of the level. In true puzzle game fashion, the complexity of the levels ramps up as you progress through the game. While no actual programming knowledge is needed, while True: learn() certainly gets the player thinking like a programmer would to solve problems.
Speaking of progression, the way while True: learn() presents its progression is an absolute stroke of genius. The level selector is represented by a timeline, that you slowly work up. As the levels progress and you are introduced to new concepts of machine learning, the new concepts correspond to the timeline at which they were actually invented in the real world. An awesome bonus is everytime a new concept or technology is introduced, while True: learn() splits the screen with one half telling you how it works in-game, but the other half offering you links to YouTube and other resources to learn how the technique actually works in the real world. while True: learn() blends learning and actually being a fun game masterfully.
However, while the presentation of progression is well done, the complexity of the progression leaves some to be desired. while True: learn() suffers from ramping up the difficulty too quickly. Concepts are only briefly introduced via a very short and moronic tutorial level before hanging the player out to dry in a level that asks just a little bit much for a newly learned concept. This could be easily remedied by adding an interim level beforehand, one that gives the player a higher platform to stand on to build the next tier. To further add to this problem, there are times where it feels that concepts are not adequately explained in the first place, making the tutorial levels seem fairly useless.
Past the core gameplay, there are several other parts to the game. There’s the store, which you can buy cosmetic items (only using the money earned in game by completing levels or startups, more on those later), more complex logic blocks, and hardware that enhances your processing power. There’s also “Startups”, that unfortunately suffer from the same ‘lack of explanation’ syndrome that the core gameplay has as well.
Startups, are, well startup companies that you can choose to take part in by designing their algorithms to do whatever task the head of the startup wants. By and large, they aren’t too different level design wise from the core game. However, they have the advantage of providing you with a monetary payoff every week. Profits are maximized via improving the efficiency of the systems implemented by the startups, which is best done by returning to improve them once you’ve unlocked better logic blocks.
The primary issue with startups is that even on the ones requiring the most basic tasks to be fulfilled, i.e the first to be introduced, you can’t make a profit off of them until much later. The entire startup system is also explained fairly poorly, and requires a few more strokes of polish.
while True: learn() is a worthwhile game, even in its early access state and price tag of $6.99 on Steam. As a programmer in training, I can only hope that while True: learn() inspires curiosity about the field, and encourages you to learn more about it, and maybe even try it yourself.
At the end of the day, while True: learn() is a fantastic puzzle game, but is still a bit rough around the edges. I would encourage the developers to clean it up a bit and give it a few passes of polish before full release.
- THE GOOD
- Fantastic Presentation
- Provides resources to learn more about concepts in-game
- Unique concept
- Lighthearted approach
- Parodies of real life resources are humorous and well done
- THE BAD
- Lacking polish
- More explanations of concepts need to be added
while True: learn() is a fantastic puzzle game that introduces block coding to machine learning, and makes it possible for anyone picking this game up to learn about machine learning, and have fun doing so. While some areas need more polish, while True: learn() is a fantastic game that feels overall complete despite being in early access, and is definitely worth the pick up.
Taylor has been gaming for as long as he could hold a controller. He has hosted gaming oriented podcasts for four years, and has even started to dabble in writing about anime. Taylor almost enjoys discussing games more then playing them, and when not watching anime or playing games, Taylor can be found going off on rants about the technical details behind the games.