[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
P R O G R A M A C I Ó N D E V I D E O J U E G O S C O N S D LEl segundo enfoque es el <strong>de</strong> los algoritmos <strong>de</strong> búsqueda. Es necesario un <strong>con</strong>ocimientorazonable sobre estructuras <strong>de</strong> datos como árboles y grafos. Una <strong>de</strong> las aplicacionesinteresantes, sobre todo para vi<strong>de</strong>ojuegos, es la busqueda <strong>de</strong> caminos (pathfinding).Seguramente has jugado a juegos <strong>de</strong> estrategia como Starcraft, Age of Empires y otros <strong>de</strong>lestilo. Pue<strong>de</strong>s observar que cuando das la or<strong>de</strong>n <strong>de</strong> movimiento a uno <strong>de</strong> los pequeñospersonajes <strong>de</strong>l juego, éste se dirige al punto indicado esquivando los obstáculos queencuantra en su camino. Este algoritmo <strong>de</strong> búsqueda en grafos es llamado A*. Tomemoscomo ejemplo el mapa <strong>de</strong> la mansión <strong>de</strong>l capítulo 2. Suponiendo que el jugardor está en lahabitación 1, éste es el arbol <strong>de</strong> los posible caminos que pue<strong>de</strong> tomar para escapar <strong>de</strong> lamansión.147 52 6 83 9Figura 7.1. Arbol <strong>de</strong> los posibles caminos <strong>de</strong>ntro <strong>de</strong> mapa <strong>de</strong> juegoCada círculo representa un nodo <strong>de</strong>l arbol. El número que encierra es el número <strong>de</strong>habitación. Si quisieramos en<strong>con</strong>trar la salida, usaríamos un algoritmo <strong>de</strong> búsqueda(como por ejemplo A*) para recorrer todos los posibles caminos y quedarnos <strong>con</strong> el quenos interesa. El objetivo es buscar el nodo 8, que es el que tiene la puerta <strong>de</strong> salida. Elcamino <strong>de</strong>s<strong>de</strong> la habitación 1 es: 1 4 5 8. El algoritmo A* a<strong>de</strong>más <strong>de</strong> en<strong>con</strong>trar el nodoobjetivo, nos asegura que es el camino más corto. No vamos a entrar en más <strong>de</strong>talle, yaque cae fuera <strong>de</strong> las pretensiones <strong>de</strong> este libro profundizar en la implementación <strong>de</strong>algoritmos <strong>de</strong> búsqueda.Por último, los sistemas basados en reglas se sirven, valga la redundancia, <strong>de</strong><strong>con</strong>juntos <strong>de</strong> reglas y hechos. Los hechos son informaciones relativas al problema y a suuniverso. Las reglas son precisamente eso, reglas aplicables a los elementos <strong>de</strong>luniverso y que permiten llegar a <strong>de</strong>ducciones simples. Veamos un ejemplo:Hechos: Las moscas tienen alas.Las hormigas no tienen alas.Reglas: Si (x) tiene alas, entonces vuela.Un sistema basado en <strong>con</strong>ocimiento, <strong>con</strong> estas reglas y estos hechos es capaz <strong>de</strong><strong>de</strong>ducir dos cosas. Que las moscas vuelan y que las hormigas no.106