<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Junta de Andalucía.
* Corresponding author.
$ escaleranm@gmail.com (N. Escalera); amorag@ugr.es (A.M. Mora); pablogarcia@ugr.es (P. García-Sánchez)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>EvoFighter: aplicación de algoritmos evolutivos a juegos de lucha 1 vs 1⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Noelia Escalera</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Miguel Mora</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pablo García-Sánchez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Depto. Arquitectura y Tecnología de Computadores. ETSIIT-CITIC, Universidad de Granada</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Depto. Teoría de la Señal, Telemática y Comunicaciones. ETSIIT-CITIC, Universidad de Granada</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>This paper presents a preliminary study on the application of evolutionary algorithms for the optimisation of the behaviour of autonomous agents for 1 vs 1 fighting games. Different evolutionary schemes have been proposed and quite promising results have been obtained, which leave room for obtaining very competitive agents following this methodology.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Juego de lucha 1 vs 1</kwd>
        <kwd>Non-Player Character</kwd>
        <kwd>Bot</kwd>
        <kwd>Algoritmos Genéticos</kwd>
        <kwd>Optimización</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Un juego de lucha es un enfrentamiento 1 vs 1 en el que los jugadores (personajes) intentan
reducir la barra de salud del adversario a base de puñetazos, patadas e incluso armas blancas en
algunos juegos. Los jugadores normalmente también pueden hacer movimientos especiales, que
son más complicados de ejecutar, pero que pueden reducir la salud del rival en una cantidad
mayor. La inteligencia artificial (IA) en este tipo de juegos tiene un gran hándicap en comparación
con otros géneros, ya que deben tomar decisiones muy rápidas, dado el gran dinamismo de los
movimientos de los rivales. En este trabajo, hemos implementado un non-player character (NPC
o bot) con el objetivo de vencer a cualquier rival, sea un jugador humano u otro NPC, en el
contexto de una IA. Para ello, un experto humano ha diseñado un bot competitivo que tiene
como motor de IA un conjunto de reglas dependiendo de algunas condiciones, umbrales y pesos.
Luego se han optimizado estos valores mediante diferentes esquemas de Algoritmos Genéticos
(AG) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Los juegos de lucha han sido un área de investigación muy prolífica, en la que se han
propuesto muchos diferentes enfoques: bots basados en scripts [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ], Monte-Carlo Tree Search
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] y, recientemente, los de aprendizaje profundo por refuerzo (Deep Reinforcement-Learning)
[
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ]. También se han aplicado algoritmos evolutivos en este ámbito [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ], aunque, hasta donde
sabemos sólo un número muy reducido de estudios, como [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], se han centrado en enfoques
evolutivos para la IA.
      </p>
      <p>
        De modo que este trabajo presenta un estudio preliminar sobre las mejoras en el
comportamiento y rendimiento obtenidas mediante la aplicación de AGs sobre un motor de IA de un
agente/bot para videojuegos de lucha. Puede considerarse como un primer paso en nuestra
investigación en este dominio, dadas nuestras experiencias previas y exitosas en otros juegos
[
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10, 11, 12</xref>
        ].
      </p>
      <p>Los agentes obtenidos, uno por cada variante del AG, han sido probados contra un conjunto de
rivales, algunos ya pre-implementados y otros creados por otros autores de anteriores ediciones
de la competición. Hemos considerado un simulador llamado FightingICE1, que es el utilizado
en la competición internacional de IA de juegos de lucha (FGAIC). FightingICE también ofrece
un marco donde los investigadores pueden desarrollar y probar sus propios agentes. Además
incluye algunos bots prefabricados que pueden utilizarse para luchar contra (y probar) nuestros
propios agentes (véase la Figura 1).</p>
    </sec>
    <sec id="sec-2">
      <title>Figura 1: Captura de ejemplo de FightingICE</title>
      <sec id="sec-2-1">
        <title>Agente Implementado</title>
        <p>
          Para este estudio hemos considerado el modo estándar de salud/tiempo en el que tenemos que
reducir la barra de salud del oponente a 0 o reducirla más de lo que se reduzca la de nuestro
bot, en un tiempo limitado por combate. Las entradas para los bots pueden ser tres botones
(Golpe, Patada y Especial) o una de las 9 direcciones en un pad de control o joystick. Hemos
considerado el mismo personaje para todos los agentes, llamado Zen. Se ha implementado
una versión modificada del bot de Mizuno [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], llamado MizunoAI. Éste fue presentado en la
FGAIC de 2014, y se basa en la combinación de dos técnicas: El bot alterna entre las decisiones
1https://www.ice.ci.ritsumei.ac.jp/ ftgaic/index-2.html
basadas en kNN y el comportamiento basado en un sistema difuso, que considera valores
aleatorios para elegir su funcionamiento. La optimización considera 10 parámetros: distancias al
enemigo asociadas a diferentes ataques (  , ,  ,  ), distancia
para aproximarse al rival (  ), niveles de salud del agente asociadas a ataques ( ,
,  ,  , ).
        </p>
        <p>Este bot genético ha sido implementado en Java e interactúa con el framework FightingICE
