Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
We do often include affiliate links to earn us some pennies. See more here.

Robo Instructus from Big AB Games, which is mainly a solo-operation, is a puzzle game where you need to guide a robot using a simple programming language.

Is it odd to think programming can be relaxing? If so, I guess I'm pretty strange in that way. Even if you don't know any programming, Robo Instructus walks you through things quite easily and getting started with it is pretty quick.

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link

As you might expect, it starts off incredibly and deceptively simple. Later levels start getting complicated but it never really feels overwhelming. Thanks to this, it could be a nice game to introduce someone to programming, to help them get a feel for it.

Solo developer Alex Butler said: "Each puzzle in Robo Instructus asks you to not only get your robot somewhere, but to properly articulate every step in how it gets there. Succeed and you can embrace a sort of narrative archaeology as you uncover the game’s secrets. He added: "I've been developing Robo Instructus for two years, the last three months in a beta phase where the game has been polished and improved thanks to the feedback of around 3,000 beta players. So now I'm very excited to see Robo Instructus releasing, and I look forward to the game finding its audience out in the PC gaming wilds."

As you progress through the game, it unlocks more functions for you to use. The setup is interesting and it does make you sit and think things through, rushing isn't really an option. Why? Well, levels come in multiple floors, with your written code being run again on each floor so you need to write code that can finish all the floors in a level in one go. To help with this, it does quite quickly unlock loops, ifs, vars, comparison operators and more.

I've found it to be a surprising delight. You can pick it up from itch.io and Steam. Not sure if you will enjoy it? There's a demo available on both stores, so give it a run and see what you think.

Want to know more about the developer and some behind the scenes info? Check out their blog post.

Article taken from GamingOnLinux.com.
13 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
14 comments
Page: 1/2»
  Go to:

herc 9 years Jul 17, 2019
I've played for about 30 minutes and I'm hooked! It really does introduce new things at a relaxing pace and I feel quite smart when I figure things out right before it is introduced xD
Scoopta Jul 17, 2019
Programming is always relaxing
Eike Jul 17, 2019
View PC info
  • Supporter Plus
Quoting: ScooptaProgramming is always relaxing

:-D

... except you got a deadline.
Or a heisenbug.
Or...
Luke_Nukem Jul 17, 2019
I love that he developed it with Rust (the language not the game).
RFSharpe Jul 17, 2019
View PC info
  • Supporter Plus
I have an affinity for these "solo developer" games.
Robo Instructus() has been on my wishlist since March. After reading Liam's review and the developer's blog post, it was a no-brainer - buy now. It is somewhat similar to another game that I enjoyed, Hacknet, which is also developed by a solo developer.
I sure hope this game is successful. After reading the blog posting, you can not help but want the game to be a success.
Scoopta Jul 18, 2019
Quoting: Eike
Quoting: ScooptaProgramming is always relaxing

:-D

... except you got a deadline.
Or a heisenbug.
Or...
I don't program for work so my deadlines are self imposed lol.
monnef Jul 18, 2019
Quoting: Scoopta
Quoting: Eike
Quoting: ScooptaProgramming is always relaxing

:-D

... except you got a deadline.
Or a heisenbug.
Or...
I don't program for work so my deadlines are self imposed lol.
I usually find working on my toy projects relaxing. It didn't really happen to me with other languages (I somewhat knew quite a lot different langs, e.g. C#, JavaScript, Java, Scala, bit of PHP) until I started learning Haskell. That was/is a roller coaster of frustration (what the hell is IO for? why is compiler inferring such weird types? how can I connect two monads? why multiple records can't have field with a same name? why compiler reports error in an end of a do block when the error was in the beginning of the do block? what this cryptic error from lens mean? why adding headers to an endpoint changes type of whole API?) and satisfaction (I finally chained monads with various operators correctly on a first try. this rewrite to monad transformers simplified this huge chunk of code a lot. after searching hoogle a bit I was able to simplify my code from several long lines to one short line making it elegant and beautiful). I really like Haskell, there is always next thing to learn, next challenge and when I conquer it, I am really happy and proud which doesn't happen to me (not in such big way) in any other mainstream language I write in for a living.
Scoopta Jul 18, 2019
Quoting: monnef
Quoting: Scoopta
Quoting: Eike
Quoting: ScooptaProgramming is always relaxing

:-D

