B´Usqueda De Caminos En Mapas De Videojuegos
Total Page:16
File Type:pdf, Size:1020Kb
Grado en Ingenier´ıaInform´atica TRABAJO FIN DE GRADO BUSQUEDA´ DE CAMINOS EN MAPAS DE VIDEOJUEGOS Desarrollo de t´ecnicasde b´usquedade caminos con preprocesamiento para mapas de videojuegos Autor: Alvaro´ Parra de Miguel Tutor: Carlos Linares L´opez 22 de junio de 2015 Universidad Carlos III de Madrid \Hell, it's about time." Tychus Findlay i Agradecimientos Quiero mostrar mi agradecimiento a todas aquellas personas que de una forma u otra me han ayudado a realizar este proyecto. A Carlos Linares L´opez y Alvaro´ Torralba Arias de Reyna, porque sin su ayuda y dedicaci´on inestimables este proyecto no hubera sido posible. A toda mi familia y en especial a mis padres, por todo el apoyo y cari~noque siempre me han brindado. A mi novia Sayuri, por llenar de ilusi´onmi vida. A todos los profesores que me han impartido clase a lo largo de estos a~nos,por transmitirme sus conocimientos y ayudar a formarme como persona. A todos mis jefes y compa~neroscon los que he tenido el placer y la suerte de trabajar. Y a todos mis amigos a los que tanto quiero y con los he compartido tan gratos momentos. ii ´Indice Agradecimientos II ´Indice III ´Indice de Figuras VI ´Indice de Tablas VII 1. Introducci´on1 2. Estado de la Cuesti´on3 2.1. Videojuegos....................................3 2.1.1. Industria del videojuego.........................3 2.1.1.1. El inicio de la industria....................3 2.1.1.2. La crisis del 83.........................6 2.1.1.3. Evoluci´onhasta nuestros d´ıasy situaci´onactual......8 2.2. G´enerosen los videojuegos............................ 10 2.2.1. Acci´on................................... 10 2.2.2. Aventuras................................. 11 2.2.3. RPG (role-playing game)........................ 11 2.2.4. Estrategia................................. 12 2.2.5. Simulaci´on................................ 12 2.2.6. Casual................................... 12 2.3. Inteligencia Artificial en videojuegos...................... 13 2.3.1. T´ecnicasde IA aplicables en los videojuegos.............. 13 2.3.1.1. Pathfinding o b´usquedade caminos............. 13 2.3.1.2. M´aquinasde estado...................... 13 2.3.1.3. Aprendizaje por refuerzo................... 14 2.3.1.4. L´ogicadifusa o fuzzy logic.................. 14 2.3.2. Metas a conquistar............................ 14 2.3.2.1. Pathfinding o b´usquedade caminos............. 14 2.3.2.2. Conversaciones......................... 14 2.3.2.3. Historias din´amicas...................... 15 2.3.2.4. Modelar el comportamiento de los jugadores........ 15 2.3.2.5. Relaciones sociales....................... 15 2.3.2.6. Escalabilidad.......................... 15 2.4. Competici´on.................................... 16 iii Indice´ Alvaro´ Parra de Miguel 2.4.1. Definici´ondel problema......................... 16 2.5. Pathfinding.................................... 19 2.5.1. Grafo................................... 19 2.5.1.1. Waypoint o puntos de referencia............... 20 2.5.1.2. Navigation mesh o malla de navegaci´on........... 20 2.5.1.3. Voronoi............................. 21 2.5.1.4. Quadtree o ´arbol cuaternario................. 21 2.5.2. Heur´ıstica................................. 22 2.5.2.1. Distancia Manhattan..................... 23 2.5.2.2. Distancia euclidiana...................... 23 2.5.2.3. Distancia diagonal....................... 24 2.5.3. Algoritmo de b´usqueda......................... 24 2.5.3.1. Dijkstra............................. 24 2.5.3.2. A*................................ 25 2.5.4. Trabajos previos............................. 26 3. Objetivos 27 4. Desarrollo 28 4.1. An´alisisdel sistema................................ 28 4.1.1. Requisitos del sistema.......................... 28 4.1.2. Casos de uso............................... 31 4.2. Dise~nodel sistema................................ 34 4.2.1. Diagramas de clases........................... 34 4.2.2. Diagramas de secuencia......................... 36 4.3. Pruebas de software............................... 37 4.4. Algoritmo de b´usqueda.............................. 39 4.4.1. Regiones convexas............................ 41 4.4.2. Algoritmo para dividir el mapa..................... 42 4.4.3. B´usquedade los caminos........................ 46 4.4.3.1. Centroides........................... 47 4.4.3.2. Portales............................. 47 4.4.3.3. Versi´onfinal.......................... 48 5. Evaluaci´on 49 5.1. N´umerode regiones............................... 50 5.2. Comparaci´oncon el caso base.......................... 51 5.3. Competici´on.................................... 52 6. Conclusiones 54 6.1. Objetivos..................................... 54 6.1.1. Desarrollar un agente de pathfinding para la GPPC......... 54 6.1.2. Reducir el espacio de b´usqueda..................... 54 6.1.3. Algoritmo de b´usqueda......................... 54 6.1.4. Entorno gr´aficode pruebas....................... 55 6.2. Conclusiones finales............................... 55 7. L´ıneasFuturas 56 iv Indice´ Alvaro´ Parra de Miguel 8. Planificaci´ony Presupuesto 57 8.1. Planificaci´on................................... 57 8.1.1. Planificaci´onestimada.......................... 58 8.1.2. Planificaci´onreal............................. 58 8.2. Hardware y software usado........................... 59 8.2.1. Hardware................................. 59 8.2.2. Software.................................. 59 8.3. An´alisisecon´omico................................ 60 8.3.1. Recursos humanos............................ 60 8.3.2. Recursos de hardware.......................... 61 8.3.3. Resumen................................. 61 Bibliograf´ıa 62 v ´Indice de Figuras 2.1. Recreativa Pong de Atari............................4 2.2. Videoconsola Atari Pong.............................5 2.3. Videoconsola Magnavox Odyssey........................5 2.4. Nintendo Entertainment System........................7 2.5. Evoluci´onde las videoconsolas.........................8 2.6. Tipos de mapas.................................. 17 2.7. Movimientos permitidos............................. 18 2.8. Representaci´onde un mapa con un grafo.................... 19 2.9. Navigation mesh................................. 20 2.10. Regiones de Voronoi............................... 21 2.11. Quadtree..................................... 22 2.12. Distancia Manhattan............................... 23 2.13. Distancia euclidiana............................... 23 2.14. Distancia diagonal................................ 24 2.15. Algoritmo Dijkstra................................ 25 2.16. Algoritmo A*................................... 26 4.1. Diagrama de casos de uso............................ 32 4.2. Diagrama de clases de la interfaz gr´aficade pruebas............. 34 4.3. Diagrama de clases del agente.......................... 35 4.4. Diagrama de secuencia del preprocesamiento................. 36 4.5. Diagrama de secuencia de la b´usqueda..................... 37 4.6. Interfaz gr´afica.................................. 38 4.7. Representaci´onde un mapa con un grafo.................... 39 4.8. Regiones convexas................................ 41 4.9. Regiones c´oncavas................................ 41 4.10. Comparaci´onentre regiones convexas y regiones c´oncavas.......... 42 4.11. Diagram de flujo para generar regiones..................... 43 4.12. Mapa de tipo videojuego dividido en 128 regiones............... 44 4.13. Mapa de tipo laberinto dividido en 128 regiones................ 44 4.14. Mapa de tipo aleatorio dividido en 128 regiones................ 45 4.15. Mapa de tipo habitaciones dividido en 128 regiones.............. 45 4.16. Uso de centroides................................. 47 4.17. Uso de portales.................................. 47 4.18. Comparativa entre Dijkstra y A*........................ 48 8.1. Diagrama de Gantt - Planificaci´onestimada.................. 58 8.2. Diagrama de Gantt - Planificaci´onreal..................... 59 vi ´Indice de Tablas 4.1. Requisito AGE-F-01 Preprocesamiento de mapas............... 29 4.2. Requisito AGE-F-02 Almacenar informaci´on.................. 29 4.3. Requisito AGE-F-03 Cargar informaci´on.................... 29 4.4. Requisito AGE-F-04 Buscar caminos...................... 29 4.5. Requisito AGE-NF-01 Dimensiones de los mapas............... 30 4.6. Requisito AGE-NF-02 L´ımitede tiempo en la fase de preprocesamiento.. 30 4.7. Requisito AGE-NF-03 L´ımitede tama~nodel fichero resultante de la fase de preprocesamiento................................. 30 4.8. Requisito AGE-NF-04 L´ımitede hilos en la fase de preprocesamiento.... 30 4.9. Requisito AGE-NF-05 L´ımitede memoria en la fase de b´usqueda...... 30 4.10. Requisito AGE-NF-06 L´ımitede hilos en la fase de b´usqueda........ 30 4.11. Requisito AGE-NF-07 Prohibidas las comunicaciones............. 31 4.12. Requisito GRA-F-01 Representar adecuadamente el estado del mapa.... 31 4.13. Requisito GRA-NF-01 Dimensiones de los mapas............... 31 4.14. Caso de Uso CU01 Preprocesar mapa..................... 32 4.15. Caso de Uso CU02 Preparar la b´usqueda.................... 33 4.16. Caso de Uso CU03 Realizar la b´usqueda.................... 33 5.1. Experimentos con diferentes regiones...................... 50 5.2. Comparaci´ondel agente con el caso base.................... 51 5.3. Resultados competici´on- Map Set: All..................... 52 5.4. Resultados competici´on- Map Set: Game Maps................ 52 5.5. Resultados competici´on- Map Set: Mazes................... 52 5.6. Resultados competici´on- Map Set: Random.................. 53 5.7. Resultados competici´on-