L2J aCis: Estructura básica del proyecto (Source)

Iniciado por JBKDev, Ene 20, 2025, 06:50 PM

Tema anterior - Siguiente tema
Ene 20, 2025, 06:50 PM Ultima modificación: Ene 23, 2025, 01:23 AM por dandiarena
Buenas a todos!

Les traigo esta guía corta en donde veremos como está conformado el código fuente de nuestro pack L2J aCis.

Bueno, para empezar así se vería su source aCis si siguieron mi guía para Configurar entorno de desarrollo: l2j:



Como podrán notar los directorios mas importantes son aCis_datapack y aCis_gameserver pero antes de ir al detalle les voy a decir brevemente de que trata el resto de directorios y archivos.

Para empezar tenemos los que son directorios agregados por el IDE o en este caso por IntelliJ y son los siguientes:
/.idea (Se trata de una carpeta que contiene todas las configuraciones del IDE respecto al proyecto aCis como pueden ser la version de Java o los módulos dentro del proyecto).
/aCis.iml (Este archivo es generado por un plugin para IntelliJ llamado SonarLint que basicamente es un programa que te ayuda a detectar vulnerabilidades en tu código o "code smells" que es código "sucio" o hecho con malas practicas de desarrollo que pueden resultar en algún bug o problema a futuro, también afectan el mantenimiento y la escalabilidad del código).
/.settings (Este directorio es generado por eclipse y es el equivalente a .idea en IntelliJ, es decir, son configuraciones del IDE.)
/.project (Este archivo es generado por eclipse, es decir, son configuraciones del IDE respecto al proyecto y sos módulos y/o librerias externas)
/.gitignore (Este archivo contiene una serie de directorios y archivos que son ignorados por GIT, es decir, no se va a tener registro de modificaciones de estos archivos ni tampoco se van a subir cuando hagamos un push a nuestro repositorio remoto, osea, son cosas que no queremos que se suban ni queremos tener registro de actividad en ellas.)
/README.md (Este podemos decir que es como una carta de presentación de nuestro proyecto, acá podemos escribir de que trata el proyecto o incluso dejar una guía de como compilar o lo que sea que quieran poner, se maneja con su propio lenguaje para escribir en formato y se llama Markdown).

aCis_datapack:



En este directorio podemos observar que se repiten algunos archivos o carpetas mencionadas anteriormente como, .settings, .gitignore y .project. Además a diferencia del directorio raíz tambien tenemos un archivo .classpath que en este caso es un archivo de configuración para Eclipse.

/build (En este directorio se genera nuestro datapack cuando compilamos aCis_datapack)
/build.xml (Este archivo contiene los pasos que debe ejecutar el AntBuild, basicamente mueve los archivos del datapack como data, sql y tools a la carpeta Build para conformar el pack).
/data (Este directorio contiene la mayoría de archivos que el servidor necesita para funcionar como Geodata, XML's configurables y la totalidad de los archivos HTML del proyecto).
/sql (Acá se encuentran todos los archivos SQL para la construcción de la base de datos).
/tools (Acá podemos encontrar herramientas o ejecutables como el instalador de la base de datos).

aCis_gameserver:



Como pueden ver acá también vemos que se repiten directorio o archivos ya mencionados por lo que solo voy a hablar de los que no fueron previamente explicados.

/config (Acá se encuentran todos los archivos de configuración de nuestro pack o mas bien todos los properties).
/build (En este directorio van a encontrar el resultado de buildear el gameserver, es decir, cuando compilen el gameserver los archivos estarán en este directorio).
/lib (En esta carpeta lo que hay son dependencias externas al proyecto, como no se usa ningún manejador de dependencias como Maven hay que tener una carpeta aparte para que el archivo build.xml mueva esas dependencias a nuestro gameserver compilado. En este caso se trata de la librería para que nuestro servidor se conecte con la bases de datos, en definitiva es el driver de MariaDB).
/java (Respecto a esta carpeta, es la más importante del source, acá se encuentra todo el código Java de nuestro proyecto).

Bueno, esto fue la guía, un poco breve pero la idea es que de a poco vayan conociendo lo que están usando. Pronto voy a sacar una guía para complementar esta y tendrá que ver con la estructura del Código Java en sí. Ahí hablaremos más en profundidad sobre como esta compuesto el código de la carpeta /java.

Gracias por su tiempo, Saludos!
Java Backend Developer