El objetivo de esta guía es proporcionar una forma simple y amigable para principiantes de controlar la huida de sus bots y crear una base que se pueda expandir y modificar fácilmente.
Si encuentra algún error o tiene alguna pregunta, contácteme en la discordia de Gladiabots.
Primero, veremos algunos módulos de fuga típicos que la mayoría de los jugadores encuentran cuando comienzan a jugar y mostraremos cómo se verían en el sistema que crearemos. Luego, un ejemplo que motiva las matemáticas que usé al elegir los valores de mi IA seguido de la creación del módulo de fuga de una de mis IA más antiguas. Por último, doy algunas ideas sobre cosas que podrían expandirse para hacer que este módulo sea más consistente.
Módulos comunes para principiantes
Los primeros módulos que huyen con los que se encuentran la mayoría de los jugadores se parecen a los siguientes.
Proporcionan una visión clara de las condiciones y las consecuencias y son excelentes para la depuración. Para mí, se volvió difícil jugar con ellos y no podía "sentirlos".
El sistema de contador
El método que estoy usando asigna un valor a las cosas que me hacen o me harán daño. Cuando se calcule que ocurrirá una cierta cantidad de daño, comenzaremos a retirarnos.
Recreando los módulos para principiantes
Recrearemos los módulos que se ven arriba para mostrar cómo funciona este sistema, comenzando con el módulo izquierdo.
Usamos el contador de equipo E para almacenar valores. Siempre que no se use para nada que pase por varios tics o que le asigne un valor antes de este módulo y lo use después, puede usarlo libremente en cualquier otro lugar.
Este código tiene 3 columnas. El primer equipo establece el contador E para la cantidad de bots que me atacan, es importante que el nodo que establece el valor se ejecute primero. La segunda columna comprueba si nuestro escudo está por debajo del 50%, si es así aumenta la E en 3. La tercera columna comprueba si el contador de equipo E es mayor o igual a 3, en cuyo caso huimos de todos los enemigos que nos atacan.
Si somos atacados por 3 o más bots o tenemos menos del 50% de escudo, se produce una retirada de todos los enemigos que nos atacan.
El ejemplo de la derecha es el mismo que el de la imagen de arriba. Aquí comienzan a mostrarse las posibilidades de este sistema, con incrementar el contador en uno si se cumple una determinada condición como se ve en la segunda columna.
Estadísticas y Matemáticas
Antes de continuar, necesitaremos algunas estadísticas del bot para que podamos intentar hacer algunas aproximaciones y elegir nuestros valores. Todas las estadísticas se toman de la clases de bots sección de la wiki de Gladiabots. Un tic es un turno de juego, hay 4 tics por cada segundo.
Escenario de prueba
Suponga que su asalto se acerca a un bot enemigo y comienza a disparar una vez que ingresa a un rango medio. Si te retiras inmediatamente al entrar en un ataque enemigo de rango medio, tendrás tiempo de disparar 5 ráfagas hacia tu bot, cada una con disparos de 3×2. Se trata de 30 balas, cada una de las cuales inflige 300 daños y tiene un 15% de probabilidad de acertar. Esto lleva a un daño promedio de 30 * 300 * 0.15 = 1350. Un asalto tiene 3000 en el escudo, por lo que no está muy lejos de la mitad de tu escudo.
Crear el módulo
La mayoría de los bots de asalto con los que te encuentres no estarán a un alcance medio, suponiendo que la distancia promedio a un bot de asalto enemigo esté aproximadamente a la mitad del alcance largo, puede disparar 2.5 ráfagas, que es un daño promedio de 675, que redondeé a ⅕ de el escudo completo. Entonces, si 5 enemigos me disparan, huyo incluso con el escudo lleno.
Ahora, teniendo en cuenta el escudo, vimos que podemos hacer una transición algo suave si agregamos los nodos del escudo por separado.
Mirando un ejemplo, digamos que tenemos un 33% de escudo, esto hace que los 3 nodos de escudo superiores se disparen, E tiene el valor 3 si ningún enemigo nos está atacando. Si ahora 2 enemigos nos atacan a mitad de camino en el largo alcance, suponiendo que disparen 2.5 voleas cada uno, recibiríamos un daño promedio de 1350, es decir, 350 daños de salud cuando el escudo se haya ido.
Tanto aquí como al redondear 675 de daño a ⅕ de mi escudo he sido optimista sobre el daño que recibiré. Esto funcionó para mí, pero puede diferir según la composición del equipo y el resto de la IA.
Sin embargo, hay oponentes que causaron que mis bots perdieran salud casi cada vez que huían. Y dado que este (con suerte) no es el caso con todos los oponentes, no queremos cambiar nuestro umbral de huida para todos los oponentes, ya que nos llevaría a huir cuando no sería necesario.
Una solución a esto es comenzar a huir antes una vez que suframos algún daño. Esto ayudará a que la mala suerte no nos mate accidentalmente, pero para mí, es principalmente una solución para adaptarme al estilo de juego de mi oponente.
Si bien esto hace que sus bots sobrevivan, puede tener un efecto claro en su capacidad para empujar a los enemigos, sucede que las peleas comienzan bien para mí y hago retroceder a los enemigos, pero una vez que mis bots comienzan a recibir daño, se vuelven menos agresivos y el oponente comienza a empujar. yo en su lugar
Dado que los bots hacen más daño a medio o corto alcance, agregué el siguiente nodo para estar un poco más preparado para cualquier daño que provenga de medio o corto alcance.
Esto se hizo aumentando el contador de cada bot enemigo que me atacaba a corta o media distancia. Lejos de ser una solución perfecta y lo abordaré en la sección de mejoras futuras, pero es útil en aquellos casos en los que más de un bot te ataca en el rango medio.
Lo último que cubriremos es el francotirador enemigo. Puede causar mucho daño y, sin las herramientas adecuadas, este daño surge de la nada. Hay mejores formas de manejar a los francotiradores que las que presento aquí, pero este sistema me ha funcionado bien.
Incrementa el contador en 2 por cada francotirador que nos ataca. Así que cada francotirador que nos ataque vale 3 puntos en total. Esto se debe a que el francotirador te quita ⅔ de tu escudo a la vez, lo que está lo suficientemente cerca de ⅗. Entonces, si tienes menos del 75% de escudo, siempre huirás de un francotirador que te ataque.
En mi opinión, algo importante a tener en cuenta es que sin ningún otro módulo aparte de este, es muy importante asegurarse de huir si dos francotiradores te están atacando. Si ambos golpean la tierra, perderá ⅕ de su salud máxima de los francotiradores solo.
Mejoras futuras
Este sistema tiene una debilidad para los equipos con muchos asaltos, esto se debe a que los asaltos tienen la opción de cambiar de objetivo rápidamente. Esta mecánica no tiene forma de saber cuántos enemigos hay, lo que podría causar algunos problemas.
Una solución simple que me ha resultado efectiva es incrementar E en 1 si hay 3 o más ataques enemigos dentro del alcance.
Este sistema ve las 3 clases de bots que no son francotiradores como equivalentes cuando hacen daño, lo que creo que es una buena aproximación, con la excepción del MG en el rango medio. Si una ametralladora enemiga me ataca en el rango medio, salgo del rango medio de inmediato.
Para hacer esto, solo aumento el contador E en 5 si es atacado en el medio por un MG enemigo. Así que mi bot vuelve a largo alcance.
Este sistema tiene algunas fallas que pueden hacer que sus bots retrocedan y vuelvan a ingresar al rango medio del MG. Una solución es empezar a atacar siempre si una ametralladora enemiga te dispara. No hay razón para seguir empujando hacia adelante entonces.
Otra cosa es que si entras en el rango medio de un enemigo y tienes que huir, sabes que existe la posibilidad de que dispare 5 ráfagas si es un asalto, o haga aproximadamente la misma cantidad de daño si es un MG.
Una solución es etiquetar a todos los enemigos que te atacan en el medio y mantenerlos etiquetados mientras te ataquen. Luego incrementa E por cada bot enemigo etiquetado y atacándote.
Un reloj de francotirador también ayudaría a que tus bots no reciban daño y les dé más tiempo para disparar a los enemigos, ya que no huyes prematuramente. Si usa un reloj de francotirador, ya no debe tener en cuenta a los francotiradores enemigos al configurar E en la cantidad de bots enemigos que lo atacan.
Eso es todo lo que estamos compartiendo hoy para este gladiabots guía. Esta guía fue originalmente creada y escrita por Markolainen. En caso de que no actualicemos esta guía, puede encontrar la última actualización siguiendo este liga.