Mindustry README

The project's README from github.com/Anuken/Mindustry. As one markdown file: README.md.

Logo

Build Status Discord

The automation tower defense RTS, written in Java.

Trello Board
Wiki
Javadoc

Contributing

See CONTRIBUTING for general code style and PR guidelines.

If you are a first-time contributor looking for features to implement or bugs to fix, see the issues tagged with 'candidate' in the Mindustry-Suggestions repostiory.

Building

Bleeding-edge builds are generated automatically for every commit. You can see them here.

If you'd rather compile on your own, follow these instructions. First, make sure you have JDK 17 installed. Other JDK versions will not work. Open a terminal in the Mindustry directory and run the following commands:

Windows

Running: gradlew desktop:run
Building: gradlew desktop:dist
Sprite Packing: gradlew tools:pack

Linux/Mac OS

Running: ./gradlew desktop:run
Building: ./gradlew desktop:dist
Sprite Packing: ./gradlew tools:pack

Server

Server builds are bundled with each released build (in Releases). If you'd rather compile on your own, replace 'desktop' with 'server', e.g. gradlew server:dist.

Android

  1. Install the Android SDK here. Make sure you're downloading the "Command line tools only", as Android Studio is not required.
  2. In the unzipped Android SDK folder, find the cmdline-tools directory. Then create a folder inside of it called latest and put all of its contents into the newly created folder.
  3. In the same directory run the command sdkmanager --licenses (or ./sdkmanager --licenses if on linux/mac)
  4. Set the ANDROID_HOME environment variable to point to your unzipped Android SDK directory.
  5. Enable developer mode on your device/emulator. If you are on testing on a phone you can follow these instructions, otherwise you need to google how to enable your emulator's developer mode specifically.
  6. Run gradlew android:assembleDebug (or ./gradlew if on linux/mac). This will create an unsigned APK in android/build/outputs/apk.

To debug the application on a connected device/emulator, run gradlew android:installDebug android:run.

Troubleshooting

Permission Denied

If the terminal returns Permission denied or Command not found on Mac/Linux, run chmod +x ./gradlew before running ./gradlew. This is a one-time procedure.

Where is the mindustry.gen package?

As the name implies, mindustry.gen is generated at build time based on other code. You will not find source code for this package in the repository, and it should not be edited by hand.

The following is a non-exhaustive list of the "source" of generated code in mindustry.gen:


Gradle may take up to several minutes to download files. Be patient.
After building, the output .JAR file should be in /desktop/build/libs/Mindustry.jar for desktop builds, and in /server/build/libs/server-release.jar for server builds.

Feature Requests

Post feature requests and feedback here.

Downloads

| | | |
|--- |--- |--- |--- |

Mindustry (Anuken/Mindustry)

Searching Database…

29.4K ·GitHub
What is this?Mindustry is an automation tower defense RTS written in Java — a game that combines factory-building with tower-defense combat.
Is this the actual game I can play, or an engine/framework for making one?It is the complete game itself, not an SDK or modding toolkit — this repository holds the full Java source code of the game.
What does building the Android version require?Only the Android SDK command-line tools — Android Studio is not required. Point ANDROIDHOME at the SDK, enable developer mode on the device, and 'gradlew android:assembleDebug' produces an unsigned APK.
Any pitfalls if I compile it myself?Yes: only JDK 17 works, the first Gradle run may require 'chmod +x ./gradlew' on Linux/Mac and can take minutes downloading files, and the mindustry.gen package is generated code that must never be edited by hand.
Which platforms can it run on?Windows, Linux and macOS on desktop, Android on mobile, plus dedicated server builds. The project is explicitly multiplatform.
Can I host a dedicated server for it?Yes — ready server builds ship with every release, or you can build one yourself with 'gradlew server:dist', which outputs server-release.jar.
What is the mindustry.gen package?Code generated at build time: Call and Packet classes come from methods marked @Remote, entities are assembled from component classes, and sounds, icons and textures are generated from asset files. It has no source in the repo and must not be edited by hand.
Do I have to compile it myself, or are there ready downloads?No compiling needed: release downloads are published, and bleeding-edge builds are generated automatically for every commit. If you do build it, the desktop jar lands in desktop/build/libs/Mindustry.jar.
Creator
Anuken
Size
1.9 GB
Stars
29.4K
Age
9y
Commits · 90 Days