Autor Tema: Athena Event Engine - ¿qué es?  (Leído 2756 veces)

Enero 23, 2017, 03:49:11 am

Desconectado Zephyr

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 67
  • Karma: 1
  • Sexo: Masculino


Athena Event Engine

¿Qué es? ¿Cuál es el objetivo?

Athena Event Engine es un proyecto que tiene por objetivo crear un sistema de eventos libre y gratuito de propósito general para todo tipo de servidores L2J.
Esto significa que si tenés un servidor, ya sea un fork o no, el engine funcionará igual.

¿Cómo es esto posible?

La idea final del engine es lograr la siguiente arquitectura:


Consta de tres partes principales:
  • API para cada tipo de servidor, las mismas sirven para adaptar el Core del sistema de eventos al Core del servidor que estén usando.
  • Event engine core, es donde se contiene toda la lógica del sistema de eventos.
  • API Plugin, es la interfaz que existe entre el Core del engine y los eventos. Los eventos consumen dicha API, brindando una capa de abstracción a cómo el Engine funciona internamente y manteniéndolos de manera separada (sin dependencias de L2J, por lo cual no importa el servidor que uses para programar el evento).

¿Cómo es eso de que los eventos están aparte?

Los eventos se compilan como JARs independientes. Al ser colocados en la carpeta events, una vez que levante el servidor son inicializados por el sistema de eventos. Dicho en otras palabras, teniendo el sistema de eventos instalado, instalar nuevos eventos es tan sencillo como copy-paste.

Si sos programador y querés hacer tus propios eventos, tan sólo tenés que consumir dicha API para crearlos. Así de simple.

¿Qué funcionalidades tiene?

  • Propio sistema de configuraciones. La verdad es que XML nunca me pareció muy práctico y menos para programadores que necesitan hacer las cosas rápido. Es así que el Engine cuenta con un sistema de creación y utilización de configuraciones propio. Utiliza el formato de archivo HOCON (es usado en el framework Play) que es un pseudo JSON un poco más amigable lo cual permite generar configs más complejas (por ejemplo, la información de un equipo). Dicho archivo es mapeado en un objeto por medio de Gson (library de Google). ¡Y listo! (Podés leer la wiki del proyecto o preguntar para más información).
  • Carga en tiempo de ejecución de los eventos. Como bien está descrito más arriba, el sistema carga los JARs que contienen los eventos mientras el servidor está inicializando. ¡No hay que modificar ninguna línea en el Core para que reconozca tu evento!
  • Propio sistema de votos. Al cargar eventos y habilitar la configuración de votos (cambiar un false por un true), el sistema hará una votación antes de empezar un evento para que los propios usuarios elijan qué quieren jugar.
  • Propio sistema de registro. Acá simplemente no tenés que hacer nada, con cargar el evento ya es suficiente.
  • Sistema multilanguage.
  • Anti-afk.
  • Anti-dualbox.
  • Soporte para eventos en instancias.
  • Muchos helpers para que sea más fácil programar los eventos (por ejemplo, poder ordenar los equipos dependiendo de la cantidad de kills).
  • Casi no necesita cambios en el Core de L2J.
  • Etc.

Todo muy lindo pero, ¿cómo hago para ganar dinero?

Dado que el core no necesita de modificaciones para correr los eventos, podrás crear tus propios eventos y venderlos como JARs independientes.

¿Cuál es el estado actual de esto?

Se publicó la versión Alpha v3.0 que contiene todo lo descrito arriba. Si bien todavía no es lo suficientemente estable como para funcionar en una servidor live, funciona como prueba de concepto. En otras palabras, podrás instalar el engine y correrlo en tu servidor ÚNICAMENTE si utilizás L2J server High Five. La adaptación a otros forks aún está pendiente.

Por otra parte, todavía queda trabajar un poco más en la abstracción del core de L2J y quedan muchos helpers que programar (por ejemplo, algo que facilite la transformación de los jugadores, entregue recompensas, fuegos artificiales, etc).

Te aconsejo que leas You are not allowed to view links. Register or Login para instalar el engine.

Me convenciste, ¿cómo puedo ayudar?

El proyecto está público en Github, por lo que podés mirar todo el código y contribuir con los cambios que quieras (utilizá pull requests para ello). Si bien invertí muchísimo esfuerzo en hacer lo mejor posible, seguramente hay maneras mejores de hacer lo que hay hecho, por lo que tu opinión es muy valiosa (el buen software se construye en equipo SIEMPRE).

Si no sos programador pero querés ayudar, podés publicitar el engine y/o probarlo. El feedback es una de las cosas más importantes. También podés aportar con una mano a completar la wiki.

