Configurar Entorno y Servidor L2J

Iniciado por JBKDev, Abr 22, 2025, 03:13 PM

Tema anterior - Siguiente tema
Abr 22, 2025, 03:13 PM Ultima modificación: Abr 22, 2025, 03:20 PM por JBKDev
Configurar entorno de desarrollo: l2j

Aviso: Esta guía esta enfocada para quienes pretenden crear un servidor de Lineage 2 utilizando código fuente basado en java. Es importante poseer el código fuente, ya que solo con tener el pack compilado no basta.
Por otro lado esta guía esta hecha adrede con herramientas comunes de desarrolladores para incentivarlos a usar las tecnologías adecuadas y las buenas practicas necesarias para ser buenos devs con buenos servidores.


Requisitos:
-Conocimientos básicos de programación(POO, JAVA).
-Código fuente l2j(l2jaCis, l2jfrozen, l2jorion, l2jmobius, etc...)
-Sistema operativo Windows o GNU/Linux
-IntelliJ Community Edition(Se puede usar otro como VSCode o Eclipse).
-Notepad++
-MySQL Workbench(Se puede usar otro como DBeaver).
-GIT
-Cuenta Github(Se puede usar otro servicio como GitLab o BitBucket).
-Cliente L2 + System Limpio.

Temario:

1 - Conceptos básico:
-Repositorios/Versionado
-Código fuente/Pack compilado
-Base de datos
-IDE's
2 - GIT/GitHub:
-Instalar GIT
-Crear cuenta Github
-Crear repositorio java
-Clonar repositorio
-Mover archivos de código fuente al repositorio.
-Configurar rama de git y hacer commit.
3 - Configurar IDE:
-Instalar IntelliJ CE
-Abrir repositorio clonado
-Configurar JDK
4 - Instalar MySQL Workbench:
-Configurar Servidor MySQL
-Configurar Cliente MySQL
-Crear Bases de datos
5 - Configurar Pack:
-Compilar pack
-Configurar conexión a la base de datos.
-Configurar variable de entorno para Java
-Crear tablas del servidor l2j
-Configurar hexid
6 - Poner servidor online:
Local:
-Editar l2.ini
-Ejecutar archivos .bat
-Crear Cuenta Admin
-Crear Personaje Admin.

1 - Conceptos básicos:

En esta parte de la guía les voy a describir de forma muy resumida algunas de las herramientas que vamos a estar usando para configurar nuestro entorno así saben bien qué es lo que están usando.

Repositorios:

Los repositorios son espacios en la web (para decirlo de forma simple) en donde uno puede almacenar su código fuente.
Los repositorios sirven para el trabajo en equipo compartiendo el código de una manera rápida y eficiente. También se puede controlar el acceso de cada usuario y el nivel de permisos en el repositorio.

Por lo general una buena práctica de desarrollo es tener nuestros proyectos en repositorios. Algunos servicios web que ofrecen esto son Github, GitLab, BitBucket, etc..
Para esta guía sera necesario tener una cuenta de GitHub.

Cabe destacar que uno puede crear repositorios para diferentes cosas, por ejemplo, en el caso del lineage 2 se podrían crear hasta 4 repositorios o mas dependiendo del contexto, un repo para el código fuente, otro para el data pack compilado, otro para la web y un cuarto para archivos del cliente o parche del servidor.

De esta forma uno lleva siempre un control y registro de actividad en todos los archivos, aunque esto no funciona bien con archivos binarios como los archivos del cliente por lo que tener un repo para el parche del server es opcional.

Versionado:

Respecto a este tema el concepto es muy simple, a medida que uno va programando, es decir, cambiando cosas, creando nuevos archivos, borrando bloques de código es muy difícil llevar un tracking de todas las acciones que se van realizando sobre el código.
El versionado lo que permite es que puedas llevar un track de todas las acciones que vas realizando en tu código y así desarrollar de forma mas eficiente.

La herramienta mas usada para versionado de código y la que vamos a usar en esta guía es GIT que nos va a permitir realizar muchísimas operaciones sobre nuestras acciones en nuestro código, como por ejemplo, crear ramas de trabajo, clonar ramas, volver cambios o acciones atrás, ver un historial de cambios, combinar dos ramas, etc..

Código fuente:

Son todas las carpetas y archivos que contienen el código de programación o código fuente del servidor de lineage 2. En este caso el código fuente es java y los archivos deberían ser de extensión ".java, .jar o .class".

Pack compilado:

Esto se refiere a los archivos que obtenemos al compilar nuestro código fuente. Por lo general se usa un Ant Build(archivo build.xml) en donde se define una serie pasos a ejecutar que contribuyen a que el código se compile y que los archivos necesarios para confeccionar el pack queden todos en su lugar.
Por lo general el código fuente en sí se encuentra compilado en el archivo "l2jserver.jar" por lo que si hacemos cambios en nuestro código siempre tenemos que asegurarnos de actualizar nuestro .jar para poder probar cualquier modificación hecha al mismo.

Para esta guía usaremos un pack basado en l2jacis.

Base de datos:

La base de datos es el lugar en donde se persisten datos estáticos y/o variables indispensables para nuestro servidor de l2j, como por ejemplo, cuentas, los macros de las cuentas, skills, clanes,etc.. Por lo general son datos que se necesitan que persistan a través del tiempo pero que también tienen que tener una estructura y estar organizados para poder acceder fácilmente a ellos.
Para poder crear una base de datos e interactuar con la misma es necesario crear un servidor de base datos que es el servidor que contendrá todos nuestros schemas y sus tablas y además se necesita un cliente de base de datos que nos va a servir para conectarnos a la misma e interactuar con ella, haciendo cambios en tablas, borrando registros, etc..

Para esta guía usaremos MySQL Workbench tanto el servidor como el cliente.

IDE o Entorno de Desarrollo Integrado:

Se trata de una suite de herramientas diseñadas y pensadas para el desarrollo eficiente con lenguajes de programación, te proveen de muchas funcionalidades convenientes a la hora de escribir código.
Para esta guía usaremos IntelliJ Community Edition.[/justify]


2 - Git/Github

3 - Configurar IDE

4 - Instalar MySQL Workbench

5 - Configurar Pack

6 - Poner servidor online


Con esto concluye esta guía para configurar su entorno de desarrollo.

Cualquier duda o consulta dejen un comentario o hablenme por el Discord del Foro, mi usuario es Fede8737.

Muchas gracias a todos, Saludos!
Java Backend Developer