Anuken / Mindustry
git clone https://github.com/Anuken/Mindustry.git
v160.7 · 15d ago
The automation tower defense RTS
+15
stars, 24h · #2,452
+~61
stars, 7 days · #3,419
+~260
stars, 30 days · #3,098
29k
★ total · +0% this week
3.8k
forks · 48 open issues
Star history (as recorded here)
LanguageJava
LicenseGPL-3.0
Created2017-04-30 (9y ago)
Last push1d ago
Watchers580
OwnerUser
GitHub topics
Links
- GitHub: github.com/Anuken/Mindustry
- Homepage: https://mindustrygame.github.io
- Releases · Issues · Hacker News mentions
README excerpt
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`: - `Call`, `*Packet` classes: Generated from methods marked with `@Remote`. - All entity classes (`Unit`, `EffectState`, `Posc`, etc): Generated from component classes in the `mindustry.entities.comp` package, and combined using definitions in `mindustry.content.UnitTypes`. - `Sounds`, `Musics`, `Tex`, `Icon`, etc: Generated based on files in the respective asset folders. --- Gradle may take up to several