El chat de Telegram en español es este: You are not allowed to view links. Register or Login

Links útiles

Repositorio del core: You are not allowed to view links. Register or Login
Repositorio del TvT: You are not allowed to view links. Register or Login
Wiki: You are not allowed to view links. Register or Login

Agradecimientos

Este proyecto comenzó como L2J Event Engine a mediados del 2015 con la base contribuída por fissban. A lo largo de estos años se fue avanzando a base de ese trabajo con ayuda del mismo fissban, Swarlog y yo. Luego de un tiempo se abandonó y fue retomado por mí (Zephyr) con el objetivo de lograr la idea que fue descripta en este post (¡también recibimos algunas contribuciones de Sacrifice!).

Les agradezco a ellos por el trabajo invertido y espero que les guste el resultado que hoy estoy presentando.

Por último, todavía queda mucho trabajo por hacer e invito a la comunidad a…

“Crear una pieza software increíble JUNTOS”.

Enero 23, 2017, 04:54:37 pm
Respuesta #1

Desconectado swarlog

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 1.602
  • Karma: 4
  • Sexo: Masculino
    • U3Games
Tremendo engine y cada vez mejor!

Post Fijado! Sigamos avanzando!!

Enero 23, 2017, 08:38:02 pm
Respuesta #2

Desconectado Sacrifice

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 194
  • Karma: 1
  • Sexo: Masculino
Eres tremendo Zephyr. Para ti mis 10 puntazos!.
Retail GameMaster and Developer using Eclipse for Java Developers (64 bits), OpenJDK11 (64 bits), MySQL 8.0+ (64 bits).
GitLab You are not allowed to view links. Register or Login

Enero 29, 2017, 11:54:57 am
Respuesta #3

Desconectado Jerry

  • Vips
  • Usuario
  • *
  • Mensajes: 125
  • Karma: 0
  • Sexo: Masculino
Expectacular, enhorabuena!

Febrero 01, 2017, 04:13:48 am
Respuesta #4

Desconectado Zephyr

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 67
  • Karma: 1
  • Sexo: Masculino
¡Versión Alpha v3.2 publicada!

El Engine ya cuenta con Team vs Team, Capture the flag y All vs All, además de varios helpers y métodos bastante útiles para el desarrollo de eventos propios. Muy pronto va a estar todo documentado.

You are not allowed to view links. Register or Login

Febrero 03, 2017, 09:28:00 am
Respuesta #5

Desconectado Sacrifice

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 194
  • Karma: 1
  • Sexo: Masculino
Como dije por telegram... me alegro un montón. Enhorabuena! :+1: os felicito.
Retail GameMaster and Developer using Eclipse for Java Developers (64 bits), OpenJDK11 (64 bits), MySQL 8.0+ (64 bits).
GitLab You are not allowed to view links. Register or Login

Febrero 04, 2017, 12:56:07 am
Respuesta #6

Desconectado swarlog

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 1.602
  • Karma: 4
  • Sexo: Masculino
    • U3Games
De aqui a nada, a hacer videotutoriales!!

Tremendo engine!

Diciembre 25, 2017, 09:02:21 pm
Respuesta #7

Desconectado puchuperro

  • Usuario
  • *
  • Mensajes: 3
  • Karma: 0

Diciembre 25, 2017, 10:40:26 pm
Respuesta #8

Desconectado swarlog

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 1.602
  • Karma: 4
  • Sexo: Masculino
    • U3Games
You are not allowed to view links. Register or Login
ya lo he puesto en mi sever, y ahora como lo hago funcionar??

Perdon por la ignorancia , pero soy nuevo en el  Te

You are not allowed to view links. Register or Login

Diciembre 25, 2017, 11:13:50 pm
Respuesta #9

Desconectado puchuperro

  • Usuario
  • *
  • Mensajes: 3
  • Karma: 0
gracias algo hago mal ,, no se exporta l2j_EventEnerge.jar  sin errores

ahora al volver a clonar el git no me sale para exportarlo

Julio 10, 2019, 03:30:57 pm
Respuesta #10

Desconectado 0samita

  • Usuario
  • *
  • Mensajes: 5
  • Karma: 0
Esto es solo para H5? Necesito para aCis

Julio 11, 2019, 09:46:37 pm
Respuesta #11

Desconectado swarlog

  • Desarrollador
  • Usuario
  • *
  • Mensajes: 1.602
  • Karma: 4
  • Sexo: Masculino
    • U3Games
You are not allowed to view links. Register or Login
Esto es solo para H5? Necesito para aCis

Es solo para h5.