a través de diferentes archivos externos. El AG optimiza el conjunto de parámetros de los
que depende el motor de IA. Así, cada individuo es un vector de 10 valores que “modela” un
comportamiento para el agente, dependiendo de los valores que tenga. Cada individuo se evalúa
en un conjunto de 6 combates de juego contra dos posibles rivales. Tras estos combates, se
calcula un valor de fitness como la media de _ * ( − ) de
los enfrentamientos realizados.</p>
        <p>Se han aplicado dos enfoques diferentes de AG:</p>
        <p>Estacionario: se seleccionan y enfrentan cuatro individuos, y sólo los ganadores serán los
padres. Se crean dos descendientes que reemplazan a otros en cada generación, si son
mejores que sus padres. Se considera cruce uniforme y mutación aleatoria en un gen. Con
este enfoque se busca una alta presión selectiva.</p>
        <p>Generacional: en el que toda la población puede ser reemplazada. Se realiza un torneo
binario que considera todos los individuos de la población (1 vs 1), de modo que los
mejores en sus respectivos combates sobrevivirán. Al igual que antes, se considera cruce
uniforme y mutación aleatoria de un gen. La población será la descendencia generada +
la mitad de los individuos al azar. Así, buscamos un alto factor de exploración con este
enfoque. Hemos añadido también elitismo, por lo que, los mejores individuos siempre
sobrevivirán.
3.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Experimentos y Resultados</title>
        <p>La configuración considerada en los experimentos es: 20 generaciones, 16 individuos en la
población, probabilidad de cruce = 60 %, probabilidad de mutación 10 %, número de combates
para calcular el fitness = 6, salud de los jugadores = 300. Se han utilizado dos rivales diferentes
para calcular el fitness: Dora (un agente avanzado de la literatura) y BCP (un bot muy agresivo
también del estado del arte). Hemos realizado varias ejecuciones con los diferentes esquemas
de AG y utilizando diferentes rivales en el cálculo del fitness. Tras esta fase de optimización,
hemos elegido al mejor individuo de cada experimento enfrentando al mejor de cada ejecución
en un torneo contra el resto, siendo finalmente seleccionado el ganador de un mayor número
de combates.</p>
        <p>A continuación, los agentes elegidos (los mejores) han luchado contra otros bots. En la Tabla
1 se puede ver un resumen del porcentaje de victorias de cada bot obtenido tras una serie de 9
combates. El porcentaje de victorias representado es el obtenido por el agente de la fila contra
el de la columna.</p>
        <p>Aunque no hemos conseguido obtener tasas de victoria notables, la Tabla 2 ilustra que hay
una cierta mejora de los resultados con respecto al agente base. Los resultados muestran que,
aunque la optimización no ha sido suficiente para ganar un gran número de combates, nos ha</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>MizunoAIOrig</title>
      <p>MizunoAIEV-DoraBCP-Elitism
MizunoAIEV-DoraBCP-NoElitism</p>
      <p>MizunoAIEV-BCP-Elitism
MizunoAIEV-BCP-NoElitism</p>
      <p>MizunoAIEV-Dora-Elitism
MizunoAIEV-Dora-NoElitism
Tabla 1
Porcentaje de victorias de cada agente contra bots del estado del arte. Los nombres de las filas pertenecen
a nuestros agentes optimizados (EV) indican el rival en el cálculo del fitness y el esquema de AG utilizado.
permitido mejorar prácticamente todos los resultados. MizunoAIEV-DoraBCP-Elitism ha sido la
configuración con mejores resultados. Es interesante señalar que el hecho de que BCP obtenga
diferencias de salud tan negativas está relacionado con su comportamiento, es decir, es un agente
que una vez que consigue su objetivo (encerrar al oponente), vence con facilidad, por lo que en
sus victorias gana por una gran diferencia. También destacamos el hecho de que normalmente
hemos obtenido mejores resultados con las configuraciones elitistas que con las no elitistas. Esto
se debe a que en las configuraciones no elitistas hay una gran variabilidad y dada la naturaleza
ruidosa del problema, es probable que se obtengan ‘falsas’ soluciones buenas.</p>
      <p>MizunoAIOrig</p>
      <p>MizunoAIEV-DoraBCP-Elitism
MizunoAIEV-DoraBCP-NoElitism</p>
      <p>MizunoAIEV-BCP-Elitism
MizunoAIEV-BCP-NoElitism</p>
      <p>MizunoAIEV-Dora-Elitism
MizunoAIEV-Dora-NoElitism</p>
      <p>BCP
-134.44
-103.77
-167.67
-146.33
-173.33
-142.11
-161.33</p>
      <p>Dora
-285.67
-269.22
-232.56
-212.33
-282.33
-255.33
-286.44
Tabla 2
Diferencias de salud entre los agentes optimizados y los bots del estado del arte. Diferencias entre el bot
de cada fila frente al de la columna.</p>
      <sec id="sec-3-1">
        <title>Conclusiones y Trabajo Futuro</title>
        <p>Este trabajo presenta un estudio preliminar sobre la aplicación de diferentes esquemas de
