- HipnoTanatos -

Projects

Contact

Introducción

< Logo de logos >

Plataforma distribuida para automatizar, instrumentar y orquestar personajes en Lineage II de forma escalable, consistente y centralizada.

Logos es una suite de herramientas diseñada para operar personajes automatizados en Lineage II como un sistema con estado observable, flujos de datos explicitos y control centralizado.
Pensada para gestionar numerosos clientes, cuentas y personajes en paralelo, de forma ordenada, robusta y observable.

Compatible con las cronicas C4 a H5 (incluyendo intermedias).

A diferencia de un bot tradicional que corre “pegado” a un cliente, Logos intrudce una capa intermedia, “Mirror”, que desacopla la conexion a los servidores externos, la representacion del mundo del juego y la logica que toma decisiones. Esto permite: escalar a muchos personajes sin perder control, reutilizar informacion entre bots, observar todo el sistema en tiempo real, y mantener consistencia entre cuentas, redes y comportamientos.

[!warning] This documentation is heavily under construction. Structure may change a lot, and some pages may have little/no content yet.


Conceptos base

Mundo espejo (Mirror)

El mirror es una representacion centralizada, consistente y observable del estado del juego.
En terminos simples: es una “copia viva” del mundo del juego dentro de Logos.

Los sincronizadores vuelcan ahi todo lo que entra desde los servidores externos. Los bots y herramientas no se comunican con estos, sino que interactuan con el mirror.

Sincronizadores

Los sincronizadores son los unicos procesos que hablan con el servidor externo.

Gestionan:

Podes tener: 1 sincronizador por personaje, cientos en un mismo servidor, o miles repartidos entre multiples servidores. Todos alimentan el mismo mirror

Desde el putno de vista del resto del sistema, un sincronizador es simplemente una fuente (y sumidero) de estado: convierte el trafico de red en informacion estructurada.

Bots

Los bots son consumidores puros del mirror.

Operan sobre un modelo del mundo, leen el estado y emiten intenciones (acciones), y el sistema se encarga de traducirlas a efectos reales.

Esto hace que la IA sea completamente portable (no dependa de un servidor especifico), testeable (puede ejecutarse sin conectarse al juego), y reproducible (el mismo estado produce el mismo comportamiento).


Componentes


Scope

Con Logos se puede:

Creacion de personajes

En logos es posible crear personajes de forma manual y de forma automatizada.
La forma automatizada permite creacion de personajes en masa.

Manual

Para la forma manual hay dos caminos posibles, uno es declarar desde un yaml las caracteristicas del mismo, el yaml sera consumido por logos y el personaje creado. Sino tambien se puede usar la interface grafica de Dashboard para operar desde el creador asistido

Automatizada

Para la forma automatizada es necesario declarar una plantilla (o varias) en yaml y dar la orden desde la ventana de comandos de Dashboard, o definir las directivas de creacion dentro de los arboles de comportamiento, que usaran su factory para generar personajes a partir de la plantilla y las directivas y enviar sus respectivos comandos

Almacenamiento persistente de datos

Toda esta informacion se almacena en formato yaml, puede ser editada manualmente o mediante la interface visual para luego ser consumida por cada componente

Mundo espejo

Logos opera haciendo uso de uno o mas sincronizadores, un sandbox o mundo espejo, y sus consumidores (dashboard, ia, analizadores, etc)

El mirror/mundo espejo es un “sandbox” seguro en el que se sincroniza una copia 1:1 con la informacion entrante de cada cliente, pero con la ventaja de ser centralizado, eso quiere decir que podes tener un sincronizador conectado a un servidor y el mirror es un espejo directo de este juego, podes tener cientos de sincronizadores conectados a un server, y ahora el mirror es mas completo, ya que recibe mas cantidad de datos y los deja disponibles para ser consumidos por cualquier componente independientemente de su personaje asociado, o incluso podes tener miles de sincronizadores, conectados a diferentes servidores, llenando el espejo con informacion de cada uno de estos servidores, manteniendo las ventajas del punto anterior mas que ahora se pueden gestionar cuentas de distintos servidores de forma agnostica a su direccion, abstrayendo la capa de comunicacion totalmente de la capa de consumo, lo que permite tratar cada cliente/personaje de la misma manera, independientemente de sus requisitos de conexion

La idea es que cada sincronizador crea una conexion el servidor de juego remoto, gestiona el logeo y el stream de datos de forma bidireccional durante la comunicacion, entre el servidor y el mirror.

el mundo espejo tambien actua como interface de comunicacion entre clientes, procesos y consumidores, permitiendo comunicaciones con topologias a necesidad, como por ejemplo broadcast de comandos (cerrar todas las cuentas con cierto nombre, abrir conexion con todos los personajes de tal servidor), comunicacion unidireccional (consumidor <- mirror), bidireccional (componente bot <-> mirror), etc.

este tiene un sistema de eventos global que permite filtrar por tipo de evento (environment, character, chat, mutation) que los bots consumen y los sincronizadores retroalimentan


Arquitectura


Roadmap


Logos como sistema distribuido

#TODO