DevLog

Gestión de datos y evitando usar Singletons

Durante el desarrollo de tu juego con Unity es muy probable que te encuentres con la duda de: “¿Cómo puedo hacer que los datos de una escena pasen a otra escena?”, es decir, como hago para que una variable de un MonoBehaviour, que reside en una escena, se pueda utilizar en otra escena distinta. Un ejemplo práctico sería un juego donde hay una escena de selección de personajes y por otro lado una escena distinta donde se desarrolla el juego y donde el personaje que se utiliza es el escogido en la escena anterior. En nuestro juego MathLand tuvimos una situación parecida, tenemos una pantalla de selección de nivel, en donde el jugador selecciona el nivel que va a jugar en una escena distinta. Los niveles de MathLand se generan en tiempo de ejecución, por lo que todos los niveles de MathLand utilizan una única escena. Al llegar a esta escena, necesitamos saber qué nivel se ha escogido. Vamos a utilizar este caso de ejemplo. En la escena LevelSelection, el jugador escoge el nivel con id = 2 y esta selección se guarda en un script llamado LevelSelectorManager. Luego en la escena “Juego”, se tiene que generar el mapa con ...
Leer Más

Unity, editores y matemáticas Parte 2.

¡Volvemos para resolver los dilemas que nos quedaron en la parte uno sobre nuestro editor de niveles! Si no has leído la primera parte, te recomiendo que lo hagas porque sino va a ser muy difícil entender esta entrada. Nos quedamos en que queremos aumentar el tamaño del mapa. Si el grid está vació esto es muy fácil, simplemente borramos el que ya tenemos y creamos uno nuevo pero más grande. El problemas se produce cuando tenemos colocados tiles ya en el mapa. El tile guarda el id de la celda en la que está "apoyado". Al aumentar el tamaño del mapa, el id de la celda en la que está el tile puede cambiar. En el post anterior vimos que para aumentar el tamaño del mapa solo teníamos que cambiar los id de las celdas que están más arriba de la fila central. Todos los otros id se mantienen. En la imagen anterior, el mapa de la izquierda de tamaño 5 tiene una celda con id 16. Esta misma celda pasará a tener id 17 al aumentar de tamaño. Entonces: somos un programa que aumenta el tamaño del mapa. Recibimos un id, digamos el 16 y tenemos que convertirlo ...
Leer Más

Uso de Unity Analytics para mejorar la interfaz de usuario

Ya hemos hablado de cómo implementar eventos de analíticas en juegos de Unity. Como desarrolladores, nos gusta echar un vistazo al comportamiento de los usuarios de nuestra aplicación. No de cada uno de ellos, claro, pero sí desde el punto de vista estadístico. Sin embargo, debemos tener en cuenta que la implementación del sistema de recogida de eventos y el estudio de los datos obtenidos es una tarea que requiere bastante tiempo. Más allá de saciar nuestra curiosidad, los resultados deben traducirse en un beneficio. En este ejemplo hemos utilizado los datos para mejorar la experiencia de usuario. Esto, indirectamente, afecta a la retención y eso a su vez debería traducirse en mayor visibilidad, ya sea por el boca a boca, las buenas valoraciones o un mejor posicionamiento en tiendas de aplicaciones. Ahí se encuentra el retorno de este trabajo. Como ya se dijo en un post anterior, nos preocupaba que algunos usuarios tuvieran dificultades en identificar los botones que llevan a los puzzles didácticos, que son la parte esencial del juego. Así que tomamos la decisión de cambiar la disposición de los elementos en el primero de los menús que aparece tras la pantalla de presentación. En la siguiente ...
Leer Más
Mapa 2 de muestra prueba de editor de tiles

Unity, editores y matemáticas Parte 1.

Llevas horas y horas perdiendo el tiempo haciendo niveles con Unity. Por cada pequeño trozo de nivel que hagas necesitas arrastrar más de 20 prefabs, clonarlos, cambiar sus posiciones, y cambiar sus valores dependiendo de las características. Es una perdida de tiempo y no un trabajo divertido. Está claro que necesitas una herramienta específica para crear niveles. Aquí es donde entra la capacidad que tiene Unity para ser extensible. En el proceso de creación de nuestro cuarto juego nos hemos topado con este mismo problema. Los mapas de nuestro juego se componen de “tiles” o piezas que se puede juntar para hacer pedazos de tierra más grande. Hacer niveles era demasiado tedioso y además se perdía un montón de tiempo. Por esto nos vimos en la necesidad de crear un editor de niveles. Pero, ¿Qué tiene que ver esto con las matemáticas? Por ahora no mucho, pero como veréis más adelante, se nos presentaron problemas que con un mayor conocimiento de matemáticas se podrían haber resuelto con mayor facilidad y menos quebraderos de cabeza. Esta primera parte se centrará en explicar muy por encima como funciona el editor y presentaros el problema que nos surgió. A la hora de crear ...
Leer Más

Analíticas 101

Ponte en situación. Eres un homo ludus elit que apenas ha salido de la cueva en los últimos meses. Sueñas con código fuente y cuando miras hacia el mundo exterior hay un shader muy chungo que te hace daño en la Main Camera. Pero te acostumbras, evolucionas, porque es lo que toca, porque AL FIN, tú y tus compañeros habéis terminado vuestro juego. Os hacéis la foto de rigor mostrando vuestra euforia, que probablemente retuitearán chorrocientas personas. Os vais a comer. A celebrar por todo lo alto. Todo a cuenta de la ingente cantidad de pasta que vais a ganar con vuestro juego. Lo de siempre. La rutina del desarrollador de juegos. Cueva y desfase a partes iguales, como los osos pardos. ¿Y entonces qué? ¿Se acabó? ¿Nos olvidamos y a otro juego? ...
Leer Más