TFG EN ENGINYERIA INFORMÀTICA, ESCOLA D’ENGINYERIA (EE), UNIVERSITAT AUTÒNOMA DE BARCELONA (UAB)
Estudio sobre el uso de IAs basadas en
comportamiento en Pac-Man
Raúl Ramos Macias
Resumen– En este trabajo se ha implementado un remake del videojuego Pac-Man original y se ha
diseñado un fantasma nuevo que utiliza en su estrategia particularidades de un tipo de Inteligencia
Artificial llamada ’Inteligencia Artificial basada en comportamiento’, caracterizada por ser adaptable
y utilizar elementos como el entorno, la memoria, el aprendizaje y la coordinación con otras IA. Una
vez finalizada la implementación, se han realizado pruebas con 21 usuarios reales, analizando datos
percibidos y datos objetivos numéricos, y se ha concluido que este tipo de IA mejora la experiencia
del jugador y que existen relaciones entre la complejidad de la IA, la dificultad que esta aporta al
juego y el disfrute resultante que se experimenta.
Palabras clave– Inteligencia Artificial, IA, Basada en comportamiento, Videojuegos, Pac-Man
Abstract– In this project we implemented a remake of the original Pac-Man videogame, including a
new ghost that uses in its strategy characteristics of a type of Artificial Intelligence named ’Behavior
based Artificial Intelligence’. This type of IA has a high situational adaptability, and uses technical
resources like surroundings, memory analysis, machine learning and coordination with other AIs.
Once the implementation was finished, it was tested with 21 real users, analyzing perceptual and
gameplay data, and we concluded that this type of AI improves the player experience, and that there
is a connection between AI complexity, the difficulty it contributes to the game and the resulting
enjoyment.
Keywords– Artificial Intelligence, AI, Behavior based, Videogames, Pac-Man
Artificiales que forman parte de él - ası́ pues, un juego
con ’una buena IA’ es aquél donde todas las entidades que
utilizan técnicas de Inteligencia Artificial cumplen con su
1 I NTRODUCCI ÓN función satisfactoriamente.
A INTELIGENCIA A RTIFICIAL (o IA) es aquella
L disciplina cientı́fica que se ocupa de crear progra-
mas informáticos capaces de ejecutar operaciones
comparables a las que realiza la mente humana, como el
Las entidades con Inteligencia Artificial pueden di-
ferenciarse
estrategia:
Sus
en dos tipos según el planteamiento de su
IA de conocimiento e IA de comportamiento.
diferencias se pueden apreciar en la Tabla 1.
aprendizaje o el razonamiento lógico.
En el ámbito de los videojuegos, el término IA, como Las IA de conocimiento en el mundo de los videojuegos
sustantivo, se utiliza para referirse a entidades concretas del son un recurso en auge y continuo desarrollo, propiciada
juego que tienen un comportamiento inteligente y que va por la necesidad de crear Inteligencias Artificiales que
dirigido a una función especı́fica - tanto NPCs (personajes simulen la improvisación natural, estrategia y acciones
no controlados por el jugador) tangibles como adversarios reflejas de un jugador humano, que sean capaces de pro-
intangibles en, por ejemplo, un ajedrez virtual. cesar su comportamiento rápidamente a fin de retrasar lo
A su vez, se puede utilizar el término en singular para mı́nimo posible una partida en linea o que sean capaces de
referirse de forma mas genérica al conjunto de Inteligencias reaccionar de forma satisfactoria a multitud de escenarios
no previstos.
E-mail de contacte: amphiros@[Link]
Menció realitzada: Enginyeria del Software
Treaball tutoritzat per: Maria Vanrell Martorell (Departament de El propósito del proyecto es evaluar la influencia real
Ciències de la Computació) de la aplicación de IAs de comportamiento en los juegos.
Juliol de 2015, Escola d’Enginyeria (UAB)
2 EE/UAB TFG INFORMÀTICA: IAs de comportamiento en Pac-Man
Tipo de IA consumidos. Si el jugador pierde todas las vidas, la partida
acaba.
Conocimiento Comportamiento
Utiliza solo datos impres- Utiliza más datos para
cindibles para su estrate- su estrategia (entorno,
gia (input de usuario y re- aprendizaje, memoria,
cursos propios) otras IA...)
Figura 1: Sprite (imagen) de Pac-Man, un dot, un Power
Más óptima - Orientada a Mas adaptable - Orienta- Pellet, un fantasma y un fantasma en modo Fright
la especialización: da al dinamismo.
Conoce muchas técnicas Analiza la situación ac-
concretas con anteriori- tual rápidamente e impro- Como añadido, existen unos dots especialmente grandes
dad y escoge la mejor pa- visa utilizando una base llamados Power Pellet, que al ser recogidos provoca que
ra una situación dada. de técnicas reducida. los fantasmas sean vulnerables a Pac-Man durante unos
segundos, tras los cuales volverán a la normalidad. Este
Propia de entornos cerra- Propia de entornos abier- estado de vulnerabilidad se conoce como Fright, y se
dos y controlados. tos y caóticos. representa con un cambio de color de los fantasmas a azul
Generalmente más lenta. Generalmente más rápida. oscuro y un cambio en la expresión facial. Si Pac-Man los
toca durante este estado, serán comidos, volverán a House
Más predecible. Más impredecible. y volverán a la normalidad.
Ejemplo: Adversario en Ejemplo: IA en juego en
ajedrez virtual (donde pri- linea de acción (donde Tanto comer dots, como Power Pellets, como fantasmas
ma la efectividad). prima la toma rápida de en Fright concede puntos, que se acumulan para un ranking.
decisiones). Cada nivel aporta mas puntos pero incrementa la dificultad
del juego acelerando a los fantasmas, dando menos tiempo
Tabla 1: Diferencias entre tipos de IA de Fright o reduciendo la velocidad de Pac-Man.
2.2. La personalidad de los fantasmas
Para ello, se aplicará en un juego clásico como Pac-Man.
Una de las caracterı́sticas más destacables de Pac-Man
Ası́ pues, el objetivo del proyecto es triple: es que se trató de dar una personalidad caracterı́stica
1. Desarrollar una nueva implementación del juego a cada uno de los cuatro fantasmas. Esto se refleja en
original de Pac-Man. la estrategia particular de cada uno al tratar de cazar a
2. Aplicar caracterı́sticas de las IA basadas en com- Pac-Man; algunos son más agresivos, otros más esquivos,
portamiento en un juego clásico como este. otros más cobardes...
3. Evaluar las diferencias respecto al original basándo-
se en datos numéricos objetivos y datos percibidos de los La siguiente lista presenta los fantasmas originales, con
usuarios. el siguiente formato:
Nombre de la estrategia en inglés - Nombre del fantasma
(nombre de la estrategia en japonés, ’significado’)
2 Pac-Man, UN CL ÁSICO INNOVADOR
Pac-Man, tradicionalmente conocido como ’Comeco-
cos’ en España, es un videojuego Arcade 1 creado por el
diseñador de videojuegos Toru Iwatani para la empresa ni- Shadow - Blinky (oikake, ’perseguidor’)
pona Namco, y fue publicado el 21 de mayo de 1980. Comportamiento: Agresivo
Consiguiendo el récord Guinness al videojuego arcade con Su objetivo es directamente el tile2 de Pac-Man.
más máquinas recreativas vendidas, se ha convertido en un
sı́mbolo de los videojuegos.
2.1. Objetivos, entidades y reglas
El objetivo del juego consiste en mover el epónimo Pac-
Man por un laberinto, comiéndose unos puntos amarillos
(o dots) al pasar por encima de ellos y completando el nivel
cuando no quede ninguno.
Sin embargo, en el laberinto se encuentran también cuatro
fantasmas, que salen de un habitáculo cerrado - House - Speedy - Pinky (machibuse, ’emboscador’)
y tratan de darle caza. Si los toca, el jugador perderá una Comportamiento: Semi-táctico, situacional
vida y tendrá que comenzar el nivel actual de nuevo, con Trata de predecir posiciones futuras de Pac-Man para
los fantasmas encerrados de nuevo y sin restaurar los dots emboscarle. Su objetivo es la posición de Pac-Man +
1 Arcade es el término genérico de las máquinas recreativas de video- 2 Los juegos 2D suelen definir su mundo usando una matriz, asignando
juegos disponibles en lugares públicos de diversión, centros comerciales, valores para indicar, por ejemplo, dónde hay paredes. Cada una de estas
restaurantes, bares, o salones recreativos especializados. casillas se conocen, en el mundo de los videojuegos, como tile.
Raúl Ramos Macı́as: Estudio sobre el uso de IAs basadas en comportamiento en Pac-Man 3
4 tiles en la dirección en la que mira. Se puede observar cómo los fantasmas aparentemente
incorporan elementos de IAs de comportamiento como uso
del entorno para cumplir un propósito - Pinky está diseñado
para rodear a Pac-Man - o de coordinacion entre IAs - Inky.
Sin embargo, el comportamiento de la IA tiene un patrón
limitado e inalterable, y los resultados positivos son,
aunque facilitados por el diseño, casuales; Pinky puede
efectivamente rodear a Pac-Man, pero es un resultado
casual, ya que no ha realizado un análisis del entorno para
tratar de asegurar que esto ocurra.
A su vez, Inky puede acorralar a Pac-Man entre él y Blinky,
Bashful - Inky (kimagure, ’caprichoso’)
pero no ha habido una coordinación real y planificada
Comportamiento: Semi-cooperativo
entre las dos IA. Además, estas estrategias tan limitadas
Su posición objetivo es relativa a Blinky y trata de
provocan situaciones no deseadas bien documentadas
utilizarla para rodearle entre los dos. Se calcula
y conocidas, como problemas de ineficacia o incluso
trazando un vector desde la casilla de Bliky hasta la
movimiento en bucle sin ningún progreso.
posición de Pac-Man + 4 tiles en la dirección en la
que mira (coincidiendo con la posición objetivo de
Pinky), y posteriormente doblando su longitud. Es el A pesar de sus limitaciones, Pac-Man en su momento
único que utiliza datos de otro fantasma. fue un juego muy novedoso por incorporar este tipo
de Inteligencia Artificial modular tan compleja y se
podrı́a considerar que su estrategia contiene elementos
primitivos de Inteligencia Artificial basada en compor-
tamiento, lo que lo convierte en un juego ideal para valorar
la diferencia al incorporarle IAs más complejas de este tipo.
3 P ROPUESTAS DE FANTASMAS
La forma más fácil de incorporar elementos avanzados
de IAs de comportamiento era incorporando fantasmas
nuevos que se basaran en caracterı́sticas de este tipo de
Pokey - Clyde (otoboke, ’ignorancia fingida’) IAs. Las ideas más prometedoras figuran en la Tabla 2.
Comportamiento: Máquina de estados, asustadizo.
El único que se comporta de dos modos distintos de- Tras hacer un análisis de ventajas, desventajas y costes
pendiendo de una condición dada. Estos se alternan en previstos, se llegó a la conclusión de que el mejor fantasma
función de la distancia euclidiana entre él y Pac-Man. para comenzar el proyecto era Kiry, ya que sus habilidades
Si hay más de 8 tiles de distancia entre ambos, el eran las más simples de desarrollar y una vez implemen-
objetivo es Pac-Man (como Blinky). tadas podı́an aplicarse al resto de fantasmas. Ası́ pues, se
estableció a Kiry como el objetivo principal y Charles
como objetivo opcional.
Goldy requerı́a un conocimiento de perfiles de jugador
para su funcionamiento, algo que se podrı́a obtener una vez
recreado el juego original y con las adecuadas herramientas
de recolección de datos, por lo que su desarrollo, si exis-
tiera, serı́a muy tardı́o. Por último, la inteligencia colectiva
podı́a utilizar elementos de todos los fantasmas anteriores,
Si hay 8 o menos tiles de distancia entre ambos, el ası́ que se estableció como la menos prioritaria.
objetivo es la esquina inferior izquierda del escenario.
El proyecto en su estado actual de publicación presenta
una implementación completa de Kiry. Es posible que se
traten de implementar el resto de fantasmas en lı́neas de
continuación que queda fuera del tiempo dedicado a este
proyecto.
4 D EFINICI ÓN DEL PROYECTO
Con los fantasmas definidos, ya se podı́an pasar a aspec-
tos formales de la definición, planificación y evaluación del
4 EE/UAB TFG INFORMÀTICA: IAs de comportamiento en Pac-Man
Nombre Caracterı́stica 2. Objetivos prioritarios
a) Desarrollar el fantasma Charles
Situacional - Analiza el entorno y tra- 3. Objetivos secundarios
Kiry ta de acorralar a Pac-Man utilizando el
(Hunter) ambiente. Análogo a Pinky. a) Recoger datos de profiling para Goldy
b) Desarrollar el fantasma Goldy
c) Desarrollar Master
Situacional - Dragón que protege un te-
Charles soro, máquina de estados. Analiza el en- d) Desarrollar Servant
(Keeper) torno y busca un área con alta concen-
tración de dots, que patrulla. Si Pac-Man Al finalizar el proyecto, todos los objetivos crı́ticos se
se acerca, le trata de alejar persiguiéndo- han cumplido satisfactoriamente.
le hasta estar lo suficientemente lejos,
momento en el que retoma la patrulla. 4.2. Planificación del proyecto
Análogo a Clyde.
La planificación del proyecto - incluyendo requisitos, sta-
keholders, metodologı́a del proyecto, herramientas y ries-
Aprendizaje - Fantasma que toma deci- gos/respuesta - está documentada en el Apéndice A.
Goldy siones en función de tendencias, analiza- La decisión de esta organización se ha basado en dos cri-
(Wise) das a partir de datos tomados de partidas terios, la longitud requerida y la importancia de mantener
anteriores de el mismo jugador o el con- una lectura dinámica de los contenidos. Ası́ pues, hemos
junto de todos los jugadores. optado por mantener la descripción de los objetivos y las
propuestas algorı́tmicas en el artı́culo y todos los aspectos
metodológicos en el apéndice, de esta manera hemos con-
Cooperativo - Conjunto de fantasmas seguido un mejor encaje con la lectura de la introducción
que trabaja de forma cooperativa para del proyecto (secciones anteriores).
atrapar a Pac-Man. Compuesto por un
master y varios servant, el master rea- 4.3. Métricas
Collective liza los análisis de situación teniendo en
Intelligence cuenta todo el grupo, toma las decisio- Para el análisis de la influencia del modelo de IAs se de-
nes precisas y manda órdenes a los ser- ben considerar una serie de métricas;
vant. Análogo a Blinky-Inky.
1. Subjetivas (percibidas)
Tabla 2: Nuevos fantasmas planteados
a) Dificultad - Sensación de aumento en la dificul-
tad del juego respecto al original apreciada por el
proyecto. Cada uno de estos aspectos del diseño del softwa- usuario al incorporar la nueva IA.
re se tratará en una subsección diferenciada. b) Complejidad - Sensación de que la IA sigue es-
trategias más elaboradas, originales, ingeniosas o
4.1. Objetivos del proyecto realistas, con independencia de que estas añadan
un nivel de dificultad extra apreciable. (Ejemplo:
Los objetivos se categorizaron en crı́ticos (necesarios pa- en un juego de disparos un enemigo que toma
ra el éxito del proyecto), prioritarios (no crı́ticos más favo- cobertura puede ser menos eficiente venciendo al
rables) y secundarios (prioridad mı́nima); jugador que uno que no lo hace, pero éstos lo re-
conocen como una IA mas compleja).
1. Objetivos crı́ticos
c) Diversión - Sensación de que añadir una IA en
a) Realizar un estudio del juego original particular hace más divertido el juego. El motivo
b) Implementar el juego original con el mayor deta- de esta métrica es intentar buscar patrones sobre
lle posible la influencia de la complejidad y la dificultad en
c) Desarrollar el fantasma Kiry la diversión general que aporta el juego.
d) Realizar pruebas con como mı́nimo 20 jugadores 2. Objetivas (Numéricas)
reales
e) Implementar un sistema de recolección de datos a) Consumo de recursos - En que aumento de cos-
para las pruebas. tes de memoria (RAM) y procesamiento (FPS)3
se traduce la incorporación de algoritmos mas
f ) Analizar los resultados objetivos numéricos y sa- complejos.
car conclusiones.
3
Número de frames por segundo, es decir, el número de veces que se
g) Analizar los resultados percibidos de los jugado- procesa un ciclo de juego en un sólo segundo. Conviene que se estable para
res y sacar conclusiones. evitar ralentizaciones súbitas.
Raúl Ramos Macı́as: Estudio sobre el uso de IAs basadas en comportamiento en Pac-Man 5
5.2. Resultado final
El juego ha sido extremadamente fiel al original y las
únicas modificaciones que han ocurrido han sido técnicas y
son inapreciables durante el juego. Aquellos cambios que
afectan a los fantasmas se aplican tanto a IAs nuevas como
a viejas, evitando desequilibrar el juego y desacreditar los
resultados.
El juego ha sido apropiadamente testeado con chec-
klist, y se han utilizado varias herramientas del framework
como un controlador de recursos consumidos (Figura
3) o una capa de dibujo de debugging que permitı́a, por
ejemplo, dibujar un circulo en el objetivo de desplazamien-
to de un fantasma para asegurar su correcto funcionamiento.
Figura 2: Imagen del juego final.
Figura 3: Herramienta de debugging utilizada en el testing,
b) Efectividad del fantasma - Cuán efectivo es el
registrando frames por segundo y consumo de memoria.
funcionamiento del fantasma, teniendo en cuenta
factores como la frecuencia de victorias en fun-
ción del número de partidas donde participa o la
velocidad con la que consigue derrotar al juga-
dor. 6 Kiry : FANTASMA SITUACIONAL BASADO
EN COMPORTAMIENTO
Durante el análisis se intentarán relacionar las tres métri-
cas subjetivas. Es decir, demostrar si las personas que creen Una vez finalizado el juego base, el siguiente paso con-
que una IA es más compleja la suelen considerar más difı́cil, sistı́a en implementar el nuevo fantasma, Kiry.
si las personas que creen que una IA es más difı́cil de vencer
es más divertida y si creen que incorporar una IA más com- 6.1. Planificación inicial
pleja, independientemente de si hace el juego más difı́cil o
no, añade mas variedad y lo hace mas divertido. La planificación y programación del nuevo fantasma
ocupó el segundo tercio del tiempo total del proyecto,
siendo la primera especialmente larga y difı́cil, tratando
5 D ESARROLLO DEL JUEGO BASE de buscar un comportamiento que aplicara eficazmente la
cualidad situacional de las IA de comportamiento.
El desarrollo de la base del juego base transcurrió
durante aproximadamente mes y medio, momento en el Se consideraron dos tipos de enfoque; uno que utiliza-
que se tenı́a una versión suficientemente funcional y fiel a ra exclusivamente información del laberinto y otro que,
la original como para empezar a implementar fantasmas además, utilizara otros datos del entorno como la posición
nuevos. de otros fantasmas (sin coordinarse con ellos) o la posición
de los dots. Viendo que el segundo era una extensión del
primero, se optó por implementar el primer modelo y dejar
pendiente el segundo.
5.1. Planificación del software
Algunos elementos del diseño del software han sido im- 6.2. Mapa de presión
portantes, requiriendo una importante planificación que fa-
cilitara la adaptabilidad a la hora de crear fantasmas nuevos. Descartando información de otras entidades del entorno,
Una breve descripción de dos de estos elementos - el mode- la principal arma de Kiry es el propio laberinto. La es-
lo de capas que sigue el juego y el modelo fantasma/módu- trategia principal de Kiry serı́a la de analizar el entorno
lo - se puede encontrar en el Apéndice B, diferenciado del y tratar de reconocer zonas con más peligro potencial
resto del documento por su importancia relativa al diseño para Pac-Man. Conociendo estas zonas, Kiry podrı́a
de Software. presionar a Pac-Man y obligarle a ir hasta ellas, donde
6 EE/UAB TFG INFORMÀTICA: IAs de comportamiento en Pac-Man
estarı́a mas expuesto tanto a ella como al resto de fantasmas.
Para satisfacer esta idea nació el mapa de presión. El
mapa de presión consiste en hacerse con una copia del
laberinto y asignar un valor de peligro a un tile transitable
concreto. Este valor se calcula en función de varios princi-
pios tácticos:
1. Los cruces (tiles con mas de dos salidas) son relativa-
mente seguros, pues tienes alternativas si un camino
está bloqueado
2. Los pasillos son zonas de gran peligro, entendien-
do pasillo como los espacios entre dos cruces. Si un
fantasma entra por un extremo y otro por el contrario,
Pac-Man no tiene escapatoria
3. Por consiguiente, el peligro de un pasillo es propor-
cional a su tamaño, pues más espacio que recorrer
implica más tiempo en el que Pac-Man es vulnerable.
4. Los caminos sin salida son zonas de peligro máxi-
mo, sólo hay un punto de entrada y basta con un fan-
tasma para bloquearlo.
5. Cuanto más largo es el pasillo hasta el camino sin
salida, más peligro existe, pues la distancia a recorrer
es el doble de la longitud del camino. Figura 4: Mapa de presión en un mapa diseñado para explo-
tar sus capacidades.
6. Si el mapa es separable en zonas interconectadas
por un sólo camino, las zonas de menor tamaño tie-
nen presión añadida, pues ofrecen menos espacio de El mapa de presión del laberinto original se puede
maniobra. observar en la Figura 5.
El modelo que utiliza Kiry se basa en estos principios.
Primero se crea un grafo utilizando los cruces como
vértices y los caminos que los conectan como aristas. Se
buscan componentes biconectados - que serı́an las zonas
interconectadas por un sólo camino - y se les asigna una
presión base dependiendo de su tamaño.
Una vez hecho esto, se recorren los pasillos y se añade
presión extra en función de la distancia con el cruce mas
cercano, y por último se penaliza aún más a los caminos
sin salida.
Se implementó un nuevo nivel de prueba diseñado pa-
ra contener todas las caracterı́sticas de las que este modelo
podrı́a sacar provecho. El mapa de presión correspondiente
se puede ver en la Figura 4, donde el rojo representa mayor
presión o peligro y el verde representa zonas mas seguras
para Pac-Man..
Se puede observar como la zona central, más grande,
tiene una presión base menor, mientras que las tres islas
tienen considerablemente más.
También se puede apreciar como los pasillos hacen un
”degradado” donde la parte central, al estar más alejada
de los cruces, tiene una presión bastante mayor. Figura 5: Mapa de presión en el mapa original
Por último, se puede ver como en los caminos sin salida Kiry utiliza este mapa leyendo los valores de las casillas
la presión se dispara, sobretodo si vienen precedidos de en un radio determinado desde la posición de Pac-Man y
un pasillo largo como es el caso de la parte central superior. identificando la zona con más presión. Una vez identificada,
trata de moverse dejando a Pac-Man entre ella y la zona,
Raúl Ramos Macı́as: Estudio sobre el uso de IAs basadas en comportamiento en Pac-Man 7
forzándole a arrinconarse. registrados automáticamente por el programa, y servirı́an
para comprobar la influencia de la incorporación de una
Este comportamiento convierte a Kiry en un fantasma estrategia distinta en resultados medibles del juego, como
esquivo, que prefiere presionar a ir directamente a por Pac- tiempo o dots recogidos.
Man (como se puede ver en la Figura 6), que suele facilitar
el trabajo a fantasmas más directos como Blinky y que tiene De entre los dos, los resultados perceptivos tienen una
costumbre a desplazarse en paralelo a Pac-Man cuando se relevancia mayor, ya que la intención del estudio otorga
encuentra en los extremos del escenario (sobre todo en la más prioridad al efecto sobre el jugador final que en la efec-
zona con más presión del mapa, situada en la parte inferior) tividad numérica del modelo.
a fin de evitar que vuelva al centro, donde hay mas libertad Como añadido, los valores objetivos numéricos son más in-
de movimiento. flexibles, registrando valores absolutos (derrotas-victorias)
pero ignorando datos más complejos como la diferencia de
dificultad entre los dos modelos que ha sufrido un jugador
a pesar de haber logrado victoria con ambos. Por este moti-
vo, los valores objetivos numéricos cumplen una función
complementaria.
Figura 6: Diferencias de comportamiento entre Pinky y Kiry 7.2. Preparación del experimento
dada la misma situación.
El objetivo de número de sujetos inicialmente era de
10 personas mı́nimo, extendiéndose a 20 tras comprobar
que la cantidad de sujetos no arrojaba resultados conclu-
6.3. Movimiento mejorado yentes y alcanzando finalmente la cantidad de 21 sujetos.
Como extra a su comportamiento nuevo, se ha mejorado
la toma de decisión de desplazamiento. Los fantasmas El perfil buscado en los jugadores era sujetos jóvenes,
originales, llegados a un cruce, comprueban la distancia conocedores del juego original y preferentemente jugadores
euclidiana desde el primer tile de cada uno de los pasillos frecuentes. Tener experiencia directa con el juego original
disponibles hasta Pac-Man, y toman el que presenta un o derivados de la franquicia también estaba altamente
valor menor. Este cálculo, aunque rápido, no toma en valorado.
cuenta los muros del laberinto, y a veces provoca que
los fantasmas tomen caminos más largos para llegar a su Las pruebas se realizaron de forma autónoma, siguiendo
objetivo. unas instrucciones en un documento de Google Forms
y rellenando los campos paso a paso. La duración de la
Kiry, en cambio, implementa un A*4 que calcula el ca- prueba se sitúa normalmente entre los 15 y los 45 minutos.
mino más corto desde su cruce de origen hasta su destino.
Este sistema, al tener en cuenta los muros, resulta más efi-Durante la primera fase del experimento se instruye
caz en la planificación del movimiento y provoca que Kirya los jugadores sobre la interfaz general y los controles, y
mantenga distancias de seguimiento más cortas con Pac- después se les deja un tiempo ilimitado para que prueben el
Man que otros fantasmas. Además, su incorporación no ha juego con los fantasmas originales hasta que se habitúen al
supuesto penalizaciones apreciables en el rendimiento. juego.
Una vez están preparados, se les instruye para substituir
7 A N ÁLISIS DEL COMPORTAMIENTO a Pinky por Kiry, y al finalizar una única partida se les
pregunta por diferencias apreciadas, de una forma ambigua
Para comprobar la efectividad de Kiry en comparación y sin hacer referencia al nuevo fantasma o su comporta-
con su homólogo, Pinky, se diseñó una prueba con usua- miento. El propósito de esta pregunta es averiguar si los
rios reales. usuarios han notado alguna diferencia apreciable sobre
el nuevo fantasma de forma inconsciente, sin llamar la
atención sobre el asunto de forma explı́cita.
7.1. Introducción al experimento
El experimento incluı́a un apartado perceptivo y otro Tras esto se inicia la segunda fase, donde se permite a
empı́rico. los jugadores jugar libremente con la combinación original
y con la combinación que incorpora a Kiry, intercalando
Los valores perceptivos serı́an registrados por for- partidas de una y otra y pidiendo un mı́nimo de cuatro
mulario y ayudarı́an a hacerse una idea general de las partidas con cada una. Tras ello, se rellenan datos sobre
impresiones del jugador relacionadas con la dificultad y dificultad, complejidad y diversión apreciadas y se pide
complejidad del nuevo fantasma en comparación con el enviar los datos objetivos numéricos registrados para su
antiguo y el efecto de estos en la diversión general. valoración.
Por otro lado, los valores objetivos numéricos serı́an
4 Algoritmo de búsqueda en grafos que encuentra, siempre y cuando se Los datos objetivos numéricos se guardaban al final de
cumplan unas determinadas condiciones, el camino de menor coste entre cada partida en formato .XML - ejemplo en la Figura 7 - a
un nodo origen y uno objetivo. fin de diferenciarlos y facilitar su lectura en Matlab.
8 EE/UAB TFG INFORMÀTICA: IAs de comportamiento en Pac-Man
sincronizado para poder cerrarte el camino.”
”[...] Por otro lado parecı́a que Kiry iba por otros cami-
nos para arrinconarme en lugar de seguirme ciegamente.”
”Me emboscan antes!!!”
.Es un poco más complicado huir. Normalmente los
fantasmas te atacan por detrás y este te pilla por delante, y
es más inesperado.”
”Kiry no ataca primero, siempre espera a que otros
fantasmas de acerquen. Va un poco por su cuenta.”
Todas estas observaciones describen con mayor o menor
precisión el tipo de comportamiento de Kiry, o bien
consecuencias de él. Esto significa que hay un número
Figura 7: Ejemplo de XML con datos objetivos numéricos. importante de personas (en torno al 28 % de los encuesta-
dos) capaz de apreciar caracterı́sticas complejas de el
comportamiento de una IA con una sóla muestra.
7.3. Resultados de los datos subjetivos La segunda observación interesante es la siguiente:
El experimento se ha realizado sobre 21 sujetos de
”No estoy seguro, pero puede ser que Kiry vaya más
edades entre los 19 y los 31 años, estando la media en los
rápido?”
22. De ellos, el 57.1 % son hombres, el 42.9 % restante
siendo mujeres.
”Parecı́a que iba ligeramente más rápido que el rosa.”
Como se puede ver en la Figura 8, la búsqueda de un per-
Estas observaciones, a primera vista, pueden parecer
fil concreto de jugador ha sido satisfactoria y la mayorı́a de
incorrectas y sin relación. Sin embargo, tras una segunda
gente, además de ser jugadores frecuentes, tenı́an cierto
consideración, es probable que esta sensación de mayor
nivel de experiencia con el juego original.
velocidad sea debido a el uso de un sistema de movimiento
basado en A*, mas eficaz que el de los fantasmas originales.
Aunque por su imprecisión no es posible conectar estos
dos hechos con seguridad, se podrı́a considerar que estos
sujetos también son conscientes en cierta medida de
un cambio en la IA, en cuyo hipotético caso los sujetos
capaces de apreciar diferencias con sólo una muestra
ascienden al 38 %.
Los resultados sobre la valoración de los tres parámetros
percibidos se pueden observar en la Figura 9. Se puede
observar que los resultados en general son satisfactorios;
Más de la mitad de la gente ha experimentado un incre-
mento de dificultad apreciada al incluir a Kiry, la extensa
mayorı́a ha apreciado un mayor grado de complejidad
en el fantasma tras varias pruebas y, aunque de forma
más discutida, parece que estos cambios han aportado una
mejora en la diversión que otorga el juego. Estos datos
Figura 8: Experiencia de los sujetos. parecen confirmar que la incorporación de IAs basadas
en conocimiento tiene un efecto apreciable sobre la
La primera impresión es polarizada. 11 personas experiencia de muchos de los jugadores, cumpliendo el
(52.4 %) no han notado ninguna diferencia, mientras que objetivo principal del proyecto.
las 10 personas restantes (47.6 %) si han anotado alguna
diferencia apreciable, que escribieron en un campo del En la Figura 10, 11 y 12 se puede observar el método uti-
formulario. Obviando algunas observaciones no relacio- lizado para comprobar la relación entre dos variables. Cada
nadas como el cambio de color o cuándo los fantasmas eje representa una variable perceptual. Se han colocado en
abandonan la House, destacan dos tipos de observaciones ellos los valores recogidos en la encuesta, 1 representando
principales. En primer lugar: los más negativos y 5 los más positivos, y en cada casilla
se ha asignado el número de usuarios que han puntuado de
”Da la sensación que Kiry tiene un compartimiento esa forma esas dos variables. Si existiera una dependencia
menos simple que el de Pinky. Parece estar más coordi- concreta entre dos variables dadas, la mayorı́a de valores
nado con los movimientos de los otros fantasmas. Más deberı́an presentarse en la diagonal, ya que alterar uno
Raúl Ramos Macı́as: Estudio sobre el uso de IAs basadas en comportamiento en Pac-Man 9
Figura 9: Valores percibidos.
implicarı́a alterar el otro.
Figura 10: Relación entre dificultad y complejidad
La relación más notable es la de complejidad-dificultad
(Figura 10). Como se puede apreciar en el mapa topológico,
hay muchı́sima tendencia hacia la diagonal. Esto implica Los dots medios obtenidos antes de la derrota son de 72
que un aumento de complejidad implica con mucha para Kiry y 67 para Pinky (desviación 38.76 y 37.91).
seguridad un un aumento de dificultad. Los Power Pellet medios recogidos antes de la derrota son
1.31 para Kiry y 1.23 para Pinky (desviación 1.29 y 1.25).
En segundo lugar podemos ver como la diversión y la Los fantasmas comidos medios son de 1.05 para Kiry y
dificultad (Figura 11), aunque de forma mucho menos 1.08 para Pinky (desviación 1.4 y 1.48).
decisiva, también parece indicar que hay cierta relación El score medio con Kiry es de 1065, con Pinky siendo 1005
entre la dificultad y la diversión. La mayor dispersión (desviación 814 y 760).
de valores se puede explicar por el desagrado de algunos
jugadores a los juegos que suponen un mayor desafı́o, Los valores similares con apenas desviación estándar
aunque parece que la tendencia es a, como mı́nimo, valo- entre ellos, la ligera ventaja de Pinky en algunos campos y
rar la posibilidad de poder seleccionar una dificultad mayor. sin embargo el tiempo más reducido de Kiry y su mayor
precisión en esta medida parecen apuntar a una idea
Por último tenemos la relación entre diversión y comple- general;
jidad (Figura 12). En este caso, parece que podrı́amos des-
cartar una relación entre el incremento de complejidad Kiry, al ser liberada en segundo lugar, y estar basada
y la diversión. en ayudar a los otros fantasmas, es más ineficiente al
principio del juego, donde sólo hay un fantasma más a
parte de ella. Esta menor presión, contraria al enfoque
7.4. Resultados de los datos objetivos
más directo de Pinky, permite al jugador conseguir mayor
Tras varios análisis y pruebas bajo diversas condiciones, puntuación.
los datos objetivos numéricos recogidos no parecen Sin embargo, en cuanto se empiezan a liberar los
indicar diferencia entre los dos modelos. otros dos fantasmas y Kiry puede sacarle provecho a su
estrategia, su efectividad incrementa, cazando muchos
El dato mas destacable es el tiempo medio antes de la jugadores en un espacio de tiempo reducido, de ahı́ la poca
derrota del jugador; en Kiry ronda los 36.2 segundos, con desviación estándar.
una desviación de 22.21. El tiempo medio de Pinky, por
otra parte, es de 38 segundos, con una desviación de 47.17. Esta idea parece ser apoyada por el hecho de que aquellos
jugadores que expresaron una mayor dificultad apreciada
10 EE/UAB TFG INFORMÀTICA: IAs de comportamiento en Pac-Man
Figura 12: Relación entre diversión y complejidad
Figura 11: Relación entre dificultad y diversión
Entre el 28 % y el 38 % de los jugadores es capaz de
suelen ser aquellos que más tiempo aguantaron en el apreciar una mayor complejidad en una IA de un solo
juego, enfrentándose a Kiry en condiciones más favorables vistazo.
para ella.
Hay una relación clara entre dificultad y complejidad.
Aunque los resultados arrojados nos ayudan a compren-
der la diferencia de condiciones de efectividad relativa de Hay cierta relación directa entre dificultad y diversión.
las dos IA, no son concluyentes de una forma más abso- No se puede demostrar una relación directa entre com-
luta. plejidad y diversión.
Los resultados objetivos numéricos arrojados no son
8 C ONCLUSIONES concluyentes.
Con este proyecto se ha aportado una nueva implemen- Es posible continuar el desarrollo del estudio al
tación del Pac-Man original, especialmente orientado al margen de este proyecto, a fin de reafirmar las conclu-
diseño de nuevos fantasmas, que permite experimentar con siones obtenidas y probar la influencia de otras IAs con
técnicas para la programación de Inteligencias Artificiales aspectos distintos de las Inteligencias Artificiales basadas
en videojuegos. en comportamiento.
Adicionalmente, se han utilizado técnicas de las IAs Como añadido personal, me ha resultado muy ilustrativo
basadas en comportamiento para definir un nuevo fantasma todo lo aprendido sobre experimentación y análisis de
más complejo, que combina el uso de información espacial datos, un enfoque cientı́fico al que no estaba habituado.
en su estrategia y optimización de desplazamiento con A*. También ha sido muy valioso el tiempo consumido el com-
portamiento de la nueva IA, ya que, siendo un aspecto
Las pruebas experimentales realizadas aportan estas con- basado más en la planificación y diseño, ha sido un buen
clusiones generales: contraste frente al enfoque de implementación de la ma-
yorı́a de las asignaturas de la carrera.
La incorporación de IAs basados en comportamiento Por último, el diseño de la aplicación ha reafirmado más
en videojuegos influye positivamente en la dificultad, aún la importancia de la planificación en la ingenierı́a de
complejidad apreciada y diversión general del jugador. software.
Raúl Ramos Macı́as: Estudio sobre el uso de IAs basadas en comportamiento en Pac-Man 11
AGRADECIMIENTO i) Pac-Man debe incorporar el mismo sistema de
memoria de direccionamiento que el original
A todos los jugadores que se presentaron para el ex-
perimento, por su desinteresada paciencia. 2. Requisitos no funcionales
A mi tutora, Maria Vanrell, por remar junto a mi semana
a) Accesibilidad - Pac-Man debe ser controlable
tras semana a pesar de la tormenta.
tanto con las letras AWSD como con las de di-
A mi familia y amigos, por estar siempre ahı́ siempre.
rección
A Toru Iwatani y todos los desarrolladores de juegos que
ponen un poco de su alma en su trabajo. b) Portabilidad - El juego se desarrollará para mul-
Y a Pac-Man, al que deseo un feliz 35 aniversario. tiplataforma; Flash y PC.
c) Escalabilidad - La base de los fantasmas debe ser
R EFERENCIAS modular para facilitar la creación de nuevos mo-
delos.
[1] Birch, Chad. Understanding pac-man ghost behavior, d) Escalabilidad - Se debe implementar una lectu-
dic 2010. ra de escenarios externos y no uso de escenarios
integrados, para facilitar experimentación en di-
[2] Birk, Andreas. Behavior-based robotics, its scope and
versos entornos.
its prospects. 24th Annual Conference of the IEEE In-
dustrial Electronics Society. Vrije Universiteit Brus- 3. Restricciones
sel, Artificial Intelligence Laboratory, 1998.
a) Los valores numéricos (puntuación, tiempos de
[3] Daucet, Lars. Flash is dead, long live openfl!, mar modo...) deben ser estrictamente los mismo que
2014. en el juego original.
[4] Maes, Pattie. Behavior-based artificial intelligence. b) Las nuevas IA sólo pueden incorporar cambios
University of Nevada, Reno, 2010. en el modo de caza.
c) Las nuevas IA sólo pueden alterar comporta-
[5] Pittman, Jamey. The pac-man dossier, v. 1.0.26. jun
miento, no parámetros como velocidad.
2011.
d) Deben haber 4 fantasmas en una partida.
[6] Wikipedia. Pac-Man game introduction.
e) Los fantasmas saldrán del House en orden y con
[7] Real Academia Española. Diccionario online. las condiciones de salida del juego original.
f ) Los Fantasmas deben tomar decisiones única-
[8] J. Russell, Stuart and Norvig, Peter. Artificial Intelli- mente en los cruces
gence: A Modern Approach. Pearson Education, 2003
A.2. Stakeholders
A P ÉNDICE A: P LANIFICACI ÓN DEL PROYEC -
TO Personas o entidades que están o podrı́an estar interesa-
dos en el producto.
A.1. Requisitos
El desarrollador del estudio, el principal stakeholder,
La versión compacta - a fin de caber en el documento - buscando conseguir experiencia y conocimiento.
de los requisitos de software base para este proyecto son:
Los jugadores, que buscan mejores experiencias de
1. Requisitos funcionales juego que el modelo basado en comportamiento les podrı́a
otorgar.
a) El juego debe tener capacidad para introducir va-
lor de nombre de jugador y con qué cuatro fan-
Los desarrolladores de juegos, que pueden utilizar los
tasmas se quiere jugar.
resultados que arroje el estudio para conocer datos como la
b) El juego debe registrar puntuación dinámicamen- relación entre la efectividad de estos modelos y su efectivi-
te. dad en distintos campos objetivos numéricos y percibidos,
c) El juego debe informar de la puntuación una vez a fin de utilizarlos en futuros productos.
finalizada la partida
d) Deben implementarse los cuatro fantasmas origi- A.3. Método de gestión de proyecto
nales de forma estrictamente igual. El objetivo del proyecto no es un producto final comple-
e) Debe implementarse el mapa original. tamente definido, si no que se trata de un estudio que ha ido
f ) Debe implementarse un modo normal, Fright y evolucionando según las necesidades que se presentaban
dispersión para todos los fantasmas. en cada momento y en base a los resultados obtenidos.
La orientación del proyecto pues no se ha basado en una
g) El juego debe guardar datos de una partida para planificación total inicial si no que se ha seguido un sistema
su análisis. más flexible, de control contı́nuo y cı́clico similar a Scrum.
h) Pac-Man se controlará con el teclado.
12 EE/UAB TFG INFORMÀTICA: IAs de comportamiento en Pac-Man
El método se ha caracterizado por reuniones semana- Como añadido, HaxeFlixel es un framework relativa-
les con la tutora - documentadas en la página web de TFE -, mente nuevo y aún en desarrollo, lo que ha provocado
donde se trata el progreso pendiente de la semana y el pro- algunos problemas. Sin embargo, la impresión final es en
greso realizado, se discuten dudas, conclusiones y cam- general favorable.
bios y se plantea el progreso a realizar para la siguiente
semana. El IDE (aplicación de edición de código) utilizado
Este progreso pendiente se decide dividiendo los objetivos durante el desarrollo ha sido Flash Develop.
pendientes en subobjetivos y organizándolos según priori-
dad, convirtiéndose lo más destacables finalmente en mi- En el apartado gráfico, se ha utilizado especialmente
lestones. Adobe Photoshop CS5, y los sprites se han creado desde
0 a base de capturas del juego original.
A.4. Herramientas
Para el mapeado de niveles se ha utilizado OGMO,
La herramienta de desarrollo utilizada es HaxeFlixel, un una herramienta que permite importar elementos gráficos
framework para juegos 2D de código abierto y gratuito. y crear mapas basados en cuadrı́cula con ellos, a fin de
exportarlos en CSV y utilizarlos en HaxeFlixel.
El control de versiones se ha realizado con Bitbucket,
aprovechando su capacidad para crear repositorios priva-
dos.
La documentación se ha realizado con ShareLatex (una
página web que permite crear documentos de Latex en
lı́nea y en grupo) para la entrega del informe final y con
Microsoft Word para el resto.
Por último, se ha utilizado Google Forms para dar ins-
trucciones a los jugadores y recoger los datos percibidos de
los usuarios y Google Drive como plataforma de descarga
de la versión de prueba. Los datos objetivos numéricos de
las pruebas se han guardado en XML y se han analizado en
Matlab.
Figura 13: Pirámide representando las tecnologı́as utiliza-
das por HaxeFlixel, la base siendo las de menor nivel. A.5. Riesgos y respuesta
Las tecnologı́as que HaxeFlixel incorpora son las si- Esta lista incluye algunos de los riesgos posibles para el
guientes, ordenadas de menor a mayor nivel: proyecto y su plan de contención/respuesta:
1. Externos impredecibles
Haxe: Lenguaje de programación base. Orientado a
objetos, similar a ActionScript 3.0 y exportable a varias a) Catástrofe natural - Poco probable, daño ca-
plataformas - Flash, Windows, Linux, Android, HTML5... tastrófico - Se debe asegurar la máxima frecuen-
Para este proyecto se han utilizado las dos primeras. cia de actualizaciones en el repositorio para evi-
tar perder progreso y poder avanzar con otro dis-
Lime: Api de gráficos de bajo nivel, encargada de positivo.
windowing, carga de ficheros e interacciones con OpenGL. 2. Legales
OpenFL: La API de gráficos de alto nivel. Basado en a) Problemas legales - Poco probable, daño mode-
Flash. rado - Se debe utilizar software libre o apropiada-
mente registrado, y se evitarán acciones que pue-
HaxeFlixel: El framework. Incluye la estructura base de dan infringir el copyright de Namco sobre el jue-
juego, las fı́sicas y clases y funciones comunes de juegos go original.
2D ya implementadas. 3. Internos no técnicos
Se ha escogido esta tecnologı́a porque se querı́a agilizar a) No alcanzar los objetivos propuestos a tiem-
el proceso de desarrollar el software a fin de tener tiempo po - Moderadamente probable, daño alto - Para
suficiente para hacer las pruebas con jugadores y analizar evitar no alcanzar los objetivos propuestos se de-
los datos. be mantener un cuidadoso control, seguimiento y
Siendo un framework orientado a juegos, el trabajo se priorización de los objetivos.
simplificarı́a bastante. Por otra parte, el estudiante tiene b) No definir suficientemente bien los objetivos -
bastante experiencia con ActionScript 3.0, reduciendo el Moderadamente probable, daño alto - Se debe te-
tiempo de aprendizaje de la nueva tecnologı́a. ner en todo momento claros los objetivos que se
han asignado en la reunión semanal.
Raúl Ramos Macı́as: Estudio sobre el uso de IAs basadas en comportamiento en Pac-Man 13
c) Tener mala metodologı́a de evaluación de da- contenido
tos - Moderadamente probable, daño moderado - La capa de estados es la capa donde se organizan los
Se debe asegurar que el procesamiento de los re- distintos estados del juego. Un estado o screeen es una
sultados y conclusiones que se extraigan de ellos parte del juego que tiene una función especifica y viene
sean correctos. acompañado de una interfaz gráfica en concreto. Por
d) No tener suficientes testers - Moderadamente ejemplo, el menú principal, el de pausa, la pantalla de
probable, daño moderado - Se debe tratar de ase- highscores y el propio juego serı́an estados distintos, este
gurar el mayor numero de participantes en las último llamado Playstate (estado de juego).
pruebas marcándose un mı́nimo, asegurándose La capa de gestores contiene agrupaciones de objetos con
de que los datos recogidos no son inverosı́miles entidad y las funciones comunes y de coordinación entre
y teniendo cautela en las conclusiones sacadas en ellos que estos necesitan. Por ejemplo, hay un gestor de
función del tamaño de la muestra. fantasmas que tiene referencias a ellos y tiene funciones
para liberarlos de la House, para que entren en modo
e) Aprendizaje - Altamente probable, daño mode-
Fright, para salir de él...O el gestor de puntos, que informa
rado - Se debe considerar un margen de aprendi-
de cuantos quedan por recoger o han sido recogidos.
zaje en la planificación general.
La capa de objetos son los objetos con entidad, como los
4. Técnicos fantasmas, los puntos o el propio Pac-Man. Contiene las
funciones y parámetros propios del objeto.
a) Problemas con las tecnologı́as - Altamente pro- La capa gráfica contiene la representación visible del
bable, daño moderado - Siendo una tecnologı́a en objeto.
desarrollo, es inevitable. Se deben asegurar mar-
genes de resolución de errores en la planificación El sistema es dirigido y jerárquico, por lo que entidades
semanal. de una misma capa no pueden interaccionar entre ellas.
b) Perdidas de datos - Poco probable, daño alto - Por ejemplo, el encargado de comprobar colisiones entre
Mantener al dı́a los repositorios para mitigar el los fantasmas y Pac-Man no son los dos implicados, si no
daño. que se encarga el primer elemento de capas superiores que
c) Problemas de rendimiento - Moderadamente tienen en común. En este caso, serı́a el Playstate, que com-
probable, daño pequeño - Se debe controlar los probarı́a la colisión y en caso de ocurrir avisarı́a al gestor de
recursos consumidos por el software a lo largo fantasmas y a la clase Pac-Man para que actuaran adecua-
del desarrollo del proyecto para que un funcio- damente.
namiento incorrecto no afecte negativamente el Esta organización evita muchos problemas derivados de re-
juego. ferencias cruzadas y listeners ineficientes, y permite ampliar
el juego con facilidad y orden.
A P ÉNDICE B: P LANIFICACI ÓN DEL SOFTWA -
RE
B.2. Modelo Fantasma-Modulo
El diseño de los fantasmas tenı́a que tener bien dife-
B.1. Modelo de capas renciada la parte modificable de la no modificable, según
El modelo organizativo de elementos del juego ha sido lo establecido en las restricciones. Para ello, el modelo
un aspecto muy importante del proyecto, y el perı́odo de diseñado consta de dos clases: la base fantasma y el módulo.
diseño duró toda una semana antes de ser lo suficientemente
adecuado como para empezar la implementación. La base fantasma incluye los gráficos y las funciones
genéricas e invariantes del fantasma. También incluye
parámetros de velocidad, animaciones y se encarga del
desplazamiento, entre otros. Contiene una referencia a un
módulo.
El modulo es una clase que funciona como un çerebro”.
Existe un modulo base que sirve como interfaz e incluye
tres funciones; dónde ir cuando se está persiguiendo a
Pac-Man, dónde ir cuando se está en Fright y dónde ir
cuando el fantasma está muerto y tiene que resucitar.
Cada fantasma - Blinky, Pinky... - tiene un modulo perso-
nalizado que hereda de esta clase e implementa estas tres
Figura 14: Capas del juego base funciones según su estrategia particular.
El modelo se basa en una serie de capas abstractas Todos los fantasmas son el mismo ”base fantasma”,
de organización que cumplen propósitos especı́ficos pero al crearlos se les puede asignar cualquiera de estos
y organizadas de forma jerárquica. Una representación módulos personalizados. Cuando la base fantasma se
gráfica se puede observar en la Figura 14. encuentre en una situación cuya respuesta depende de
La capa de Framework es, como su nombre indica, la capa la estrategia del fantasma, le pedirá instrucciones al
de contenido de HaxeFlixel, en la cual se basa el resto del módulo, logrando que dos implementaciones iguales de un
14 EE/UAB TFG INFORMÀTICA: IAs de comportamiento en Pac-Man
Figura 15: Pantalla de selección de fantasmas.
fantasma se comporten de forma distinta.
Siguiendo este modo la creación de nuevas IAs es muy
fácil, pues consiste únicamente en crear un nuevo módulo
personalizado, editar las funciones heredadas y, al crear un
fantasma, asignárselo.
El juego incluye una pantalla de selección de fantas-
mas donde se puede elegir libremente la personalidad de
cada uno de los cuatro fantasmas entre todas las existentes
(Figura 15), lugar donde se decide qué módulos se aplican
a los cuatro fantasmas.