Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen. La cada vez mayor importancia de la industria del videojuego y del ocio electrónico ha
provocado que algunas universidades estén incorporando materias afines en sus planes de estudios.
Este artículo presenta una experiencia innovadora de aprendizaje del desarrollo de sistemas expertos
(una rama de la inteligencia artificial) mediante una competición entre compañeros de clase dentro
de la asignatura optativa "Diseño de Videojuegos" de la titulación Ingeniería Técnica en Informática
de Sistemas. Para ello se ha desarrollado un entorno que simula un juego de tablero en el que se
enfrentan dos ejércitos realizando movimientos por turnos. La implementación se ha realizado en
C/C++ usando la biblioteca SDL para la interfaz gráfica y CLIPS para la explotación de sistemas
expertos. Cada alumno diseña e implementa una estrategia que mejora el módulo de inteligencia
artificial básico proporcionado para su ejército. Posteriormente se realiza una competición
enfrentando los ejércitos programados por los alumnos.
Palabras clave: Enseñanzas técnicas, sistemas expertos, competitividad, EEES.
1. INTRODUCCIÓN
La importancia que está teniendo en los últimos tiempos la industria del videojuego y del ocio
electrónico ha provocado que cada vez sean más las universidades que están incorporando materias
afines en sus planes de estudios. La Universidad de Cádiz ofrece desde este curso 2006/07 la
asignatura optativa de tercer curso "Diseño de Videojuegos" en su reciente plan de estudios de
Ingeniería Técnica en Informática de Sistemas de 2004.
Esta asignatura destaca por ser multidisciplinar, lo que facilita la aplicación de distintas estrategias de
enseñanza para temas concreto. Este artículo presenta una experiencia innovadora de aprendizaje del
desarrollo de sistemas expertos (una rama de la inteligencia artificial) mediante una competición entre
programas desarrollados por compañeros de clase.
Para ello se ha desarrollado un entorno que simula un juego de tablero en el que se enfrentan dos
ejércitos realizando movimientos por turnos. El entorno incluye el motor de simulación (control de
turnos, realización de movimientos, etc), un entorno gráfico para ver las partidas y un módulo muy
básico de inteligencia artificial para cada equipo que debe mejorar el alumno.
La actividad incluye una explicación del profesor sobre los aspectos básicos de los sistemas expertos
apoyada en ejemplos para que después cada alumno diseñe una estrategia que mejore el módulo de
inteligencia artificial básico de su ejército. Posteriormente los alumnos implementan dicha estrategia y
se realiza la competición en clase. En dicha competición se realizan simulaciones que enfrentan
ejércitos de dos alumnos funcionando de manera autónoma. Los ejércitos tienen idénticas
características pero cada uno lo controla el módulo de inteligencia artificial de un alumno.
2. LA ASIGNATURA
La asignatura "Diseño de Videojuegos" es optativa de tercer curso, con una carga de 6 créditos LRU
II Jornadas Nacionales de Metodologías ECTS
Badajoz, 19, 20 y 21 de septiembre de 2007
(4,5 créditos ECTS), dividido al 50% entre teoría y práctica (dos sesiones de dos horas semanales en el
segundo cuatrimestre). Destaca por ser una asignatura multidisciplinar, que integra conocimientos
de programación, inteligencia artificial, física, modelado, trabajo en grupo, etc.
La asignatura se imparte siguiendo un modelo similar al "Aprendizaje basado en proyectos": a
principio de curso los alumnos organizan grupos de tres alumnos que trabajarán juntos a lo largo del
curso en un proyecto cuyo objetivo es diseñar y programar un videojuego.
La asignatura cuenta con el apoyo indispensable de la herramienta de Campus Virtual de la
Universidad de Cádiz [1], basada en Moodle [2]. De esta forma se facilita enormemente el acceso de
los alumnos a los recursos necesarios en la signatura y también se facilita la comunicación entre
compañeros de clase y entre alumno y profesor
2.1. Organización de las clases
Las clases teóricas se dedican a explicar conceptos teóricos necesarios para realizar un videojuego
y proporciona tiempo para que el grupo decidida la forma de adaptar dichos conceptos a su
proyecto. Estos conceptos comprenden taxonomía de videojuegos, arquitectura genérica de un
videojuego, secuencia de diseño (metodología, modelado, consejos, buenas prácticas, etc),
aspectos a nivelar (jugabilidad, simulación, narrativa, dificultad, etc) e implementación (gráficos
en 2D y 3D, gestión de colisiones, incorporación de audio, inteligencia artificial, programación
con guiones, etc)
En las prácticas se dedican las primeras sesiones al uso de las herramientas básicas que requerirán
en el curso: gestión de proyectos, diseño digital, edición de audio, trabajo colaborativo, etc. Todo
el software usado en la asignatura es software libre por motivos éticos [3] y en consonancia con la
Declaración institucional del Consejo de Gobierno de la Universidad de Cádiz de apoyo al
software libre [4], lo que permite que los alumnos puedan usar todos el software y su
documentación adjunta en cualquier ordenador sin restricciones de licencias, versiones de
evaluación con restricciones y otros inconvenientes del software privativo. Además, este software
está instalado en los portátiles que ofrece en préstamo la Universidad de Cádiz Esta medida de
habilitar el préstamo de portátiles en las mismas condiciones que el préstamo de libros de
biblioteca facilita enormemente el trabajo autónomo de los alumno, sobre todo para ajustándose a
su horario personal.
Quizás de todas estas herramientas la que más llama la atención a los alumnos son las
herramientas para trabajo colaborativo, que permiten que varios alumnos ir trabajando en
diferentes módulos de su proyecto y después sincronizar sus cambios en un servidor central que
también guarda todas las versiones intermedias de los ficheros subidos por si fuera necesario
repasar cambios realizados.
En el resto de la prácticas los integrantes del grupo tienen reuniones para ir tomando decisiones
coordinarse, en las que principalmente toman decisiones sobre problemáticas que se encuentran en
el desarrollo del proyecto y, por supuesto, consultan con el profesor las dudas que no sepan
resolver.
2.2. Evaluación
La evaluación se compone en un 50% del trabajo individual y el otro 50% del trabajo en grupo.
En todas las evaluaciones se usan plantillas (que se suelen denominar rúbricas) que se hace
públicas antes de su evaluación. Se permite a los alumnos participar en la creación de dichas
plantillas.
A nivel individual se valora el trabajo del alumno en el proyecto, su participación en clase y en
Campus Virtual (donde las intervenciones en foros reciben una puntuación según su interés) y su
trabajo de sistemas expertos.
II Jornadas Nacionales de Metodologías ECTS
Badajoz, 19, 20 y 21 de septiembre de 2007
modificaciones que contribuyen a facilitar la programación del entorno, así como la posterior
mejora de los sistemas expertos que controlan cada ejército:
El juego se desarrolla en un tablero de 8 por 8 casillas. Participan dos jugadores, cada uno a cargo de
un ejército. Cada ejército consta de varios tipos de piezas, que se detallan en la Tabla 1.
Rey 1 1
Soldado 2 8
Lancero 3 2
Caballero 4 2
Héroe 6 1
Tabla 1: Valores y cantidades de fichas de cada ejército
Si el juego termina en empate (porque quedan los dos reyes se eliminan entre sí) se considerará
perdedor aquel ejército realizó el primer movimiento de la partida.
En clase se explica el funcionamiento de los sistemas expertos con ejemplos de reglas para el sistema
que se usará y se proporciona un conjunto de reglas básico para controlar los movimientos de los
miembros del ejército. Cada alumno lo mejorará en clase con ayuda del profesor si fuera necesario.
Posteriormente se organiza una competición eliminatoria entre alumnos. En cada enfrentamiento se
simulan tres partidas entre dos ejércitos, cada uno con la inteligencia artificial programada por un
alumno. El equipo que gane más partidas pasa a la siguiente ronda.
No se admiten modificaciones del módulo de Inteligencia Artificial durante la competición. Además
se comprueba que el conjunto de reglas de cada alumno asegure la terminación de la partida. Es
decir, que no se den situaciones cíclicas en las que ningún equipo ataque.
3.3. Sistema
Se ha desarrollado un entorno que simula el juego. Su nombre es "La batalla del Guadalete", en honor
a una de las batallas más importantes que han tenido lugar en la provincia de Cádiz. El sistema se
distribuye bajo licencia GNU/GPL y puedes descargarse desde la Forja de la Oficina de Software
Libre de la Universidad de Cádiz [7].
El entorno incluye el motor de simulación (control de turnos, realización de movimientos, etc), un
entorno gráfico para ver las partidas y un módulo muy básico de inteligencia artificial para cada
equipo. La implementación se ha realizado usando bibliotecas y sistemas libres: C/C++ para el
programa principal, la biblioteca SDL [8] para la interfaz gráfica y CLIPS [9] para la explotación de
sistemas expertos. Al ser todos estos componentes multiplataforma era posible tener el sistema
compilado en otros sistemas aparte de GNU/Linux, que fue el que se usó.
El sistema muestra un único tablero en el que se ve toda la información de las fichas en el paso actual.
Para ello se muestran las fichas con un color distinto según el ejército al que pertenezcan y si el valor
de una pieza es desconocido por el rival se muestra entre corchetes (como se ve en la figura 2).
Para facilitar la programación por parte de los alumnos y evitar trampas sólo es necesario que
4. SISTEMAS EXPERTOS
El diseño de sistemas expertos es una rama de la inteligencia artificial cuya finalidad es realizar
sistemas informáticos que simulen la capacidad de decisión de un experto humano en una materia
determinada. En la actualidad los sistemas expertos se usan con gran éxito en muchos campos de
la ciencia como la medicina o la ingeniería. Este apartado comenta las principales características
de los sistemas expertos.
4.1. Elementos de un sistema experto
Los principales elementos de los sistemas expertos basados en reglas son la base de conocimiento,
su motor de inferencia y la interfaz de usuario.
La base de conocimiento de un sistema experto es el conjunto formado por todo el conocimiento
que tiene el sistema en un momento dado. A partir de este conocimiento, el sistema infiere
información, que será, directa o indirectamente, la salida del sistema. En nuestro sistema esta
salida es el movimiento que se va a realizar en el turno actual (es decir, la ficha que se desea
mover y la casilla adyacente hacia la que se mueve)
En los sistemas basados en reglas el conocimiento se almacena en forma de hechos (afirmaciones
sobre el sistema) y reglas que permiten inferir información. Nuestro sistema genera
automáticamente una serie de hechos para cada equipo y turno. Estos hechos informan de la
posición y valor de todas las fichas propias, así como las posiciones de las fichas contrarias con su
valor si ha sido descubierto. A estos hechos se le suman todos los hechos que genere el módulo de
inteligencia artificial programado por el alumno.
El conjunto de reglas está formado por una serie de reglas con prioridades asignadas. En todo caso
deben existir una serie de reglas de prioridad baja, que se activarán sólo si no hay una regla más
prioritaria. Estas reglas acercar fichas al centro del tablero, de modo que si no se puede hacer un
movimiento "inteligente" (entendiendo como tal un movimiento programado por el alumno), por
lo menos se haga un movimiento que contribuya a que los ejércitos se enfrenten y la partida
acabe.
Por último, el motor de inferencia que incorpora el sistema CLIPS es una versión mejorada del
algoritmo Rete [10]. Este algoritmo aplica una serie de reglas del tipo si <condición> entonces
<acción> a un conjunto de datos para generar datos nuevos. En la agenda se tienen el conjunto de
reglas que se pueden activar en un momento dado, una de las cuales se ejecutará pudiendo
La evaluación, tanto como profesor, como por parte de los alumnos ha sido muy positiva. Como
profesor he observado un interés muy alto por parte de los alumnos en la experiencia, siendo
superior la media de consultas en tutorías o foros a la media de los demás temas.
Al final del curso se pasó un cuestionario a los alumnos para que valoraran, entre otros aspectos,
la adecuación de la competición como método para aprender sistemas expertos. La valoración
media fue de 4,77 sobre 5 puntos de máximo.
Por otro lado, los comentarios de los alumnos fueron muy positivos en todo salvo en un pequeño
problema que presentó el sistema (que ya ha sido subsanado). Sobre todo destacaban la
motivación extra que suponía competición entre compañeros, con los alicientes de que es una
competición basada en un trabajo previo, no en rapidez de movimientos o reflejos como suele ser
común en los videojuegos. También algunos comentaron que era la primera vez que realizaban un
programa y lo veían trabajar sin su intervención, dando una sensación muy reconfortante de
creación de un sistema inteligente.
También algunos alumnos se interesaron por colaborar con la asignatura el próximo curso como
alumno colaborador o realizar un Proyecto Fin de Carrera relacionado con el tema.
6. TRABAJO FUTURO
Tras los buenos resultados obtenidos y los comentarios recibidos se ha decidido mantener la
experiencia para el próximo curso sin grandes cambios.
Sin embargo, sí que se puede mejorar el sistema. En concreto se intentará mejorar la interfaz
gráfica de modo que sea más sencilla de usar y agradable, ofrecer una biblioteca virtual con los
equipos creados por otros alumnos de cursos anteriores y mejorar la integración entre los
componentes del sistema (pues actualmente la comunicación entre CLIPS y el programa principal
se hace por medio de un fichero de texto)
REFERENCIAS
[1] Campus Virtual de la Universidad de Cádiz. http://cvirtual.uca.es
[2] Herramienta de apoyo al e-learning Moodle. http://www.moodle.org
[3] Jesús M. González Barahona y otros. Software libre en la enseñanza informática. "Sobre
Software Libre" Editorial Dykinson, ISBN 84-9772-402-X.
[4] Boletín Oficial de la Universidad de Cádiz. Declaración institucional del Consejo de Gobierno
de la Universidad de Cádiz de apoyo al software libre. Universidad de Cádiz. Año II. No 19
(2004)
[5] López, B., Montaner, M., de la Rosa, J. Ll., “Utilización de un simulador de fútbol para
enseñar Inteligencia Artificial a Ingenieros”. En actas de las VII Jornadas sobre la Enseñanza
Universitaria en Informática (JENUI 2001). Palma de Mallorca, 2001.
[6] Información y reglas del juego de mesa Stratego. http://es.wikipedia.org/wiki/Stratego
[7] Página oficial del sistema "La batalla del Guadalete" en la Forja de proyectos de la OSLUCA
http://softwarelibre.uca.es:8080/Forja/proyectos/guadalete
[8] Biblioteca gráfica SDL. http://www.libsdl.org
[9] Entorno para la explotación de sistemas expertos CLIPS http://www.ghg.net/clips/CLIPS.html
[10] Charles L. Forgy. Rete. "A fast algorithm for the many pattern/many object pattern match
problem". Artificial Intelligence n.19, 1982.