Skip to content

Implementation of price modeling in Factorio in order to find and analyze optimal factories

License

Notifications You must be signed in to change notification settings

Matthew-J-Walsh/FactorioConstructsAndPricing

Repository files navigation

FactorioConstructsAndPricing

Description

The purpose of this project is the implementation of price modeling in Factorio in order to find and analyze optimal factories. This project is the implementation of a set of articles which can be accessed here: (https://drive.google.com/drive/folders/1G-ogarwaSEfp_JFCDxrdPlC4wEbExnSA?usp=sharing).

Table of Contents

Installation

This project is exclusively written in python and all relevent imports are in (globalsandimports.py). Notable non-standard imports are:

  • numexpr
  • pulp
  • Levenshtein

Usage

An example usage is provided in (vanillarun.py). Logging is done with the logging module. The vanilla Factorio data.raw file should be saved in (vanilla-rawdata.json). The general pipeline for using this tools is as follows:

  1. Initialize an instance of FactorioInstance from a data.raw file.
  2. Create a FactorioFactoryChain instance to hold the chain of created factories.
  3. Create an initial pricing model as a CompressedVector of Fractions and an initial tech level using FactorioInstance.technological_limitation_from_specification.
  4. Add factories with FactorioFactoryChain.add.
  5. Save the factory setups and pricing models in excel for easy reading with FactorioFactoryChain.dump_to_excel.

Documentation

No additional documentation is currently provided. Most if not all code is commented and has type annotations.

Contributing

Currently this is a personal project. If you have suggestions or questions I'll try to respond in a timely manner.

License

This project is licensed under the GNU General Public License v3.0.

You can find the full text of the license in the LICENSE file.

GNU General Public License v3.0 (GPL-3.0)

The GNU General Public License is a free, copyleft license for software and other kinds of works. The license provides users with the freedom to run, study, share, and modify the software.

Summary of key terms:

  • Copyleft: You are free to distribute copies and modified versions of the software, but you must make the source code available under the same license terms.
  • Distribution: Any conveyance of the software, including distributing it to users over a network.
  • Modification: Any change to the software's source code, including adding, removing, or altering functionality.

For detailed information and the full text of the license, please refer to the GNU General Public License v3.0.

Authors

Acknowledgements

About

Implementation of price modeling in Factorio in order to find and analyze optimal factories

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages