Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Laberinto 3D: un instrumento para estimulación cognitiva de personas mayores Universidad Nacional del Centro de la Provincia de Buenos Aires Trabajo Final de la carrera Ingeniería de Sistemas Alumno: Manuel Christensen Montenegro Directora: Virginia Cifuentes Co-Director: Hernan Rocha Agradecimientos A mis papás, ya que fueron los que me permitieron ser el que soy y tener la posibilidad de poder estudiar esta carrera. Al resto de la familia por siempre preocuparse por mí y acompañarme con sus buenos deseos. A mis amigos, por siempre ser un gran apoyo, a la hora de los distintos retos que representó la carrera y también ayudarme en la preparación de las materias. Y a mi directora de tesis, por permitirme realizar este trabajo. 2 Resumen Los avances en la computación beneficiaron a muchas disciplinas de distintas formas. Nuestro enfoque está dirigido hacia las intervenciones tecnológicas en estudios de la cognición, precisamente en la estimulación cognitiva basada en programas para mantener y mejorar funciones ejecutivas clave como la atención, memoria o la velocidad de procesamiento. Nuestro estudio está dirigido a una persona mayor que tiene un cierto declive cognitivo debido al envejecimiento normal y quiere mantener un buen nivel cognitivo, pero también puede ser un estudiante o deportista de élite que desea tener el máximo rendimiento cognitivo en su actividad profesional. Las actividades de estimulación cognitiva se proponen como parte de una aplicación estilo videojuego implementado con técnicas de computación gráfica y realidad virtual. Las experiencias plantean resolver laberintos virtuales tridimensionales, recolectar objetos esparcidos dentro del laberinto (que ha dejado el profesional para fortalecer la memoria de trabajo o completar actividades lúdicas que refuerzan las habilidades complejas como son las funciones ejecutivas. La aplicación consta de una interacción intuitiva y la capacidad de llevar los registros de cada intento que se efectúa. Debido a la pandemia por Covid-19, esta herramienta de estimulación cognitiva fue probada en un grupo de adultos jóvenes obteniendo resultados promisorios que han sido recientemente publicados en la Revista Iberoamericana de Psicología (García y otros, 2022). 3 Índice Capítulo 1 Introducción 11 1.1 Motivación 15 1.2 Objetivos 16 1.3 Estructura de la tesis 17 Capítulo 2 Antecedentes y Marco Teórico 18 2.1 Entornos virtuales en el entrenamiento cognitivo 18 2.2 Procesos cognitivos estudiados 19 2.3 Programas actuales para estimulación cognitiva 21 2.3.1 Lista de programas 21 2.3.1.1 Brain Training del Dr. Kawashima 21 2.3.1.2 Big Brain Academy 22 2.3.1.3 Brain Challenges 24 2.3.1.4 Lumosity 25 2.3.1.5 Cognifit 26 2.3.1.6 NeuronUp 28 2.3.1.7 RehaCom 29 2.3.1.8 Gradior 30 2.3.2 Análisis de herramientas 32 2.4 Tecnologías para entornos virtuales de estimulación cognitiva 33 2.4.1 Unity 39 Capítulo 3 Solución Propuesta 42 3.1 Análisis de requerimientos 42 3.2 App Labyrinth 43 3.2.1 ¿Qué es la app Labyrinth? 43 3.2.2 ¿Cómo funciona la app Labyrinth? 44 3.2.3 ¿Cómo se utiliza la app Labyrinth? 45 3.2.4 Caso de Uso 45 4 3.2.4.1 Realizar el laberinto 46 3.2.4.2 Configurar los elementos de todos los laberintos 47 3.2.4.3 Configurar los elementos que se recolectan en un laberinto 48 3.2.4.4 Ver los registros 48 3.2.5 Cómo se construyen las Tareas 48 3.2.6 Decisiones de Diseño 49 3.2.7 Detalles Técnicos 49 3.3 Componentes del Sistema 50 3.3.1 Menú principal 50 3.3.2 Generador de Laberinto 55 3.3.3 Tareas 60 3.3.4 Sistema de registros 62 3.3.5 Personaje 63 3.3.6 Modelos 3D 65 3.3.7 Diseño de los laberintos 67 Capítulo 4 Resultados 70 4.1 Aplicación Resultante 70 4.1.1 Evaluación de Calidad 72 4.2 Resultados de la recolección de datos 73 4.2.1 Muestra 73 4.2.2 Resultados 73 4.2.2.1 Índice de Memoria de trabajo 74 4.2.2.2 Velocidad de procesamiento 74 4.2.2.3 Índices de validez ecológica 74 4.2.2.4 Desempeño global en la tarea 75 4.3 Desafíos y problemas 76 Capítulo 5 Conclusiones 78 5.1 Soluciones y mejoras a la aplicación actual 78 5.1.1 Mejorar el sistema de almacenado de los datos 79 5 5.1.2 Sistema de usuarios 79 5.1.3 Realizar un sistema de visualización de los datos recolectados 79 5.1.4 Tener un sistema dentro de la aplicación para el desarrollo de los niveles 80 5.1.5 Mejorar el sistema de configuración para que sea más amigable y comprensible 80 5.1.6 Que la aplicación esté disponible a más plataformas 81 5.2 Trabajos Futuros 81 Bibliografía 83 6 Índice de figuras Figura 1.1: Proporción de personas mayores de 65 años en el mundo para 2050. Fuente ONU www.epdata.es. 12 Figura 1.2: Evolución de la población mundial por grupos etarios. Fuente ONU 2019. 13 Figura 1.3: Sistema de rehabilitación marcha - C-Mill VR+ desarrollado por Motekforce. 14 Figura 1.4: Uso de Lentes de RV para bienestar emocional (Lin y otros, 2018). 15 Figura 2.1: Distintos ejercicios planteados en Brain Training del Dr. Kawashima. 23 Figura 2.2: Desempeño del Jugador: peso del cerebro en gramos (arriba) y valoración en las 5 categorías (abajo). 24 Figura 2.3: Ejemplos de ejercicios de Big Brain Academy la consigna y qué categoría se está evaluando. 25 Figura 2.4: Imagen del Juego Brain Challenge. 25 Figura 2.5: Captura de Lumosity. 26 Figura 2.6: Captura de Cognifit. Categorías y Subcategorías para los entrenamientos. 28 Figura 2.7: Capturas de Cognifit para móvil. 28 Figura 2.8: Selección de juegos en NeuronUp. 29 Figura 2.9: Juego de NeuronUp. 30 Figura 2.10: Juego del módulo de Atención y Concentración. 30 Figura 2.11: Módulos de Screening de RehaCom. 31 Figura 2.12: Juego de memoria en Gradior. 32 Figura 2.13: Interfaz del Terapeuta en Gradior. 32 Figura 2.14: Juego Dr. Mario para la NES. 35 Figura 2.15: Juego Portal. 35 Figura 2.16: Juego de celular Candy Crush. 36 Figura 2.17: Imagen del juego Cut the Rope. 36 7 Figura 2.18: Imagen del juego 2048. 36 Figura 2.19: Imagen del Motor Rpg Maker. 38 Figura 2.20: Imagen del motor Godot. 39 Figura 2:21: Imagen del Motor Pico-8 39 Figura 2.22: Imagen del motor Unity. 40 Figura 2.23: Imagen del motor Unreal Engine 4. 40 Figura 3.1: Figura de usuario realizando el Primer laberinto. 45 Figura 3.2: Imagen desde arriba del Primer laberinto. 45 Figura 3.3: Diagrama de casos de uso de la aplicación. 47 Figura 3.4: Diagrama de Componentes del sistema. 51 Figura 3.5: Imagen del menú principal. 52 Figura 3.6: Imagen del menú de configuración general. 52 Figura 3.7: Imagen del menú de configuración de los objetos recolectados en un nivel particular. 52 Figura 3.8: código para la transición entre el menú principal y la configuración general. 53 Figura 3.9: código de Inicialización de la clase estática PersistentData. 54 Figura 3.10: Ejemplo de JSON de la configuración de la aplicación. 54 Figura 3.11: Código del botón iniciar para cambiar de escena o mostrar un error en caso de que no se rellenará la casilla del nombre. 55 Figura 3.12: Código que almacena la configuración general en el PersistentData y el archivo de configuración. 56 Figura 3.13: Datos que se pueden ingresar al generador de laberinto del Package Maze Generator. 57 Figura 3.14: Imagen de laberinto de ejemplo junto con su configuración. 57 Figura 3.15: Imagen de otro laberinto utilizando un algoritmo distinto. 58 Figura 3.16: Contenido de las celdas que usa el generador de laberinto. 59 Figura 3.17: Código que carga los materiales que se instancian como elementos recolectables en el laberinto. 60 8 Figura 3.18: Código de instanciación de los objetos y de la flecha. 60 Figura 3.19: Verificador del orden en el que se agarraron los objetos. 61 Figura 3.20: Código de almacenamiento del objeto y destrucción llamado dentro de la función OnCollisionEnter. 61 Figura 3.21: Código del comparador del orden puesto por el evaluado con el orden correcto y almacenador de los resultados. 62 Figura 3.22: Imagen deejemplo de la flecha. 63 Figura 3.23: Código donde se genera y escribe el archivo que registra el tiempo que tarda un usuario en llegar a la meta con todos los requisitos cumplidos en un nivel. 64 Figura 3.24: Imagen de cómo se veía el personaje (la bola) y la cámara en el programa original. 65 Figura 3.25: Código de colisionador del personaje. 66 Figura 3.26: Modelo 3D de las paredes del laberinto. 66 Figura 3.27: Modelo 3D de los pilares del laberinto. 67 Figura 3.28: Modelo 3D del piso del laberinto, del inicio del laberinto Asset y de la meta del laberinto respectivamente. 67 Figura 3.29: Algunos de los elementos que se usaron para los alrededores del nivel 3. 67 Figura 3.30: Imagen del prefab con una imagen de ejemplo. 68 Figura 3.31: Criterio planteado para el primer laberinto. 69 Figura 3.32: Imagen desde arriba del segundo laberinto. 69 Figura 3.33: Imagen desde arriba del tercer laberinto. 70 Figura 3.34: Imagen desde arriba del cuarto laberinto. 70 Figura 4.1: Archivo generado del registro de recolección de objetos del primer nivel por la aplicación. 72 Figura 4.2: Resultado de importar el archivo de la figura 4.1 en hoja de cálculo de Google. 72 Figura 4.3: Imagen de los elementos que conforman al nivel 4 junto con 9 los detalles de valores que se pueden modificar en el generador del laberinto para realizar nuevos niveles 73 10 Capítulo 1 Introducción La población mundial está envejeciendo. El número de personas mayores de 65 años en el mundo ha ido en aumento en los últimos años, y está previsto que esta tendencia continúe en alza en las próximas décadas. Según la OMS, entre 2015 y 2050, se duplicará el porcentaje de las personas mayores de 60 años, pasando del 12% al 22% (OMS, 2016). Figura 1.1: Proporción de personas mayores de 65 años en el mundo para 2050. Fuente ONU www.epdata.es. La Figura 1.1 muestra una proyección de la población mundial realizada por la ONU en septiembre de 2020. El mapa indica cómo será la proporción de personas mayores de 65 años en el mundo para 2050. Atendiendo al porcentaje que representaría en la población de cada país, los más envejecidos serían Corea del Sur, Japón y España. Es decir, las personas viviremos un período cada vez más prolongado de nuestras vidas como adultos mayores (Ferri et al., 2005), con características biológicas específicas y condiciones de salud propias de la vejez. Asimismo, prevé que el número de personas de 80 años o más se triplique, pasando de 143 millones en 2019 a 426 millones en 2050. La Figura 1.2 muestra la evolución de la población por grupos etarios (ONU, 2019). Por un lado, esta transformación demográfica tiene consecuencias en el mercado de trabajo, porque 11 http://www.epdata.es la población en edad laboral se reduce progresivamente. Si le añadimos que los servicios sociales se financian con las aportaciones de las personas que cotizan y estas cada vez representan una proporción menor, el sistema de bienestar también se verá afectado. Para algunas personas, llegar a esta edad significa tener la oportunidad de estudiar, viajar o tener más tiempo para el ocio y el cuidado personal, pero esto solamente es posible cuando se goza de buena salud, se tienen los recursos económicos suficientes y, normalmente, se posee una red familiar y de amigos consolidados. Si, por el contrario, a las situaciones de empobrecimiento se les añaden la dependencia y la soledad ⎯muchas veces no deseada⎯ en las que se encuentran muchas personas en el tramo final de su vida, vivir más años puede convertirse en algo negativo. Figura 1.2: Evolución de la población mundial por grupos etarios. Fuente ONU 2019. Llegados a los 65 años es conveniente explorar distintas estrategias de estimulación cognitiva para mantener u optimizar un mejor funcionamiento cognitivo hasta una edad más avanzada y desarrollar un envejecimiento activo y saludable. Ciertamente, el envejecimiento es inevitable, pero es particular en cada persona y, para atenuar los cambios físicos, psicológicos y sociales que se producen, es importante promover el envejecimiento activo de las personas, adoptar hábitos de vida saludables y entrenar las funciones cognitivas. Al envejecer comienzan a aparecer las fallas cognitivas que hacen ver que el funcionamiento de la memoria está disminuyendo. Las señales son los olvidos de nombres propios, la pérdida de objetos, la dificultad para mantener la atención y la 12 concentración. Con el tiempo, se agudiza el deterioro y se agravan las funciones ejecutivas, indispensables para planificar y tomar las decisiones correctas, o para encontrar las palabras idóneas en un momento y contexto propio. También sobreviene una mayor lentitud en la ejecución de tareas y en la resolución de problemas. El entrenamiento cognitivo surge como una estrategia para prevenir estos signos del envejecimiento en la memoria. Es decir, mediante la estimulación cognitiva se busca acelerar la velocidad de procesamiento de la información, mejorar la atención y la percepción, y fortalecer las funciones ejecutivas, es decir, aquellas capacidades que nos permiten alcanzar las metas propuestas en la vida como lo son planificar, organizar, guiar, revisar, regularizar y evaluar el comportamiento necesario para adaptarse eficazmente al entorno (Bauermeister, 2008). Figura 1.3: Sistema de rehabilitación marcha - C-Mill VR+ desarrollado por Motekforce. Las nuevas tecnologías permiten realizar el entrenamiento cognitivo a través de la digitalización de algunas actividades lúdicas propuestas en talleres u otros programas dedicados (Fernández-Calvo, Bernardino; Rodríguez-Pérez, Roberto; Contador, Israel; Rubio-Santorum, Alicia; Ramos, Francisco 2011), pero el uso del videojuego como herramienta de entrenamiento es más eficiente si se trata de un gran número de participantes y sesiones de entrenamiento constantes. 13 La realidad virtual (RV) ofrece una alternativa apropiada para entrenar habilidades cognitivas en ambientes seguros. Puede ofrecer una propuesta no-inmersiva como una totalmente inmersiva (D’Cunha et al., 2019). Por ejemplo, la Figura 1.3 muestra una aplicación de RV no-inmersiva dedicada a la rehabilitación física con estimulaciones psico motrices (C-Mill, 2021) y la figura 1.4, una aplicación de RV inmersiva donde la persona mayor usa dispositivos montados en la cabeza para sumergirse en un entorno 3D que ofrece estímulos auditivos y visuales en 360° (Lin y otros, 2018). Figura 1.4: Uso de Lentes de RV para bienestar emocional (Lin y otros, 2018). Finalmente, este trabajo aporta una plataforma basada en tecnología de Realidad Virtual (RV) para ayudar a mejorar los resultados de las intervenciones psicológicas de entrenamiento cognitivo de personas mayores (Schneider, 1992; Tart, 1991). La plataforma ofrece una tarea interesante, y cognitivamente desafiante, que le permite al profesional evaluar aspectos cognitivos del adulto mientras está jugando (Howcroft et al., 2012). La plataforma se desarrolló para equipos personales y permite a los profesionales crear experimentos de estimulación cognitiva dentro de un laberinto 3D. Los laberintos permiten estudiar la orientación espacial de las personas a partir de las estrategias seleccionadas para su recorrido (Laure Rondi-Reig, Géraldine H. Petit, Christine Tobin, Susumu Tonegawa, Jean Mariani and Alain Berthoz. (2006). 14 Impaired Sequential Egocentric and Allocentric Memories in Forebrain-Specific–NMDA Receptor Knock-Out Mice during a New Task Dissociating Strategies of Navigation; Morris, Garrud, Rawlins, & O'Keefe. (1982). Place navigation impaired in rats with hippocampal lesions; Korthauer LE, Nowak NT, Frahmand M, Driscoll I. (2017) Cognitive correlates of spatial navigation: Associations between executive functioning and the virtual Morris Water Task. Behav Brain Res. ; Nedelska, Z., Andel, R., Laczó, J., Vlcek, K., Horinek, D., Lisy, J., Sheardova, K., Bures, J., & Hort, J. (2012). Spatialnavigation impairment is proportional to right hippocampal volume. Proceedings of the National Academy of Sciences of the United States of America, 109(7), 2590–2594), evaluar la retención de información del participante cuando necesita memorizar las ubicaciones de algunos objetos cotidianos ubicados en ese mundo virtual (Koenig, Sebastian & Crucian, Gregory & Duenser, Andreas & Bartneck, Christoph & Dalrymple-Alford, John. (2011). Validity evaluation of a spatial memory task in virtual environments. ), o construir, mantener y recuperar el mapa cognitivo de la ciudad virtual y encontrar algunos puntos que le sirvan de referencia (Iaria G, Chen J-K, Guariglia C, Ptito A, Petrides M. (2007). Retrosplenial and hippocampal brain regions in human navigation: complementary functional contributions to the formation and use of cognitive maps. European Journal of Neuroscience 25: 890-899). Es importante destacar que, debido a la situación de emergencia sanitaria del COVID-19, la plataforma pudo probarse en un grupo pequeño de personas mayores. Los resultados preliminares han demostrado que resultó de gran ayuda para estimular las funciones cerebrales asociadas con la disminución del funcionamiento cognitivo que se produce en las personas mayores. 1.1 Motivación Este trabajo se enmarca en las investigaciones del Proyecto de Incentivos 03/C298 en el área Media.Lab del Instituto PLADEMA, Facultad de Ciencias Exactas. El Media.Lab es un espacio multidisciplinario centrado en la investigación y desarrollo de aplicaciones de computación gráfica, realidad virtual e interacción humano-computadora. Sus integrantes desarrollan simuladores de entrenamiento 15 de operarios para la capacitación en procesos, uso de maquinarias y vehículos de maniobrabilidad compleja, entre otras innovaciones que priorizan la formación de oficio, integral y segura. Las investigaciones más recientes pretenden expandir estas tecnologías a distintas áreas del conocimiento como el ámbito educacional, la estimulación cognitiva y las neurociencias. El equipo de trabajo es interdisciplinario y está conformado por tecnólogos de UNCPBA y psicólogos especialistas en gerontología del IPSIBAT de la Universidad Nacional de Mar del Plata. En la actualidad se trabaja en el desarrollo de una plataforma de software para crear videojuegos aplicados a la evaluación y el entrenamiento social y cognitivo de niños con autismo, un prototipo experimental para estudios de la memoria en ambientes virtuales inmersivos (una CAVE recrea espacios naturales donde los sujetos de experimentación realizan actividades) y una plataforma web que usa RV para estimular la orientación espacial usando tecnologías Google y entrenar las habilidades básicas y ejecutivas de los adultos mayores en 360°. En este trabajo se detalla el desarrollo de una plataforma de software para generar experiencias de recorridos espaciales, empleando un laberinto 3D virtual para el diagnóstico y entrenamiento de funciones cognitivas en adultos mayores con trastornos de memoria y atención. La idea es mejorar su calidad de vida cotidiana. La aplicación cuenta con un editor y está diseñada siguiendo los protocolos establecidos por los psicólogos especialistas en el área. Permite complementar, junto con otras herramientas existentes, la investigación y recopilación de datos de distintos tipos de ejercicios relacionados con los aspectos cognitivos incluidos en los tratamientos paliativos de los adultos mayores. Así, la tecnología adquiere un rol protagónico como instrumento posibilitador que permite realizar ciertas acciones que se suman y potencian áreas dispares. 1.2 Objetivos Se desarrolló una aplicación de escritorio no-inmersiva para el entrenamiento y estimulación cognitiva de personas mayores. Con ella, el profesional puede 16 construir automáticamente laberintos y configurar el kit provisto para efectuar las distintas actividades de estimulación cognitiva con niveles de complejidad diferentes. El kit permite incorporar elementos para que la persona desarrolle estrategias de ubicación temporo-espacial, técnicas para retener información y aumentar la flexibilidad cognitiva. Además, extrae información del experimento para luego calcular la efectividad y eficiencia del entrenamiento en cada intento. Así, el profesional puede introducir parámetros de medición en cualquier parte del juego y hacer valoraciones puntuales. Por ejemplo, la latencia, que significa cuánto tiempo se tarda el jugador en resolverlo y construir su estrategia, y a partir de ello es posible obtener una representación gráfica inmediata de su desempeño en el juego. La evaluación de la herramienta desarrollada en cuanto a resultados generados (prueba de efectividad), interfase de usuario y facilidad de uso estuvo restringida a un conjunto menor de pruebas debido a la situación sanitaria de COVID-19. Esta plataforma podría servir de apoyo para la detección temprana de problemas cognitivos (García y otros, 2022). La información recolectada en los experimentos se comparó con otros instrumentos de detección estándar usados para el deterioro cognitivo, como el conocido test MiniMental. 1.3 Estructura de la tesis En este capítulo se describieron el contexto y la formulación del problema, los objetivos generales y específicos tomados en cuenta para desarrollar el laberinto 3D virtual preparado para estimulación y entrenamiento cognitivo. En el capítulo 2 se presenta una breve revisión del estado del arte de proyectos similares, realizando un análisis de los productos actuales. Además, introduce los conceptos teóricos y tecnológicos empleados para el desarrollo del presente trabajo, entre los cuales se desarrollará sobre los distintos tipos de memoria y la herramienta utilizada para el desarrollo de la aplicación. 17 En el capítulo 3 se detallan los métodos usados, los objetivos y requerimientos del proyecto y se define el diseño y la implementación de la aplicación, junto con todas las decisiones de diseño que se tomaron para su desarrollo. El Capítulo 4 presenta los resultados del trabajo. Primeramente, se describen los detalles técnicos de la implementación de la plataforma, su documentación, y un conjunto acotado de las observaciones experimentales efectuadas. Además, se provee la evaluación cualitativa de la solución implementada. El Capítulo 5, se exponen algunas conclusiones y se presentan posibles trabajos futuros que marcan direcciones en las cuales se podría ampliar el trabajo realizado. 18 Capítulo 2 Antecedentes y Marco Teórico Este capítulo reseña las principales contribuciones sobre la utilidad de los entornos virtuales, basada en la habilidad para mimetizar algunas tareas del mundo real y establecer la eficacia de la herramienta en comparación con los test neuropsicológicos estándar. Además, desarrolla brevemente los conceptos básicos para comprender las funciones cognitivas que proponen los protocolos de experimentación planteados en los diferentes ejercicios que hoy dispone la plataforma de RV. Por otra parte, ofrece una descripción generalizada de los proyectos de software más relevantes utilizados en terapias lúdicas de entrenamiento cognitivo relacionados con este trabajo. Finalmente, resume las tecnologías emergentes usadas para materializar los entornos virtuales. 2.1 Entornos virtuales en el entrenamiento cognitivo Los instrumentos neuropsicológicos tradicionales de evaluación y estimulación con lápiz y papel presentan serias limitaciones, entre las que pueden mencionarse el sesgo por deseabilidad social y la falta de validez ecológica. Ambas cuestiones son superadas por las pruebas informatizadas, conservando una buena confiabilidad y validez (Chicchi Giglioli et al., 2021). Dentro de este grupo, las intervenciones en entrenamiento cognitivo y rehabilitación cognitiva a partir de realidad virtual (RV) han sido ampliamente extendidas (Zygouris et al., 2015). Las tecnologías de RV permiten alusuario ingresar a un entorno 3D generado por computadora e interactuar con el mismo (Lee et al., 2019; McFadyen et al., 2017; Zygouris et al., 2015). Sin embargo, existen ciertos pros y contras en el uso de la RV tanto para la evaluación como para el entrenamiento de los usuarios. Por un lado, hay ciertas barreras que impiden extender su utilización en la población 19 en general, como ser: la aún hoy poca evidencia sobre su efectividad a largo plazo, ausencia de buenos y amigables diseños para los usuarios y los problemas ergonómicos (Lee et al., 2019). Y, por otro lado, la utilización de entornos 3D interactivos de realidad virtual permite: una formación válida y dinámica (Rose, Brooks & Rizzo, 2005); un aprendizaje activo durante una actividad motivadora; capacidad para controlar el grado de dificultad de la tarea y capacidad para medir el comportamiento y el desempeño de un individuo; la adaptación de los instrumentos a los objetivos específicos de un tratamiento; la posibilidad de proporcionar ejercicios repetitivos y aumentar gradualmente la dificultad de los mismos; reduce la orientación proporcionada por el terapeuta y el sesgo que esto introduce (Alashram et al., 2019; Schultheis et al., 2001; Riva et al., 2003; Rizzo, 2004). Probablemente, la principal ventaja del uso de la RV en evaluación y entrenamiento cognitivo sea la posibilidad de obtener resultados con validez ecológica. Se entiende por validez ecológica al grado de "representatividad" y la “generalización” de una tarea (Burgess et al., 2006). Burgess (2006) plantea que, la representatividad, refleja el grado en que un test se corresponde en contenido y contexto con una situación de la vida cotidiana; y la generalización hace referencia a la posibilidad de transferir los resultados obtenidos en las pruebas, a la vida diaria. McFadyen y otros (2017) definen de manera similar la validez ecológica, acuñando los términos “veracidad” -por representatividad- y “verosimilitud” -por generalizabilidad-. 2.2 Procesos cognitivos estudiados En la vida cotidiana, las actividades realizadas por las personas suelen englobarse en el concepto de “actividades de la vida diaria” (DLA). Estas pueden ser básicas o instrumentales (Romero Ayuso, 2007). Las básicas tienen que ver con el mantenimiento del estado basal del organismo y, por lo tanto, están dirigidas a uno mismo. Por ejemplo, comer, vestirse o ir al baño. Las instrumentales, en cambio, están relacionadas con la manipulación de objetos, como el manejo del dinero, tomar un autobús, extraer dinero de un cajero automático, cocinar comida siguiendo una receta. Este último tipo de actividades, involucra un grupo de procesos cognitivos denominados funciones ejecutivas (Júlio et al., 2019). 20 Las funciones ejecutivas (FEs) son un conjunto de procesos cognitivos top-down (Diamond & Ling, 2020), de orden superior, involucrados en el control deliberado y voluntario del comportamiento, el pensamiento y las emociones (Miyake & Friedman, 2012). Dichos procesos participan en situaciones nuevas y complejas para el individuo que implican un esfuerzo cognitivo y donde las respuestas sobre aprendidas o automáticas resultan insuficientes (Diamond A., 2013). Estos procesos se han asociado con las redes neuronales frontales, esenciales para el comportamiento dirigido a objetivos, en los que la planificación, la inhibición y la flexibilidad para cambiar el foco atencional resultan fundamentales (Doherty et al., 2015). Los entrenamientos con RV han mostrado efectividad y una mejora en los desempeños en tareas que involucren FEs post entrenamiento (Liao et al., 2019). Por ello, el objetivo de este trabajo fue diseñar y poner a prueba un instrumento que evalúe procesos ejecutivos mediante VR, con la posibilidad de ser implementado para entrenamiento y rehabilitación cognitiva. Así como las funciones ejecutivas mencionadas anteriormente, hay otros procesos planteados para entrenar la cognición en la plataforma desarrollada: la atención, percepción espacial y la memoria de trabajo. La atención es un proceso cognitivo que nos permite seleccionar y concentrarnos en los estímulos más relevantes. Puede distinguirse entre atención arousal (si estamos adormilados o enérgicos), focalizada (si podemos centrar la atención en algún estímulo), sostenida (si podemos sostener esa atención por un período largo de tiempo), selectiva (si podemos atender a un estímulo en la presencia de otros, los distractores), alternante (si podemos alternar la atención entre dos estímulos diferentes) y dividida (si podemos atender a dos estímulos diferentes en simultáneo) (Sohlberg y Mateer, 1989). La percepción espacial es tener conciencia del espacio y del posicionamiento, de la forma y el tamaño de los objetos o de las personas respecto de otras y poder reconocerlos, independientemente de la perspectiva visual mantenida. Para informarnos sobre el entorno, usamos todo nuestro cuerpo, podemos reproducir mentalmente los objetos, y anticiparnos a los cambios que 21 existan en el espacio. Por ejemplo, al momento de tomar un camino o una dirección, debemos ser capaces de escoger la perspectiva que más encaje a lo que necesitamos. Para ello necesitamos orientarnos de alguna de las dos formas que existen: orientación cartesiana, basada en el uso de los puntos cardinales (norte, sur, este y oeste) o usar el sistema de punto de referencia. Elegir un objeto como un árbol, una casa u otros como referencia para volver al sitio que necesitamos. La memoria de trabajo se refiere a las estructuras y procesos usados para el almacenamiento temporal de información (memoria a corto plazo) y la elaboración de la información (Baddeley et al., 1974). Describe la memoria temporal “en línea” que utilizamos los humanos para realizar ciertas tareas y resolver determinados problemas, como recordar un número telefónico antes de agendarlo o realizar cálculos mentales en el supermercado para comprobar que el dinero nos alcanza. El entrenamiento constante y adecuado permite mejorar la memoria de trabajo. Para una correcta estimulación son necesarios 15 minutos al día, dos o tres días a la semana.(Memoria de Trabajo Neuropsicología de las funciones ejecutivas, Cognifit). 2.3 Programas actuales para estimulación cognitiva 2.3.1 Lista de programas A continuación, se desarrollan los conceptos principales de los productos seleccionados que han sido utilizados en la actualidad para terapia con adultos mayores o, simplemente, para el entrenamiento cognitivo o que estén relacionadas con el tópico. 2.3.1.1 Brain Training del Dr. Kawashima Brain Training del Dr. Kawashima ¿Cuántos años tiene tu cerebro? Consiste en un videojuego de lógica y armado de rompecabezas, desarrollado y distribuido a partir de 2005 por Nintendo, y está accesible desde http://www.nintendo.com/ds. En el juego, el jugador se encuentra con el rostro del Doctor Kawashima, quien hace la función de mentor en los distintos ejercicios del juego, a su vez este orienta a los jugadores a medida que progresan en el juego y les brinda consejos. En la figura 2.1 se observan algunas capturas del videojuego. Los ejercicios propuestos se plantean 22 http://www.nintendo.com/ds para que las personas se ejerciten cognitivamente, a través de la resolución de problemas de cálculo aritmético, tareas de memorización, lectura y ortografía, o la resolución de rompecabezas tipo sudoku. Figura 2.1: Distintos ejercicios planteados en Brain Training del Dr. Kawashima. El juego provee gráficos sencillos del desempeño del jugador, una batería de ejercicios y cuestionarios que ayudan a determinar la edad de su cerebro. A medida que se va progresando en el juego, también se desbloquean niveles más complejos que plantean nuevos retos cognitivos. 2.3.1.2 Big Brain Academy Big Brain Academy es un videojuego de lógica creado y distribuido por Nintendo a partir de 2005, del cual también existe una versión desarrollada para Wii en2007. En este no hay un mecanismo de juego, ya que el juego simplemente está compuesto de un conjunto de puzles sin que ninguno tenga mayor prioridad sobre los otros. En este existen tres modos distintos de juego los cuales son: Prueba, Práctica y Competición. Además, puede emplearse en modo multijugador de hasta 8 jugadores en simultáneo. El progreso del jugador se mide después de una serie de 23 pruebas planteadas en 5 categorías o etapas: Pensar, Memorizar, Analizar, Calcular e Identificar). La figura 2.2 muestra el desempeño asociado al peso alcanzado en su cerebro: 1240 gramos. Cuanto más pese, más inteligente es, o mejor es el tiempo de reacción. Junto con el peso también se muestra un gráfico el cual refleja el desempeño que tuvo el jugador en cada una de las categorías. Figura 2.2: Desempeño del Jugador: peso del cerebro en gramos (arriba) y valoración en las 5 categorías (abajo). En cada modo, el juego propone actividades entre las siguientes 5 categorías, las cuales son: Pensar (Think) la cual plantea preguntas de lógica; Memorizar (Memorize) el cual plantea ejercicios sobre recordar imágenes, patrones, etc.; Analizar (Analyse) que trata de relacionar patrones de imágenes y las secuencias; Calcular (Compute) que trata de todo tipo de ejercicios que traten más de cuestiones aritméticas e Identificar (Identify) entre una secuencia de imágenes, dos idénticas. 24 Figura 2.3: Ejemplos de ejercicios de Big Brain Academy la consigna y que categoría se está evaluando. 2.3.1.3 Brain Challenges Brain Challenges es un juego similar al Big Brain Academy desarrollado por Gameloft Beijing en 2008. En la figura 2.4 se muestra a las actividades (rompecabezas) agrupadas en 4 categorías: Lógica, Matemática, Visual y Enfoque. Dependiendo de la versión, el juego presenta distintos modos: Prueba, Entrenamiento Gratuito, Creativo, Estrés, Modo para Niños, Entrenador Personal y Diagramas Cerebrales. Figura 2.4: Imagen del Juego Brain Challenge. 25 2.3.1.4 Lumosity Lumosity es un programa online desarrollado por Lumos Labs lanzado en el año 2007. Consta de actividades lúdicas de corte cognitivo para mejorar la memoria, la atención y la flexibilidad. Las actividades para ejercitarse se plantean para mejorar los tiempos de reacción, poner a prueba los reflejos y la velocidad para realizar ejercicios de identificación. Además, existen ejercicios para memorizar imágenes, posiciones de objetos, o búsquedas de elementos que permitirán tener una mayor concentración. La flexibilidad cognitiva plantea poner a prueba la capacidad del jugador de adaptarse rápido a cambios de tareas a través de cambio de patrones, ya sea de colores, formas, contextos, etc. También propone la resolución de problemas de corte espacial y lógico y ejercicios para practicar la agilidad mental para hacer problemas matemáticos. Figura 2.5: Captura de Lumosity. Esta aplicación en particular fue sujeta a varios casos de uso sobre los beneficios de la misma, entre algunos de los que se podría citar está el impacto el utilizar la misma en el aprendizaje, como es el estudio realizado por Kpolovie y PeterJame (Kpolovie, Peter James) en el cual su estudio arrojó que el uso de la misma mejoraba la capacidad de aprendizaje de las personas, incluso al punto tal que las personas que usaban la aplicación por más tiempo tenían mejores resultados en este aspecto. Otro caso de estudio es el realizado por BB Connor y C Shaw (Loes Koorenhof, Sallie Baxendale, Natalie Smith, Pam Thompson) en el cual se realizó un estudio utilizando tres pacientes adultos que sufrieron heridas cerebrales y viendo el impacto que tenía en estos la aplicación hasta después de hacer 24 sesiones, las cuales se realizaron en intervalos de dos sesiones 26 semanales en las cuales jugaban entre 15 a 20 minutos los juegos del programa de entrenamiento de la misma y otros 15 a 20 minutos de jugar cualquier juego dentro de la misma. De esta prueba los resultados fueron positivos en los tests de Woodcock-Johnson en lo que respecta a habilidades de aprendizaje visual auditivo y al delay de las mismas. También está el estudio realizado por Loes Koorenhof, Sallie Baxendale, Natalie Smith y Pam Thompson (BB Connor, C Shaw) en el cual se hizo un estudio usando 20 pacientes que padecían de epilepsia de lóbulo temporal izquierdo y 22 pacientes de control (sin ningún antecedente) los cuales entre sus entrenamientos recibieron unas 40 sesiones gratuitas de la aplicación. De este estudio se pudo comprobar que la ganancia en las cuestiones de recuerdo verbal eran menores con este tipo de entrenamiento, pero que sí tuvo impacto en el aprendizaje verbal. 2.3.1.5 Cognifit Cognifit es una empresa de software fundada en 1999. La cual desarrolla evaluaciones cognitivas en línea, software y aplicaciones de entrenamiento cerebral. Entre sus productos figuran una decena de tests cognitivos, ejercicios de estimulación cognitiva en niños y en adultos. Además, provee un kit de herramientas para distintos tipos de profesiones y juegos mentales agrupados en cinco categorías: Memoria, Percepción, Razonamiento, Coordinación y Atención. Cada una de estas categorías se subdivide internamente según el tipo de entrenamiento deseado. Por ejemplo, las actividades de Memoria se subdivide internamente en las subcategorías de Memoria a Corto Plazo, Denominación, Memoria de Trabajo, Memoria Visual a Corto Plazo, Memoria No Verbal y Memoria Fonológica a Corto Plazo, como se puede ver en la figura 2.6. 27 Figura 2.6: Captura de Cognifit. Categorías y Subcategorías para los entrenamientos. También cabe destacar que muchos de sus servicios están atados a métodos de pago, en los cuales hay métodos de pago único, como es el caso de los tests, o de suscripciones, en el caso de los juegos. Pero con la posibilidad de accederlos tanto por la página web como a través de su aplicación móvil, la cual se puede ver en la figura 2.7 Figura 2.7: Capturas de Cognifit para móvil. 28 2.3.1.6 NeuronUp NeuronUp es una herramienta web destinada a ayudar a los terapistas ocupacionales y otros profesionales involucrados en la rehabilitación cognitiva y procesos de estimulación. Cuenta con numerosos materiales y recursos para diseñar sesiones de tratamiento, además de un administrador de pacientes para organizar y guardar los resultados de cada sesión, y un portal de selección de juegos para el paciente, como se puede observar en la figura 2.8. Una de las piezas fundamentales de NeuronUp es que los profesionales cuentan con la posibilidad de personalizar las sesiones, lo cual se puede realizar sin importar donde se encuentre el paciente. El administrador de actividades es la sección que permite al profesional diseñar sus propias intervenciones, adaptándolas a las necesidades y capacidades del paciente. Como tal, cuenta con cientos de actividades distribuidas en diferentes áreas como memoria, atención, lenguajes, orientación y cognición social, entre otras, y permite que los ejercicios puedan ser utilizados tanto para funciones cognitivas básicas como también actividades de la vida cotidiana. Figura 2.8: Selección de juegos en NeuronUp. Por otro lado, el administrador de resultados registra en resultados cuantitativos legibles todas las actividades realizadas por el paciente en la computadora, con la posibilidad de imprimirlo en papel. También, permite registrar comentarios del profesional, obteniendo el control y la organización de las actividades de cada paciente, haciendo que sea fácil verificar los resultados de 29 ellos, y observar rápida y eficazmente como estos progresan en las diferentes áreas. Figura 2.9: Juego de NeuronUp. 2.3.1.7 RehaCom RehaCom es un sistema de software para la rehabilitación cognitiva asistida por ordenador. Este software ayuda al terapeuta a rehabilitar los trastornos cognitivos que afectan a aspectos concretos de la atención, la concentración, la memoria, la percepción, las actividades de lavida cotidiana y muchos otros. Consta de aproximadamente 29 módulos de terapia y está disponible en 27 idiomas diferentes, lo que permite a los pacientes trabajar en su propia lengua materna. Además, es autoadaptable y el nivel de dificultad aumenta o disminuye según el rendimiento del paciente. Figura 2.10: Juego del módulo de Atención y Concentración. 30 Al resolver tareas, los procesos cerebrales se activan y las funciones cerebrales importantes son mejoradas o restauradas. Puede utilizarse incluso en una etapa muy aguda de la lesión, y sigue siendo pertinente en todas las fases de la rehabilitación. Los módulos de capacitación pueden seleccionarse fácilmente sobre la base de la evaluación cognoscitiva o empleando los módulos de screening o detección (ver figura 2.11). Figura 2.11: Módulos de Screening de RehaCom. El terapeuta puede evaluar la sesión utilizando la pantalla de resultados tan pronto como el entrenamiento termine, la cual muestra una multitud de datos, cuyo número aumenta con la frecuencia de uso del software. Los datos se pueden mostrar de varias maneras, incluyendo tablas, gráficos y comparaciones, permitiendo al terapeuta analizar e identificar debilidades particulares, por ejemplo, notar una reacción a los estímulos auditivos y remediarlas durante el entrenamiento. 2.3.1.8 Gradior Gradior es un sistema de evaluación y rehabilitación neuropsicológica para la realización de programas de entrenamiento y recuperación de funciones cognitivas superiores en personas que presentan de citas y/o deterioro cognitivo. Permite trabajar en adultos, la atención, percepción, memoria, orientación, cálculo, función ejecutiva, lenguaje y razonamiento. Concebido como un sistema de apoyo al terapeuta, se dirige a personas con daño cerebral, traumatismos craneoencefálicos, demencias, deterioro cognitivo leve, trastornos neuropsiquiátricos de afectación cerebral, enfermedad mental u otra patología donde se vea afectada la función cognitiva. Adecuado también bajo un enfoque de prevención en casos de envejecimiento no patológico y quejas subjetivas de memoria. 31 Figura 2.12: Juego de memoria en Gradior. Los ejercicios, diseñados siguiendo la metodología Gradior, permiten trabajar según los principios de esfuerzo cognitivo y huella neuronal, que resultan cruciales para una intervención cognitiva efectiva. La novedad y la variedad en las actividades y estímulos presentados, evita él “efecto aprendizaje" y, los diferentes niveles, permiten adaptarlo a cada usuario. Ofrece distintas posibilidades al terapeuta para la planificación de las intervenciones de manera individualizada, desde la planificación manual de la intervención con una interfaz muy intuitiva hasta la posibilidad de partir de un tratamiento tipo para ir personalizando en función de la evolución a lo largo de las sesiones o el uso del denominado “nivel de desempeño". A partir de valoraciones estándar, determina la capacidad cognitiva y funcional del usuario proponiendo un tratamiento de rehabilitación individualizado de manera automática. Figura 2.13: Interfaz del Terapeuta en Gradior. 32 En las figuras 2.9, 2.10 y 2.11 se pueden observar juegos de NeuronUp, RehaCom y Gradior respectivamente. 2.3.2 Análisis de herramientas Si bien estas herramientas cuentan con un gran potencial para estimular y favorecer la autonomía de los individuos con algún tipo de déficit cognitivo, la mayoría no están inicialmente diseñadas para personas con discapacidad o adultos mayores, lo que presenta un inconveniente para los profesionales de la salud. El primer punto de análisis se basa en los tipos de licencia. Los programas como NeuronUp y CogniFit inicialmente ofrecen una versión gratuita de prueba, que luego de pasado el mes de uso es requerido abonar la licencia mensual en dólares para continuar utilizándose. Además, estas aplicaciones son un tanto personalizables, pero a partir de distintos planes de membresía, el nivel de autorización para personalizar parámetros y configuraciones varía. Otro factor importante a tener en cuenta es la portabilidad y accesibilidad de las mismas, donde si bien el uso de la tecnología está inmerso en la sociedad, no presenta el mismo nivel de dificultad para acceder mediante un navegador web (Chrome, Firefox, Safari, etc.) a tener que descargar la aplicación en celulares con sistemas operativos Android o iOS, con su debido mantenimiento de actualizaciones, entre otras cosas. Por otro lado, respecto al soporte, se puede decir que cuentan con buena documentación, incluyendo vídeos tutoriales de usabilidad, centros de ayuda y consultas. Otro criterio a considerar fue la flexibilidad, analizando si las plataformas pueden crear nuevas tareas y modificar las que están hechas, cambiando alguno de los parámetros como: número de estímulos, duración de ejercicios, modificación de tamaño de estímulos, colores, etc. Los programas de intervención proporcionan un aprendizaje muy dinámico, permitiendo graduar tanto el tiempo como el número de estímulos y los diferentes parámetros en función de las necesidades del paciente. Además, la escalabilidad de las herramientas existentes presentan cierta desventaja, dado que tienen código cerrado y en algunos casos, la tecnología utilizada es obsoleta. En cuanto a la gestión y almacenamiento de los datos, un requisito no funcional que plantearon las investigadoras, fue la seguridad, privacidad de los 33 datos y registro de ciertos datos, en particular de evaluados. En este caso, si bien las aplicaciones investigadas manejan con cautela los datos e información, no se puede garantizar su total privacidad sumado que no necesariamente van a recopilar los datos que sean de interés para las mismas. Si bien estas herramientas no cumplen particularmente con los requisitos planteados por las investigadoras, este análisis sirvió para tener una idea del estado actual de software que apuntan a cuestiones “similares” a las tratadas por el programa desarrollado. Pero a la hora de hacer este análisis no solo se debe tener en cuenta el producto final, sino también las herramientas con las que se desarrollan los mismos, la cual analizaremos a continuación. 2.4 Tecnologías para entornos virtuales de estimulación cognitiva El entretenimiento es una de las necesidades que el humano ha ido desarrollando debido a que este posee una mayor cantidad de tiempo libre gracias a los distintos avances en los distintos campos, en especial el tecnológico. Entre los distintos métodos de entretenimiento el que es de interés en este informe son las actividades recreativas relacionadas con la lógica, de los cuales alguno podría considerar clásicos como son las adivinanzas, el sudoku, los rompecabezas, los crucigramas, entre otros, pero gracias a los avances de la humanidad se pudo ampliar aún más las posibilidades de entretenimiento, logrando poder desarrollar múltiples nuevas formas de poner a prueba las capacidades de las personas a resolver problemas como son videojuegos clásicos como el buscamina o el tetris. Y con el avance de la accesibilidad de la tecnología, al punto tal de que casi cualquiera hoy en día puedan acceder a servicios como internet, o tener computadoras y/o consolas en sus casas, permitió que se desarrollaran muchas aplicaciones del estilo, algunas apuntando a la parte del entretenimiento como son clásicos como Dr. Mario o Portal, etc. y la otra corriente, tomándolo más como métodos de entrenamiento para el desarrollo de las capacidades de la persona, como son aplicaciones como Cognifit, Lumosity, entre otros. 34 Figura 2.14: Juego Dr. Mario para la NES. Figura 2.15: Juego Portal. El boom que hicieron las industrias, en especial la del entretenimiento, fue tal que empezó a aparecer cada vez mayor cantidad de empresas a desarrollar juegos de este ámbito como son Candy Crush Saga, 2048, Cut the rope, etc., a su vez también surgieron juegos que tenían más enfoque en ámbitos educativos como sonel Big Brain Academy, o Brain Training del Dr. Kawashima. Debido a que estos títulos se fueron desarrollando a lo largo de los años y cada uno con múltiples objetivos distintos, las formas de desarrollarlos es dependiente de cada proyecto como tal, pero en la actualidad, al menos en el caso de los juegos de lógica, se puede partir de las bases que son comunes para el desarrollo de videojuegos como tal, entre estas es la necesidad de un motor de videojuegos para el desarrollo de los mismos. 35 Figura 2.16: Juego de celular Candy Crush. Figura 2.17: Imagen del juego Cut the Rope. Figura 2.18: Imagen del juego 2048. 36 Un motor de videojuegos es un conjunto de herramientas que realizan cálculos geométricos y físicos utilizados en los videojuegos. Este conjunto de utilidades representa un simulador ágil en tiempo real que reproduce las características de los mundos imaginarios en los que transcurren los videojuegos. El objetivo es permitir al equipo de desarrollo de un videojuego concentrarse sobre el contenido del juego y no sobre la resolución de problemas informáticos. El fin que persiguen los motores de juego es que una vez incorporadas todas las funciones del motor, usuarios sin conocimientos de programación puedan manejar con facilidad el motor. Puesto que las funcionalidades proporcionadas por un motor son limitadas, estos con frecuencia son dedicados a un tipo específico de juego. La manipulación del motor se hace generalmente a través de un lenguaje de script o por la interfaz. Una línea borrosa separa el motor del videojuego y muy a menudo no se sabe distinguir entre ambos. Los motores ofrecen componentes reutilizables que pueden ser manipulados para reproducir un juego. Algunas de los componentes que forman el motor pueden ser la carga, la animación de modelos, la detección de colisiones entres objetos, la física, interfaces gráficas de usuario o incluso herramientas de inteligencia artificial. Mientras que el contenido del juego está compuesto por los modelos, texturas específicas, el comportamiento ante las colisiones de objetos o la forma que tienen los objetos de interactuar con el entorno. Existen diferentes maneras de clasificar los motores de videojuegos dependiendo de las características que nos interesen. Una de estas características es el coste, efectivamente existen motores de videojuegos gratuitos o de pago que pueden llegar hasta el medio millón de dólares. Estos últimos son destinados a estudios de desarrollo profesional con gran poder financiero. Estos motores ofrecen un marco de juego y en algunos casos un entorno de desarrollo integrado. Este entorno permite crear o importar todos los elementos que se quieren integrar en el juego y determinar mecánicas de juego con la ayuda de los scripts, aunque actualmente esta clase de motores están en decadencia y se ha cambiado este modelo de negocio por otros más relacionados con modelos de suscripciones cuando se llega a ciertos ingresos anuales como es el caso de Unity o de permitir utilizar el motor de forma gratuita, pero los dueños del mismo se quedan con un porcentaje de las ganancias, como es el caso de Unreal Engine aunque aún sigue habiendo algunos casos de 37 motores del estilo como son el RPG Maker. Figura 2.19: Imagen del Motor Rpg Maker. Los motores gratuitos están destinados a los desarrolladores principiantes o independientes y no suelen tener interfaz global. Para utilizar estos motores hay que descargar un SDK (Software Development Kit), un kit de desarrollo (herramientas y documentación) que permite utilizarlos, pero se debe generar el programa del juego entero a mano, escribiendo código: CrystalSpace, Ogre 3D, Irrlicht. (Iman ouazzani, Tyberghein, Jorrit; Sunshine, Eric; Richter, Frank; Gist, Mike; Van Brussel, Christian, Rafaela V. Rocha, Rodrigo V. Rocha, Regina B. Araújo), aunque esto como hemos mencionado anteriormente ya es un hecho más común de que los motores sean gratuitos al menos inicialmente y luego terminan siendo pagos bajo algunas condiciones, una de las excepciones a este caso es el caso del motor Godot que es un motor totalmente gratuito y Open Source. Los motores intermedios, en esta categoría se incluyen los motores con herramientas de desarrollo más potentes. Estos motores disponen de un entorno de desarrollo integrado (IDE) que permite la creación de juegos manipulando los elementos en una interfaz gráfica y generando automáticamente una gran parte del código del juego. Este tipo está dirigido esencialmente a los profesionales independientes: Torque 3D, Godot, Pico-8. Igual cabe destacar que hoy en día profesionalmente se usan bastante los motores tanto intermediarios como los profesionales, pero no cabe duda que los últimos son más usados debido a la cantidad de herramientas, posibilidades, soporte y adición de contenido que poseen respecto a los intermediarios. 38 Figura 2.20: Imagen del motor Godot. Figura 2:21: Imagen del Motor Pico-8 Los motores profesionales están dirigidos a los profesionales con gran presupuesto. Son los motores más completos y los más potentes del mercado, se mantienen al día por sus creadores y disponen de los últimos avances tecnológicos: Unity, Unreal Engine 4, Cry Engine 5. 39 Figura 2.22: Imagen del motor Unity. Figura 2.23: Imagen del motor Unreal Engine 4. 2.4.1 Unity Unity 3D es un motor de creación de videojuegos 2D y 3D lanzado oficialmente como tal el 1 de junio de 2005. Este motor permite la creación de juegos y otros contenidos interactivos como diseños arquitectónicos o animaciones 2D y 3D en tiempo real. 40 Las principales metas de diseño de Unity son la facilidad para el desarrollo y la capacidad de que los juegos desarrollados puedan ser deployados en múltiples plataformas. Para esto, Unity provee un editor de ambiente integrado fácil de usar, en el cual uno puede crear y manipular los assets y entidades que van a conformar tu juego y probarlo con una simple acción en el editor, o directamente en el hardware al que estés apuntando. Unity también provee una gran variedad de poderosas herramientas para el análisis y optimización de tus juegos para cada plataforma, un compresivo pipeline de condicionalidad de assets, y la habilidad de manejar la relación calidad performance en cada plataforma que se desee desarrollar. Este, soporta programación en C#; un poderoso sistema de animación y soporte de afectar animaciones de otros; también posee soporte para el desarrollo de juegos multijugador en línea. Unity es una aplicación 3D en tiempo real y multimedia, además de ser motor 3D y físico utilizado para la creación de juegos en red, de animación en tiempo real, de contenido interactivo compuesto por audio, video y objetos 3D. Este motor no permite la modelización, pero permite crear escenas que soportan iluminación, terrenos, cámaras, texturas. Fue producido en un principio para la plataforma Mac y ha sido exportado a Windows. Permite obtener aplicaciones compatibles con Windows, Mac OS X, iOS, Android, Switch, PlayStation 4, Xbox One, etc. Unity presenta varias ventajas que hacen que sea uno de los motores de videojuego más cotizados del momento. En los siguientes párrafos se van a ir citando todas estas ventajas: ● Permite la importación de numerosos formatos 3D como 3ds Max, Maya, Cinema 4D, Cheetah3D y Softimage, Blender, Modo, ZBrush, FBX o recursos variados tales como texturas, Photoshop, PNG, TIFF, audios y videos. Estos recursos se optimizan posteriormente mediante filtros. ● Es compatible con las API gráficas de Direct3D, OpenGL y Wii. Además de ser compatible con QuickTime y utilizar internamente el formato Ogg Vorbis ● En Unity, el juego se construye mediante el editor y un lenguaje de scripts, el cual puede ser C# o el recientemente agregado Unity Visual Script, por lo cual el usuario no tiene que ser un experto en programación para usarlo. Además de esto, en su web oficial podremos encontrar toda la documentación, 41tutoriales y recursos necesarios para poder trabajar con el mismo, sin mencionar que debido al tamaño de su comunidad se puede encontrar un montón de contenido a través de otros medios, un ejemplo muy conocido es el canal de YouTube Brackeys1 . La estructura de los juegos creados por Unity viene definida mediante escenas que representan alguna parte del juego. ● Incluye un editor de terrenos que permite la creación de estos partiendo de cero. Este editor permite esculpir la geometría del terreno, su texturización y la inclusión de elementos 3D importados desde aplicaciones 3D o ya predefinidos en Unity. ● Si no se quiere modelar en 3D y se necesitan recursos para un videojuego, en la propia aplicación se puede acceder al Asset Store donde existen multitud de recursos gratuitos y de pago. Incluso se puede extender la herramienta mediante plugins que se obtienen en esta misma tienda. ● Dispone de una interfaz de desarrollo muy bien definida e intuitiva que permite crear rápidamente minijuegos. ● Existe en varias versiones en función de los módulos elegidos, la versión más simple destinada a los amateurs es gratuita. ● Además del desarrollo de proyectos 3D, Unity posee un sólido soporte para realizar proyectos 2D. 1 https://www.youtube.com/c/Brackeys 42 https://www.youtube.com/c/Brackeys Capítulo 3 Solución Propuesta La solución pretende evitar los costos que pagarán las sociedades en el mediano y largo plazo si no se ocupan de mantener activo al colectivo integrado por las personas mayores, que, además, sostiene un crecimiento progresivo año a año. El entrenamiento cognitivo de los mayores debería promoverse siempre. La idea es convertirlo en una gran oportunidad para la mayoría y que no quede reducido a un sector de la población. Desde la óptica del adulto mayor, la solución demanda el compromiso que tome el propio adulto y debe contener aspectos motivadores que hagan la experiencia interesante y atractiva para ellos. La idea es que el adulto realice ejecuciones repetitivas de tareas similares que requieran la utilización de las capacidades cognitivas. De esta manera, se estimula al cerebro a reorganizarse para mejorar el desempeño de estas habilidades. Desde la óptica del profesional, debe asegurar la uniformidad del experimento. Cuando el entrenamiento y la estimulación cognitiva no utilizan las herramientas de automatización, el profesional se toma el tiempo para explicar y presentar cada método de evaluación a cada participante. A veces, estos sucesos tan repetitivos introducen variaciones en la comunicación y alteran los resultados en el experimento conjunto debido a que se pierde la uniformidad del planteo original. Desde nuestra óptica, se creó la herramienta de software que llamamos Labyrinth que ofrece una variedad de protocolos para experimentación cognitiva de personas mayores en entornos virtuales. Además, registra los resultados del desempeño de los participantes y elabora las conclusiones basándose en ellos. Esta automatización posibilita un esquema de entrenamiento uniforme donde se pueden emular las mismas condiciones para todos, y registrar su progreso individual. 3.1 Análisis de requerimientos Como punto de partida para el desarrollo de la aplicación se tuvieron en cuenta una serie de requisitos y características, algunas previamente elaboradas por las investigadoras y otras que fueron surgiendo conforme progresaba el desarrollo de la aplicación. Se llevaron a cabo reuniones y observaciones para lograr capturar los 43 requisitos deseados por las mismas y de ahí ir realizando mejoras y cambios en la aplicación hasta lograr satisfacer los requisitos funcionales esperados por las mismas. 3.2 App Labyrinth La aplicación Labyrinth constituye una solución posible y de bajo costo, la cual el adulto puede utilizar desde su casa y entrenarse diariamente o cuando él lo prefiera. También permite la supervisión del profesional. El psicólogo, por ejemplo, puede organizar una sesión de capacitación que aumente aún más la interacción social y la comunicación. 3.2.1 ¿Qué es la app Labyrinth? Labyrinth es una aplicación de escritorio que fue pensada para poder hacer desafíos que entrenen las habilidades cognitivas, como son la orientación espacial, la memoria de trabajo y la flexibilidad cognitiva, y a la vez poder recopilar datos de las mismas para poder tener un registro del progreso de los participantes. Esta aplicación fue particularmente desarrollada para que fuera simple e intuitiva de usar para un amplio espectro de personas, particularmente las personas mayores que son el público objetivo de estudio. La aplicación consiste de varios laberintos, los cuales como se puede observar en la figura 3.1 se realizan a través de una perspectiva en primera persona, y tienen integradas distintas pruebas a realizar, las cuales varían dependiendo de cómo esté configurado cada laberinto. Para que la aplicación fuera efectiva tanto como herramienta de entrenamiento como de investigación, se decidió que los niveles fueran fijos, es decir, que tanto la disposición de los elementos a recolectar, los elementos que rodean al laberinto y el tamaño del mismo se mantuviera (por ejemplo en la figura 3.2 podemos ver como se ve el primer nivel de la aplicación). Así, el usuario podrá ir mejorando en el nivel al poder ir memorizando los trayectos y anclas visuales que tuviera el mismo y al mismo tiempo que los investigadores tuvieran muestras con similares valores para poder realizar las comparativas correspondientes. Actualmente, existen 2 tipos de prueba:la recolección de objetos, que pone a prueba la memoria de trabajo, y la prueba de las flechas, para trabajar la flexibilidad cognitiva. 44 Figura 3.1: Figura de usuario realizando el Primer laberinto. Figura 3.2: Imagen desde arriba del Primer laberinto. 3.2.2 ¿Cómo funciona la app Labyrinth? La disposición y arquitectura de los laberintos obligan al participante a usar sus habilidades de orientación espacial para recorrerlos. Los resultados de este entrenamiento tienen efecto con el uso continuo de estas habilidades. Además, el paciente recoge objetos a lo largo del recorrido, los cuales siempre son dispuestos en los mismos lugares, logrando tanto un ejercicio de planificación como de memoria, porque como se mencionó previamente, estos luego deben ser mencionados en el orden que fueron juntados. Estos ejercicios se destinan a entrenar la memoria del trabajo de los participantes. 45 Por otra parte, los niveles de dificultad permiten adaptar las tareas a las capacidades y el progreso de los participantes, debido a que cada nivel posee un laberinto de mayor tamaño y por consiguiente, puede llegar a tener más objetos a ser recolectados, volviendo estas tareas más complejas de ejecutar. 3.2.3 ¿Cómo se utiliza la app Labyrinth? Primero se determina qué pruebas se realizarán junto con qué elementos y restricciones, tanto en las consignas, los elementos a recolectar como los tiempos que tendrá en la prueba de las flechas. Una vez determinado y configurado adecuadamente, se procede a ingresar los datos de la persona, a evaluar y a explicar cualquier información que sea necesaria antes de hacer la prueba como tal. Una vez que el usuario efectúa la prueba, en caso de que se desee evaluar la misma con otras situaciones, se pasa a reconfigurar el laberinto donde se hizo, o se van simplemente a registrar y hacer los otros laberintos que se desee evaluar. Después de que se hayan hecho las evaluaciones deseadas, uno puede extraer los distintos resultados registrados de las actividades que se realizaron, ya sea por ejemplo análisis comparativos o progresivos del usuario, y de ahí trabajar los mismos de las formas que se desee. 3.2.4 Caso de Uso Para la aplicación se consideró que existen solo 2 roles, los cuales son: ● Usuario/Sujeto: Este rol representa al que está usando el laberinto como tal, ya sea para poder usar el sistema, para poder entrenarse o comosujeto para la recopilación de información, basándose en su rendimiento a lo largo de distintos tipos de métodos de examen para poder extraer información de interés para el investigador, este podrá disponer de todas las funciones pero con el objetivo de usar el sistema como una herramienta de entrenamiento neurológica. ● Investigador: Este rol es para definir a la persona que está interesada en utilizar la aplicación para recopilar registros de muchas personas y utilizar los resultados, para utilizarlas para sus investigaciones. Por eso mismo, este rol tendrá más interés en todos los que ofrece la aplicación tanto para extraer valores de las experiencias realizadas por parte de los usuarios/sujetos como la posibilidad de 46 ajustar las mismas con libertad para poder determinar instancias de evaluación concretas. La aplicación posee en total unos 4 casos de uso, los cuales son: Realizar el laberinto, Configurar los elementos generales de todos los laberintos, Configurar los elementos que se recolectan en cada laberinto y Ver los registros los cuales. Como se puede ver en la figura 3.3 estos están divididos según quién va a estar haciendo cada uno de estos. A continuación detallaremos de qué va cada caso de uso. Figura 3.3: Diagrama de casos de uso de la aplicación. 3.2.4.1 Realizar el laberinto El participante elige el nivel que desea realizar y crea su perfil ingresando su nombre, para que luego sea fácil de identificar en los resultados, una vez hecho esto pasará a tocar el botón de jugar, y de ahí se mostrará una ventana donde se encuentra la consigna general. Una vez cerrada esta ventana, el participante podrá visualizar desde arriba el laberinto junto con los elementos que tendrá que ir recolectando, la posición tanto del inicio como la meta, junto con algunos de los elementos del entorno que le servirán como puntos de orientación. Una vez el participante está decidido a comenzar, presiona la barra espaciadora, con lo cual la cámara se acomodará hasta la posición de inicio del laberinto y de ahí dará inicio el ejercicio. Internamente, cuando el jugador comienza el ejercicio como tal, la aplicación empezará a llevar registro de su ubicación en cada cierto intervalo para la recopilación de datos. En el caso de que entre los elementos que tenga que recolectar exista uno con 47 forma de flecha al interactuar con él, se realizará la prueba de flechas de la cual se irá registrando los resultados del participante. Una vez finalizada esta, podrá seguir haciendo el resto de las actividades necesarias para terminar el nivel, las cuales son recolectar los elementos que faltantes (si es que hay) y buscar la salida. Una vez recolectados todos los objetos y llegado a la salida, se presentará otra instancia de evaluación en la cual se pedirá listar todos los elementos del laberinto en el orden que fueron recolectados, exceptuando el elemento que inicia la prueba de las flechas (en caso de que estuviese). Habiendo hecho esto, el sistema almacena los resultados y devuelve al participante al menú principal donde puede ejecutar la misma o alguna otra prueba o simplemente cerrar la aplicación. Otro flujo posible es que en el caso de que el participante desee salir del nivel, este podrá hacerlo pausando el juego y tocando un botón que lo llevará al menú principal. Cabe destacar que en caso de salir así o en caso de que la aplicación se cerrará de alguna manera más abrupta, por ejemplo un corte de luz o que el proceso se terminara desde el administrador de tareas, el sistema igual tendrá almacenado en sus registros lo que haya hecho el usuario hasta ese momento (estos registros solo se usan para los informes de los investigadores, no como un sistema de recuperación del jugador en el punto donde se quedó del nivel). 3.2.4.2 Configurar los elementos de todos los laberintos El flujo normal sería que el actor desde el menú principal entre al menú de configuración al tocar el botón de configuración. Una vez que accedió a este menú, en caso de ser la primera vez que se accede al mismo este cargará los valores por default que tiene la aplicación, caso contrario se cargarán los que se tengan almacenados, desde ahí el usuario procederá a modificar todos los valores que desee ya sea desde las consignas que se desean agregar hasta modificar los tiempos que están en cada etapa del ejercicio de flechas. Una vez que el usuario esté conforme con las modificaciones que haya realizado, pasará a tocar el botón, aceptar y volverá al menú principal, mientras que internamente el sistema almacenará los nuevos valores. Otro posible flujo es el caso que el usuario no desee guardar los cambios que efectuó, en el cual este pasará a tocar el botón de cancelar y volverá al menú principal sin que se almacene ninguno de los cambios que hizo. 48 3.2.4.3 Configurar los elementos que se recolectan en un laberinto El actor comienza en el menú principal decidiendo qué nivel en particular desea modificar. Una vez seleccionado el mismo presiona el botón de cambiar. Al hacer esto se desplegará un menú de dos listas donde la lista de la izquierda posee todos los elementos disponibles en la aplicación y a la derecha los elementos que posee el nivel en particular. En caso de que sea la primera vez que se accede a este menú se cargará con los valores predeterminados y en el caso de ya tener algún valor almacenado se cargará este. Luego el usuario pasará a mover los elementos que le interese tener en el nivel a la lista de la derecha. Una vez que la persona esté satisfecha con los cambios que haya realizado, presionará el botón de aceptar y volverá al menú principal, mientras que internamente el sistema almacena los nuevos elementos que el nivel vaya a poseer. El otro flujo es el caso que el usuario no desee guardar los cambios que hizo en el cual pasará a tocar el botón de cancelar y volverá al menú principal sin que se almacene ninguno de los cambios efectuados. 3.2.4.4 Ver los registros El actor desde el menú principal tocará el botón de ver registros. Desde ahí se abrirá en una ventana aparte la carpeta en el explorador de archivos donde se encuentran los registros realizados por el programa, divididos por tipo y nivel. 3.2.5 Cómo se construyen las Tareas La construcción de las tareas se pueden dividir en 2 partes: la construcción del laberinto como tal y la elección de los elementos que van a existir en el mismo. La construcción del laberinto se hace desde el motor Unity, introduciendo ciertas variables en el algoritmo que se encarga de la generación del mismo. Dependiendo de los datos que se introduzcan, esto determinará la forma, tamaño y cantidad de elementos que puede tener el mismo. A su vez, manualmente son introducidos en el mismo nivel los elementos que conforman el entorno que rodea al laberinto como tal. En el caso de los elementos, consignas o duraciones que tiene las distintas pruebas a realizar en los niveles, todas estas pueden ser ajustadas en la parte de la configuración del menú principal dentro de la aplicación y dependiendo de lo que se desea configurar se ingresará a una de las dos secciones de configuración disponibles, 49 detalladas en los casos de uso anteriores. Una aclaración importante es que existe una única excepción a esto en el ejercicio de las flechas, que es en que tipos de flechas van a ir apareciendo a la hora de hacer esta prueba, esto es debido a como está implementado, ya que al momento de realizarse se consideró un requisito que esta fuera igual en todos los niveles sumado a la inexperiencia, falta de visión a futuro en el momento que se desarrolló, debido a esto actualmente la única forma de configurarse este aspecto es a través del propio motor modificando en cada 3.2.6 Decisiones de Diseño La aplicación Labyrinth está diseñada para ser una plataforma independiente, de momento está solo corre sobre PC con diferentes sistemas operativos. Para desarrollarla fue usado el motor de videojuegos Unity, elcual está escrito en C++ y está diseñado para permitir fácilmente realizar la aplicación para múltiples plataformas. Para el desarrollo de la aplicación, Unity provee un motor de rendering el cual permite tanto desarrollar como probar la misma, además de proveer las herramientas necesarias para las cuestiones como son la interfaz, entre otras cosas. Toda la lógica de la aplicación fue hecha en scripts escritos en C#, el lenguaje soportado por Unity. La interfaz de usuario es simple, ya que fue pensada para que sea accesible a todo tipo de usuarios. Los dispositivos de entrada seleccionados son los convencionales: el mouse y el teclado. 3.2.7 Detalles Técnicos Labyrinth está desarrollada con los siguientes productos: ● Unity para el desarrollo de los objetos, organización de archivos, desarrollo de la UI y todos los elementos visuales del juego. ● Visual Studio como IDE utilizado durante la programación, siendo este el IDE que Unity ofrece por default. ● Unity Gaming Services para el control de versionado. 50 3.3 Componentes del Sistema La aplicación está compuesta por varios componentes: el menú principal, el generador del laberinto, las tareas para la estimulación cognitiva y el sistema de registro y análisis de información recolectada. Además de estos componentes, se emplearon otros elementos como son assets o funcionalidades propias de Unity como son el SceneManager, o la implementación del personaje con el cual se mueve el jugador, que si bien son necesarios para el funcionamiento del mismo, no los considero como parte del núcleo de interés de desarrollo para esta aplicación en particular. Como se puede observar en la figura 3.4, estos elementos se comunican entre sí para poder cumplir las funciones que se espera de la aplicación. Estos elementos y sus relaciones serán detallados a continuación. Figura 3.4: Diagrama de Componentes del sistema. 3.3.1 Menú principal El menú principal es una escena de Unity la cual está compuesto de 3 canvas, el menú principal (Figura 3.5), la configuración general (Figura 3.6) y la configuración por nivel (Figura 3.7), las cuales coexisten al mismo tiempo y se van habilitando o deshabilitando sus visualizaciones al interactuar ciertos botones existentes en los mismos, un ejemplo de este es el de la transición entre el menú principal hacia la configuración general que se puede observar en la figura 3.8. 51 Figura 3.5: Imagen del menú principal. Figura 3.6: Imagen del menú de configuración general. Figura 3.7: Imagen del menú de configuración de los objetos recolectados en un nivel particular. 52 Figura 3.8: código para la transición entre el menú principal y la configuración general. A su vez existe otra clase que es utilizada en esta escena, la cual es la clase estática llamada PersistentData, que es la que tiene consigo todas las configuraciones que se aplican a todos los niveles. Los valores de esta clase son obtenidos a través de un archivo. En caso de ser la primera vez que se ejecuta la aplicación, este se crea utilizando valores default, y se encarga de generar el archivo donde tomará los datos para sus futuros usos, como se puede ver en la figura 3.9. Para el almacenamiento de estos datos se decidió utilizar un formato JSON como se puede ver en la figura 3.10. Esta decisión se tomó debido a que este formato es práctico de implementar, almacenar y trabajar, en especial teniendo en cuenta que el motor ya provee soporte para la manipulación de este formato y al ser esta una aplicación de alcance local, cuestiones como la seguridad no representan un problema. Un problema a tener en cuenta con este formato es que la clase PersistentData, podría terminar volviéndose increíblemente extensa en caso de existir muchísimos niveles, ya que estos datos son puestos ahí mismos y no sé consideró esta situación cuando se implementó el mismo, una posible solución sería que la configuración default fuera cargada desde un archivo que estuviera destinado solo a almacenar esos valores. 53 Figura 3.9: código de Inicialización de la clase estática PersistentData. Figura 3.10: Ejemplo de JSON de la configuración de la aplicación. Descontando estas aclaraciones, cada ventana tiene sus propias implementaciones y funcionalidades, las cuales serán descritas a continuación. En el caso del menú principal cumple la función de nexo entre las otras dos ventanas y a su vez realizará el cambio a la escena correspondiente al nivel elegido, realizando un chequeo, de sí se ingresó algún nombre, el cual junto con el nivel seleccionado se almacenarán en el PersistentData, para su uso en los otros 54 componentes del sistema, por último este pasará a cargar la escena correspondiente al nivel seleccionado como se puede ver en la figura 3.11. Figura 3.11: Código del botón iniciar para cambiar de escena o mostrar un error en caso de que no se rellenará la casilla del nombre. En el caso de la configuración general, está compuesta por text inputs, los cuales tienen cargador por default los dato provistos por el PersistentData como se ve en el ejemplo de la figura 3.8 de ahí cualquier modificación realizada, en caso de tocar el botón aceptar, es reflejada tanto en el PersistentData como en el archivo que almacena la configuración como se puede ver en la figura 3.12 En el caso del configurador por nivel, este utiliza dos listas, las cuales tendrán almacenados una lista de botones, los cuales al presionar pasarán a la otra lista, esta lista se cargará basándose en el nivel elegido. Y una vez aceptados se leerá los datos de la segunda lista para pasar a almacenarlos tanto en el PersistentData como en el archivo de configuración. 55 Figura 3.12: Código que almacena la configuración general en el PersistentData y el archivo de configuración. 3.3.2 Generador de Laberinto Para la implementación del generador de laberintos como tal, lo que se realizó es utilizar un framework existente en el Asset Store de Unity2 y realizar las modificaciones necesarias para cumplir las necesidades planteadas para este trabajo. Este está compuesto por un generador de laberinto, y una pelota que el jugador maneja para recolectar los elementos generados en el laberinto, las cuales eran monedas. El generador, como se puede ver en la figura 3.13, se pueden ingresar variables como, el algoritmo que se emplea para crear el laberinto, el valor de la semilla, el decidir si esta se genera al azar o no, la cantidad de filas y columnas que va a tener la misma junto con el ancho y largo que va a tener cada una de las celdas y la capacidad de elegir qué asset usar para el piso, las paredes, los pilares y los recolectables (que en este caso eran monedas). Modificando estos valores podremos hacer distintos niveles como se pueden observar en la figura 3.14 y 3.15. 2 https://assetstore.unity.com/packages/tools/modeling/maze-generator-38689#content 56 https://assetstore.unity.com/packages/tools/modeling/maze-generator-38689#content Figura 3.13: Datos que se pueden ingresar al generador de laberinto del Package Maze Generator. Figura 3.14: Imagen de laberinto de ejemplo junto con su configuración. 57 Figura 3.15: Imagen de otro laberinto utilizando un algoritmo distinto. Para realizar el laberinto, el sistema lo que realiza es un una matriz de 2 dimensiones las cuales cada celda está compuesta de varios booleanos (Figura 3.16) para representar qué paredes se generarán y si esta celda posee la meta o algún objeto recolectable en esa respectiva celda del laberinto. 58 Figura 3.16: Contenido de las celdas que usa el generador de laberinto. Para determinar el valor de cada celda, el generador puede utilizar 3 tipos de algoritmos: la implementación recursiva (o backtracking), la implementación en árbol y la división recursiva. A continuación se detallan los pasos de cada algoritmo. Implementación recursiva: 1. Se da una celda como parámetro 2. Se marca la celda como visitada 3. Mientras el que está siendo visitado
Compartir