7 Billion Humans

Picked a nice puzzle game to change up the pace a bit and of course it’s a programming game. As I understand the people who made this achieved some success with games like Human Resource Machine on mobile platforms and this is a sequel with an expanded scope and a similar office-type setting. There’s a backstory about how the world is ruled by robots and the humans are drones who need to be given precise instructions to get them to do anything with cutscenes and everything. It’s a little amusing but it’s not a great story and not really relevant.

Like every programming game, each level is a puzzle to solve by using the in-game programming language to achieve a desired result. You program by using the graphical user interface to drag and drop elements and selecting options from drop-down menus. You can’t even type commands if you want to which is very irritating when the programs start getting longer. As usual, the set of available commands at first is small, amounting to telling the drones to move around in different directions and picking up and dropping things. But your toolset expands dramatically over the course of the game, including commands like automatically searching for the nearest instance of a specified object or looping through all surrounding tiles. Other than this loop, flow control is achieved mainly through jumps and if-else conditionals. One unique aspect to this particular game is that you only have one program and every drone on the level must run it independently. So if you need one group of drones to do something and another group to do something else, you need to have the program distinguish between them in some way.

If you already have any experience with these types of games, especially the Zachtronics ones, I’d say this is an extremely easy, even trivially easy game. An example of a mid-game puzzle might be to make a multiplication table out of the datacubes. Only the final handful of puzzles posed any real challenge to me. There’s no real brilliance in the puzzles as the algorithm required is usually easy to grasp and your program can be as long as you need it to be. There is of course the optional challenge of solving the puzzles within tight constraints of length and execution time and these certainly are very difficult. I personally don’t find some of these challenges to be fair. Achieving some of the length savings actually requires knowing some Easter Egg behaviors that aren’t in the specification, such as the fact that you can get the drones to kill themselves by doing a division by zero. Some of the objectives are even wrongly specified. In one puzzle I though you actually had to move the correct number of drones to the next room but it turns out that’s unnecessary. You can just keep all of them in the same room and kill the extraneous ones.

However it is the execution time metric that really annoys me. Unlike some other games in which you might be rated according to the total number of instructions executed, this one counts number of seconds until the objective is achieved. However each instruction takes a variable amount of time to execute and you’re not given information on how fast that is so it’s just a matter of trial and error. The speed of different instructions varies in ways that aren’t intuitive either. For example the nearest command to find the nearest instance of an object is extremely fast, much faster than looking in a tile in a specific direction to see if an object is there. The foreachdir which loops through neighboring tiles even penalizes you if you aren’t looking at all surrounding tiles. Frustrations like these keep me from wanting to take these optional challenges seriously.

As you can tell by now, I don’t much care for this game at all. Even the language it implements is so ugly, poorly specified and limited in arbitrary ways. For example you can store a reference to a wall or a datacube or even a specific hole in the map in memory but not to an empty tile. A reference to a datacube is both a reference to its location and the value currently written on it. You can pickup a cube from a location stored in memory but you can only drop it where you currently are. Even the puzzles are ugly. Values on datacubes are randomized so you can’t hardcode dumb solutions, but their positions aren’t randomized so you can and should cheat by taking advantage of where they are, even if the locations don’t form a regular pattern. The variable amount of time it takes to execute different instructions affects the synchronization of actions between drones. This means that statements that are logically completely equivalent and take the same number of lines of code can succeed or fail simply because of synchronization issues.

It seems to me that the Zachtronics games were made for players who want to feel like they are being real programmers while this one is made for players who don’t want to feel like they are programming at all. It tries hard to be cutesy and fun and colorful but all of that falls flat for me. In the end, I suppose it’s not a game that was meant for me at all.

Leave a Reply

Your email address will not be published. Required fields are marked *