Mermelada Jam

Publicado por Manuel Otero · 27 Noviembre 2023
Imagen de portada de Five night at labo

Pruebalo online en itch.io.

Hace una semana se celebró la mermelada, duró desde el 17 al 20 de noviembre del 2023, participé y fueron un par de días muy interesantes.

Sobre la organización solo puedo decir que fue excelente, era muy fácil enterarse de las cosas de la jam, por medio del discord de Spain Game Devs, X con @spaingamedevs o con la pagina de itch.io donde se alojaba la jam, el tema se podía interpretar de muchas formas y tenía varios extras que las otras jams en las que participe no tenían, la limitación y cosas opcionales que daban todavía más juego a la hora de crear.

¿Cuál fue mi motivación?

Participé porque quería probar el motor Godot Engine 4, ya había toqueteado y hecho alguna cosa con él pero necesitaba más experiencia, saber cómo organizar el proyecto, las clases y eso; una jam te permite eso, empezar y terminar un proyecto sin darle muchas vueltas y sin que se alargue.

Por otro lado lo hice en solitario porque sabía que no iba a poder estar todos los días, además quería tomarlo con relativa calma.

Comienzo de Mermelada Jam

El viernes 17 a las 17 se dio el pistoletazo de salida, descubriendo los parámetros de la jam:

  • Temática: si pestañeas te lo pierdes

  • Limitación: tres pares

Opcional:

  • ¡Un Gato!
  • Sonidos con la boca
  • Un botón


Por supuesto en ese momento yo estaba distraído con otras cosas y no me puse en el ajo hasta un rato después. Cuando vi la receta fui ingrediente a ingrediente pensando cómo iba a ser el juego, de más fácil a más difícil:

  • Un botón: Fácil, se juega con un botón.
  • Sonidos con la boca: Esto sabía que no me iba a dar tiempo (Efectivamente no me dio tiempo ni a poner música), pero si tenía tiempo haría los efectos de sonidos con la boca, todos los juegos que probé hicieron eso y quedó muy gracioso.
  • ¡Un Gato!: Tiene que salir un gato, “voy a poner un gato de The pet squad” pensé.
  • Tres Colores: Pues 3 colores, bueno 5 que el blanco y el negro no cuentan como colores.
  • Si pestañeas te lo pierdes: La mecánica principal tiene que ser rápida, que pase algo en la pantalla que si te distraes, no lo veas.

Toca pensar en la idea

Primera idea:

Juego de memoria que tengas que ver las cartas unos segundos, se den la vuelta y luego saber buscar una o emparejarlas. No era mala idea pero dije “meh! un juego de cartas, mejor otra cosa”.

En la Jam hay un juego con esta mecánica, le dieron un giro a la idea, la convirtieron en algo más dinámico y bonito, usan gatos en vez de cartas y los tienes que agrupar según su pelaje, está muy chulo, se llama Catsification.

Segunda idea:

Que pasaran gatos de un lado a otro de la pantalla y que tengas que ver algo, no se que, según pasan y pulses el botón en ese momento. Esta idea no supe como seguir desarrollando y pase a otra cosa.

Tercera idea:

La tercera idea partió de la idea de que aparezca y desaparezca algo. Bien, puedo hacer que aparezcan y desaparezcan ratones, si el jugador los ve llama al gato para que se los coma.

Bien, ¿y los 3 colores? pues 3 luces, 3 alarmas cada una un color.

Entonces tiene que haber 3 “plagas”: ratones, para los gatos,** ¿Qué más puede entrar en un lugar y que no sea deseado? ladrones y que venga un policía. **Falta uno. Cualquier cosa. ¿Fantasmas?, **fantasmas **está bien, no tiene mucho sentido mezclar fantasmas con ratones y ladrones pero que tenga sentido no es un requisito, y que vengan los cazafantasmas.

¿Y la historia y esas cosas? Eso ya lo pensaría por el camino.

Bien, ya tengo la idea del juego lista para empezar a desarrollar.

Ahora toca desarrollar

Día 1

