Human Resource Machine | |
---|---|
Steam store page cover
|
|
Developer(s) | Tomorrow Corporation |
Publisher(s) |
|
Designer(s) |
|
Programmer(s) | Allan Blomquist |
Artist(s) |
|
Composer(s) | Kyle Gabler |
Platform(s) | |
Release |
Microsoft Windows, OS X
|
Genre(s) | Puzzle |
Mode(s) | Single-player |
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 on March 29, 2016, for iOS on June 1, 2016, for Android on December 1, 2016 and for the Nintendo Switch on March 16, 2017 in North America and March 23, 2017 in Europe and Australia.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.
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.