El engine es un proyecto Java estándar con Gradle. Una vez compilado obtenés un JAR fat (fat jar / uber jar) que incluye todas las dependencias, así que no necesitás instalar nada extra para correrlo.
- Java 21 o superior — el engine usa virtual threads y otras features de Java 21.
- Gradle — viene incluido como wrapper en el proyecto, no hace falta instalarlo globalmente.
Para verificar tu versión de Java:
java --version
# Debería mostrar algo como: openjdk 21.0.x ...Desde la carpeta core/:
# Linux / macOS
./gradlew jar
# Windows
gradlew.bat jarGradle descarga las dependencias automáticamente en la primera ejecución. El JAR generado queda en:
core/build/libs/novacore-engine.jar
El proyecto usa estas librerías (todas incluidas en el fat jar):
| Librería | Versión | Para qué |
|---|---|---|
gson |
2.10.1 | Serialización/deserialización JSON |
Java-WebSocket |
1.5.4 | Servidor WebSocket para los eventos |
slf4j-api + slf4j-simple |
2.0.9 | Logging interno |
Una vez compilado, podés correrlo directamente desde la línea de comandos para probar:
java -jar core/build/libs/novacore-engine.jar \
--port 7878 \
--ws-port 7879 \
--threads 32 \
--instances-dir /ruta/a/instancias \
--log-dir /ruta/a/logs \
--launcher-name MiLauncher \
--log-level INFOCuando veas esto en la salida, el engine está listo:
[Core] HTTP → http://localhost:7878
[Core] WS → ws://localhost:7879
[Core] Ready
| Parámetro | Default | Descripción |
|---|---|---|
--port |
7878 |
Puerto HTTP |
--ws-port |
7879 |
Puerto WebSocket |
--threads |
32 |
Threads máximos para descargas. 0 = auto (detecta CPU) |
--instances-dir |
./instances |
Directorio raíz de instancias |
--log-dir |
../logs |
Directorio para los archivos de log |
--launcher-name |
novacore-engine |
Nombre del launcher (aparece en logs y branding) |
--log-level |
INFO |
Nivel de log: DEBUG, INFO, WARN, ERROR |
El proyecto también incluye core/build.bat para Windows si preferís no usar Gradle directamente. Aunque para la mayoría de los casos el wrapper de Gradle es suficiente.
Si querés limpiar el build anterior:
# Linux / macOS
./gradlew clean jar
# Windows
gradlew.bat clean jarCon el engine corriendo, podés verificar que responde correctamente desde otra terminal:
curl http://localhost:7878/apiDeberías recibir algo como:
{
"name": "novacore-engine",
"vendor": "NovaStepStudios",
"version": "1.0.0",
"java": "21.0.x",
"os": "Linux",
"endpoints": { ... }
}