Those who are good at the game 'Factorio' that builds up the factory line with unexplored stars are suitable for software engineers



Engineer Mr. Krishna Sundarram says that people who are good at

real-time simulation game ``Factorio'' aiming to escape from stars by making a factory by scraping materials on an unexplored planet, Mr. Krishna Sundarram Claims based on his own experience.

Factorio and Software Engineering · Krishna's words
https://blog.nindalf.com/posts/factorio-and-software-engineering/



'Factorio' is a game in which a player who has drifted to an unexplored planet collects materials, gradually automates the processing process, and finally aims to escape from the stars. The alpha version was released in 2012, and the version was gradually updated, and finally the official version/version 1.0 was released in August 2020.

Version 1.0, the official version of the real-time simulation ``Factorio'' that builds a factory on an unexplored planet is finally released-GIGAZINE



Factorio mainly 'builds the factory line', but Sundarram says that he feels software engineering in this game.

◆1: Technical debt
Mr. Sundarram, who is a beginner player at Factorio, seems to just connect the various parts of his factory with belt conveyors inexhaustibly, and build a line that is intertwined like spaghetti.

In software development, the complexity caused by choosing 'a quick method for the time being' over 'a time-consuming but optimal method' is called 'technical debt', but Sundarram's factory is exactly the technology. I was holding up my financial debt.

Eventually, Factorio players will have the skills to tame this complexity, making it easier to judge situations. That figure may have something to do with a software engineer.



◆2: DRY (Don't Repeat Yourself) principle
DRY (avoiding repetition) is a principle advocated in the '

road from expert programmer to craftsman ' as a principle to be followed in programming .

At Sundarram's factory, the lines for making electronic boards were distributed at 4 to 5 places, so he said that he simplified the equipment so that he could finally concentrate.

◆3: Scaling
The final processing amount required for the production line at Factorio is 3 to 5 times the initial amount. For this reason, sometimes it is necessary to completely recreate the line from scratch. If you have little experience playing, you may get stuck in building this line, and by playing repeatedly, you will be able to proceed systematically with room to expand the line.

'Keeping room for expansion' is a common part of software, says Sundarram.

◆ 4: Rebuild
You can play as much as you like while playing Factorio in single player mode, but in multiplayer mode your actions can affect other players. There is a risk that other components may be relegated to other people's legs, so Sundarram said he was working with care so that no downtime would occur when he acted.

◆5: Debug
The factory is always far from being 'perfect', and it is commonplace for us to add something that causes an accident. No matter what the cause is, fixing it can lead to another issue. This is also common for code modification work.



◆6: Teamwork
Factorio can enjoy most of the elements in single player mode, but it's faster and more fun to play with multiple people. In the case of Sundarram, he is in charge of oil, and the other two are in charge of rail and defense. Sundarram is in charge of oil, so the other two could play without worrying about the refinery. These divisions are also found in large-scale software development.

◆7: Research
Mr. Sundarram who forgot to switch to nuclear power generation due to lack of uranium ore, but when power generation and coal pollution became serious in coal power generation, I re-examined it and found that even a small amount of uranium ore can operate the factory for 100 hours. I understood that.

Even with software, it is important to study and consider what else is available, and new teammates may use knowledge they do not know to lead them to previously unattainable heights.

◆8: Automation
With Factorio, you can mine ore and coal, as well as produce a variety of items, all manually. But it's time consuming, so basically the repetitive tasks are automated.

This 'should be automated rather than manual' can be said in software development, Sundarram said, 'We will automate because we will be happy, but we will do too much and do what we do Even if you forget or forget it, you will continue to move toward automation.' I think that the tendency to push forward is similar to Factorio.

◆9: Fire extinguishing
In software development, it may be difficult to implement new functions due to alert processing. One solution for the team is to have one of the members act as an alert responder and take action while the other members focus on adding features. Sundarram said that he used the same method when playing Factorio with multiple people.

Based on the above nine reasons, Sundarram said, 'Managing complexity', 'Designing a specification and implementing a system that meets the specification', 'Maintaining the system and growing it over time' That is important for Factorio.



On the other hand, Sundarram stabbed the nail, saying, 'Playing Factorio doesn't mean you can be a good software engineer.' However, any software engineer should be able to enjoy Factorio, and flipping this over, he concludes, 'If you are good at Factorio, you might try a software engineer.'

in Note,   Game, Posted by logc_nt