Hey, look at this neat surprise I didn’t at all see coming! Human Resource Machine is the latest production by Tomorrow Corporation, the company best known for Little Inferno — a game that Human Resource Machine bears an immediate visual resemblance to — and World of Goo. So that’s one game about innocent, round-headed creatures being ruthlessly exploited by a giant corporation, and one game about innocent, round-headed creatures being… ruthless exploited… And now this new game is called Human Resource Machine. To paraphrase internet nerdfather Shamus Young, it’s hard not to wonder what dark hidden anger lies in Tomorrow Corporation’s past.
Nobody tell them they’re a corporation themselves now, though. Let them have their dissonance.
(Spoiler levels: Narrative, low-medium. Mechanical, medium-high-ish.)
(Game source: Bought it myself.)
Opening
You know, I was worried Human Resource Machine would be another one of those The Evil That Men Do kind of stories. But look at how nice this opening screen is! There’s a cool high-rise skyscraper, and some happy-looking dancing and jigging people — just look at those smiles! Add some upbeat polka-esque background music, and it’s hard to remember why I was even worried in the first place.

Something about all this company’s other games having the same theme of corporate devastation and horror, hidden under a veneer of naive happiness? I honestly can’t remember.
Do I want to work for this company? Hell yeah I want to work for this company! Give me one of those employee badges!
Oh, and a photo too? Hah, would you look at that? That guy on the left is so me.
Badge and photo in hand, I’m ushered into the elevator. I get to start in the mail room, yeah! I’m so excited with this new opportunity, I almost forget to do what it is I usually do in this review segment. Which is to say: check for options, controls, credits, and other ancillaries.
Turns out it’d have been okay if I skipped that, though. Because in Human Resource Machine, there aren’t any.
Hmm. I’m not sure how I feel about this. Apparently Human Resource Machine thinks its presentation and controls are flawless enough to be right for everyone? Colour me skeptical on that. But we’ll see; it could happen!
For now, though, back to the new-job excitement. Mail room, yeah!
Initial impressions
I can’t wait to get started!
Alright, let’s see what we have. I see an inbound conveyor belt in the lower left, helpfully labeled ‘->IN’, which is currently carrying in… what appear to be big green boxes with numbers on them. In the lower right, another conveyor belt is labeled ‘OUT->’. And just like that, I think I might understand the basic idea of Human Resource Machine.
In the top left, I see… me! Aren’t I just the cutest? And in the top right, a bespectacled man behind a desk. I look at him, and at once I can’t shake the nagging feeling that his head has two colours. Like, the left side of his head is a slightly different flesh tone from the right side. And there’s a really obvious seam running between the two. Like a subtle but slightly botched suture job. Or like… I mean, there’s really no way around saying this: I think this man’s head looks like a butt.
Now that I’ve seen it on him, in fact, I can’t help but see it on myself as well. Oh dear god. Are all the characters in this universe bi-coloured butt-heads?
Let’s quickly move on with the game instead of thinking about this for too long!
Desk-bound boss man — for he is indeed my boss — congratulates me on my new job and on my apparently obvious order-following skills. He tells me that my new job will ‘appear over there on the right side in a moment’, and reminds me that I can always ask him for help. How to ask for help, he doesn’t specify.
And then the actual job appears, and my paradigm is flipped.
I mean, not because of the job itself, obviously. That’s just the ‘carry boxes from IN to OUT’ that I called a few paragraphs back. It’s just that… I figured I’d actually be transferring boxes. Like directly, controlling my little dude, or indirectly, maybe clicking each box up and down the production line under some sort of time limit.
Instead, it look an awful lot like I’ll be programming.
No, but that’s literally what it is. I have access to two commands right now, ‘->inbox’ and ‘outbox->’, and I can drag copies of those commands into the text field below. This forms a list of instructions for my little worker to follow… a ‘program’, if you will.
Human Resource Machine isn’t even subtle about this, as evidenced by the newly visible Play button.
I drag an Inbox command to line 1. Then I drag an Outbox command to line 2. Then I hit play. Little-me runs to the Inbox conveyor belt, grabs the topmost package, runs to the Outbox belt, and deposits the package. So that solves the mystery of what those commands do, I guess.
Boss-man isn’t happy, though. I’ve reached the end of my program, and only one of three numbers has been Outboxed.
I… guess I figured the program would loop automatically? No idea why I thought it’d do that, to be honest. I halt the program’s execution, which returns the world to its previous state — though the box numbers are now different. Then I add four more lines to the program, and run it again.
For my performance, I am judged by a purple lady with either a moustache or a really weird mouth. Then, it’s on to my next assignment!
Which is to say, it’s on to my next assignment… next year.
Second verse, as it turns out, same as the first: again, a set of Inbox boxes — letters, this time — needs to go to Outbox. This time, though, the Inbox line is long and busy and unpredictable, and I can’t just write a program tailor-made to its exact length. If only I had some way to make my programs loop as often as needed… some kind of way to jump from the end line back to the start.
After two years of strictly linear carrying activity, year 3 decides to spice things up a little. It does this by introducing… a carpet!
The carpet, it turns out, is a simple form of memory. I can copy whatever box I’m holding onto any carpet square, or copy any box from any carpet square into my hands — somehow magically duplicating the box in the process. Year 4’s assignment plays with this idea a little: using the carpet’s memetic powers, I have to move pairs of Inbox boxes to the Outbox belt — in reverse order!
Then it’s time for a coffee break!
And then, back to work!
After year 6, the elevator path actually briefly splits. The right path, blue now instead of yellow, continues on upward. On the other hand, the still-yellow left path only goes up three more levels. What’s up with that?
Diving into the left path — because no good mystery should go un-investigated — I learn it’s a set of optional, difficult missions. ‘For high-performing employees only’. Not only are the missions inside more challenging than the fare I’ve seen so far, but — for the first time ever — I actually get graded on my performance.
How does that work? Obviously, I can’t complete a level without actually getting a working solution going. But not all solutions are equal in efficiency. Human Resource Machine grades me on two aspects: the number of commands used to solve the assignment, and the number of steps taken to solve the assignment. One rewards brevity in writing the program; the other rewards brevity in carrying the program out. Human Resource Machine is quick to point out that these goals might not always be as compatible as you’d like.
Performance rewards aren’t just for the optional path, however: now that the concept’s been unlocked, I’ll get graded for all assignments. I even retroactively get grades for the work I’ve been doing the last seven years.
I approach my new assignments with the presence of performance objectives in mind. Suddenly, it’s no longer just about getting the work done: it’s about getting the work done well enough.
It’s tricky at first. I can intuitively wrap my head around short program writing as a performance goal easily enough. Just use less lines, yo. But the speed challenges are more difficult. Sometimes, I find myself doing better if I crack open my loops and write them out in full. Other times, that actually harms? And while there is often one ‘optimal’ solution in arm’s reach, Human Resource Machine‘s insistence that you can’t always have your cake and eat it proves true.
That said, I find myself doing better and better with each step. Programs get faster, codes get shorter, and one by one, the performance indicator lights next to each level blink on and stay on.

Felt pretty good about myself, getting the optimal solution for the yellow side path’s hardest mission.
Yup, things are looking up for me. The way I’m currently seeing it, none of Human Resource Machine‘s nonsense poses any kind of insurmountable…
Hmm. That’s odd. I was sure that that was good. But maybe if I switch up this and this?…
…Readers, I’ll be back in a moment. I just gotta… maybe get some scratch paper, and a pencil, and…
Argh! You didn’t close your curly braces! Or if you did WordPress ate them.
Please fix, also please fix your TERRIBLE lack of whitespace!
Sure, WordPress ate ’em. Let’s go with that.
I will never apologize for my efficiency.
Really thought this comment was going to be you saying “I thought the title was Human Ransource Machine.”
This may be a slight spoiler, but just wait until November…