Energy Up: Creando los niveles

Para este proyecto los niveles y su estructura son una parte fundamental del proceso. La mecánica básica del juego se base en estos puzzles que debes resolver girando las plataformas del nivel. Casi podríamos decir que el resto: las trampas, los objetos, los efectos, etc, son mecánicas secundarias del juego que pivotan alrededor la mecánica principal.


El diseño de cada nivel tiene dos elementos clave: debe ser resoluble (debes poder conectar todos los bloques con el bloque de energía) y no bloquear al jugador en el proceso para que pueda seguir el camino por muy complejo que este sea. 

Una opción era construir un editor de niveles como una aplicación independiente que genere archivos JSON con la información de cada nivel. Seguramente para un proyecto más grande era la mejor solución, pero en este caso al ser un proyecto pequeño he optado por un proceso manual que permite simular el nivel en modo analógico, un Level editor kit.


Como todo, cada sistema tiene sus ventaja e inconvenientes. El sistema digital permite el diseño e implantación inmediata de cada cambio. El sistema analógico te permite centrar la atención en cada nivel y tener una visión de conjunto.




Una vez diseñado el nivel y traspasado al ordenador utilizamos un generados de código para que automáticamente nos rellene el array de datos y no hacerlo manualmente obteniendo un código como este:
 private void Level7()  
   {  
     GlobalInfo.actualLevelTime = 200;  
     GlobalInfo.actualLevelBlocks = 28;  
     GlobalInfo.actualLevelBlocksDone = 0;  
     GlobalInfo.actualLevelStars = 0;  
     GlobalInfo.actualLevel[1, 0].code = "30";  
     GlobalInfo.actualLevel[1, 0].energyFont = false;  
     GlobalInfo.actualLevel[1, 0].player = false;  
     GlobalInfo.actualLevel[1, 0].enemyCode = 0;  
     GlobalInfo.actualLevel[1, 0].itemCode = 0;  
     GlobalInfo.actualLevel[1, 0].trap = true;  
     GlobalInfo.actualLevel[2, 0].code = "33";  
     GlobalInfo.actualLevel[2, 0].energyFont = false;  
     GlobalInfo.actualLevel[2, 0].player = true;  
     GlobalInfo.actualLevel[2, 0].enemyCode = 0;  
     GlobalInfo.actualLevel[2, 0].itemCode = 0;  
     GlobalInfo.actualLevel[3, 0].code = "33";  
     GlobalInfo.actualLevel[3, 0].energyFont = false;  
     GlobalInfo.actualLevel[3, 0].player = false;  
     GlobalInfo.actualLevel[3, 0].enemyCode = 0;  
     GlobalInfo.actualLevel[3, 0].itemCode = 0;  
     ...  


No hay comentarios:

Publicar un comentario

Como hacer copias de tu código de Unity con GitHub

Podriamos escribir un libro entero de las bondades de Git para el trabajo colaborativo y la gestión de versiones en un entorno como Unity. D...