while True: learn() is the latest game from developer Luden.io in which you are simulating the life of a machine learning engineer by combining different variations of “solvers” together to create a network that sets out to solve a particular problem. Initially, this starts out pretty simple with taking simple inputs of different coloured blocks, and being told to output them to areas that want only red or green blocks, for instance. The difficulty ramps up when the game starts adding different shapes into the mix, and then combining the two elements for even greater complexity requirements for sorting them into the right areas.
Because this is a machine learning simulator - rather than a functional programming game like Human Resource Machine for instance, there’s an acceptable level of inaccuracy allowed for completing a level. An example from one of the earlier levels, is that the solver block you are given will send an item to the output with the lowest error level, even if that output isn’t an exact match for what it was given. This will likely send your block to the wrong output - but your decision as a machine learning engineer is to question whether the time and cost factors of adding another solver into the mix after that is of enough benefit to the final accuracy of the system you’ve created, or do you leave it and accept the inaccuracies?
Further adding difficulty to the mix, is that the solvers themselves take a certain amount of time to complete. And if your solvers are busy, then your system backs up and stops working and now you need to split the input into multiple of the same smaller systems to ensure that your solvers are working near enough non-stop to complete in the allotted time. It can get very complex, very quickly. You can reuse your solutions from previous levels as a “node” for use in later levels, so that you can reduce some of the complexity on screen.
But that’s part of what makes while True: learn(). It’s intention is to make people think, to get them thinking from a logical perspective more than the average puzzle title usually does. And whilst people may share their systems online and others use it as a walk-through, the fact remains that there’s more than one solution to any given puzzle in this game. Someone may come along with a more elegant solution that completes its task slower, but uses less solvers and is therefore cheaper to run - earning you more in-game money to spend on other upgrades and decorations for your cat.
Yes, I said cat. The game places you as a “work-from-home” type that creates these machines for various different requests that come to you via the in-game email system, which loosely translates to a similar mechanic as completing levels in that when you complete one system, you’ll get another one turn up in your “inbox” when you return. You can also create systems for start-up companies too, which garners you an ongoing income stream, so long as your systems are efficient enough to not cost you money, anyway.
Overall, it’s a great way to introduce the thought processes required for logical thinking that’s useful in machine learning and programming - without having to worry about touching a line of code or learning a new language. That said, there’s a few items I’d like to see/have in game which would make the game all the more better in my opinion. I couldn’t find a development roadmap, so if these are already planned, great!
Snap to grid
The solvers that you place into the gameplay area could be a common size / set of sizes and could be snapped to a grid as you drag them in, making it easier to keep your solvers tidy on the system field. Because the core gameplay is about being logical, it feels off that you can’t keep your systems “tidy” so to speak.
Curved or different colour connecting lines
When it comes to the more complex solutions, it can be a pain tracking all of the connections between the solvers, because they’re all the same colour and shape. Throwing in a couple of curves, or different colours would help with the visualisation of the system’s process that you’ve designed. Bonus points if you can choose the colours!
Ability to create nodes without having to be a solution from a previous level
It would be a nice addition being able to create a node from within the current level. There’s a lot of repetition on solvers that would be nice if you could abstract them into a node from within the level you’re playing. Especially when you start adding the servers that split the workload.
Lastly, it looked like some of the graphics weren’t as high-res as the rest on offer. Though this is absolutely a top-level nitpick that could go unnoticed and wouldn’t make a difference to the end product. After all, Luden.io have made a game that could help train minds into the challenges of logical thinking and how there can be multiple solutions to a problem and this is what really sticks with me. As a software developer, I’ll champion most anything that can help further the knowledge of those with an interest in the subject.