Cub es un proyecto que comencé a desarrollar como proyecto de fin de curso para el grado superior de DAM, haciendo bocetos en la libreta y prototipando una demo en Corona SDK, pero por falta de tiempo y embergadura, decidí aplazar para más adelante y opté por entregar otro proyecto totalmente diferente.
Cuando al fin tenía tiempo para llevar a cabo el proyecto, me topé con este post de reddit, que hasta hace poco era el más votado del subreddit de /r/gamedev, en el cual se mostraba un juego que utilizaba la misma mecánica principal que había diseñado para mi juego, con un acabado visual genial, y me dejó bastante chafado y pensé que ya no valía la pena vivir seguir adelante con este juego.
Pero recientemente, me volví a obsesionar con este proyecto, y a pesar de que la mecánica principal era la misma que la de aquel juego, yo tenía ideados obstáculos que ofrecian una experiencia diferente, así que me puse manos a la obra.
Cub es un juego de puzzles que consiste en colorear todas las casillas del tablero del color indicado rotando el cubo de casilla en casilla. El juego está diseñado para ser 'mobile first', con controles que solo requieren utilizar una mano.
La cosa se va complicando conforme se progresa entre los diferentes niveles, los cuales aumentan el tamaño del tablero y presentan nuevos obstáculos.
Obstáculos
Los obstáculos están diseñados con el propósito de, como bien dice el nombre, obstaculizar al jugador pero a su vez ayudandole a completar el nivel, siempre que se haga uso correcto de ellos.
Los obstáculos tienen tres categorías, según su posición en el tablero: Face, Edge y Vertex.
Face Portals
La función de los Face Portals es la transportación del cubo entre caras. Éste obstáculo permite transportar el cubo desde los 4 lados.
Face Sliders
Los Face Sliders deslizarán el cubo en la dirección señalada, sin girar de nuevo el cubo. Éste obstáculo permite deslizar el cubo desde los 4 lados. Se puede utilizar de forma estratégica para rotar el cubo y retornarlo de nuevo a la casilla anterior, si está apuntando a esa dirección y se usa de frente.
Edge Portals
Al igual que los Face Portals, los Edge Portals también transportan el cubo, pero a diferencia de los primeros, estos lo hacen desde los bordes de la casilla. Esto significa que el obstáculo solo puede utilizarse por 2 lados.
Los obstáculos están aun por implementar. La idea es montar un sistema de obstáculos que sea modular, el cual permita la inclusión de nuevos obstáculos en un futuro, sin tener que cambiar por completo el código ya hecho, e independientes entre si. Estos serían los 3 obstáculos que me gustaría tener para una primera iteración. Tenía muchos más pensados, pero me pareció importante limitar el tamaño del proyecto y poder así llegar a tener algo presentable dentro de unos plazos no muy largos.
Esta es la lista de herramientas que estoy utilizando para el desarrollo:
- Unity: Para crear el juego. Para prototipar utilicé Corona SDK. Más adelante, buscando otros motores hice pruebas con Starling (Haxe) y con Godot. Con este último avancé bastante, pero aun está madurando y tiene muchos crashes, algunos bugs, de los cuales una parte resultaron críticos. + Types.
- Visual Studio: Para picar código. Para cosas rápidas uso Sublime Text.
- Photoshop: Para editar los gráficos y demás edición de imágenes (como las barras de este hilo).
- Github: Para el repositorio de git y el kanban.
- Otros: VClip, para las capturas de pantalla en video rápidas. Blender, para el modelo del cubito xD. Spotify, para no perder el juicio. Mi libreta con bolis de colores, para plasmar las ideas rápidamente, como pseudo GDD y como pequeño TODO.
#2 - Prototipo y level editor
#8 - Elementos básicos de gameplay