Human Resource Machine: Teaching Coding Basics

Rachael Versaw
3 min readOct 5, 2019

--

via https://tomorrowcorporation.com/humanresourcemachine

Providing an unsubtle social commentary on the automation and lifelessness of most office jobs, Tomorrow Corporation released Human Resource Machine back in 2015. Human Resource Machine is a puzzle game that follows the 42-year employment of the player’s character. The entirety of Human Resource Machine parallels coding languages and how programs follow instructions, just in a highly controlled environment. As a software engineering major that has experience coding in C, C#, C++, Java, Linux, Python, and Assembly language, I was interested in and felt qualified to look deeper into the basic programming concepts that this game can teach.

via https://tomorrowcorporation.com/humanresourcemachine

Limiting the player’s environment to an identical office in every level, Human Resource Machine focuses on the player’s programs. Primarily, the coding practices of the game’s first few levels mirror simple, beginner programs for C++. C++ is generally considered a high-level language, keeping the syntax and grammar close to natural language and making it easier for new programmers to start coding; this is basically what Human Resource Machine presents at its beginning. Most similar to the cin and cout operators of C++, the game only reads in and sends out information through inbox and outbox conveyor belts. Just as new programmers start to learn about loops, pointers, and addresses as their studies progress, the game gradually introduces various jump, bump, add, subtract, and copy commands. Rather than give players enough freedom to create their own if or if-else statements though, specific commands like “jump if zero” or “jump if negative” are provided to somewhat include conditional branching. Players are also able to make comments, better allowing them to track their programs. Moving past the C++ language, the jump, add, and sub commands behave the same way jump, add, and sub commands perform in Assembly language. Assembly language is just above machine code (binary) on the scale of low to high languages; understanding Assembly language betters a programmer’s understanding of the inner workings of languages like C++. The most obvious similarity to Assembly language is how the game’s jump command specifically goes to a single instruction of the code, mimicking how Assembly language jumps. Also notably, the office’s floor format best parallels registers and how data is viewable in Assembly language. The game shows you what data is stored at each address, represented by a labeled tile on the office floor; the labels in Human Resource Machine are just a lot more simple to read and to comprehend than registers or their hexadecimal 32-bit addresses, like $t0 or 0x00400060 respectively. When your code runs, your character is shown manipulating the data and how exactly your code transfers data from address to address, instruction by instruction. This is exactly how Assembly language presents information and can be run one instruction at a time, an especially easy process to follow in IDEs such as MIPS Assembler and Runtime Simulator (MARS).

via https://tomorrowcorporation.com/humanresourcemachine

In conclusion, Human Resource Machine presents very fundamental coding practices as fun puzzles. Throwing in size and efficiency challenges, players can even further improve their codes to test their capabilities. While the game doesn’t really give the player enough control to practice exception handling or input any unique variables, the basics of programming are taught. Even though no one programming language is fully fleshed, anybody that plays Human Resource Machine and tries to learn programming will be able to recognize coding approaches from the game and might even have an easier time learning to code properly. It’s an informative and partially realistic introduction to programming, especially beneficial to those with minimal coding backgrounds that are interested in starting to code.

via https://tomorrowcorporation.com/humanresourcemachine

--

--

Rachael Versaw

B.S. in Software Engineering, Game Dev Minor — Wish I could write more, thanks for checking out 🙂