This is an automated archive made by the Lemmit Bot.

The original was posted on /r/factorio by /u/sorrywhy on 2024-09-30 21:46:50+00:00.


Hello!

I did my 3rd year project for my bachelors degree on optimising blueprint layouts in Factorio and I thought worthwhile sharing it on here. I finished this a while ago and it is in no sense complete but I thought worth putting up.

The idea was to take a blueprint layout size, the location / rate for each item input, and the location for the desired output, and produce a working blueprint.

This turned out to be alot more difficult than anticipiated, requiring many different techniques layered ontop of each other, including a conflict based multi-agent pathfinding search ontop of an A* search for the conveyor belt routing, and a top level of Simulated Annealing for placement of assemblers. It includes underground belts but does not consider splitters / mergers.

The final product has some issues with how I represented conveyor belts in the game that I talk about in the report, and on some problems (e.g. some random seeds, some layout definitions) but overall it somewhat works! Some of the produced solutions are valid ingame solutions.

Feel free to try get it to work - its not intended to be a tool that can be actively used but more just the majority of a year of my life that I thought i’d make public. In the future I’m considering putting a GUI on the front of it, but for now it’s just a C++ project in Visual Studio.

Report Link:

Github Link:

Example resolved solutions for a problem (more information found in the paper):