Algoritmos Genéticos (AGs) para optimizar agentes diseñados para el combate en un juego de
lucha 1 vs 1. Los resultados, aunque no son extraordinarios, muestran algunas mejoras sobre
un agente de partida muy bueno. De modo que continuaremos esta línea de investigación
intentando mejorar los resultados de optimización de los AG mediante esquemas más avanzados,
como una configuración con operadores específicos y adaptados, por ejemplo una mejor función
de fitness. También realizaremos pruebas más completas contra agentes de alto nivel de la
Fighting AI Competition.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          ,
          <article-title>Genetic Algorithms in search, optimization and machine learning</article-title>
          ,
          <source>Addison Wesley</source>
          ,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>N.</given-names>
            <surname>Sato</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Temsiririrkkul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ikeda</surname>
          </string-name>
          ,
          <article-title>Adaptive fighting game computer player by switching multiple rule-based controllers</article-title>
          ,
          <source>in: 2015 3rd international conference on applied computing and information technology/2nd international conference on computational science and intelligence, IEEE</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>52</fpage>
          -
          <lpage>59</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>K.</given-names>
            <surname>Majchrzak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Quadflieg</surname>
          </string-name>
          , G. Rudolph,
          <article-title>Advanced dynamic scripting for fighting game AI</article-title>
          , in: International Conference on Entertainment Computing, Springer,
          <year>2015</year>
          , pp.
          <fpage>86</fpage>
          -
          <lpage>99</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Yoshida</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ishihara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Miyazaki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Nakagawa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Harada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Thawonmas</surname>
          </string-name>
          ,
          <article-title>Application of monte-carlo tree search in a fighting game AI</article-title>
          ,
          <source>in: 2016 IEEE 5th Global Conference on Consumer Electronics</source>
          , IEEE,
          <year>2016</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>2</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Yoon</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.-J. Kim</surname>
          </string-name>
          ,
          <article-title>Deep q networks for visual fighting game AI, in: 2017 IEEE conference on computational intelligence and games (CIG)</article-title>
          , IEEE,
          <year>2017</year>
          , pp.
          <fpage>306</fpage>
          -
          <lpage>308</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Takano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Ouyang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Harada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Thawonmas</surname>
          </string-name>
          ,
          <article-title>Applying hybrid reward architecture to a fighting game AI</article-title>
          ,
          <source>in: 2018 IEEE Conference on Computational Intelligence and Games (CIG)</source>
          , IEEE,
          <year>2018</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G. L.</given-names>
            <surname>Zuin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. P.</given-names>
            <surname>Macedo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Chaimowicz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. L.</given-names>
            <surname>Pappa</surname>
          </string-name>
          ,
          <article-title>Discovering combos in fighting games with evolutionary algorithms</article-title>
          ,
          <source>in: Proceedings of the Genetic and Evolutionary Computation Conference</source>
          <year>2016</year>
          ,
          <year>2016</year>
          , pp.
          <fpage>277</fpage>
          -
          <lpage>284</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>E. H.</given-names>
            <surname>Skjaerseth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vinje</surname>
          </string-name>
          ,
          <article-title>Evolutionary algorithms for generating interesting fighting game character mechanics, Master's thesis</article-title>
          , NTNU,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Lucas</surname>
          </string-name>
          ,
          <article-title>Enhanced rolling horizon evolution algorithm with opponent model learning</article-title>
          ,
          <source>IEEE Transactions on Games</source>
          (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Fernández-Ares</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Mora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>García-Sánchez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Castillo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Merelo</surname>
          </string-name>
          ,
          <article-title>Analysing the influence of the fitness function on genetically programmed bots for a real-time strategy game</article-title>
          ,
          <source>Entertainment Computing</source>
          <volume>18</volume>
          (
          <year>2017</year>
          )
          <fpage>15</fpage>
          -
          <lpage>29</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>García-Snchez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tonda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Mora</surname>
          </string-name>
          , G. Squillero,
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Merelo</surname>
          </string-name>
          ,
          <article-title>Automated playtesting in collectible card games using evolutionary algorithms</article-title>
          ,
          <source>Knowledge-Based Systems</source>
          <volume>153</volume>
          (
          <year>2018</year>
          )
          <fpage>133</fpage>
          -
          <lpage>146</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Salem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Mora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Merelo</surname>
          </string-name>
          ,
          <article-title>Overtaking uncertainty with evolutionary TORCS controllers: Combining BLX with decreasing operator and grand prix selection</article-title>
          ,
          <source>IEEE Transactions on Games</source>
          (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Yin Chu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Thawonmas</surname>
          </string-name>
          ,
          <article-title>Applying fuzzy control in fighting game AI</article-title>
          ,
          <source>in: 77th National Convention of IPSJ</source>
          , volume
          <volume>2</volume>
          ,
          <year>2015</year>
          , pp.
          <fpage>101</fpage>
          -
          <lpage>102</lpage>
          . Http://www.ice.ci.ritsumei.ac.jp/ ruck/PAP/ipsj4P-
          <fpage>03</fpage>
          .pdf.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>