If you ever wanted to know how it feels like to be a senior software engineer, and experience…
Factory building games allow you to experience all of them in a highly compressed timeframe of hours instead of days.
All without the common frustration and pains that comes with programming. (Weird obscure library bugs, lack of documentation, Company politics or bureaucracy in processes, budget ... )
Don’t take my word for it, let reddit comments of one of the games in the genre speak for itself
Factory Building Games, or FBG for short, are at their core about:
One of the key differences between FBG and typical resource management games is the endless continuous nature of the main production lines, due to the usually infinite scaling nature of the "resource sink". Allowing everything to run "infinitely" without player interaction.
Said "resource sink" may differ from game to game, but it's typically some combination of the following:
While this may sound simple enough another common feature is how as the game progresses. It would require more advance products and buildings that requires other products built by the factory system itself. Which constantly scales up complex combination requirements.
At late game, it is not uncommon for products that are needed for the game goals, to require a process that involves over a dozen parts, and hundreds of steps.
Resulting into a complicated large scale processes, running continuously; Which mirrors some real life factories, hence the FBG title.
This gradual ramp up in complexity encourages constantly scaling up both consumption and production. All while constantly refactoring or updating the factory layout for optimisation, as new "methods of production" is unlocked.
To understands the similarities between software development as a programmer and playing an FBG we start by looking at a typical workflow for a programmer, where each task spans weeks to months.
Now contrast to the typical gameplay experience of a FBG.
Notice the huge similarities, and how it compresses all the programmers day to day activities down to hours. While nearly removing all the unpleasant and potentially frustrating bits!
Despite ironically removing code (one of the most critical things a programmer does). It rapidly speeds up the loop of planning, testing and iterating at a much faster pace than the real world.
This allow a player to practise systems thinking, which is critical to programmers.
It does so, by forcing the player, to split the problem in game into smaller tasks, while using their existing tools and knowledge to solve them. Before forcing them to do the inverse, in putting together large complex systems, using the same "blueprint" of what they built previously.
This process of making smaller changes, and integrating such changes to the larger system, is part of the day to day of software engineering (including all its failures and iterations).
Additionally, due to its nature of being a "game" - and the lack of "real life consequences". Most of the negative emotions that come with failure are minimised. This encourages the player to learn quickly through experimentation and failure.
All while avoiding overwhelming the gamer, due to the limited nature of the toolbox in the game. Allowing the player to gain satisfaction, from the mastery of said tools
Hence, despite the exclusion of code. It teaches the gamer/programmer, very essential skills in software development. As it’s worth repeating that …
Coding is often only only half the battle for a programmer.
There is a flip side though - which should come with a warning label. This game genre can be very addictive, due to how well refined the positive feedback loop is.
"It's the one video game (Factorio) that everyone at Shopify can expense”~ Tobi Lutke, CEO of Shopify
You can find the full list of FBG games at the following awesome list:
https://github.com/PicoCreator/awesome-list-factory-building-games
However, because the full list can be overwhelming, here are some quick highlights …
Dyson Sphere Program : which is a pure FBG in space, with really nice 3D visuals. Also building a Dyson sphere around the sun, is a cool mega project in itself
Satisfactory : which uses FPS/Fortnite like controls, not recommended if you are not used to such a control scheme - supports multiplayer.
Factorio : which is the most popular in this genre - is only recommended for more experienced gamers. In my opinion it's not beginner friendly. However it supports really large scale multiplayer gameplay (50+ players), making it popular with larger teams.
Autonauts : is one of the notable FBG that includes simple programming blocks, for its "automation bots". Adding the code element back into FBG. It does loose however the iconic conveyer belt (to force you to use the bots), while sadly simplifying many things (can be too easy, targets a younger audience)
If you find yourself struggling with a particular game, try to takes things slow instead of rushing it. Part of the fun is to overcome these challenges.
Also, Some FBG may include other game mechanics like endless combat/war. this can drastically change the style of the game, as such when possible I would recommend "peaceful mode" for new players. To focus on the FBG gameplay.
No
There are many good programmers who don’t like games.
There are many other reasons why one may find joy in programming that is not found in these games.
Most notably:
Similarly there are many other valid reasons why you may dislike a certain part of the game which makes it a dealbreaker. Or even just video games in general.
So while there is some truth, that if you enjoy FBG, you probably will enjoy programming (and vice-visa). It is worth reminding that correlation is not causation.
So you be you. There are other hobbies in life, which is both fun, and sharpens your skills.
However, for programmers, who do enjoy playing such games. Good for you, as this is one of the few games which can help both practise your skills, and have fun outside your work-hours.
Separately, For non-programmers who is aspiring to be a programmer, completing an FBG, will help you get a better idea of the ideal workflow of a programmer. This in itself, is a huge benefit, if you are outside the tech industry, and want to explore if such work is suitable for you.
Originally published at: https://substack.tech-talk-cto.com/p/introducing-factory-building-games