À propos du projet
Mindustry est un jeu de stratégie en temps réel open-source qui allie la défense de tours à l'automatisation : les joueurs construisent et connectent des chaînes de production pour alimenter leurs défenses, plutôt que de simplement placer des tourelles. Le jeu est écrit en Java et développé en open-source sur GitHub, le fichier README le décrit simplement comme « le RTS de défense de tours automatisée ».
Plateformes et distribution
Le projet compile vers un client de bureau, un client Android et une version autonome du serveur. Des versions précompilées sont publiées sur GitHub, et le README contient également des liens vers les téléchargements sur itch.io, Google Play, F-Droid et Flathub. Des versions de développement automatiques sont générées pour chaque commit dans un dépôt distinct, permettant aux testeurs de suivre l'évolution sans compiler eux-mêmes.
Compilation depuis la source
La contribution nécessite JDK 17, comme indiqué explicitement dans le README (d'autres versions de JDK ne fonctionneront pas). Le système de compilation utilise Gradle avec des scripts d'intergiciel pour Windows et Linux/Mac. Les commandes typiques sont `gradlew desktop:run` pour exécuter, `gradlew desktop:dist` pour produire un JAR de bureau empaqueté, `gradlew server:dist` pour une version serveur, et `gradlew tools:pack` pour le regroupement d'images. Les compilations Android passent par les outils en ligne de commande de l'Android SDK, nécessitent `ANDROID_HOME`, l'acceptation de la licence via sdkmanager et le mode développeur sur l'appareil ; `gradlew android:assembleDebug` produit un APK non signé et `gradlew android:installDebug android:run` installe et lance sur un appareil connecté. Les emplacements de sortie sont documentés comme `desktop/build/libs/Mindustry.jar` et `server/build/libs/server-release.jar`. Le README mentionne également une solution courante pour les erreurs de permissions (`chmod +x ./gradlew`) et avertit que la première exécution de Gradle peut prendre plusieurs minutes pour télécharger les dépendances.
Génération de code et architecture
Une partie notable du projet est que le package `mindustry.gen` est généré au moment de la compilation et n'est pas présent dans le dépôt. Le README explique ses sources : les classes `Call` et paquets proviennent de méthodes annotées avec `@Remote` ; les classes d'entités telles que `Unit`, `EffectState` et `Posc` sont générées à partir de classes composants dans `mindustry.entities.comp` et combinées via les définitions dans `mindustry.content.UnitTypes` ; et `Sounds`, `Musics`, `Tex` et `Icon` sont générés à partir des dossiers d'assets correspondants. Ce package généré est marqué comme non modifiable manuellement.
Communauté et contributions
Le projet maintient un guide de contribution couvrant le style de code et les attentes concernant les demandes d'intégration. Les nouveaux contributeurs sont orientés vers les problèmes étiquetés 'candidate' dans le dépôt séparé Mindustry-Suggestions, qui est également l'endroit où les demandes de fonctionnalités et les retours sont soumis. D'autres ressources liées dans le README incluent un tableau Trello pour les plans de version, un wiki du projet et la documentation Javadoc générée, ainsi qu'une communauté Discord active.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.