I have to admit, while watching video previews of Human Resource Machine I got the sense that it was a game designed precisely for me. For starters, it is developed by Tomorrow Corporation, a team whose members have previously created many of my favorite games on their respective platforms, including World of Goo, Henry Hatsworth in the Puzzling Adventure (which I reviewed very highly), and Little Inferno (which I also reviewed very highly.) It’s also a puzzle game about programming, and as a programmer who loves puzzle games that’s a very appealing idea to me. Finally, as a part-time elementary school computer teacher, I have been looking for an excus... I mean uh, an education-oriented reason to bring video games into the classroom and share my love of gaming with my students, and Human Resource Machine, with its focus on basic programming concepts, seemed like it might have the combination of educational value and fun that I had been looking for. (I currently use the “games” on sites like Code.Org to teach my students programming concepts, and they are solid games for what they are but you know… not quite the same thing as a Tomorrow Corporation developed game.)
All of the pieces were in place for me to love Human Resource Machine, but that would be meaningless if Tomorrow Corporation failed to turn the concept into a great game. Did they pull it off?
Welcome to the place you will work your entire life at.
The set-up of the game is that you indirectly control an office worker by creating “programs” that will have him or her move objects from your inbox to your outbox. Each stage requires writing a single program to complete whatever tasks are requested, and each program you complete represents a year in your career. You build a program using a variety of drag-and-drop commands which must be placed in the correct order on the right side of the screen. When you feel that your program is complete (or want to test your progress), you can press a button to execute the program and watch your office worker move in real-time. Human Resource Machine is controlled using the stylus on the Wii U GamePad touch screen, and this is a perfect fit for a game that involves mostly dragging, dropping and clicking. If you’re an elementary school computer teacher like me (uh, you probably aren’t, are you?) or someone young enough that you grew up in a school system where children learned coding, this will be somewhat familiar as it is the same basic set-up used in the games on sites like the above-mentioned Code.Org. However, if you haven’t played educational coding games, this kind of gameplay will most likely be somewhat new to you, as there are not many popular games that utilize programming mechanics in such a direct manner.
Chances are that many of your programs won’t execute correctly the first time you run them, and then you have to “debug” them, which essentially means figuring out where you did something wrong and fixing it. Human Resource Machine is pretty user-friendly in this regard (much more user-friendly than most actual debugging is, trust me on this one), and it is simple enough to trace the path of your program step by step and see exactly where it failed. Figuring out how to fix it, however, might be a little more difficult, and you will almost certainly make changes and rerun and fail again several times on some stages before creating a successful program.
You can also copy and paste parts or the whole of your program between 3 sheets, which is nice for when you get a certain piece of the program working and want to make sure you can come back to this piece later on if need be, as well as use the “undo” command to step backwards in your program if you have gone down the wrong path. Another neat feature is a slider that will speed up / slow down the running of your program, which helps makes testing and troubleshooting a bit less painful. Some of the programs will take a fairly long time to run, and if you need to troubleshoot a part near the end, it helps to speed things up and get past the pieces you know work fine before you slow down and zero in on the problem section. Finally, one very much appreciated feature is the ability to add “labels” to your variables (in this game spots on the floor), which helps keep track of what exactly you are using them for. Any experienced programmer can tell you the importance of meaningful variable names, especially when you get deep into programs that utilize multiple variables for multiple purposes. Tomorrow Corporation definitely approached the design of Human Resource Machine thinking about user friendliness, which helps take a fairly complicated idea and make it feel relatively smooth.
Your boss watches patiently as you do all of the actual work.
So what kind of tasks will you be executing with your programs? Human Resource Machine starts at the most basic level, with just two commands, one to take an object from the inbox and another to put an object in the outbox. It’s kind of tough to mess your program up at this point. However, as you get deeper into the game more and more commands are introduced, and with the introduction of new commands also comes unique tasks for each stage. For example, a stage might have you only move objects with a “0” value to the outbox, or change all values to positive numbers before putting them in the outbox, or compare two strings and only outbox the one that would appear first in alphabetical order, etc. To accomplish more advanced tasks you will need to utilize programming concepts like if statements, loops, storing values in variables to be modified or retrieved later, and yes, I hope you studied hard when you were younger because you will definitely be using some math commands as well. Oh, and there are even more advanced programming concepts like pointers and linked lists that show up as well, but these terms probably don’t mean much to non-programmers. I assure you, they can be quite uh... fun… to wrap your head around.
A large part of the challenge of Human Resource Machine comes from having to think creatively using the limited commands at your disposal. To go back to one of my examples above (changing all values to positive numbers), in most programming languages this would be a relatively simple task, as the language would have an absolute value command that you could use on each object and bam, you’re done. Not so here. Human Resource Machine is, after all, a puzzle game, so it’s not going to be so straightforward. You have to really think hard about how to accomplish your tasks using the limited commands provided. It’s almost like programming in some intentionally esoteric language like Brainfuck or something. Thinking outside of the box is a must in this game.
1s and 0s everywhere... and I thought I saw a 2!
Getting through the stages can be difficult enough, but if you really want to push yourself, there are two optional challenges for each stage, a size challenge and a speed challenge. To beat the size challenge you need to write a program that fulfills the tasks of the stage while also keeping the amount of commands your program uses at or below a defined number, while the speed challenge works similarly except your target is keeping down the amount of steps executed when your program is run. Although you can shoot for both of these challenges at the same time, you don’t have to, and in fact in some stages it is physically impossible to achieve both with the same program. These optimizations can be incredibly hard to achieve. I’ve only managed to succeed in about 25% of the size and speed challenges so far, and I can imagine getting all of them would take hours upon hours for most gamers.
Human Resource Machine has 36 playable stages (25 Required, 11 optional), and it took me about 10 hours to finish all but one of them. (The optional prime number stage is a killer. I tried to brute force it and found out the hard way that the game only lets you add around 200 commands per program, so I gave up on the stage... for now.) To be honest, it is difficult for me to guess how challenging the game would be for the average non-programmer, because I’m not sure what it would feel like to be solving puzzles using programming concepts if I did not have a programming background. I imagine I have an advantage here, but who knows? I found the difficulty curve to be pretty ideal for my tastes, as the game started off incredibly easy and worked up to some fairly hard later puzzles, with some extremely hard optimization challenges (and the prime number stage) to go back to if I really want to push myself. One thing that did surprise me, however, is how quickly the complexity (which I am distinguishing from difficulty) of the programs requested amped up. Often the description of what the game wants your program to look like takes a paragraph or two to explain, and there were a few stages where I had to read and reread the request many times before I got a sense of what was even expected of me. Tomorrow Corporation does supply you with a visual example of what the output would look like given a sample input for each stage, which makes it easier to grasp what is wanted when the description text is confusing, but it can still be a bit overwhelming.
*Insert a coffee joke here.* (I'm so bad at coffee jokes.)
On the presentation level, if you have played World of Goo or Little Inferno you will have a fairly good idea what to expect. Detailed, stylistic graphics and an excellent soundtrack are used to create a mood that is both humorous and unsettling. However, outside of a few short cutscenes the entire game takes place on a single screen, and there are only a small handful of music tracks, so while it is a tight package, the presentation is not quite as impressive as what we saw in World of Goo or Little Inferno. This is a Tomorrow Corporation game so of course there is a strange dystopic story, touching on themes like the corporate world and technology with a tongue placed squarely in the cheek, but to be honest the story is so minimal and doesn’t really have any depth, so it didn’t affect me in nearly the same way that Little Inferno’s brilliant commentary did. Polished presentation aside, if you’re going to play Human Resource Machine it has to be for the gameplay.
I highly enjoyed my time with Human Resource Machine and plan to spend even more time going for some more of the optimization challenges, but it is not a perfect game. For starters, the scope is so limited and the gameplay can get complex pretty fast. And despite the many things Tomorrow Corporation did to make the experience as user-friendly as possible, it can still be very difficult to keep track of what pieces of your program are pointing where, especially in the later stages when you will be utilizing a lot of complex logic, jumping all over the place and incrementing multiple variables and looping chunks of code multiple times and referencing parts of code with pointers and you name it. In a few of the toughest stages my programs would be so big and look so messy that when I would lose track of what was doing I was lost, period, and I would sometimes find it easier to just start over again rather than trying to figure out my current mess. At times I even got tempted to get out a pencil and paper and write out the logic of my program before starting (programmers call this pseudocode, and do it all the time), but it felt more pure to do everything within the confines of the game. The lack of a hint system (I’m not counting an example as a hint) is also a bit odd, especially considering how many gamers might be seeing a lot of these programming concepts for the first time. Finally, the lack of any way to save mid-stage felt like a pretty big omission considering how long you may spend on some of the stages (the final stage took me close to 2 hours to finish!) This is especially true taking the optimization challenges into account, some of which can be very frustrating and time-consuming to solve. It would have been nice to have the option to save mid-program and come back later with a clearer head.
If you think this looks complicated, wait until you get to programs with 30+ commands.
I honestly don’t know whether to recommend Human Resource Machine to the average gamer or not. For me it hit all of the right notes (minor complaints aside), and I highly recommend it to programmers, mathematicians, or anyone who likes logic problems, especially multi-step logic problems that get exceedingly more complex over the course of a game. The puzzles here are very well made and really make you think in ways that, even for experienced programmers, can be a bit unconventional. But I can also imagine that the game’s limited focus, complexity, and reliance on logic and math skills might turn some people off, especially with the lack of any kind of hint system to help guide players through when they start to struggle. Of course, I could be over-estimating how much my programming background helped me, and maybe the game wouldn't be as challenging for non-programmers as it seems like it would be? I’ll be very interested to see what non-programmers think about Human Resource Machine. Whatever the case, I loved Human Resource Machine, and I suggest that if it sounds in any way appealing, you should give it a shot whether you have a programming / math / logic background or not. It's currently $9.99 in the Wii U eShop, which seems like a fair price to me for the hours of enjoyment I have gotten from the game.
Now, whether my elementary students would be able to get into a game like this or not, we shall see. Human Resource Machine would probably be a bit too overwhelming for them, but it might be worth exploring...
Well I got back into this again and got everything optimized up through 31 except for 2 of them... Three Sort being one of those two.
I messed around a bit with some of the others in the 30s but man, at this point it's like... my programs are so big and messy it's tough to think of how to do them better without just starting from scratch. I think the game did a pretty good job of keeping things relatively clean and simple but it's still too compact and messy next to real programming. There is a reason most programmers indent, for one.
Still haven't gone back to the prime factors one yet. Only one I never finished. I don't want to cheat, but I think without getting some sense of what an algorithm for prime factors would look like I'm just plain stuck. Brute forcing it got me far but then I ran out of space.
@Secret_Tunnel I just watched that video, ha ha wow. Man. You made that way too hard on yourself!
I bought Human Resource Machine a couple weeks ago while it was on sale, and just finished the last stage today. I thought it was great. I have quite a bit of programming experience from school, but haven't touched any code in 10+ years. Still, that experience helped a ton, and for the most part I didn't have too much trouble with the later stages. Also, besides a couple of the early stages I haven't gone back to optimize my code. I'll give it a shot but it's probably beyond my skill level!
My solution for the prime factoring stage only checks for primes up to 19, and the game didn't scold me. I guess they don't expect anything higher than that. In any case, my solution took around 45 lines of code I believe. The optimization challenge is 28 lines so I'm curious how that's possible.