Generación y visualización de laberintos 3D concéntricos en Unity
Author
Cerviño Luridiana, DarioDate
2023Abstract
El objetivo de este trabajo es el diseño y desarrollo de un juego de laberintos tridimensionales por niveles concéntricos. Se hace uso del motor de videojuegos Unity para generar laberintos volumétricos en formas convexas simples, así como la esfera. Los laberintos se organizan por capas, con el objetivo de llegar al centro. Los controles de movimiento responden a cambios de perspectiva, la cual también está bajo el control del jugador. La generación de laberintos empieza con la creación de un grafo volumétrico en la forma deseada. El orden de los nodos del grafo permite controlar la generación de un laberinto mediante un algoritmo de búsqueda en profundidad modificado, el cual limita el número de conexiones entre capas. Utilizando tanto el grafo original como el subgrafo que forma el laberinto, se genera un modelo 3D procedural para cada capa, según lo demande la exploración del jugador. Se han logrado generar seis tipos de laberintos concéntricos con formas de tetraedro, cubo, octaedro, dodecaedro, icosaedro y esfera. Todos los tipos de laberintos son navegables y usan modelos que permiten distinguir claramente los caminos. Aunque los sistemas principales del proyecto están completos, aún falta el desarrollo de interfaces y lógica de juego para constituir un juego completo. The objective of this work is the design and development of a game of three-dimensional mazes organized in concentric layers. The Unity game engine is used to generate volumetric mazes contained in simple convex shapes and the sphere. Each maze is organized by layers with the goal of reaching the center. The movement controls are sensible to perspective changes, which are also controlled by the player. The maze generation begins with the creation of a volumetric graph in the desired shape. The nodes are ordered so that the maze generation can limit the number of connections between layers. A modified depth-first search algorithm is used for the generation of the maze from the original graph. Using both the original graph and the subgraph that forms the maze, a procedural 3D mesh is generated for each layer, based on the player’s exploration demands. Six types of concentric mazes have been successfully generated, including the tetrahedron, cube, octahedron, dodecahedron, icosahedron and sphere shapes. All maze types are navigable and able to generate models that clearly distinguish the pathways. While the main systems of the project are complete, the development of interfaces and game logic is still pending for it to constitute a complete game.