Skip to content

Stepnicka012/NovaCore-Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NovaCore-Engine

El motor de backend definitivo para launchers de Minecraft Java


NovaCore-Engine es un motor de alto rendimiento que potencia launchers modernos (incluyendo StepLauncher). Es un proceso Java independiente que centraliza toda la lógica compleja de Minecraft —instalación, gestión de activos, resolución de dependencias y lanzamiento— exponiéndola a través de una API HTTP y eventos WebSocket en tiempo real.

Este enfoque desacoplado permite construir interfaces hermosas en Electron, Next.js, Flutter o Java sin tener que preocuparse por la complejidad interna del juego.


🏗️ ¿Cómo funciona? (Arquitectura)

El motor funciona como un servidor local que tu aplicación controla. No hay dependencias raras; todo se maneja a través de protocolos estándar.

  • API HTTP (:7878) — Comandos directos: instalar, lanzar, gestionar instancias, consultar versiones.
  • WebSocket (:7879) — Eventos: progreso granular de descargas, logs del juego, cambios de estado.
Tu App / Launcher (UI)
        │
        ├── [HTTP] ──► Control de operaciones (POST /install, POST /launch)
        └── [WS]   ──◄ Feedback en tiempo real (Eventos de progreso, Logs)
              │
        NovaCore-Engine (Proceso Java independiente)
              │
        Mojang APIs + Sistema de archivos local + Minecraft Runtime

✨ Características Principales

  • 🚀 Rendimiento con Virtual Threads: Basado en Java 21 (Project Loom) para manejar miles de conexiones y descargas I/O sin bloquear hilos.
  • 🛠️ ModLoaders Integrados: Soporte nativo para Forge, Fabric, Quilt y NeoForge.
  • 📂 Branding Dinámico: Gestión de metadatos basada en el nombre de tu launcher. Los archivos se guardan como TuLauncher.json, permitiendo la coexistencia de múltiples launchers.
  • 🔒 Privacidad Total: Eliminación completa de telemetría. Tus datos y los de tus usuarios son 100% privados.
  • 🧹 Cierre Limpio (Tree Kill): Gestión inteligente de procesos que asegura que Minecraft y sus subprocesos se cierren correctamente, evitando procesos huérfanos.
  • 📦 Caché Compartida: Sistema de sharedPath para bibliotecas y activos, ahorrando gigabytes de espacio en disco.

📋 Requisitos del Sistema

Componente Versión Mínima Propósito
Java 21+ Ejecución del motor principal (Core).
Node.js 18+ Uso del cliente oficial y herramientas de desarrollo.
Gradle 8+ Compilación del motor (opcional).

🚀 Inicio Rápido

1. Compilar el Engine

cd core
# En Windows
.\gradlew.bat jar
# En Linux/macOS
./gradlew jar

El ejecutable generado se encontrará en core/build/libs/novacore-engine.jar.

2. Instalación del Cliente

npm install @novastepstudios/novacore-engine-client

3. Ejemplo de Uso Profesional (TypeScript)

import { NovaCoreEngine } from "@novastepstudios/novacore-engine-client";

const engine = new NovaCoreEngine({ jar: "./novacore-engine.jar" });
const client = await engine.start();

// Instalación con progreso detallado
const { sessionId } = await client.install({
    version: "1.21.1",
    instancePath: "./game",
    launcher: { name: "MiLauncher" }
});

client.on("session_progress", (p) => {
    console.log(`Progreso: ${p.overallPercent}% | Descargado: ${p.downloadedBytes} bytes`);
});

// Lanzamiento con optimización de memoria
await client.launch({
    version: "1.21.1",
    instancePath: "./game",
    jvm: { maxMemoryMb: 4096 },
    gcPreset: "g1gc_optimized"
});

📂 Estructura del Proyecto

NovaCore-Engine/
├── core/                             # Backend Java (El motor)
│   ├── src/main/java/dev/novastep/core/
│   │   ├── Main.java                 # Punto de entrada y gestión de ciclo de vida
│   │   ├── server/                   # Servidor HTTP y Handlers de la API
│   │   ├── websocket/                # Emisión de eventos en tiempo real
│   │   ├── minecraft/                # Lógica de instalación, lanzamiento e instancias
│   │   ├── downloader/               # Sistema de descarga concurrente por sesiones
│   │   └── util/                     # Herramientas de sistema y Tree-Kill
│
├── @novastepstudios/                 # SDK de Cliente (Node.js/TS)
│   ├── src/
│   │   ├── NovaCoreEngine.ts         # Orquestador del proceso Java
│   │   ├── NovaCoreClient.ts         # Cliente API y WebSocket
│   │   └── types/                    # Definiciones de tipos completas en español
│
└── Docs/                             # Documentación técnica detallada

📖 Documentación Completa

Documento Descripción
🏗️ Arquitectura Análisis profundo del diseño interno y concurrencia.
🌐 API HTTP Referencia de todos los endpoints y parámetros.
Eventos WebSocket Guía completa de eventos y payloads en tiempo real.
📦 Cliente Node.js Manual de integración del SDK en aplicaciones TS/JS.
🎮 Lanzamiento Guía de configuración de JVM, GC y parámetros de juego.

💡 Notas Adicionales

  • Seguridad: El motor genera un token de acceso seguro al iniciar, garantizando que solo tu aplicación pueda controlarlo.
  • Portabilidad: NovaCore es agnóstico a la plataforma. Funciona igual de bien en Windows, Linux y macOS.
  • Eficiencia: Gracias a la reutilización de activos, las instalaciones de versiones que ya tienes en caché son casi instantáneas.

Desarrollado con pasión por NovaStepStudios (Alias: Stepnicka012)

About

Java-powered backend engine for Minecraft Java launchers — HTTP API + WebSocket events for install, launch, instance management and real-time progress tracking.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors