Towards Automatic Design of Factorio Blueprints (2310.01505v1)
Abstract: Factorio is a 2D construction and management simulation video game about building automated factories to produce items of increasing complexity. A core feature of the game is its blueprint system, which allows players to easily save and replicate parts of their designs. Blueprints can reproduce any layout of objects in the game, but are typically used to encapsulate a complex behaviour, such as the production of a non-basic object. Once created, these blueprints are then used as basic building blocks, allowing the player to create a layer of abstraction. The usage of blueprints not only eases the expansion of the factory but also allows the sharing of designs with the game's community. The layout in a blueprint can be optimised using various criteria, such as the total space used or the final production throughput. The design of an optimal blueprint is a hard combinatorial problem, interleaving elements of many well-studied problems such as bin-packing, routing or network design. This work presents a new challenging problem and explores the feasibility of a constraint model to optimise Factorio blueprints, balancing correctness, optimality, and performance.
- Two-dimensional disjunctively constrained knapsack problem: Heuristic and exact approaches. Computers & Industrial Engineering, 105:313–328, 2017. doi:https://doi.org/10.1016/j.cie.2017.01.015.
- Factory optimization using deep reinforcement learning ai. In Purdue Undergraduate Research Conference, 2019. URL: https://docs.lib.purdue.edu/purc/2019/Posters/57.
- Maximal flow through a network. Canadian Journal of Mathematics, 8:399–404, 1956. doi:10.4153/CJM-1956-045-5.
- SAT Modulo Graphs: Acyclicity. In Logics in Artificial Intelligence - 14th European Conference, JELIA 2014, Funchal, Madeira, Portugal, September 24-26, 2014. Proceedings, pages 137–151, 2014.
- Fundamentals of a method for evaluating rail net capacities. Research Memorandum, page 399–404, 1955. URL: https://apps.dtic.mil/sti/pdfs/AD0093458.pdf.
- Exact solution techniques for two-dimensional cutting and packing. European Journal of Operational Research, 289(2):399–415, 2021. doi:https://doi.org/10.1016/j.ejor.2020.06.050.
- Representations of sets and multisets in constraint programming. In Proc. of the 4th Int. Workshop on Modelling and Reformulating Constraint Satisfaction Problems, pages 102–116. Citeseer, 2005.
- Optimal rectangle packing. Annals of Operations Research, 179:261–295, 2010. doi:10.1007/s10479-008-0463-6.
- Andre Leue. Verification of factorio belt balancers using petri nets. Master’s thesis, Technische Universität, Darmstadt, 2021. doi:https://doi.org/10.26083/tuprints-00017621.
- Automatically improving constraint models in Savile Row. Artificial Intelligence, 251:35–61, 2017. doi:https://doi.org/10.1016/j.artint.2017.07.001.
- Essence’ description. 2016. arXiv:1601.02865 [cs.AI].
- Sean Patterson. Modref23-factorio, 2023. GitHub repository. URL: https://github.com/stacs-cp/ModRef23-Factorio.
- Solving the non-crossing mapf with cp. In CP 2021 - 27th International Conference on Principles and Practice of Constraint Programming, pages 1–17, 2021. doi:10.4230/LIPIcs.CP.2021.20.
- The factory must grow: Automation in factorio. In Proceedings of the Genetic and Evolutionary Computation Conference Companion, page 243–244. Association for Computing Machinery, 2021. doi:10.1145/3449726.3459463.
- Microsoft Research. Z3 theorem prover, 2012. URL: https://github.com/Z3Prover/z3.
- Wube Software. Factorio. https://factorio.com/, 2013. Accessed: (05/07/2023).
- Factorio - gameplay trailer 2016. URL: https://www.youtube.com/watch?v=KVvXv1Z6EY8&ab_channel=Factorio.
- Multi-agent path planning and network flow. In Algorithmic Foundations of Robotics X, pages 157–173. Springer Berlin Heidelberg, 2013. doi:https://doi.org/10.1007/978-3-642-36279-8_10.
Paper Prompts
Sign up for free to create and run prompts on this paper using GPT-5.
Top Community Prompts
Collections
Sign up for free to add this paper to one or more collections.