Mindustry/README.md

79 lines
4.4 KiB
Markdown
Raw Permalink Normal View History

![Logo](core/assets-raw/sprites/ui/logo.png)
2017-12-10 05:58:34 +07:00
[![Build Status](https://github.com/Anuken/Mindustry/workflows/Tests/badge.svg?event=push)](https://github.com/Anuken/Mindustry/actions)
[![Discord](https://img.shields.io/discord/391020510269669376.svg?logo=discord&logoColor=white&logoWidth=20&labelColor=7289DA&label=Discord&color=17cf48)](https://discord.gg/mindustry)
2018-09-26 10:31:45 +07:00
2022-05-11 05:44:52 +07:00
The automation tower defense RTS, written in Java.
2017-12-10 05:58:34 +07:00
2018-03-06 05:00:02 +07:00
_[Trello Board](https://trello.com/b/aE2tcUwF/mindustry-40-plans)_
2020-06-15 06:58:19 +07:00
_[Wiki](https://mindustrygame.github.io/wiki)_
2020-06-15 06:58:08 +07:00
_[Javadoc](https://mindustrygame.github.io/docs/)_
2017-12-10 05:58:34 +07:00
2020-10-17 20:37:09 +07:00
## Contributing
2019-11-18 12:55:33 +07:00
See [CONTRIBUTING](CONTRIBUTING.md).
2020-10-17 20:37:09 +07:00
## Building
2017-12-10 05:58:34 +07:00
2020-09-04 22:12:05 +07:00
Bleeding-edge builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases).
2017-12-22 03:43:30 +07:00
If you'd rather compile on your own, follow these instructions.
First, make sure you have [JDK 17](https://adoptium.net/archive.html?variant=openjdk17&jvmVariant=hotspot) installed. **Other JDK versions will not work.** Open a terminal in the Mindustry directory and run the following commands:
2017-12-10 05:58:34 +07:00
2020-10-17 20:37:09 +07:00
### Windows
2017-12-10 06:09:34 +07:00
2020-09-24 22:32:57 +07:00
_Running:_ `gradlew desktop:run`
_Building:_ `gradlew desktop:dist`
_Sprite Packing:_ `gradlew tools:pack`
2017-12-10 05:58:34 +07:00
2020-10-17 20:37:09 +07:00
### Linux/Mac OS
2017-12-10 06:06:09 +07:00
2020-02-06 01:06:16 +07:00
_Running:_ `./gradlew desktop:run`
2020-02-04 03:55:53 +07:00
_Building:_ `./gradlew desktop:dist`
2020-02-04 02:44:54 +07:00
_Sprite Packing:_ `./gradlew tools:pack`
2017-12-10 06:06:09 +07:00
2020-10-17 20:37:09 +07:00
### Server
2019-02-22 07:12:07 +07:00
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`.
2020-10-17 20:37:09 +07:00
### Android
2019-09-12 23:40:52 +07:00
1. Install the Android SDK [here.](https://developer.android.com/studio#command-tools) 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](https://developer.android.com/studio/command-line/adb#Enabling), 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`.
2020-09-06 07:46:02 +07:00
To debug the application on a connected device/emulator, run `gradlew android:installDebug android:run`.
2019-09-12 23:40:52 +07:00
2020-10-17 20:37:09 +07:00
### Troubleshooting
#### Permission Denied
2019-03-13 03:37:32 +07:00
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.*
2024-10-09 04:03:15 +07:00
#### 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.
2017-12-10 06:09:34 +07:00
---
2017-12-10 06:06:09 +07:00
Gradle may take up to several minutes to download files. Be patient. <br>
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.
2017-12-10 05:58:34 +07:00
2020-10-17 20:37:09 +07:00
## Feature Requests
2020-02-23 07:30:02 +07:00
Post feature requests and feedback [here](https://github.com/Anuken/Mindustry-Suggestions/issues/new/choose).
2020-10-17 20:37:09 +07:00
## Downloads
2017-12-10 05:58:34 +07:00
2020-11-28 22:44:14 +07:00
| [![](https://static.itch.io/images/badge.svg)](https://anuke.itch.io/mindustry) | [![](https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png)](https://play.google.com/store/apps/details?id=io.anuke.mindustry) | [![](https://fdroid.gitlab.io/artwork/badge/get-it-on.png)](https://f-droid.org/packages/io.anuke.mindustry) | [![](https://flathub.org/assets/badges/flathub-badge-en.svg)](https://flathub.org/apps/details/com.github.Anuken.Mindustry)
|--- |--- |--- |--- |