Mindustry joins factory logistics to real-time defense
Mindustry is a GPL-3.0 strategy game whose 185,014-line Java codebase treats automation and tower defense as one system. The repository describes it plainly as an automation tower defense RTS, while the current release notes mention conveyors, schematics, sector presets, build menus, and a logic editor. Those details explain the appeal better than a genre label alone: production machinery is part of how the player survives and expands. Official downloads cover desktop and mobile stores, and release assets also include a dedicated server build.
The commit we tested occupied 72.9 MB across 4,259 files before build outputs. Its Gradle settings split the code into desktop, core, server, iOS, annotations, tools, and tests modules, with Android included when an SDK is present. Generated source is a visible part of the design. The README warns that mindustry.gen does not exist in the checkout because packets, entities, sounds, icons, and other classes are created during compilation. Code search alone can therefore give a newcomer an incomplete picture.
Desktop and server builds are simpler than Android
Desktop development uses the Gradle wrapper, with separate commands to run, build, or pack sprites. Server compilation replaces the desktop target with the server target, and published releases already contain server builds. The README says JDK 17 is mandatory and other versions will not work. The checked build settings are less strict, rejecting Java below 17, and our lab-jvm:21 image completed install, build, and tests. That mismatch should be corrected because it can send a developer toward an unnecessary JDK switch.
Android has a longer route with at least 6 explicit setup actions before the debug build: obtain the command-line SDK, rearrange its tools directory, accept licenses, set ANDROID_HOME, enable a device or emulator, and run the Android Gradle task. The result is an unsigned APK. iOS is present as a module, but the README does not offer an equivalent step-by-step build section. Teams shipping mobile forks need to read beyond the quick desktop instructions and own signing, store, and device work themselves.
What happened when we ran it
Our sandbox installed Mindustry in 56 seconds at commit 4df53b8. The build then succeeded in 106 seconds, and the test step succeeded in 51 seconds. We used a fresh unprivileged container with 3 CPUs, 10 GB of RAM, no secrets, and the lab-jvm:21 image. No measured step failed, so there is no hidden error tail to explain. These numbers cover repository setup and verification, not game frame rate, server capacity, network latency, or Android packaging.
The tested checkout contained 4,259 files and about 185,014 lines of source, totaling 72.9 MB. Our scan found 4 CI workflow files and a tests directory, but no Dockerfile. That gives a self-hoster two distinct facts to plan around: the project has automated checks, while container packaging is not supplied at the repository root. The supported artifact is a server JAR. You must provide the Java runtime, filesystem layout, process supervision, updates, and any container definition your environment requires.
GPL-3.0 and strict contribution rules narrow reuse
Mindustry's GPL-3.0 license allows inspection, modification, and redistribution under its terms, but it will not suit every proprietary product plan. The contribution guide is unusually direct about workflow. Large mechanics or broad code changes should be discussed with Anuken first, preferably through the named Discord channel. Formatting-only patches and automated analysis changes are unwanted. Significant AI-written code is grounds for rejection and a block, while using AI for questions is allowed. Contributors should decide whether that policy fits before preparing a large patch.
The Java style also departs from common defaults in several concrete ways. Contributors are directed toward IntelliJ, same-line braces, camelCase even for constants, wildcard imports, and Arc collections instead of many standard Java collections. Android and RoboVM compatibility rules prohibit packages such as java.util.function, streams, and java.awt. With roughly 185,014 source lines, those conventions affect more than cosmetic formatting. A developer used to automatic cleanup or standard-library refactors will spend time learning the house rules before a useful pull request is ready.
September activity outweighs the July release date
GitHub showed 28,788 stars and a last push on September 1, 2026. Its combined open count was 23, which our API searches split into 2 issues and 21 pull requests. Both open issues had updates on September 1, and several pull requests were closed that day. That is active maintenance and review traffic. It also explains why the combined GitHub number should not be described as 23 bugs. The queue is mostly proposed code, while feature requests live in a separate Mindustry-Suggestions repository.
The latest tagged release was v159.7 on July 19, 2026, about 6 weeks before that last push. It fixed problems in schematic previews, Android exports, mobile logic editing, build-menu text, and file opening on Android and iOS. The gap between tag and push is not evidence of neglect. Bleeding-edge builds are generated for every commit, according to the README, so users can choose between release assets and newer development artifacts while accepting the different stability expectations.
Choose Mindustry for the hybrid, OpenRA for classic RTS
Mindustry is the sharper choice when conveyor-based production and live defense are the point. OpenRA is closer to classic Command & Conquer play, while Warzone 2100 centers a traditional campaign, research, and configurable units. Neither substitutes for Mindustry's particular automation mix. Conversely, a player who wants familiar RTS pacing may find those projects easier to read immediately. For server operators, Mindustry's 106-second source build is approachable, but the lack of a root Dockerfile leaves deployment conventions to the operator.
The source trial produced the result a cautious buyer wants: 3 measured steps completed without a failure, and the repository is seeing same-day maintenance. GPL-3.0 affects downstream distribution, generated packages complicate source browsing, Android needs an SDK path, and contributions follow the maintainer's explicit rules. If those boundaries are acceptable, Mindustry is easy to recommend for its unusual factory-defense design and its working desktop or server build.

