<!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 />
    <article-meta>
      <title-group>
        <article-title>Desarrollo de una plataforma basada en Unity3D para la aplicacion de IA en video juegos</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oscar Manuel Losada Suarez</string-name>
          <email>oscarlosu@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>V ctor Rodr guez-Fernandez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cristian Ram rez-Atencia</string-name>
          <email>cristian.ramirezg@inv.uam.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>David Camacho</string-name>
          <email>david.camacho@uam.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad Autonoma de Madrid</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>La utilizacion intensiva de diferentes tecnicas relacionadas con la Inteligencia Arti cial (IA) en el area de los videojuegos ha demostrado ser una necesidad para el campo. El uso de estas tecnicas permite dotar de una mayor exibilidad y adaptabilidad a los juegos que es muy apreciada por los jugadores. Temas como la generacion procedimental de contenido, la creacion de agentes que puedan jugar a un videojuego de forma competente, o de agentes cuya conducta sea indistinguible de la de un jugador humano atraen a una cantidad creciente de investigadores. El objetivo de este trabajo es la presentacion de una plataforma basada en el motor Unity3D que permita de manera simple la integracion y prueba de algoritmos de IA. La plataforma ofrecera como nuevas caracter sticas, adicionales a las ya disponibles en la actualidad, la utilizacion de un entorno 3D, el desarrollo de un juego innovador (basado en multiples agentes), y la exploracion de aspectos de juego como el analisis del terreno, la cooperacion entre agentes independientes y heterogeneos, la comunicacion de informacion entre los mismos y la formacion de jerarqu as.</p>
      </abstract>
      <kwd-group>
        <kwd>Videojuegos</kwd>
        <kwd>Agentes Inteligentes</kwd>
        <kwd>Plataforma Software</kwd>
        <kwd>Unity3D</kwd>
        <kwd>Inteligencia Arti cial</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        La investigacion de la Inteligencia Arti cial en los videojuegos comenzo en torno
al juego PacMan, especialmente en su version Ms. Pac-Man, despues de que
investigadores como J. Koza y J. Rosca lo propusieran como un entorno interesante
que planteaba un problema de priorizacion de tareas y permit a la aplicacion de
algoritmos geneticos [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. El interes de la comunidad investigadora por la
investigacion en los videojuegos ha ido en aumento desde entonces, llegandose a
celebrar competiciones para desarrollar agentes inteligentes que jueguen a Ms.
Pac-Man [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] y a In nite Mario Bros [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] en los ultimos an~os.
      </p>
      <p>El objetivo de este trabajo es crear una plataforma para el desarrollo y prueba
de algoritmos de Inteligencia Arti cial sobre el entorno Unity3D. Las
principales contribuciones que ofrece sobre las plataformas existentes en la actualidad
incluyen la utilizacion de un entorno 3D, el desarrollo de un juego innovador
(basado en multiples agentes) y la exploracion de aspectos de juego como el
analisis del terreno, la cooperacion entre agentes independientes y heterogeneos,
la comunicacion de informacion entre los mismos y la formacion de jerarqu as.</p>
      <p>El juego en el que se basa la plataforma consiste en un juego de accion tactica
en 3D con dos equipos integrados por varios jugadores, cada uno de los cuales
sera controlado por un agente de Inteligencia Arti cial. Mas concretamente, el
juego esta basado en el deporte Paintball, en el que los jugadores deben tratar
de marcar a sus oponentes con bolas de pintura disparadas con pistolas de aire
comprimido.</p>
      <p>
        La intencion de este proyecto es que pueda ser utilizado por investigadores
y desarrolladores de Inteligencia Arti cial de forma semejante a como se han
usado otros juegos en eventos como el IEEE CIG (Computational Intelligence
and Games) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] o en CEC (Conference on Evolutionary Computation) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>El resto del trabajo se estructura de la siguiente forma: La seccion 2 hace un
breve resumen de los principales focos de investigacion de inteligencia arti cial
en videojuegos. En la seccion 3 se resume el disen~o y la arquitectura de la
plataforma y sus dos partes principales: el generador de mapas y el juego. La
seccion 4 recoge los resultados de la pruebas experimentales realizadas con una
serie de agentes de IA implementados como ejemplo. Finalmente, la seccion 5
muestra las conclusiones y propone posibles l neas de trabajo futuras.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Estado del Arte</title>
      <p>En el ambito de la Inteligencia Arti cial aplicada a videojuegos, tradicionalmente
