Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Game Launcher/Compiler

Iniciado por Swarlog, Oct 02, 2026, 10:22 PM

Tema anterior - Siguiente tema

Swarlog

Hoy quiero presentar un nuevo conjunto de herramientas desarrollado desde cero en Java, pensado para simplificar y modernizar una de las tareas más importantes de cualquier servidor online: distribuir, actualizar y mantener el cliente de juego de forma rápida, segura y organizada.

El sistema ha sido diseñado para funcionar con Lineage II, Aion, World of Warcraft o cualquier otro proyecto que necesite un sistema de actualización y distribución de archivos, ofreciendo una solución sencilla tanto para el jugador como para el administrador.

Todo el proyecto cuenta con una interfaz moderna en modo oscuro, está completamente separado por herramientas y se distribuye como ejecutables independientes para Windows (.exe) mediante Launch4j.

1. GameLauncher: El cliente del jugador

No puedes ver este adjunto.

GameLauncher es el lanzador que utilizarán los jugadores desde sus equipos. Su objetivo es que mantener el cliente actualizado sea un proceso completamente automático y transparente.

  • Actualización Inteligente: Compara automáticamente los archivos locales con el servidor remoto a través de un archivo de manifiesto (manifest.json).
  • Integridad por Hashes: Calcula sumas de comprobación para descargar únicamente los archivos nuevos o modificados, ahorrando tiempo y ancho de banda.
  • Descarga en Tiempo Real: Barra de progreso detallada con velocidad de transferencia y control de descompresión automática de paquetes ZIP.
  • Independiente: Empaquetado en un único .exe con validación de requisitos para Java 17 y redirección automática en caso de que falte el entorno.

Código fuente: No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

2. L2Compiler: La herramienta del administrador

No puedes ver este adjunto.

GameCompiler es la herramienta destinada a administradores y desarrolladores. Permite preparar y publicar actualizaciones de forma rápida, automatizando gran parte del proceso que normalmente tendría que realizarse manualmente.

  • Empaquetado Masivo: Selecciona la carpeta raíz de tu cliente de desarrollo y genera automáticamente los paquetes comprimidos optimizados para la distribución.
  • Generación Automática de Manifiesto: Crea al instante el archivo manifest.json con todos los metadatos necesarios (tamaños, rutas y hashes) utilizando Gson.
  • Gestión de Preferencias: Guarda automáticamente las últimas rutas utilizadas mediante java.util.prefs para agilizar el trabajo diario.
  • Interfaz Asíncrona: Procesamiento en segundo plano mediante SwingWorker para evitar bloqueos visuales en tareas pesadas.

Código fuente: No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Un sistema pensado para servidores online

La idea detrás de este proyecto es sencilla: el administrador prepara una actualización con GameCompiler y el jugador la recibe automáticamente mediante GameLauncher.

De esta forma, ambas herramientas trabajan conjuntamente para crear un flujo de actualización sencillo:

Cliente de desarrollo → GameCompiler → Servidor → GameLauncher → Cliente actualizado

Sin necesidad de que el jugador tenga que buscar manualmente archivos, descargar parches uno a uno o realizar instalaciones complicadas.

Aunque inicialmente está pensado para proyectos como Lineage II, Aion y World of Warcraft, el sistema no está limitado a ningún juego concreto. Si tu proyecto necesita distribuir archivos y mantener sus clientes actualizados, puede adaptarse perfectamente a él.

Código abierto para la comunidad

Este proyecto ha sido creado por mí para la comunidad U3Games, con el objetivo de proporcionar una alternativa moderna, sencilla y reutilizable para la gestión de actualizaciones de nuestros servidores.

El código fuente está disponible públicamente para que otros desarrolladores puedan estudiarlo, adaptarlo, mejorarlo y contribuir al proyecto.

CitarEste proyecto forma parte de Game Compiler for U3Games y se distribuye bajo los términos de la licencia GNU General Public License v3.0 (GPLv3).

¿Tienes alguna sugerencia, has encontrado un error o quieres aportar una mejora?

Toda sugerencia, reporte de errores, mejora o contribución será bienvenida. La idea es seguir evolucionando el proyecto junto a la comunidad y convertirlo en una herramienta cada vez más completa para todo tipo de servidores y proyectos online.

Neron

Dios, tremendo trabajo acabas de compartir con la comunidad!

Son muchos los launcher que se venden y no son baratos, pero esto ya rompe las reglas y se va ha cabrear más de uno.

Estos días lo pruebo y te voy comentando, pero así por encima; el compilador de 10, pero el cliente le hace falta mejoras visuales. Se que es el comienzo, pero bueno, yo te digo el que mejorar jajaja

Eso si, cuando puedas sube un tutorial o añade al wiki del proyecto como funciona.

Jerry

Pues lo he probado y me ha sorprendido, va muy rápido y tiene todo lo básico que se necesita. Muchas gracias por compartirlo, como ha dicho No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate. solo le falta mejoras visuales pero teniendo el source puedes adaptarlo como quieras.

Para instalarlo no ha sido muy complicado, mas o menos es como los demás:

1.- Compilas datos:

Usa el compilador para comprimir los archivos del cliente y generar el manifiesto, que es donde esta toda la información de esa actualización.

2.- Subir al host los datos:

Subes a la ruta deseada los archivos del cliente y del manifiesto.

3.- Abrir el launcher:

Abres el launcher y solito chequea los datos del cliente. Los tengas o no actualizados, los revisa y si esta todo bien, podrás usar el botón de jugar al servidor.

NOTA: En el source, debes de indicar las rutas del host, el donde poner los archivos comprimidos y el manifiesto.

Yo personalmente lo he usado para mi servidor del Aion.

Swarlog

Muchas gracias por los comentarios, seguimos trabajando!

Añadido sistema multilenguaje, properties para que os sea mas fácil configurarlo, limpieza de código y reparación de errores:



Externalización de la configuración mediante properties estáticas:

# ==========================================
# Configuración del Lanzador
# ==========================================

# Configuración de Idioma
DefaultLanguage = es
LanguagesBaseUrl = http://localhost/launcher_data/lang/

# URLs del Servidor
ManifestUrl = http://localhost/launcher_data/manifest.json
DownloadBaseUrl = http://localhost/launcher_data/client_files/
BackgroundUrl = http://localhost/launcher_data/background.jpg

# Rutas Locales
GameExePath = system/l2.bin

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Implementado sistema multilenguaje dinámico en el Launcher:
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Reparado error al cargar imagen de fondo mediante URL:
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.




Karim

Para rematarlo, pon otro xml para mensajes en el launcher para noticias del servidor, novedades, etc.. y también url para el logo del servidor en el centro.

Veo que es totalmente configurable, gracias por el trabajo y el compartirlo con todos como siempre  ;)