Human Resource Machine is a visual programming-based puzzle video game developed by Tomorrow Corporation. The game was released for Microsoft Windows, OS X and Wii U in October 2015, being additionally released for Linux in March 2016, for iOS in June 2016, for Android in December 201 and for the Nintendo Switch in March 2017. Human Resource Machine uses the concept of a corporate office worker assigned to perform tasks that involve moving objects between an inbox, an outbox, and to and from storage areas as a metaphor for assembly language concepts. The player works through several puzzles in constructing a program to complete a specific task.
A sequel, 7 Billion Humans, was released on August 23rd, 2018.
Gameplay
The game includes approximately 40 programming puzzles, each considered one "year" of the player's avatar tenure in a corporate structure. In each puzzle, the player creates a list of instructions from rudimentary commands to control the movements of their avatar on an overhead view of an office; the office includes two conveyor belts, one an inbox that sends in either an integer or a single alphabetic character represented as a small box, the other an outbox to receive these. The office floor typically also includes a number of marked number spaces that can hold one box each. For each puzzle, the player is told of a specific task, such as adding two numbers as they come in on the inbox, or sorting a zero-terminated string of characters, delivering these results in the proper order to the outbox.
The player uses simple commands to create a list of instructions to perform the given task. Such commands include picking up the first item at the inbox, placing the item the avatar is currently carrying at the outbox, copying the carried item to a marked square, performing addition or subtraction of the carried item with the item at the marked square, and making decisions based on the value of the carried item such as if it is zero or negative. As such, these mimic the elements of assembly language: the simple instructions equivalent to opcodes, the ability of the avatar to hold an item mirroring a processor register, and the spaces on the office floor representing main memory.
Later, the player gains the ability to use the concept of memory addresses, in which they can direct instructions to operate on a specific floor space that is labeled with the number of a different floor space. The visual approach to the language also allows the player to place simple handdrawn notes as labels in both the list of instructions or to label floor spaces for clarity. The loops and jump commands are also marked with arrows to help the player identify the logic flow.
Once they have created the program, they can run it through, increasing the speed for longer programs, or pause and move step by step for debugging purposes. If the outbox received any boxes it is not expected for that program, the program will immediately terminate and the player will need to figure out how to correct it. Though the player will be only be shown their list of instructions operation on one set of input and the expected output, the game will also test the list against other randomized sets of input and output, and will alert the player if any of these also fail. The player can receive a reminder of their puzzle task and an example of what type of output it should produce from a supervisor character that watches their avatar work, and the player can also gain hints on how to solve some programs.
Once the player has completed a puzzle, they are shown how many instructions it took and how long it took to process that program on average. Most puzzles have two challenges based on reaching or beating these two metrics; meeting both challenges may be mutually exclusive, but the player has the ability to return to any puzzle once solved to optimize it.
The game has a number of cutscenes shown after certain puzzles that show that the city that the player's avatar is working for is coming under attack by robots, who later gradually replace other workers with robots.
Development
Human Resource Machine was developed by Tomorrow Corporation, a development company founded by Kyle Gabler, Allan Blomquist and Kyle Gray. The game is considered by Gabler as an extension of earlier titles where they have applied gamification to other principles; World of Goo (developed by Gabler and Ron Carmel under 2D Boy) applied the game idea to the concept of Hooke's law, while Little Inferno used the game nature to explore the value of time. The development team saw that the same principles could be applied to computers and used that as the basis of Human Resource Machine. In contrast to Little Inferno, which Gabler stated was difficult to talk to the press without revealing a major revelation of the second half of the game, the concept of Human Resource Machine was very simple to grasp and without any secrets to keep hidden. They decided on using the office environment as it made it easy to create real-life analogs for assembly language concepts that players could grasp, and making it easier for the player to build up the list of instructions. The game was fleshed out by developing the on-screen dialog of the supervisor explaining the task in language that was clear to understand but still has "a little bit of sassiness" to it, and that such language was used consistently across the whole game.