TAZ-PFC-2010-091


Desarrollo de una inteligencia artificial para un juego de baloncesto

Clerencia Pérez, Isaac
Gutiérrez Pérez, Diego (dir.)

Universidad de Zaragoza, CPS, 2010
Informática e Ingeniería de Sistemas department,

Ingeniero en Informática

Abstract: El trabajo realizado en este proyecto ha sido el desarrollo de un juego de baloncesto con una inteligencia artificial para que una persona pueda jugar contra ella. El resultado es el primer simulador deportivo 3D bajo una licencia libre. En primer lugar se hizo un análisis del proyecto en el que se estudió el juego completo con especial énfasis en la inteligencia artificial. A continuación se realizó un diseño de alto nivel de los principales subsistemas del juego. En cuanto a la estructura general del juego, se planeó un bucle principal con soporte para diferentes estados de juego, utilizando una pila para mantener los estados actualmente en ejecución, incluyendo menú, partido y pausa. De esta manera el estado encargado de recibir eventos y actualizar los gráficos y otras variables del juego es el que se encuentra en el tope de la pila. Es muy sencillo volver de un estado al anterior pues sólo tenemos que desapilar el tope. La siguiente parte importante fueron las estructuras de datos para el partido (jugadores, equipos y partido), sus contrapartes gráficas en 3D y la relación entre ellas. Además se programó las partes de simulación física para obtener un comportamiento realista de la pelota cuando rebota contra el suelo o el aro, así como para detectar colisiones entre jugadores o intercepciones de la pelota. Por último, la parte más importante fue la inteligencia artificial, objetivo principal del proyec- to. Una parte fundamental de la inteligencia artificial es la captura de información para poder tomar decisiones adecuadas. No es eficiente que la IA compruebe a cada momento el estado de todo el resto de jugadores, por lo que se desarrolló un sistema de eventos, de tal modo que la inteligencia artificial es notificada de cualquier hecho importante en el partido. Este sistema de eventos usa un patrón Observer de tal manera que los objetos que quieren recibir eventos pueden suscribirse a él. Contando con el sistema de gestión de eventos, se desarrolló una inteligencia artificial jerárquica contando con tres niveles fundamentales a nivel de jugador y un nivel superior de equipo. Los tres niveles de IA individual culminan en un sistema de acciones de alto nivel en el que es fácil dar instrucciones complejas a los jugadores. En el sistema de acciones se apoya la IA de equipo, basada en una máquina de estados capaz de reaccionar ante los eventos del partido para elegir el estado adecuado para actuar ante la situación actual del partido. Para incrementar la flexibilidad de la IA y ponerla al alcance del usuario final se implementó la posibilidad de modificar la IA mediante scripting sin necesidad de recompilar el juego. Es posible añadir o redefinir estados de la IA de equipo escribiendo sencillos ficheros en Javascript. Para ayudar a mejorar la IA se cuenta con un sistema de pruebas que permite definir escenarios y ejecutarlos de manera automática para comprobar el efecto que posibles cambios en la IA producen en el juego.


Free keyword(s): Inteligencia artificial ; IA ; Steering behaviors ; Physics simulation ; Collision detection ; Sports simulator ; Basketball ; Videogame
Tipo de Trabajo Académico: Proyecto Fin de Carrera

Creative Commons License

El registro pertenece a las siguientes colecciones:
Academic Works > Trabajos Académicos por Centro > centro-politecnico-superior
Academic Works > Final Degree Projects



Back to search

Rate this document:

Rate this document:
1
2
3
 
(Not yet reviewed)