One of my favorite video game genres has always been the puzzle game. The reason that I enjoy puzzle games is that while they can be relaxing, they can also be quite challenging. These games might not share the action of most video games, but it is so satisfying when you are able to finally solve a hard puzzle. A recent trend in puzzle video games has been to try and create puzzles around computer programming. Being interested in computer programming myself, I am always interested in checking out these type of puzzle games. I have looked at several of these games in the past: Algo Bot, Hack ‘n’ Slash, and Human Resource Machine. Today’s game while True: learn() takes a different approach to this genre of games by focusing mostly on machine learning and data analysis. After being in Early Access for some time, the full version of while True: learn() launched today on Steam. Fun and informative puzzles make while True: learn() a fun and original puzzle game that has a few slip ups when it comes to the difficulty and startups.
We at Geeky Hobbies would like to thank Luden.io and Nival for the review copy of while True: learn() used for this review. Other than receiving a free copy of the game to review, we at Geeky Hobbies received no other compensation for this review. Receiving the review copy for free had no impact on the content of this review or the final score.
In while True: learn() you play as a frustrated coder. You have been working on a project for a long time and can’t figure out why it is not working properly. Then one night your cat messes with your computer and suddenly the problem with your project is solved. You realize that your cat must be a programming genius. Its’ too bad you can’t communicate with your cat to get it to help you with your other work. That is until you devise a brilliant idea. You should just create a program that will help you communicate with your cat so it can help you with your projects. As you are a broke coder, you will have to take a series of small projects and even create your own startups in order to earn enough money to complete your cat communicator project. Will you be able to make enough money to avoid going broke while trying to figure out what is going on inside your cat’s head?
At its’ core while True: learn() is a puzzle game. For almost every puzzle you are given an input set of data. Your goal is to use different code modules in order to sort that data and send it to the proper outputs. Each module that you use has input and output slots. You drag from an output slot to an input slot in order to create a path that the data will follow based on whether or not it meets the conditions on the module. The goal of each puzzle is to meet a certain accuracy while processing all of the data within a given time period. The faster and more efficient your solution is, the better you will score in the puzzle and you will receive more money.
That is basically all there is to the puzzle aspect of the game. Throughout the game you will get access to different modules that sort the data in different ways. All of the modules work the same way as you just drag between output and input slots. There is no need for prior programming experience in the game even though it will give you a good starting point for how to approach a lot of the puzzles. While this sounds really simple, I found the puzzles to be quite satisfying. There is some challenge in figuring out the most efficient way to process the information. The game is really smart having players focus on the puzzles themselves instead of trying to figure out a bunch of different mechanics. Trying to figure out how to quickly and accurately process the data is quite fun. People who generally like action games will probably be bored by while True: learn(), but puzzle fans should enjoy the gameplay quite a bit.
One thing that I thought was really interesting about while True: learn() was that it felt like it was built from the ground up to be both educational as well as entertaining. The various puzzles you will encounter in the game deal with topics such as machine learning, neural networking, big data, and AI. The puzzles are sorted in a way to illustrate how these fields have evolved over time. The puzzles begin with topics addressed by the earliest systems and proceed to the present day. All of the puzzles in the game are examples of how you would use this type of knowledge in the real world. Each puzzle even has links to videos and websites that give you more information about the practical application of the puzzle along with tips to help you solve the puzzle. Along the way the game even gives you various historical facts about major improvements made in the fields as you cross the corresponding puzzle milestones. I really think while True: learn() excels at being educational while still being fun to play. I could see it working quite well as a learning tool for people that are just getting into computer programming.
While I really liked the puzzle design, I have to say that I didn’t find most of the puzzles to be all that difficult. For a reference point I would say that I have some light programming experience and I play a lot of puzzle games. At this point I have completed around 60% of the puzzles (with the highest rank in each puzzle) and I only remember a couple puzzles that I didn’t solve really quickly. I expect the game to get more difficult towards the end but at this point I haven’t found the game to be all that challenging. Maybe I am just really good at solving these type of puzzles, but for most of the puzzles the answers seemed pretty obvious.
The main reason that the game is pretty easy is that it is pretty easy to come up with a system that will properly sort the information. The difficulty in the game comes from optimizing the number of modules used and the time it takes to process all of the data. Most of the challenge in the puzzles comes from shaving off the last couple of seconds in order to finish in time to receive the gold medal. People with no programming experience or those that don’t play a lot of puzzle games may get more of a challenge out of the game than I did. People with a lot of programming experience though will likely find the game to be even easier than it was for me.
Seeing as while True: learn() is a puzzle game, it is not surprising that the game’s story is on the lighter side. Outside of the occasional comic book style cutscene, most of the story is told through the emails you receive giving you your next job. If you take the time to read through the emails, there are some interesting little side stories linked to the different projects you complete. Lets just say that you will be taking some projects that are arguably not ethical. Other than the occasional story tidbits, I think the game does a good job with the theme. I liked the game’s cartoony art style and your cat is quite cute. The story/theme is not a reason to play while True: learn(), but it doesn’t hurt the experience either. That is the best you can usually expect from these type of games.
There is one aspect of while True: learn() that I haven’t discussed yet which is the business side. While you play the game you are also running your own business. Each contract you finish gives you money. You will incur expenses based on the number of servers you use and how long it takes to process the data. For the most part you don’t really have to worry about these expenses as you will usually make a lot more money from the job than you incur in expenses. The money you earn is then used to pay expenses on future projects as well as buy items. You can purchase decorative items for your cat/office. The best use of your money though is on computer parts and new modules. These allow you to process future projects quicker which should make it easier to solve the puzzles.
I don’t mind the idea of having to earn money to pay for expenses and buy items, but I had some problems with the startups. As you progress through the game you will have an opportunity to invest in various startup companies using money that you have on hand. When you invest in a startup you are presented with a puzzle that you have to solve. Unlike the other puzzles where there is a target to indicate how well you have solved the puzzle, there is no target for these puzzles. Outside of knowing whether your system works or not, there is no way to tell how efficient your system is. The best you can do is look through the system to try and find ways to make it more efficient.
This leads to the biggest problem that I had with the startups. The game gives you a short introduction to how they work but I think the game could have done a better job. It just feels kind of random how much you can make from a startup. There are some startups that I didn’t think were very efficient that made money and others that seemed efficient that didn’t make any money. The game wants you to refine your startups to make them more efficient as you learn new techniques, but it is hard to see what effect any changes have on the success of a startup.
The main reason that I was disappointed by the startups is that I thought they could have been a really interesting addition to the game. The idea of continuing to improve upon a design was really interesting as it allows you to use techniques you learn in later puzzles to improve upon previous designs. Unfortunately I never really got into the startups. I would say to just ignore the startups all together except for two reasons. First you can make quite a bit of money from them without really having to do anything once you have them setup. If you want to purchase a lot of the decorative items, you likely will have to make quite a bit of money from the startups. The other reason why I wouldn’t ignore the startups is that they are some of the best/most challenging puzzles in the game.
As far as the length of while True: learn(), I can’t give you a definitive answer but I can give you a good estimate. As I mentioned earlier I have currently finished around 60% of the puzzles. So far I have played the game for around 7-8 hours. I did end up wasting quite a bit of time trying to optimize some of the startups though. I probably ended up wasting an hour or two trying to optimize the startups. I am assuming the later puzzles are more difficult and will take more time than the earlier puzzles. Therefore I would estimate that the game will take around 12-15 hours to completely finish. For a puzzle game that retails for $12.99, that is pretty good.
while True: learn() is an interesting and unique puzzle game. The gameplay mostly revolves around guiding data through different modules in order to sort it and send it to the right output. while True: learn() does a really good job teaching programming techniques without requiring any actual programming knowledge. The mechanics may be simple but the puzzles are fun to solve. Unless you hate programming puzzles, puzzle game fans should have fun with while True: learn(). I did have two issues with the game though. First the puzzles are on the easier side in my opinion. Most of the challenge comes from optimizing instead of actually figuring out how to complete the puzzle. I also thought the startup mechanics could have been better as it feels kind of random which ones succeed and which fail.
If you have never really been a fan of puzzle games, while True: learn() is not going to be for you. People that are looking for an interesting programming puzzle game though should enjoy their time with while True: learn().