このプロジェクトについて

Mindustryは、タワーディフェンスと自動化を融合したオープンソースのリアルタイムストラテジーゲームです。プレイヤーは、単に砲塔を配置するだけでなく、生産チェーンを構築して配線し、防御を強化します。このゲームはJavaで書かれており、GitHubでオープンに開発されています。READMEでは、単に「自動化タワーディフェンスRTS」と説明されています。 プラットフォームと配布 このプロジェクトは、デスクトップクライアント、Androidクライアント、スタンドアロンサーバービルドにコンパイルされます。事前ビルドされたリリースはGitHubで公開され、READMEにはitch.io、Google Play、F-Droid、Flathubのダウンロードリンクも記載されています。自動的な最新ビルドは、別のビルドリポジトリでコミットごとに生成されるため、テスターはコンパイルせずに開発を追跡できます。 ソースからのビルド 貢献にはJDK 17が必要です(READMEに明記されており、他のJDKバージョンは動作しません)。ビルドシステムはGradleで、WindowsとLinux/Mac用のラッパースクリプトが用意されています。一般的なコマンドは、実行用の`gradlew desktop:run`、デスクトップJARを生成する`gradlew desktop:dist`、サーバーリリース用の`gradlew server:dist`、スプライトパッキング用の`gradlew tools:pack`です。AndroidビルドはAndroid SDKコマンドラインツールを介して行われ、`ANDROID_HOME`、sdkmanagerによるライセンスの受諾、デバイスでの開発者モードが必要です。`gradlew android:assembleDebug`で署名されていないAPKが生成され、`gradlew android:installDebug android:run`で接続されたデバイスにインストールして起動します。出力場所は`desktop/build/libs/Mindustry.jar`と`server/build/libs/server-release.jar`として文書化されています。READMEには、一般的な権限拒否の修正(`chmod +x ./gradlew`)も記載されており、最初のGradle実行時に依存関係のダウンロードに数分かかる可能性があると警告しています。 コード生成とアーキテクチャ このプロジェクトの注目すべき点は、`mindustry.gen`パッケージがビルド時に生成され、リポジトリには存在しないことです。READMEでは、そのソースが説明されています。`Call`とパケットクラスは`@Remote`アノテーション付きのメソッドから、エンティティクラス(`Unit`、`EffectState`、`Posc`など)は`mindustry.entities.comp`のコンポーネントクラスから生成され、`mindustry.content.UnitTypes`の定義で結合されます。また、`Sounds`、`Musics`、`Tex`、`Icon`は対応するアセットフォルダから生成されます。この生成されたパッケージは、手動で編集しないようにドキュメントでマークされています。 コミュニティと貢献 このプロジェクトは、コードスタイルとプルリクエストの期待値に関する貢献ガイドを維持しています。新規貢献者は、別々のMindustry-Suggestionsリポジトリにある「候補」ラベルの付いた問題に誘導されます。そこでは、機能リクエストとフィードバックも提出されます。READMEからリンクされているその他のリソースには、リリース計画用のTrelloボード、プロジェクトウィキ、生成されたJavadoc、そして活発なDiscordコミュニティがあります。