... except you got a deadline.
Or a heisenbug.
Or...
I don't program for work so my deadlines are self imposed lol.
I usually find working on my toy projects relaxing. It didn't really happen to me with other languages (I somewhat knew quite a lot different langs, e.g. C#, JavaScript, Java, Scala, bit of PHP) until I started learning Haskell. That was/is a roller coaster of frustration (what the hell is IO for? why is compiler inferring such weird types? how can I connect two monads? why multiple records can't have field with a same name? why compiler reports error in an end of a do block when the error was in the beginning of the do block? what this cryptic error from lens mean? why adding headers to an endpoint changes type of whole API?) and satisfaction (I finally chained monads with various operators correctly on a first try. this rewrite to monad transformers simplified this huge chunk of code a lot. after searching hoogle a bit I was able to simplify my code from several long lines to one short line making it elegant and beautiful). I really like Haskell, there is always next thing to learn, next challenge and when I conquer it, I am really happy and proud which doesn't happen to me (not in such big way) in any other mainstream language I write in for a living.
I've avoided Haskell because it hurts my brain to look at. Not in the "I want to conquer it sort of way" but in the "run away in terror" sort of way. I'm really comfortable with imperative languages though so I usually do crazy things with them to challenge myself instead of trying to take on the beast that is functional programming. I write stuff like OpenGL game engines, amd64 kernels, lots of random Wayland utilities, a Java library that basically does what JNA does but without JNA because reasons. I wrote a semi-functional GObject Introspection parser for Java, the list of random things I work on is pretty open ended.
Eike Jul 18, 2019
View PC info
  • Supporter Plus
Quoting: ScooptaI've avoided Haskell because it hurts my brain to look at. Not in the "I want to conquer it sort of way" but in the "run away in terror" sort of way. I'm really comfortable with imperative languages though so I usually do crazy things with them to challenge myself instead of trying to take on the beast that is functional programming. I write stuff like OpenGL game engines, amd64 kernels, lots of random Wayland utilities, a Java library that basically does what JNA does but without JNA because reasons. I wrote a semi-functional GObject Introspection parser for Java, the list of random things I work on is pretty open ended.

That sounds crazy! I hope you're making stuff public?
monnef Jul 18, 2019
Quoting: Scoopta
Quoting: monnef
Quoting: Scoopta
Quoting: Eike
Quoting: ScooptaProgramming is always relaxing

:-D

... except you got a deadline.
Or a heisenbug.
Or...
I don't program for work so my deadlines are self imposed lol.
I usually find working on my toy projects relaxing. It didn't really happen to me with other languages (I somewhat knew quite a lot different langs, e.g. C#, JavaScript, Java, Scala, bit of PHP) until I started learning Haskell. That was/is a roller coaster of frustration (what the hell is IO for? why is compiler inferring such weird types? how can I connect two monads? why multiple records can't have field with a same name? why compiler reports error in an end of a do block when the error was in the beginning of the do block? what this cryptic error from lens mean? why adding headers to an endpoint changes type of whole API?) and satisfaction (I finally chained monads with various operators correctly on a first try. this rewrite to monad transformers simplified this huge chunk of code a lot. after searching hoogle a bit I was able to simplify my code from several long lines to one short line making it elegant and beautiful). I really like Haskell, there is always next thing to learn, next challenge and when I conquer it, I am really happy and proud which doesn't happen to me (not in such big way) in any other mainstream language I write in for a living.
I've avoided Haskell because it hurts my brain to look at. Not in the "I want to conquer it sort of way" but in the "run away in terror" sort of way. I'm really comfortable with imperative languages though so I usually do crazy things with them to challenge myself instead of trying to take on the beast that is functional programming. I write stuff like OpenGL game engines, amd64 kernels, lots of random Wayland utilities, a Java library that basically does what JNA does but without JNA because reasons. I wrote a semi-functional GObject Introspection parser for Java, the list of random things I work on is pretty open ended.

Really cool projects you have there . Mine are nowhere near as catchy - few small TypeScript libraries adding FP stuff, tool for creating Scala skeleton files from class diagrams from Dia (editor), currently working on a gallery webapplication (in Haskell and Reason). My esoteric language is probably the most cool thing - it's loosly based on physics of a falling orb trigerring instructions (example.

To the topic of functional programming and Haskell, I strongly believe learning basics of Haskell is beneficial for all programmers. I would recommend it to all hobbyists, to all people interested in programming. To stress it: I mean learn basics, get a grasp of basics of FP, not start using Haskell for everything (that's not practical at all). I feel it is a common misconception to consider Haskell to be complex, it is entirely false. The base language (without extensions) is very simple, compared to Java, C# or JavaScript, Haskell is a micro language. Its power comes from being designed in a way that many features (much more than in mainstream languages) are composable and interact well together, the hard learning curve comes from non-C syntax, common use of symbol operators and mountains of available abstractions interacting together (which is not the same as a language, majority of basic abstractions [data types, operators, flow control] are in a standard library which user doesn't have to use, and of course myriad of libraries outside standard one). Good thing is, you don't need to learn many abstraction to start writing simple programs. Frankly, I believe most programmers encountered many of these abstractions already, they just don't know they have a name and are using them rather intuitively in other languages (e.g. string is a monoid; promise/future and list are monads and so on). It is also worth noting, that many functional features are being smuggled to mainstream languages at a steady pace, e.g. pattern matching, lambdas, algebraic data types, generics, maybe/option/optional monad, immutable datastructures, "do" notation.

In my case I love how Haskell is concise, how nicely most of the things in the language work together. To learn new concept in Haskell, truly fully understand it, the final "click" is for me more rewarding than solving any other puzzle.

You might be interested in looking closer at Rust. I read about it just briefly, but IIRC it is a modern language which is closer to hw, has solid predictable performance, but also supports many functional features. Someone higher mentioned even this game is written in Rust. :D
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.