MARIO A.I.
Inteligente Mejorado
Sebastián Misael Rodríguez Bernal
S11A
Escuela Tecnológica Instituto Técnico Central
Ingeniería de Sistemas
Sistemas Expertos
Bogotá D.C
Resumen
Este documento presenta el diseño y desarrollo mejorado de un agente inteligente
para el videojuego Mario, extendiendo la implementación original mediante la
incorporación de capacidades avanzadas de uso de power-ups y un sistema de toma de
decisiones basado en árboles de decisión jerárquicos. El sistema implementa estrategias
específicas para manejar situaciones críticas como enemigos próximos y precipicios,
priorizando siempre la supervivencia del personaje. La arquitectura del agente se
fundamenta en la teoría de agentes inteligentes, demostrando capacidades de reactividad,
proactividad y racionalidad en entornos dinámicos y complejos.
Palabras clave: inteligencia artificial, agentes inteligentes, árboles de decisión,
videojuegos, Mario, toma de decisiones.
Tabla de contenido
Resumen ................................................................................................................................. 2
1. Introducción ........................................................................................................................ 5
1.1 Contexto y Planteamiento del Problema ...................................................................... 5
2. Objetivos del Trabajo ......................................................................................................... 6
3. Marco Teórico .................................................................................................................... 7
3.1 Arquitectura de Agentes Inteligentes ........................................................................... 7
3.2 Árboles de Decisión en Videojuegos ........................................................................... 7
4. Implementación de Mario AI ............................................................................................. 7
4.1 Instalación y Configuración del Entorno Mario AI ...................................................... 7
4.2 Proceso de Compilación y Ejecución ........................................................................... 8
4.3 Verificación y Solución de Problemas ......................................................................... 8
5. Implementación del Sistema Mejorado .............................................................................. 9
5.1 Arquitectura General del Agente .................................................................................. 9
5.2 Árbol de Decisión Principal ......................................................................................... 9
5.3 Manejo de Enemigos Próximos y Manejo precipicio ................................................... 9
5.4 Comparación con la Implementación Original ........................................................... 14
5.5 Entorno gráfico (percepción mejorada). ..................................................................... 15
5.6 Estados del agente mejorado ...................................................................................... 16
6. Conclusiones y Trabajo Futuro ........................................................................................ 17
6.1 Conclusiones Principales ............................................................................................ 17
6.2 Líneas de Trabajo Futuro............................................................................................ 18
7. Referencias .................................................................................................................... 18
1. Introducción
1.1 Contexto y Planteamiento del Problema
El desarrollo de agentes inteligentes para videojuegos representa un desafío
significativo en el campo de la inteligencia artificial, requiriendo la capacidad de procesar
información del entorno en tiempo real y tomar decisiones óptimas bajo restricciones
temporales estrictas. El videojuego Mario, con su dinámica de plataformas y múltiples tipos
de obstáculos, constituye un entorno ideal para implementar y evaluar diferentes
arquitecturas de agentes inteligentes. La Teoría de Agentes (Russell & Norving, 2020)
establece que un agente inteligente es un sistema capaz de percibir su entorno mediante
sensores y actuar sobre dicho entorno mediante actuadores, con el objetivo de maximizar
una medida de rendimiento. Los agentes inteligentes se caracterizan por propiedades como
autonomía, reactividad, proactividad y racionalidad, todas ellas implementadas en el agente
Mario mejorado.
2. Objetivos del Trabajo
Este trabajo tiene como objetivo principal extender la implementación original del
agente Mario mediante:
• La incorporación de un sistema de uso estratégico de power-ups
• El diseño e implementación de un árbol de decisión jerárquico para manejo de
situaciones críticas
• La optimización de las estrategias de supervivencia en entornos complejos
• La mejora de la capacidad de evaluación de riesgos en tiempo real
3. Marco Teórico
3.1 Arquitectura de Agentes Inteligentes
Según Wooldridge (2009), un agente inteligente debe poseer las siguientes
propiedades fundamentales:
1. Autonomía: Capacidad de operar sin intervención directa
2. Reactividad: Capacidad de percibir el entorno y responder a cambios
3. Proactividad: Capacidad de exhibir comportamiento orientado a objetivos
4. Racionalidad: Capacidad de seleccionar acciones que maximicen la medida de
rendimiento
3.2 Árboles de Decisión en Videojuegos
Los árboles de decisión constituyen una técnica fundamental en la implementación
de comportamientos de personajes no jugadores (NPCs) en videojuegos. Como señalan
Millington y Funge (2019), los árboles de decisión permiten modelar comportamientos
complejos mediante la descomposición jerárquica de decisiones, facilitando la
implementación y el mantenimiento del código.
4. Implementación de Mario AI
todo esa explicacion hazla en 3 parrafos
4.1 Instalación y Configuración del Entorno Mario AI
El proyecto Mario AI Framework fue descargado desde el repositorio oficial de
GitHub ([Link] que contiene la
implementación completa del competition de 2009. La estructura del proyecto incluye
directorios para el código fuente (src/), bibliotecas externas (lib/), y recursos del juego. Para
la configuración del entorno de desarrollo, se requirió Java JDK 8 o superior, verificando la
instalación mediante los comandos java -version y javac -version. El framework se
organiza en paquetes que contienen los agentes AI, escenarios de ejecución y el motor
principal del juego Mario.
4.2 Proceso de Compilación y Ejecución
La compilación se realizó mediante PowerShell en Windows usando el
comando javac -encoding UTF8 -d classes -cp "lib/*" $files, donde $files contiene todos los
archivos Java del directorio src/. Este comando especifica codificación UTF8, directorio de
destino classes, e incluye todas las bibliotecas JAR necesarias. Para la ejecución, se
utilizó java -cp "classes;lib/*" [Link], que carga las clases compiladas y
bibliotecas, iniciando el escenario principal del juego. El agente
mejorado ForwardJumpingAgent se integró en la ruta src/ch/idsia/ai/agents/ai/ y se verificó
su correcto funcionamiento ejecutando con el parámetro -ag
[Link].
4.3 Verificación y Solución de Problemas
Tras la compilación y ejecución, se verificó el correcto funcionamiento mediante la
aparición de la ventana del juego con Mario controlado automáticamente por el agente
mejorado. Para resolver problemas comunes se implementaron scripts de automatización
([Link] y [Link]) que simplifican el proceso de desarrollo. Los errores más frecuentes
incluyeron versiones incompatibles de Java, solucionados actualizando a JDK 8, y
problemas de classpath, resueltos asegurando la correcta inclusión de todos los directorios
necesarios en el parámetro -cp durante la ejecución.
5. Implementación del Sistema Mejorado
5.1 Arquitectura General del Agente
El agente Mario mejorado implementa una arquitectura basada en árboles de
decisión que procesa 24 frames por segundo, evaluando continuamente el estado del
entorno y seleccionando la acción óptima en cada momento.
5.2 Árbol de Decisión Principal
5.3 Manejo de Enemigos Próximos y Manejo precipicio
Estrategias por Tipo de Enemigo
Tabla 1: Estrategias para Diferentes Tipos de Enemigos
Estrategia Estrategia Condiciones
Tipo de Enemigo
Primaria Secundaria Especiales
Salto sobre Disparo con Siempre evitable
Goomba/Koopa
enemigo fuego con salto
Retroceso Nunca saltar
Spiky/Púas Evasión inmediata
estratégico encima
Enemigos Evaluación de Disparo Agacharse si altura
Voladores altura selectivo baja
Estrategia Estrategia Condiciones
Tipo de Enemigo
Primaria Secundaria Especiales
Esquive por
Bullet Bill Avance rápido Patrón predecible
agachamiento
Estrategias por Tipo de Precipicio
Tabla 2: Estrategias para Diferentes Anchuras de Precipicio
Anchura Estrategia Técnica Requisitos
1-2 Capacidad de salto
Salto normal Impulso básico
casillas normal
3-4 Necesita espacio para
Salto con impulso Carrera + salto
casillas carrera
Búsqueda
>4 casillas Plataformas/rebotes Evaluación de alternativas
alternativa
4.4 Manejo de desplazamiento
Tablas de Estrategias de Desplazamiento
Tabla 1: Estrategias por Estado de Movimiento
Objetivo Acciones
Estado Velocidad Precaución
Principal Disponibles
Escaneo
Evaluar
Detenido 0% Máxima completo,
amenazas
decisión inicial
Objetivo Acciones
Estado Velocidad Precaución
Principal Disponibles
Progresar Avance, salto,
Avanzando 70-100% Media
eficiente disparo
Mantener Ajuste aéreo,
Saltando 50-80% Alta
control preparar caída
Evasión,
Retrocediendo 30-60% Máxima Supervivencia
replanificación
Tabla 2: Estrategias por Tipo de Obstáculo
Tipo Estrategia Estrategia
Condiciones Riesgo
Obstáculo Primaria Secundaria
Bloque Ruta
Salto sobre Altura saltable Medio
sólido alternativa
Bloque Romper con Mario
Salto sobre Bajo
rompible salto grande/fuego
Bloque Acercarse Salto para Cualquier
Muy bajo
power-up directo alcanzar estado
Precipicio
Salto normal Carrera + salto Distancia ≤ 2 Bajo
pequeño
Precipicio Carrera + Evaluar
Distancia 3-4 Medio
medio salto alternativas
Tipo Estrategia Estrategia
Condiciones Riesgo
Obstáculo Primaria Secundaria
Precipicio Cambio de Búsqueda
Distancia > 4 Alto
grande ruta plataformas
Tabla 3: Estrategias por Distancia a Enemigos
Distancia Zona Comportamiento Velocidad Atención
0-2
Peligro Evasión inmediata 40-60% Máxima
casillas
3-4
Evaluación táctica 60-80% Alta
casillas Precaución
5-6 Preparación
Alerta 80-90% Media
casillas ofensiva
≥7 casillas Seguro Avance normal 90-100% Baja
5.4 Comparación con la Implementación Original
Tabla 3: Comparativa de Características
Implementación Original
Característica Implementación Mejorada
Uso de power-ups No implementado Estratégico y contextual
Manejo de enemigos Básico y genérico Específico por tipo
Limitada a detección Cuantitativa y
Evaluación de precipicios
binaria estratégica
Manejo de situaciones Comportamiento Evaluación de riesgos
críticas tiempo real predefinido en tiempo
Capacidad de extensión
Limitada Arquitectura modular
5.5 Entorno gráfico (percepción mejorada).
La percepción de Mario la realiza a partir de la observación de una matriz de
tamaño 22×22, que le permite tener en todo momento un control del entorno en el que se
encuentra en cada instante.
El videojuego está formado por una interfaz gráfica formada por una matriz de
tamaño 22×22, en el que el agente (Mario) está centrado en dicha matriz.
A partir de los valores de cada posición de la matriz, se puede tener una percepción
de la situación en la que se encuentra el agente dentro de la pantalla. Los valores de cada
matriz hacen referencia principalmente a la situación del terreno y la posición
de los enemigos en cada instante.
MEJORA IMPLEMENTADA:
Se ha extendido la capacidad de percepción para incluir detección de enemigos en
línea recta (columnas 12-16, filas 10-12) para uso óptimo del power-up de fuego.
En la siguiente figura se muestra un ejemplo gráfico de lo comentado anteriormente.
Los valores son:
- El "0" es el fondo de la pantalla.
- El "-10" es el suelo de la pantalla.
- El "-11" es el terreno elevado de la pantalla.
- Los demás valores son elementos del juego con los que Mario podrá interactuar.
5.6 Estados del agente mejorado
Los estados de Mario que tiene en cuenta a la hora de decidir la acción a ejecutar se pueden
dividir en dos tipos. Un tipo de estados que hacen referencia al tamaño de Mario, y otro que
se refiere a la situación de Mario en la pantalla (en el aire, en la tierra, etc):
Mario grande y Mario fuego:
• existen acciones que se ejecutan de manera distinta en función del tamaño de Mario.
MEJORA: Ahora incluye comportamiento ofensivo con disparo de fuego.
Mario pequeño:
está en su mínimo tamaño, por lo que hay acciones que debe tener en cuenta.
En el aire:
Mario está en el aire. En este estado hay acciones que no se pueden realizar.
En la Tierra:
Mario está justo encima del suelo. En este estado se pueden realizar todas las
acciones. También, es el estado de inicio.
Si hay piraña en una tubería
es una comprobación en forma de estado debido a que el agente Mario realiza una
acción u otra dependiendo de si la hay un enemigo ("piraña") en un obstáculo ("tubería").
Enemigos sobre Mario
también es una comprobación en forma de estado. Si justo encima de Mario existe
algún enemigo, éste tendrá una serie de acciones a realizar diferentes del resto de estados.
NUEVO ESTADO: Enemigos en línea recta
Permite decidir cuándo usar el power-up de fuego de manera estratégica.
6. Conclusiones y Trabajo Futuro
6.1 Conclusiones Principales
• La implementación de árboles de decisión jerárquicos permite manejar
eficientemente la complejidad de la toma de decisiones en entornos dinámicos como
los videojuegos de plataformas.
• La clasificación específica de tipos de enemigos y la correspondiente
especialización de estrategias resulta en una mejora significativa en la tasa de
supervivencia del agente.
• La evaluación cuantitativa de riesgos en tiempo real permite al agente tomar
decisiones más informadas en situaciones críticas.
6.2 Líneas de Trabajo Futuro
1. Implementación de algoritmos de búsqueda A* para planificación de rutas
óptimas, siguiendo el trabajo de Baumgarten (2009).
2. Incorporación de técnicas de aprendizaje por refuerzo para optimizar las
decisiones basándose en experiencia previa.
3. Desarrollo de un sistema de memoria a corto plazo que permita al agente
recordar patrones de comportamiento de enemigos.
4. Implementación de cooperación entre múltiples agentes para escenarios
multijugador.
7. Referencias
• Baumgarten, R. (2009). *A* Search for Mario AI*. Imperial College London.
Recuperado de
[Link]
tition
• Millington, I., & Funge, J. (2019). *Artificial Intelligence for Games* (3rd ed.).
CRC Press.
[Link]
ming/Artificial%20Intelligence%20for%[Link]
• Wooldridge, M. (2009). *An Introduction to MultiAgent Systems* (2nd ed.). John
Wiley & Sons.
[Link]
• Torre Abaitua, J., Barco Nuñez, J. A., & Bañon Peñuelas, J. M. (2009). *Mario
A.I.* Universidad Carlos III de Madrid. [Documento interno de trabajo]
• Mario AI Competition. (2009). *Mario AI Framework Documentation*.
Recuperado de [Link]
• Mario AI Benchmark. (2012). *Mario AI Framework GitHub Repository*.
[Link]
• Infinite Mario Bros. (2008). *Source Code and Documentation*.
[Link]
• Stack Overflow. (2009-present). *Mario AI Implementation Discussions*.
[Link]
• Reddit - /r/gameai. (2010-present). *Mario AI Community Discussions*.
[Link]
• AI Game Dev. (2008-2015). *Mario AI Competition Forums*. [Archivado]
[Link]
• Game Development Stack Exchange. (2010-present). *Mario Physics and AI
Questions*. [Link]
• Mario AI Competition Wiki. (2009). *Technical Specifications and API
Documentation*. [Link]
• Mario Engine Documentation. (2010). *Sprite Values and Game Mechanics*.
[Link]
• Game AI Pro Wiki. (2012-present). *Platformer AI Techniques*.
[Link]
• Baumgarten, R. (2009). *Infinite Mario A* Implementation*.
[Link]
• Schmitt, A. (2010). *Mario AI Competition Entries Collection*.
[Link]
Framework/tree/master/src/ch/idsia/ai/agents
• Togelius, J. (2009). *Mario AI Competition Framework*.
[Link]
• Game Mechanics Database. (2010). *Super Mario Bros. Physics Analysis*.
[Link]
• GitHub Issues. (2009-present). *Mario AI Framework Discussion*.
[Link]
• Baumgarten, R. (2009). *Winning the Mario AI Competition* [Video]. YouTube.
[Link]
• Russell, S., & Norvig, P. (2020). *Artificial Intelligence: A Modern Approach* (4th
ed.). [Link]
[Link]