프로젝트 소개

Mindustry는 타워 디펜스와 자동화를 결합한 오픈소스 실시간 전략 게임입니다. 플레이어는 단순히 포탑을 배치하는 것이 아니라, 방어력을 강화하기 위해 생산 체인을 구축하고 연결합니다. 이 게임은 Java로 작성되었으며, GitHub에서 공개적으로 개발되고 있습니다. README에서는 이를 "자동화 타워 디펜스 RTS"라고 간단히 설명합니다. 플랫폼 및 배포 이 프로젝트는 데스크톱 클라이언트, 안드로이드 클라이언트, 그리고 독립형 서버 빌드로 컴파일됩니다. 사전 빌드된 릴리스는 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 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 저장소에서 'candidate'로 레이블된 이슈를 참고하도록 안내받습니다. 이 저장소는 또한 기능 요청과 피드백을 제출하는 곳입니다. README에서 링크된 추가 리소스로는 릴리스 계획을 위한 Trello 보드, 프로젝트 위키, 생성된 Javadoc, 그리고 활발한 Discord 커뮤니티가 있습니다.