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.
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.
Quoting: ScooptaProgramming is always relaxing
:-D
... except you got a deadline.
Or a heisenbug.
Or...
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.
Quoting: EikeI don't program for work so my deadlines are self imposed lol.Quoting: ScooptaProgramming is always relaxing
:-D
... except you got a deadline.
Or a heisenbug.
Or...
Quoting: ScooptaI 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.Quoting: EikeI don't program for work so my deadlines are self imposed lol.Quoting: ScooptaProgramming is always relaxing
:-D
... except you got a deadline.
Or a heisenbug.
Or...
Quoting: monnefI'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.Quoting: ScooptaI 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.Quoting: EikeI don't program for work so my deadlines are self imposed lol.Quoting: ScooptaProgramming is always relaxing
:-D
... except you got a deadline.
Or a heisenbug.
Or...
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?
Quoting: ScooptaQuoting: monnefI'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.Quoting: ScooptaI 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.Quoting: EikeI don't program for work so my deadlines are self imposed lol.Quoting: ScooptaProgramming is always relaxing
:-D
... except you got a deadline.
Or a heisenbug.
Or...
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
See more from me