Sobre el proyecto

Mindustry es un juego de estrategia en tiempo real de código abierto que combina la defensa de torres con la automatización: los jugadores construyen y conectan cadenas de producción para alimentar las defensas en lugar de solo colocar torretas. Está escrito en Java y desarrollado abiertamente en GitHub, con el README describiéndolo simplemente como "el RTS de defensa de torres de automatización". Plataformas y distribución El proyecto se compila en un cliente de escritorio, un cliente de Android y una compilación de servidor independiente. Las versiones precompiladas se publican en GitHub, y el README también enlaza a descargas en itch.io, Google Play, F-Droid y Flathub. Las compilaciones automáticas de vanguardia se generan para cada commit en un repositorio de compilaciones separado, por lo que los probadores pueden seguir el desarrollo sin compilar. Compilación desde el código fuente La contribución requiere JDK 17, que el README establece explícitamente (otras versiones de JDK no funcionarán). El sistema de compilación es Gradle con scripts de envoltura para Windows y Linux/Mac. Los comandos típicos son `gradlew desktop:run` para ejecutar, `gradlew desktop:dist` para producir un JAR de escritorio empaquetado, `gradlew server:dist` para una versión de servidor, y `gradlew tools:pack` para el empaquetado de sprites. Las compilaciones de Android pasan por las herramientas de línea de comandos del SDK de Android, requieren `ANDROID_HOME`, la aceptación de la licencia a través de sdkmanager y el modo de desarrollador en el dispositivo; `gradlew android:assembleDebug` produce un APK no firmado y `gradlew android:installDebug android:run` instala y lanza en un dispositivo conectado. Las ubicaciones de salida se documentan como `desktop/build/libs/Mindustry.jar` y `server/build/libs/server-release.jar`. El README también enumera una solución común para el error de denegación de permiso (`chmod +x ./gradlew`) y advierte que la primera ejecución de Gradle puede tardar varios minutos descargando dependencias. Generación de código y arquitectura Una parte notable del proyecto es que el paquete `mindustry.gen` se genera en tiempo de compilación y no está presente en el repositorio. El README explica sus fuentes: las clases `Call` y de paquete provienen de métodos anotados con `@Remote`; las clases de entidades como `Unit`, `EffectState` y `Posc` se generan a partir de clases de componentes en `mindustry.entities.comp` y se combinan a través de definiciones en `mindustry.content.UnitTypes`; y `Sounds`, `Musics`, `Tex` y `Icon` se generan a partir de las carpetas de activos correspondientes. Este paquete generado está marcado en la documentación como no debe ser editado a mano. Comunidad y contribución El proyecto mantiene una guía de contribución que cubre el estilo de código y las expectativas de las solicitudes de extracción. Los nuevos contribuyentes son dirigidos a problemas etiquetados como 'candidate' en el repositorio separado Mindustry-Suggestions, que es también donde se presentan las solicitudes de características y los comentarios. Otros recursos vinculados desde el README incluyen un tablero de Trello para los planes de lanzamiento, una wiki del proyecto y Javadoc generado, además de una comunidad activa en Discord.