Devblog

Notas desde el taller: decisiones de diseño, arte en proceso y lo que va cambiando en Kachik antes de llegar a Google Play.

Una idea recorre mi cabeza

Antes de nada, para los que no me conozcan, soy un desarrollador de aplicaciones, al cual le encanta jugar a videojuegos...qué raro no? 😅. Llevo años jugando a todo tipo de juegos, desde los más casuales hasta los más hardcore, y siempre me ha picado la curiosidad de hacer uno propio. Así que hace un tiempo, en mis ratos libres y entre otros proyectos que llevo, decidí ponerme manos a la obra y crear un juego para móviles, algo que pudiera disfrutar yo mismo y que también pudiera ofrecer a otros jugadores. Lo primero de todo es encontrar una idea, algo que me guste y pueda dedicarle mucho tiempo sin cansarme (eso es básico). Si haces algo que no te gusta del todo durante mucho tiempo...acabarás frustrado, aburrido, etc (me ha pasado con otros proyectos). Así que me puse a pensar en qué tipo de juego quería hacer, y después de darle vueltas, decidí que quería hacer un puzzle, algo que tuviera un ritmo y un timing, algo que fuera relajante pero también desafiante. Y así nació la idea de Kachik: Puzzle Drop.

Dibujando...

Lo siguiente fue empezar a dibujar directamente, como sería la interfaz del juego, qué pantallas tendría, qué piezas habría (en un primer momento pensé en piezas geométricas, pero me pareció muy soso). Tuve que pensar en un loop del juego, si, un loop....una mecánica principal que se repita, enganche, divierta y uno disfrute jugando una y otra vez. En esa fase tocó hacer prototipos con figma, stitch, libreta y bolígrafo a ver qué pegaba más. Tras esa primera fase de dibujo (que ya adelanto que cambió mucho)...me descargué Godot (ya lo había tocado anteriormente en proyectos personales). Godot, por si no lo sabéis es un motor de juegos open-source, gratis y muy sencillo de usar. Una vez descargado comenzé a hacer la pantalla principal a modo de mockup solo con formas geométricas, nada dibujado, para probar. En unos días tuve un prototipo decente y me gustó. Recomiendo antes de tocar código, que uno tenga definido el loop del juego, lo que engancha básicamente. Una vez eso y definidos el sistema de avance, penalizaciones, premios, etc....adelante.

Ajustando dificultad, duración...

Estos días, sobre todo, he estado ajustando la dificultad y duración del juego. No quiero que sea un juego demasiado largo ni tampoco muy corto. Teniendo en cuenta que es un juego de puzzles, quiero que sea un juego en el que uno pueda disfrutar en cualquier momento, sin tener que invertir demasiado tiempo. La forma en la que estoy testeando dificultad es jugando yo mismo y otra persona de mi entorno, extraigo unos logs del juego cuando la partida se acaba y tras eso, saco conclusiones (básicamente qué porcentaje de perfect he hecho, cuántos errores, qué duración ha tenido la run...etc). Con esos datos, ajusto dificultad y duración, y vuelvo a testear. Es un proceso que se repite una y otra vez hasta que me convence. Ademas de la dificultad me encontré un bug que hacía que el juego dejara de renderizar piezas en pantalla cuando ponía el juego en pausa y luego volvía a reanudarlo. Este bug me llevó tiempo pero al final lo solucioné y era básicamente el ciclo de vida en Godot, la función process(), había un punto en el que se pausaba y no se reanudaba correctamente. Tras solucionarlo (blindando ese ciclo), el juego volvió a funcionar correctamente.