Lo primero que hice fue descargar la última versión Godot 4 y ponerme a estructurar las clases que tenía que hacer:

  • Main, donde ocurriría todo
  • Una habitación, Room, tiene las alarmas y los objetos de donde salen los enemigos.
  • Las alarmas, Light, son 3 cada una un color.
  • Los enemigos, Enemy, creo uno y heredo.
  • Los objetos de donde salen los enemigos, Enemy_point, creo uno y heredo.

Poco hice el primer día, crear las escenas y probar a sacar y esconder los enemigos.

Día 2

El segundo día tenía que terminar el prototipo. Para hacerlo más rápido decidí dejar toda la parte visual para el día siguiente, eso quiere decir no buscar ninguna imagen, y usar únicamente el logo de Godot como placeholder.

En el proceso decidí que un solo nivel era poco, que podía hacer varios niveles y con cada nivel una habitación más que vigilar, era solo crear un par más de Enemy_point y colocarlos. Pulsando el botón varios segundos cambias a la siguiente habitación.

Además de las clases que ya mencione cree algunas nuevas:

  • Player: para recoger el input del jugador
  • Clock: indicador de algo, lo use para mostrar el tiempo, el daño y cuanto tiempo se presiona el botón.
  • LightManager: Gestiona las 3 luces.

El esquema de las escenas quedaron así:

Visualmente quedó así:

Día 3

Este día solo trabajé medio día y lo dediqué exclusivamente al apartado gráfico. Primero busqué entre los assets que tenía para saber que tenía que hacer y que podía usar. El gato lo tenía claro iba a usar unos de los gatos de The pet squad:

Encontré entre los assets de Kenney, un monton de objetos en blanco y negro:

Busqué un policía también pero no lo encontré, lo más parecido fue un robot también de Kenney así que lo use cambiando un color:

Ahora ya me tocaba hacer el resto. La idea era hacer que cada enemigo tuviese un color asociado, y que eso indicase que alarma se tenía que encender.

Empecé dibujando los indicadores, el reloj, el indicador de daño y el indicador del botón:

También las luces:

Luego copie un diseño de un ratoncito:

Despues intente hacer un fantasma de Pacman:

Hice el ladrón así genérico:

Lo de hacer a los cazafantasmas me quedaba un poco grande, y dándole vueltas decidí hacer una aspiradora que aspirase al fantasma. Me inspire en la de los Teletubbies:

El botón para que se vea que lo estás pulsando, para el ratón y para pantallas táctiles:

Para finalizar hice los fondos:

Día 4

Era el último día y yo solo tenía unos logos de Godot que hacían cosas. Ese día tocaba montarlo todo, pulirlo y entregarlo.

Empecé por lo más fácil, las alarmas añadir las imágenes como parámetro y listo.

Luego los indicadores, añadir las imágenes y configurar los parámetros.

Ahora empieza lo más laborioso, heredar todos los enemigos y configurar sus parámetros para que se asomen lo justo y necesario. Fueron en total 3 ratones, 3 fantasmas y 2 ladrones con los que se crearon 10 Enemy_point distintos.

Unas vez listos todos los Enemy_point, toca crear las 5 habitaciones con las alarmas, un número para diferenciarlas, un fondo y los Enemy_point suficientes para rellenar la pantalla. Esto lo hice directamente en la escena main pero quizás habría sido mejor crear una escena por habitación.

Si no recuerdo mal cuando terminé las habitaciones quedaban unas 2-3 horas para acabar y aún me faltaba hacer que viesen el gato, el robot y la aspiradora, los menús, el cambio de nivel, probar y subir el juego. Todo lo que faltaba no es difícil pero lleva su tiempo.

Acabe como corriendo y como pude entregué el juego. Se llamó Five nights at labo, una suerte de referencia a Five nights at Freddy’s ya que ambos juegos tienen muchas cosas en común:

  1. Ambos dos transcurre en un periodo de cinco noches.

  2. En ambos vigilan cámaras.

  3. En las dos aparecen criaturas de manera sorpresiva.