← Volver al Jardín

Entrenando Bots de PvP en Lineage 2: Gymnasium, PettingZoo y PPO

#Lineage 2#IA#Java#Python#Gymnasium#PettingZoo

BOT_AI_TRAIN: IDLE // CURRENT_STABLE: v8_TABULAR // NEXT_CHALLENGER: v9 // LAB_QUEUE: PYTHON_PPO

Enlazar algoritmos modernos de Machine Learning con videojuegos clásicos de PC es un ejercicio de supervivencia de software. Para nuestro servidor evolutivo de torneos PvP de Lineage 2 Ertheia, la meta no era solo automatizar entradas de teclado, sino inyectar toma de decisiones tácticas a nivel de servidor sin degradar los Ticks Per Second (TPS) del motor principal en Java.

Aquí compartimos las lecciones técnicas clave tras recolectar millones de transiciones de combate y consolidar la versión estable de producción.

1. El Costo de los Ticks: Inferencia Desacoplada

Correr inferencia directa de redes neuronales en el hilo principal del GameServer provoca lag inmediato. La infraestructura implementada traslada el entrenamiento a un laboratorio aislado con su propia base de datos de simulación. El bucle funciona en tres niveles:

  1. Conducta Artesanal (Java): Cerebros manuales que controlan las acciones mínimas viables de cada clase (ej: un healer priorizando curaciones y resurrecciones de aliados).
  2. Aprendizaje Tabular (Q-Table/SQL): Un entrenador asíncrono analiza las transiciones periódicamente y calcula una matriz de pesos basada en el contexto táctico (SOLO, PARTY_SUPPORT, ADVANTAGE, OUTNUMBERED).
  3. Aprendizaje Neural (PPO): Ejecutado en ciclos asíncronos usando Gymnasium para abstraer los duelos individuales y PettingZoo para el combate coordinado de grupos en formato 7v7. El entrenamiento corre en Ray/RLlib limitando recursos en CPU y memoria para garantizar la estabilidad del host.

La red neuronal exporta el modelo a TorchScript, el cual es servido por un microservicio de inferencia local en CPU con latencias de respuesta de nivel sub-100ms.

2. Bloqueando el Auto-Aprendizaje Cruzado

Durante las fases iniciales de simulación, los bots experimentaron un comportamiento errático. Personajes de tipo mago o asesino empezaron a realizar saltos rápidos de esquiva y cargas físicas. Estos eran movimientos exclusivos de la clase de arqueros.

Al depurar el flujo de casteo, encontramos que si la lógica de combate invocaba una habilidad incorrecta debido a un bug de mapeo, la capa de contexto del bot recuperaba dinámicamente la habilidad faltante desde la base de datos y la agregaba permanentemente al personaje para evitar que la ejecución crasheara. Los bots estaban aprendiendo habilidades ilegales por exploración probabilística de la IA.

La solución requiri�� aislar el kiting táctico dentro del motor de arqueros y reforzar la seguridad en la adquisición de habilidades. Ahora, el auto-aprendizaje dinámico del bot exige que la habilidad pertenezca al árbol original de su clase o esté explícitamente validada en el registro de cerebros autorizados por el servidor.

3. Promoción de Modelos e Integridad

Un modelo no se promueve a producción por una buena métrica teórica. El sistema obliga a una fase de evaluación pareada de combate (Self-play):

  • El campeón actual y el aspirante se enfrentan en cientos de combates de duelo y de grupo, alternando lados de la arena para anular sesgos espaciales.
  • El aspirante debe superar un límite estadístico riguroso de victorias antes de ser promovido.

La versión v8 del modelo tabular fue promovida a estable tras ganarle a la versión v6 en una simulación de 1,027 combates, acumulando un 55.89% de victorias decisivas. El actual challenger v9 está bajo evaluación. Una vez completado su combate, el planificador automático reservará el turno para iniciar la primera política neural de producción entrenada con PPO.

4. Participación Humana

Ninguna simulación de combate puede replicar la imprevisibilidad de un jugador real. Por ello, el servidor captura de forma segura las demostraciones y combates de jugadores registrados para incorporarlos como datos de entrenamiento preferencial en las futuras generaciones.

Te invitamos a probar nuestro servidor de Lineage 2, participar en las arenas y ayudarnos a entrenar a la IA enfrentándote a ella en combates 1v1, 2v1 o en batallas de party 7v7 en el Coliseo.

Regístrate, descarga el cliente y juega en: https://lineage2.tuxevil.com

TUXBOT@SISTEMA:~$ ./chat
> SYSTEM INITIALIZED. FLEET STATUS: ACTIVE.
🐧🤖 [Tuxbot]: Hola, soy Tuxbot. Tu Ghost in the Shell para dragont.ec. ¿Qué deseas consultar hoy?
>