Sie sind auf Seite 1von 2

Automatizacin de un juego de Arcade: Breakout

Daniel Crespo 0939441, Daniela Quintero 1324635


Universidad del Valle

Resumen- Este documento presenta el procedimiento realizado


para la construccin del juego conocido como Breakout, en el
cual se intenta romper una serie de BLOQUES con una pelota,
evitando que sta toque el suelo. Adems de poder jugar
manualmente, el aplicativo es capaz de jugar de manera
automtica, esto mediante una red neuronal artificial con una
capa oculta conocida como MLP (Red Multicapa). Los
resultados dependen muchsimo de las variables o caractersticas
elegidas para resolver el problema y de la calidad de los datos,
ms que de la cantidad.
I. Introduccin

Dada la complejidad del ejercicio, se opta por la construccin


de un Perceptrn Multicapa (MLP), el cual posee al menos
tres niveles de neuronas: la primera capa, o capa de entrada,
una segunda capa oculta y la tercera capa o capa de salida.
Este tipo de redes neuronales artificiales permite solucionar
problemas de clasificacin no lineales. En este tipo de red se Fig. 1. Interfaz grfica
utiliza el algoritmo Backpropagation, para poder estimar los
pesos sinpticos de las capas ocultas a partir del error en las 1.3. rea del Grfico
salidas. [1] Propsito: Muestra como tal el rea de juego en
funcionamiento. Se observan los bloques sin destruir, la
II. Metodologa pelota y la barra que ser controlada por el jugador o la
mquina de manera automtica.
Los pasos a grandes rasgos realizados para desarrollar el
juego, se muestran a continuacin. 1.4. Red neuronal
Para lograr el control automtico del juego, se programa la
1. Construccin de la GUI red neuronal multicapa. Los datos con los cuales entrena la
En primer lugar, se construye la interfaz grfica que permite red son aquellos datos guardados durante cada sesin exitosa
visualizar el juego, mover la barra, configurar algunas del juego.
opciones y activar el control automtico. En la Fig. 1 se logra
observar los diferentes botones creados, y el espacio para La red cuenta con dos entradas, tres salidas y una sola capa
visualizar el juego como tal. oculta con una sola neurona. Las dos entradas son:

1.1.Ball Features - Diferencia entre la posicin X de la pelota y la


Propsito: Posee cuatro botones, los botones superiores posicin X del extremo IZQUIERDO de la barra.
encontrados en la misma fila que Speed se utilizan para - Diferencia entre la posicin Y de la pelota y la
aumentar o reducir la velocidad del juego. Los botones posicin X del extremo DERECHO de la barra.
inferiores encontrados en la misma fila que Angle se
utilizan para aumentar o disminuir el ngulo (de izquierda a Y las tres salidas son valores binarios organizados en un
derecha) en el cual es lanzada la pelota. vector, que indican la accin a realizar.

1.2. Control Panel - [1 0 0] Si la barra debe moverse a la IZQUIERDA.


Propsito: El botn Left permite mover la barra hacia la - [0 0 1] Si la barra debe moverse a la DERECHA.
izquierda. El botn Right permite mover la barra hacia la - [0 1 0] Si la barra debe QUEDARSE QUIETA..
derecha. Al presionar el botn Trigger el juego comienza
con la configuracin dada (velocidad y ngulo de disparo de Los datos utilizados para el funcionamiento de la red fueron:
la bola). Cuando el usuario termina un juego y ste es exitoso, el 20% de los datos para prueba, el 20% para validacin y el
puede guardar los datos del juego, que sern usados para 60% para el entrenamiento. Adems se opt por entrenar con
entrenar la red neuronal. Finalmente, el botn de verificar 50 iteraciones y el mtodo de aprendizaje Levenberg
Net control permite poner el juego en modo automtico. Marquardt y limitar a 10 el nmero de pruebas de validacin
fallidas consecutivas.
III. Experimentacin Siendo as, la red fue entrenada con una velocidad de juego
mnima (1 frame/sec), para conseguir que la pelota nunca
La complejidad del juego radica en el correcto sobrepase los extremos de la barra, sin importar la direccin o
funcionamiento de la red neuronal, para que logre seguir la la velocidad en la que la pelota se mueva.
pelota en todo momento y no la deje tocar con la parte
inferior de la zona de juego. En primer lugar, se define una IV. Anlisis de resultados
tcnica de juego, que permitir obtener una serie de datos
consistentes: Durante la fase de entrenamiento, se trata de Al entrenar la red se obtuvo la grfica de performance que se
mantener siempre la posicin X de la pelota en el intervalo muestra en la Fig. 2, con lo cual se logra evidenciar que se
correspondiente a las extremos de la barra. Para lograr lo obtuvieron buenos resultados, dado que las curvas de prueba,
anterior, el jugador humano jug con la mnima velocidad validacin y entrenamiento se mantienen muy cercanas en el
disponible: SPEED = 1frame/sec. punto ms bajo posible.

Con esta tcnica, se llevaron a cabo solamente dos sesiones


de juego con un ngulo de lanzamiento de la bola igual a 45.
Adems de esto se hicieron variaciones en cuanto a los
porcentajes de datos con los cuales entrena la red y el mtodo
de aprendizaje utilizado, se corri varias veces el juego en
modo automtico y se decidi que combinacin logra
responder mejor con los datos obtenidos. El resultado final
fue de:

60% datos de entrenamiento.


20% datos de validacin.
20 % datos de prueba.

Se determin que la red interioriza el objetivo del juego slo


introduciendo los datos esenciales que indican que siempre la
barra debe seguir la posicin de movimiento de la pelota, y
evitando otros datos innecesarios.

Inicialmente, los datos que se capturan del juego son: Fig. 2. Performance de la red
- Posicin X de la pelota
V. Conclusiones
- Posicin Y de la pelota
- Posicin X del extremo izquierdo de la barra
Los resultados obtenidos manifiestan la gran influencia de los
inferior, la cual es controlada por el jugador
datos con los cuales entrena la red, para obtener soluciones
- Posicin X del extremo derecho de la barra inferior, exitosas. Se observ que no son necesarios grandes
la cual es controlada por el jugador
cantidades de datos, sino que basta con que sean bien
- Direccin X de movimiento de la pelota
elegidos.
- Direccin Y de movimiento de la pelota
Adems, es necesario definir correctamente las entradas que
Se observ que al incluir los datos X y Y de direccin de
realmente son significativas para alcanzar el objetivo
movimiento de la pelota y al ser entrenada la red con estos deseado, ya que si se ingresan ms datos de los requeridos,
datos, la red era incapaz de jugar correctamente con otros
esto representar exceso de ruido para el procesamiento de
ngulos de disparo de la pelota, as que incluir estos datos
los datos.
perjudica el comportamiento final del sistema, el cual debe
ser inmune al ngulo de lanzamiento de la pelota. Por otro
VII. Bibliografa
lado, la caracterstica ms importante para mantener un
control correcto sobre la bola es la DIFERENCIA entre las
posiciones de la barra y la pelota y no las POSICIONES [1] E. F. Caicedo y J. A. Lpez, (2009) Una aproximacin
ABSOLUTAS. prctica a las Redes Neuronales Artificiales

Despus de experimentar varias opciones, se concluy que


solo se requieren dos datos de entrada a la red:

- Diferencia entre la posicin X de la pelota y la


posicin X del extremo IZQUIERDO de la barra.
- Diferencia entre la posicin Y de la pelota y la
posicin X del extremo DERECHO de la barra.