se han explorado tres v as:
{ Jugadores inteligentes : Se dedica a crear agentes que reciben informacion del
estado del juego y del entorno a traves de sensores, evaluan dicha informacion
y actuan en funcion de ella a traves de actuadores que pueden afectar al
estado del juego.
{ Creacion procedimental de contenido: Consiste en desarrollar algoritmos que
generen contenido, generalmente niveles o mapas, que se consideren
\interesantes".
{ Test de Turing : Trata de crear un agente que juegue a un juego de forma
que sea indistinguible de un humano jugando.</p>
      <p>
        Dentro de la categor a de creacion de jugadores inteligentes, en la que se
centra este trabajo, las plataformas de inteligencia arti cial desarrolladas a d a de
hoy se basan en juegos clasicos como Ms. Pac-Man en Ms. Pac-Man AI
Competition y Ms. Pac-Man vs Ghosts Competition [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], In nite Mario Bros. en Mario
AI Competition [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], y StarCraft en StarCraft AI Competition [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Por otro lado,
en la actualidad abundan las plataformas basadas en juegos serios, cuyo objetivo
no es solo la diversion sino tambien el entrenamiento o aprendizaje de una serie
de habilidades. En este ambito podemos encontrar desde agentes inteligentes de
aprendizaje en mundos virtuales [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] hasta entornos de entrenamiento gami cados
para operaciones con drones [
        <xref ref-type="bibr" rid="ref10 ref11">11, 10</xref>
        ].
      </p>
      <p>
        T picamente, el desarrollo de jugadores inteligentes utiliza tecnicas clasicas
de Inteligencia Arti cial tales como maquinas de estado nitas [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] y arboles
de comportamiento [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], aunque en los ultimos tiempos tambien se aplican
algunas mas so sticadas como algoritmos evolutivos [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], algoritmos de colonias de
hormigas [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] y metodos de Monte Carlo [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>De cara a clasi car los juegos anteriormente mencionados a la hora de de nir
el tipo de problema que plantean a los agentes, uno de los miembros del equipo
desarrollador de la plataforma CodinGame1 propone las siguientes caracter sticas:
{ Conocido o Desconocido, dependiendo de si se sabe a priori como va a
reaccionar el entorno a las acciones del agente.
{ Accesible o inaccesible, dependiendo de si los agentes tienen acceso a toda la
informacion del entorno que podr a usarse para tomar decisiones.
{ Determinista o no determinista, dependiendo de si el comportamiento del
entorno esta de nido logicamente o probabil sticamente.
{ Estatico o dinamico, dependiendo de si el entorno cambia mientras que los
agentes estan tomando decisiones.
{ Discreto o Continuo, dependiendo de si hay un numero nito o in nito de
acciones posibles para el agente.
{ Solitario o multijugador, dependiendo de si intervienen uno o mas agentes
en el juego.</p>
      <p>Para el desarrollo del proyecto se ha usado principalmente el motor Unity3D 2.
Los motivos para la eleccion de este motor de juego son multiples: Es
multiplataforma, tiene una completa librer a con soporte para rendering, sonido,
f sicas y controles, y existe una enorme comunidad de usuarios dispuesta a
compartir su conocimiento.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Desarrollo de la plataforma IA sobre el motor Unity3D</title>
      <p>En este apartado se describe el disen~o de la plataforma (ver Figura 1), la cual
se ha dividido en dos partes: el generador de mapas y el juego. Este segundo, a
traves de una API usada para de nir los personajes controlados por los usuarios,
permite la introduccion de agentes inteligentes.</p>
      <p>La plataforma esta enteramente desarrollada sobre Unity3D, que
proporciona un sistema de navegacion para un entorno 3D. Este sistema permite crear
de forma automatica una malla de navegacion (NavMesh) a partir del conjunto
de meshes que de nan el mapa y utilizandola, proporciona funciones que
automatizan la navegacion entre dos puntos cualesquiera del mapa.
1 Codingame: https://www.codingame.com/start
2 Unity3D: https://unity3d.com/es</p>
      <p>VoronoiO
Library</p>
      <p>COuvsetrolamyO MapOGeneration</p>
      <p>Game
API
ArtificialO
IntelligenceO
agents
Users</p>
      <p>AvatarO
animations
AvatarO3DO
model
PaintBol, el videojuego desarrollado en este trabajo como parte de la plataforma,
es un juego de accion tactica de cero jugadores (sin necesidad de jugadores
humanos, en el que las IAs pueden enfrentarse entre ellas), basado en el deporte
Paintball, donde compiten dos equipos de cinco jugadores. El funcionamiento
basico del juego se puede ver en la Figura 2. La clase MatchHandler se encarga de
proporcionar a las instancias de la clase Actor, que representan a los personajes
del juego la informacion que les proporcionan sus sentidos o sensores (vista y
o do) y por otra parte se encarga de efectuar las acciones de los personajes sobre
su entorno. As , las partidas consisten esencialmente en un bucle en el que se
alterna la recoleccion de informacion para proporcionar a las IAs que controlan a
los personajes del juego con la cesion del control a dichas IAs para que analicen
la informacion de que disponen y tomen decisiones.</p>
      <p>En este juego los sensores del jugador son la vista y el o do. Con la vista
los jugadores reciben informacion sobre otros jugadores y objetos del terreno
(objetivos visuales) en su linea de mira (arco frontal de 120 grados y alcance de
50 unidades) siempre que no haya otro objeto obstruyendo la recta de vision al
objetivo visual. Por otro lado, cada accion en el juego produce cierta cantidad
de ruido que puede ser o da por los jugadores si estan lo su cientemente cerca
de la fuente de ruido cuando este se produce.</p>
      <p>Por otro lado, las acciones que pueden realizar los jugadores son: movimientos
(correr, andar, andar agachado), comunicacion (comparticion de informacion con
otros jugadores), disparar a enemigos en el rango de vista, ataques en espacios
cerrados (afectan a todos los jugadores en un arco frontal de 120 grados y 2
unidades de distancia) y lanzar granadas en una direccion horizontal y angulo
vertical (afectan a jugadores en un area de 5 unidades alrededor de donde cae).</p>
      <p>Sensores</p>
      <p>Actuadores</p>
      <p>Recoger
Información
para jugadores
Gestión de turnos</p>
      <p>Dar control a
jugadores</p>
      <p>Actor</p>
      <p>En este juego cada jugador tiene 5 vidas. Cuando un jugador es alcanzado
por un ataque, pierde una vida y desaparece durante 6 segundos, para luego
reaparecer en un lugar aleatorio. Cuando el jugador pierde todas las vidas, pasa
al estado \muerto" y no vuelve a aparecer.</p>
      <p>El sistema de puntuacion de PaintBol tiene en cuenta los siguientes parametros:
{ Vidas quitadas, que representa el numero de veces que se ha alcanzado a
enemigos con un ataque cualquiera.
{ Cuerpo a cuerpo, que representa el numero de veces que se ha alcanzado a
enemigos con un ataque cuerpo a cuerpo.
{ Disparando, que representa el numero de veces que se ha alcanzado a
enemigos con un disparo.
{ Granadas, que representa el numero de veces que se ha alcanzado a enemigos
con una granada.
{ Con Sigilo, que representa el numero de veces que se ha alcanzado a enemigos
con un ataque antes de que el enemigo viese al jugador.
{ A la cabeza, que representa el numero de veces que se ha alcanzado a
enemigos con un disparo dirigido a la cabeza al apuntar.
{ Muertes multiples, que representa el numero de veces que se ha conseguido
alcanzar a mas de un enemigo con un mismo ataque.
{ Fuego amigo, que representa el numero de veces que se ha alcanzado a aliados
con un ataque.
{ Vidas restantes, que representa el numero de puntos de vida que conserva
un jugador.
{ Granadas restantes, que representa el numero de granadas que conserva un
jugador.</p>
      <p>Finalmente, estos parametros son utilizados para computar los puntos por
vidas quitadas, bonus por vida restante, bonus por granadas restantes, bonus por
punter a y bonus por variedad. A su vez, la puntuacion total de cada jugador
se computa como la suma de estos parametros, y la puntuacion total de cada
equipo como la suma de las puntuaciones totales de cada jugador del equipo.</p>
      <p>Con respecto a la clasi cacion de videojuegos como plataforma de IA (Ver
Seccion 2), se puede apreciar que PaintBol es un juego de tipo conocido porque
las reglas estan preestablecidas y son conocidas por los agentes. Es inaccesible,
porque los agentes tienen solo informacion parcial del estado de la partida en
cada momento. Es no determinista porque al comenzar la partida y cuando
son alcanzados por un ataque, los jugadores aparecen en posiciones aleatorias
del mapa y porque al disparar existe un factor aleatorio que in uye en que el
disparo alcance a su objetivo o no. El juego es estatico o dinamico en funcion
de como sean los algoritmos de los agentes: si todas las decisiones se toman de
forma atomica en menos de un frame, entonces ser a estatico, pero los agentes
pueden tener memoria y usar varios turnos para tomar una unica decision, en
ese caso ser a dinamico. Como el espacio en el que actuan los agentes es continuo
hasta donde permite la capacidad de representacion de los ordenadores, el juego
es de tipo continuo. Finalmente, es multijugador por de nicion, pues el problema
consiste precisamente en que varios agentes se enfrenten en el contexto de las
reglas del juego.</p>
      <p>El entorno tridimensional en el que se desarrolla el juego, junto con la
relevancia de la topograf a de los mapas y la distribucion de los objetos del terreno
para las mecanicas del juego hacen que el analisis del terreno (terrain reasoning)
sea una herramienta util e interesante para los agentes. Para aumentar las
posibilidades de la plataforma, esta cuenta con una herramienta de generacion de
mapas, que evita que se puedan disen~ar estrategias basadas en las caracter sticas
espec cas de mapas concretos y ademas implica que las caracter sticas de los
escenarios en los que se desarrolla la accion podr an rede nirse y ampliarse en el
futuro. De los juegos mencionados en el estado del arte, solo en StarCraft es tan
relevante en este aspecto, pero en este caso los mapas son conocidos a priori.</p>
      <p>Los equipos estan formados por agentes posiblemente heterogeneos e
independientes. Son heterogeneos en el sentido de que los algoritmos que controlan
a cada uno de los agentes pueden ser completamente diferentes, y son
independientes porque todos los agentes tienen informacion parcial no compartida del
estado del juego en funcion de diferentes parametros como su posicion, la
direccion en la que esten mirando, etc. Por ejemplo, los agentes en principio no
saben donde estan sus aliados ni sus enemigos, ni que estan haciendo a no ser
que esten dentro de su arco de vision.</p>
      <p>Estas caracter sticas permiten que se formen estrategias basadas en
jerarqu as, que dan lugar a situaciones interesantes cuando, por ejemplo, parte
de un equipo queda fuera de la partida y los agentes restantes podr an saber
reaccionar a esa situacion.</p>
      <p>Los agentes tienen la capacidad de comunicar informacion que posean del
estado de la partida, por ejemplo avistamientos de adversarios o aliados,
localizaciones de zonas ventajosas estrategicamente en el mapa, etc, que hayan
descubierto o que otros agentes les hayan transmitido.</p>
      <p>En conjuncion con la caracter stica anterior, este aspecto facilita y promueve
la aparicion de comportamientos emergentes al nivel de los equipos, y esta
caracter stica no es compartida por ninguno de los juegos de competicion expuestos
en el estado del arte, pues en StarCraft, aunque los bandos estan integrados
por muchas unidades, todas son controladas por un unico agente que recibe
informacion de todas sus unidades y las controla a todas.
3.2</p>
      <sec id="sec-3-1">
        <title>Generador de mapas</title>
        <p>Con la intencion de minimizar el taman~o en memoria de los mapas y poder
mantenerlos cargados en su totalidad durante las partidas, se ha optado por una
estetica minimalista en el desarrollo de los mapas, basada en formas geometricas
simples que permitiese una baja densidad de pol gonos, y sin texturas.</p>
        <p>
          En este trabajo, la generacion de mapas se divide en dos partes: la generacion
de super cies [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] y la generacion procedimental de objetos del terreno [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          La generacion de super cies se divide en seis partes:
{ Generacion de diagramas de Voronoi : El primer paso de la generacion de
super cie consiste en realizar una particion en pol gonos convexos de un
plano rectangular. Para ello, se utilizo el algoritmo de Voronoi.
{ De nicion de tierra-agua: Dado que los mapas que se estan generando son
islas, estas se de nen dividiendo el plano en sectores de un cierto angulo
respecto al centro del rectangulo (de nido como el punto de corte de las dos
diagonales) y utilizando ruido rosa para determinar un cierto radio
pseudoaleatorio de la isla en cada sector. De esta forma, todos los vertices de
los pol gonos de Voronoi que caigan dentro del radio de su sector se marcan
como tierra y los demas como agua.
{ De nicion de la elevacion: La elevacion de cada vertice de tierra de cada
pol gono se de ne como un factor de su distancia a la costa.
{ De nicion de r os : Se seleccionan vertices aleatorios usando ruido blanco a
partir de una cierta elevacion m nima como los or genes de los r os. A partir
de ah , se recorre el grafo desde cada origen tomando en las intersecciones
la arista de mayor pendiente y aumentando el volumen de agua que lleva
el r o en ese punto cada vez por cada r o que pase por el. Los r os acaban
cuando llegan a la costa o cuando llegan a un vertice degenerado por la
redistribucion de elevaciones en el que no exista una pendiente maxima bien
de nida.
{ De nicion de humedad : En este punto, se de ne la humedad en cada uno de
los vertices propagandola desde las fuentes de agua dulce (r os y lagos).
{ De nicion de biomas : Se sigue el diagrama de biomas de Whittaker [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>Por otro lado, la generacion de objetos del terreno se divide en dos partes:
{ Construccion de objetos : Existen tres tipos de objetos de terreno: arboles,
arbustos y troncos ca dos.
(a) Tres agentes del juego Paintbol
siguiendose entre ellos.</p>
        <p>(b) Ejemplo de mapa generado en
la plataforma, usado para las
pruebas de este trabajo.</p>
        <p>En la gura 3b se muestra un mapa generado con las distintas caracter sticas
explicadas hasta el momento. El color azul representa el agua, mientras el resto
de colores representan los distintos biomas del terreno. Los puntos verdes
representan arboles, los grises arbustos y los marrones troncos ca dos.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experimentacion</title>
      <p>En esta parte se explican los procesos experimentales llevados a cabo para la
veri cacion y validacion de la plataforma desarrollada y se presentan los resultados
obtenidos usando un conjunto de agentes de prueba.
4.1</p>
      <sec id="sec-4-1">
        <title>Disen~o de experimentos</title>
        <p>Para este trabajo, se desarrollaron tres jugadores inteligentes de prueba, con
la intencion de demostrar el funcionamiento de la plataforma, que ademas se
usaran para realizar un pequen~o estudio de resultados que serviran de punto de
referencia para futuras extensiones y usos de la plataforma. Aunque el concepto
de juego esta disen~ado para que cada agente pueda utilizar varios turnos para
tomar una decision, de momento todas las IAs implementadas son atomicas, es
decir, deciden acciones cada turno. Cada jugador tiene 2 turnos cada segundo.
A continuacion, se explica el funcionamiento de cada uno de los agentes creados:
{ RandomAI : A modo de referencia basica, se ha implementado un primer
jugador que toma decisiones aleatorias. Sin embargo, dada la naturaleza
continua del juego, se ha optado por no realizar una implementacion estricta
de lo que ser a un jugador aleatorio. En cambio, se ha implementado un arbol
de decision en cual algunos de los nodos dependen de valores aleatorios.
{ BasicAI : El segundo jugador que se ha implementado sigue un sistema de
reglas basico para tomar decisiones, no usa la comunicacion y practicamente
no analiza los ruidos que oye. La Figura 4 muestra su grafo de decision.</p>
        <p>MoverseAenA
direcciónAopuestaAaA
laAfuenteAdeAsonido</p>
        <p>Sí
No
¿OigoAalgunaA
granadaAcaerAalA
suelo?
¿SeAoyeA
algúnAruido?</p>
        <p>No</p>
        <p>Sí
DirigirseAenAlaA
direcciónAdelA
origenAdelAruido
¿EstoyAmoviéndomeA
aAunaAposiciónAdeA
destino?</p>
        <p>No
MoverseAaA
posiciónAdeA
destinoAaleatoria</p>
        <p>No
enem¿iHgoasyAAaAlaA Sí
vista?</p>
        <p>¿EstoyA
apuntandoAaA
unAenemigo?
Sí</p>
        <p>Sí</p>
        <p>RealizarA
ataqueAcuerpoA</p>
        <p>aAcuerpo
¿LaAprobabilidadA</p>
        <p>estimadaAdeA
alcanzarleAconAunA
disparoAesA&gt;A0.5?</p>
        <p>Sí
DispararAalA
enemigo</p>
        <p>No
¿HayAalgúnAenemigoAenA
elAareaAdeAefectoAdeA
ataquesAcuerpoAaA
cuerpo?</p>
        <p>No
¿HayAdosAoAmásA
enemigosAenAelA
areaAdeAefectoAdeA
unaAgranada?
Sí</p>
        <p>No
LanzarAunaAgranadaA
enAlaAdirecciónAdelA
puntoAmedioAentreA
losAenemigosAconA
fuerzaAmáxima
¿SeApuedeA
apuntar?
No</p>
        <p>Sí
ApuntarAalAenemigoAmásA
cercanoAyAmoverseAaAlaA
posiciónAdelAenemigo
{ HeuristicAI : El tercer agente implementado hace uso combinado de un
arbol de decision y dos submaquinas de estados para estructurar su
comportamiento. La estrategia que sigue es buscar a otros aliados y seguirles.
Para poder usar el mismo algoritmo en los cinco jugadores del equipo, los
agentes utilizan sus identi cadores en el juego para establecer una jerarqu a.
De este modo, cada jugador solo sigue a los jugadores de mayor rango que el.
Por otro lado, HeuristicAI realiza un mejor analisis de los ruidos que oye el
jugador, clasi candolos segun unos criterios de prioridad. Ademas, aprovecha
el sistema de comunicaciones para avisar a sus aliados cuando avista a un
enemigo, pero sin alertarle.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Resultados</title>
        <p>En esta seccion se presentan los resultados de los enfrentamientos realizados
entre los agentes de prueba desarrollados. Se han realizado 5 enfrentamientos
para cada posible emparejamiento de los jugadores, en total 15 enfrentamientos,
todos en el mismo mapa, del cual se muestra una imagen en la Figura 3b. Los
enfrentamientos terminan cuando todos los jugadores de uno de los equipos se
quedan sin puntos de vida, y duraron entre media hora y una hora cada uno.</p>
        <p>En la Tabla 1 se resumen los resultados obtenidos a traves de la media y
la desviacion t pica de cada uno de los parametros recogidos por la plataforma
durante las partidas para cada uno de los jugadores. Los resultados fueron los
esperados: los agentes mas elaborados obtuvieron consistentemente mejores
resultados.</p>
        <p>A continuacion se procede a realizar un pequen~o analisis de algunos aspectos
de los resultados. Lo primero que se puede hacer es estudiar de donde obtiene
cada algoritmo la mayor parte de sus puntos, y la respuesta es muy clara: todos
los agentes obtienen el grueso de sus puntos directamente de quitar puntos de
vida a sus oponentes.</p>
        <p>Dado que existen tres tipos de ataque implementados, es interesante observar
que la inmensa mayor a de las muertes se obtuvieron mediante disparos, que solo
HeuristicAI consiguio una cantidad sustancial de muertes usando ataques cuerpo
a cuerpo y que el uso efectivo de las granadas fue despreciable.</p>
        <p>Una consecuencia de que ningun jugador usase con exito las granadas es que
varios de los parametros usados para obtener las puntuaciones de los equipos
no han sido aprovechados. Como la unica forma de conseguir muertes multiples
es usando granadas para alcanzar varios adversarios con un mismo ataque y
solo las granadas pueden herir a los aliados, no se produjeron muertes multiples
ni casos de fuego amigo. Por otra parte, tampoco se obtuvo ningun punto por
bonus de variedad, pues este parametro recompensaba precisamente el hecho
de usar los tres tipos de ataques disponibles. Por otro lado, el reducido uso de
las granadas se tradujo en un bonus estable para BasicAI y HeuristicAI por
granadas restantes. Tampoco se aprovecho la posibilidad de obtener bonus por
disparos a la cabeza.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusiones y Trabajo Futuro</title>
      <p>En este trabajo se ha presentado una plataforma desarrollada sobre Unity3D
enfocada en la aplicacion y estudio de algoritmos de Inteligencia Arti cial en
videojuegos. Esta plataforma ofrece caracter sticas diferentes de las ofrecidas
por otras existentes en el ambito, como la necesidad, por parte de los agentes
del juego, de analizar terrenos tridimensionales, crear jerarqu as, comunicarse y
trabajar en equipo.</p>
      <p>La plataforma esta compuesta por un juego de estrategia tactica multiagente
por equipos en 3D, llamado Paintbol, un generador de mapas y una API que
permite a los agentes desarrollados por los usuarios interactuar con el juego.
Para demostrar el uso de la plataforma, se han implementado algunos agentes
de prueba y se han analizado los resultados de los enfrentamientos entre ellos.</p>
      <p>El trabajo desarrollado hasta ahora, especialmente en la parte de
experimentacion con agentes de prueba, sugiere numerosas ampliaciones posibles sobre
la plataforma. Entre ellas, cabe destacar la inspeccion profunda del codigo de
la plataforma y la realizacion de una buena documentacion, de cara a mejorar
su extensibilidad, encapsulacion, y facilidad de desarrollo con el objetivo de ser
publicada en forma de plataforma de competicion. Por otro lado, se aplicaran
sobre la plataforma multiples algoritmos de IA, como maquinas de estados, redes
neuronales, algoritmos geneticos, etc.</p>
    </sec>
    <sec id="sec-6">
      <title>Agradecimientos</title>
      <p>Este trabajo esta nanciado por el Ministerio de Espan~ol Econom a y
Competitividad y los Fondos FEDER Europeos mediante el proyecto EphemeCH
(TIN2014-56494-C4-4-P), por la Comunidad Autonoma de Madrid y los Fondos
FEDER Europeos bajo el proyecto CIBERDINE S2013/ICE 3095, y por Airbus
Defence &amp; Space bajo el proyecto SAVIER (FUAM-076914 y FUAM-076915).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Alhejali</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucas</surname>
            ,
            <given-names>S.M.:</given-names>
          </string-name>
          <article-title>Using genetic programming to evolve heuristics for a Monte Carlo Tree Search Ms Pac-Man agent</article-title>
          .
          <source>In: Computational Intelligence in Games (CIG)</source>
          ,
          <source>2013 IEEE Conference on</source>
          . pp.
          <volume>1</volume>
          {
          <issue>8</issue>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Berns</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonzalez-Pardo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Camacho</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Game-like language learning in 3-D virtual environments</article-title>
          .
          <source>Computers &amp; Education</source>
          <volume>60</volume>
          (
          <issue>1</issue>
          ),
          <volume>210</volume>
          {
          <fpage>220</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Gonzalez-Pardo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palero</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Camacho</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>An Empirical Study on Collective Intelligence Algorithms for Video Games Problem-Solving</article-title>
          .
          <source>Computing and Informatics</source>
          <volume>34</volume>
          (
          <issue>1</issue>
          ),
          <volume>233</volume>
          {
          <fpage>253</fpage>
          (
          <year>2015</year>
          ), http://www.cai.sk/ojs/index.php/cai/article/view/2058
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Jayelinda:
          <article-title>Modelling by numbers. An introduction to procedural geometry</article-title>
          . http://jayelinda.com/modelling-by
          <string-name>
            <surname>-</surname>
          </string-name>
          numbers-part-1a/ (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Lucas</surname>
            ,
            <given-names>S.M.</given-names>
          </string-name>
          :
          <article-title>Ms Pac-Man competition</article-title>
          .
          <source>ACM SIGEVOlution 2</source>
          (
          <issue>4</issue>
          ),
          <volume>37</volume>
          {
          <fpage>38</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Mora</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montoya</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merelo</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanchez</surname>
            ,
            <given-names>P.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castillo</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laredo</surname>
            ,
            <given-names>J.L.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mart</surname>
            <given-names>nez</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A.I.</given-names>
            ,
            <surname>Espacia</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Evolving bot AI in Unreal (TM)</article-title>
          .
          <source>In: Applications of Evolutionary Computation</source>
          , pp.
          <volume>171</volume>
          {
          <fpage>180</fpage>
          . Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Ontan~on,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Synnaeve</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Uriarte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Richoux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Churchill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Preuss</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A survey of real-time strategy game AI research and competition in StarCraft. Computational Intelligence and</article-title>
          AI in Games,
          <source>IEEE Transactions on 5(4)</source>
          ,
          <volume>293</volume>
          {
          <fpage>311</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Patel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Polygonal Map Generation for Games</article-title>
          . http://www-csstudents.stanford.edu/ amitp/game
          <article-title>-programming/polygon-map-generation/ (</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Robertson</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Watson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Building behavior trees from observations in real-time strategy games</article-title>
          .
          <source>In: Innovations in Intelligent SysTems and Applications (INISTA)</source>
          ,
          <source>2015 International Symposium on</source>
          . pp.
          <volume>1</volume>
          {
          <issue>7</issue>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Rodr</surname>
            guez-Fernandez,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menendez</surname>
            ,
            <given-names>H.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Camacho</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Design and development of a lightweight multi-UAV simulator</article-title>
          .
          <source>In: 2nd IEEE International Conference on Cybernetics, CYBCONF</source>
          <year>2015</year>
          , Gdynia, Poland, June 24-26,
          <year>2015</year>
          . pp.
          <volume>255</volume>
          {
          <issue>260</issue>
          (
          <year>2015</year>
          ), http://dx.doi.org/10.1109/CYBConf.
          <year>2015</year>
          .7175942
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Rodr</surname>
            guez-Fernandez,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ram</surname>
            rez-Atencia,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Camacho</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>A multi-UAV Mission Planning videogame-based framework for player analysis</article-title>
          .
          <source>In: IEEE Congress on Evolutionary Computation, CEC</source>
          <year>2015</year>
          , Sendai, Japan, May
          <volume>25</volume>
          -28,
          <year>2015</year>
          . pp.
          <volume>1490</volume>
          {
          <issue>1497</issue>
          (
          <year>2015</year>
          ), http://dx.doi.org/10.1109/CEC.
          <year>2015</year>
          .7257064
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Rohlfshagen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucas</surname>
            ,
            <given-names>S.M.</given-names>
          </string-name>
          :
          <article-title>Ms Pac-Man versus ghost team CEC 2011 competition</article-title>
          . In:
          <article-title>Evolutionary Computation (CEC), 2011 IEEE Congress on</article-title>
          . pp.
          <volume>70</volume>
          {
          <fpage>77</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Rosca</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          :
          <article-title>Generality versus size in genetic programming</article-title>
          .
          <source>In: Proceedings of the 1st annual conference on genetic programming</source>
          . pp.
          <volume>381</volume>
          {
          <fpage>387</fpage>
          . MIT Press (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Sturtevant</surname>
            ,
            <given-names>N.R.</given-names>
          </string-name>
          :
          <article-title>Monte Carlo Tree Search and Related Algorithms for Games</article-title>
          .
          <source>Game AI Pro 2: Collected Wisdom of Game AI</source>
          Professionals p.
          <volume>265</volume>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Svensson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Dynamic Strategy in Real-Time Strategy Games: with the use of nite-state machines (</article-title>
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karakovskiy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baumgarten</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>The 2009 Mario AI competition</article-title>
          .
          <source>In: Evolutionary Computation (CEC)</source>
          ,
          <source>2010 IEEE Congress on</source>
          . pp.
          <volume>1</volume>
          {
          <issue>8</issue>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shaker</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karakovskiy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yannakakis</surname>
            ,
            <given-names>G.N.:</given-names>
          </string-name>
          <article-title>The Mario AI championship 2009-2012</article-title>
          .
          <source>AI Magazine</source>
          <volume>34</volume>
          (
          <issue>3</issue>
          ),
          <volume>89</volume>
          {
          <fpage>92</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Whittaker</surname>
          </string-name>
          , R.: Whittaker Biome Diagram. http://www.marietta.edu/ biol/biomes/biome main.
          <source>htm</source>
          (
          <year>1975</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>