Factory Automation is an open-source logic game about building factory production lines and creating an automation system for them.
The game is inspired by titles such as Shapez.io, Automachef and Infinifactory. However, it puts more emphasis on creating a system to manage our production line. Factory Automation offers, made available as part of the gameplay progression, dedicated control blocks to create advanced control systems using:
- electronic components
- programmable computers:
- using of existing control programs from GNU/Linux operating system command line
- creating of programs in C and Pythons
- networking multiple computer blocks with TCP/IP
The game offers full simulation of electronic circuits (based on ngspice) and computer systems (based on QEMU and GNU/Linux). In-game manual (about basics of electronics and programming) is available. Saving the game state, customizing keys and other settings is supported.
- All core gameplay features (like circuit simulation, computer simulation, 3d factory) are in place and works.
- There are only 3 sample tasks (levels) and a demo level available, but they do not reflect the target task layout.
- In-game manual (especially English version) requires verification.
- It's works, but may be bugged or have missing minor features.
- Download the latest release from GitHub Releases.
- Unpack archive
- Run
FactoryAutomation.shorFactoryAutomation.exedepending on the chosen platform
These archives also contain other programs and libraries required to run the game.
If you want to use the Linux version using system libraries and programs, you can simply delete their copies located in the unpacked game directory (ld-linux-x86-64.so.2 - dynamic linker/loader, libs/ - standard libraries, cef_artifacts/linux/libs/ - libcef dependencies, ngspice/ - libngspice, qemu/ - qemu and virtiofsd).
- clone project repository:
git clone https://github.com/dragons-labs/FactoryAutomationGame/ - run
justcommand in project root repo directory
You can also export project for Linux and Windows platform using ./export.sh script (do not directly use export option in editor).
Use ./export.sh to export amd64 Linux version or ./export.sh Windows to export amd64 Windows version.
Results will be written to /tmp/FAG-export/.
Important:
- Full building from sources and export is only supported on Debian GNU/Linux (and compatible systems, but tested only on Debian Trixie).
- System level (not build/installed by
just) dependencies for:- Building/running from sources:
- Godot 4.6 (or higher, but tested only on 4.6)
- game run time dependencies:
libngspice0andngspice(for shared files)qemu-system-x86,ipxe-qemu,virtiofsd(optional)
- addons and resources build time dependencies (are not necessary when using precompiled binaries from GitHub Releases):
just,scons,make,bash,python3,pip3,git,wget,g++,gcc- (build gdspice)
libngspice0-dev - (create OS image for qemu)
mmdebstrap,guestfs-tools(virt-make-fs),qemu-utils
- Using export script (in addition to the above):
patchelf,dpkg- (for build Windows libs)
pacman,unzip,g++-mingw-w64,gcc-mingw-w64
- Building/running from sources:
This project consists of materials covered by various licensing terms.
-
Project use per file REUSE/SPDX type copyright info.
- For SVG files, GDScript files, C++ sources, sh and Python scripts copyright and licence info is inside file, in comments at top of the file.
- For Godot resources, scenes and binary files copyright and licence info is in
.licencefile.
-
Main licence for this project is MIT
-
Some files (code borrowed from other projects, media and resources files - like images and fonts, etc) are distributed under other licence terms.
- Information about the license and copyright holder can be found in the REUSE header or in the
.licencefile. - Full text of all used licenses is included in LICENSES directory.
- Information about the license and copyright holder can be found in the REUSE header or in the
-
All elements used (including full supply chain and all binary distributed files) are available under DFSG-compatible licenses.
- In addition to the above, the full binary version contains or depends on numerous other builtin or linked libraries and other resources
- Main dependencies:
- Godot – MIT licence AND some other licenses (see https://github.com/godotengine/godot/blob/master/COPYRIGHT.txt)
- GodotXterm – MIT licence AND some other licenses (see https://github.com/lihop/godot-xterm/blob/main/addons/godot_xterm/THIRDPARTY_NOTICES.txt)
- easy charts – MIT licence
- LimboConsole – MIT licence
- GDScript Mod Loader – CC-0
- GDCEF – MIT licence
- CEF – BSD-3-Clause AND some other licenses from Chromium Project (see
about:creditsand https://metadata.ftp-master.debian.org/changelogs/main/c/chromium/stable_copyright)
- CEF – BSD-3-Clause AND some other licenses from Chromium Project (see
- ngspice – BSD-3-Clause AND some other licenses (https://metadata.ftp-master.debian.org/changelogs/main/n/ngspice/stable_copyright)
- qemu – GPL-2.0 AND some other licenses compatible licences (see https://gitlab.com/qemu-project/qemu/-/blob/master/LICENSE and https://metadata.ftp-master.debian.org/changelogs/main/q/qemu/stable_copyright)
- Linux kernel – GPL-2.0 WITH Linux-syscall-note
- system disk image – multiple DFSG-compatible (see copyright info inside image →
/usr/share/doc/*/copyright)
Game is created in Godot Engine.
To simulate electronic circuit, the game uses:
- ngspice
- easy charts for showing oscilloscope graphs
To simulate computer systems, the game uses:
- QEMU
- Debian for creating operating system images, this includes but is not limited to:
- bash
- Python
- Tiny C Compiler
- tmux
- BusyBox
- zsh
- Linux Kernel
- GNU Coreutils
- Clang compilers
- GCC compilers
- godot-xterm for terminal support in Godot
There are several FOSS projects with similar topics (games about factory build, digital logic simulation, etc), but each of them focuses on (and expands on) a certain subset of the topic covered by Factory Automation Game (FAG). However, they can be an inspiration for FAG developers as well as a source of further entertainment for players, which is why we are posting links to them here:
- Digital-Logic-Sim (CC-BY-NC-SA-4.0, before "Version 1.0" (118f52e0) MIT licence) (Unity) and Digital Logic Sim 2 (GPL3) (Unity)
- Logic Circuit Simulator (GPL3) (Godot)
- OpenIndustryProject (GPL3) (Godot)
- shapez (Community Edition) (GPL3) (custom engine)
