INTRODUCCIÓN
Empieza un nuevo mes y eso significa... ¡otra edición de ChumasNews! Sé que me echabas de menos pero ya estoy aquí de nuevo.
Estas últimas semanas han sido algo más tranquilas, aunque la fábrica de ChumasGames no para, así que vamos con el resumen del mes:
RESUMEN MES

No es nada fácil vivir de hacer juegos, y aunque estoy satisfecho con el resultado de PANIK, es una realidad que necesito generar ingresos de algo más para poder... ya sabes, esa manía que tenemos los humanos de comer y tal. Es por eso que actualmente estoy en busca de proyectos en los que poder trabajar y con los que poder tener una mayor estabilidad.
No te asustes, eso no significa que no vaya a seguir con mis proyectos personales, ¡al contrario! Creo que algo que me puede beneficiar mucho por ahora es precisamente que mis ingresos no dependan al 100% de mis juegos. Eso me va a quitar presión a la hora de desarrollar un nuevo juego porque no voy a depender de si funciona mejor o peor ni tampoco voy a tener que acabarlo en un plazo determinado porque toca pagar un alquiler o algo así.
Menos presión = Más libertad creativa.
Además, mi lista de ideas no deja de crecer, ya tengo varias en el punto de mira y es cuestión de tiempo que acabe casándome con alguna de ellas pronto.
Si tú o alguien a quien conoces estáis en busca de un programador, diseñador, tester o incluso pixel artist, esto quizás te interesa: Llevo más de 10 años haciendo juegos, he participado en decenas de game jams, he tocado muchos géneros distintos, he desarrollado y autopublicado un juego completo en Steam y actualmente hago juegos para clientes. Principalmente uso GameMaker pero también tengo experiencia en Unity.
Considero que soy una persona creativa, me gusta aprender cosas nuevas por mi cuenta y creo que puedo aportar muchas cosas a un estudio (y soy majo, ¡lo prometo!).

Vale, esta sección se está pareciendo más a mi currículum que a una newsletter, pero nunca se sabe dónde puede surgir una oportunidad. Si te llama la atención lo que has leído y te encaja puedes contactarme por mail o por mis redes, dejo un enlace por aquí.
NOVEDADES

En la edición anterior de ChumasNews te hablé de los juegos personalizados que hago para clientes y hoy me gustaría explicar un poco cómo es el proceso creativo detrás de estos proyectos, así que te presento: Project Gaga Ball.
LA IDEA
Hace unos meses, me contactó un chico de Estados Unidos explicándome que tenía una idea: tanto él como su grupo de amigos, cada año organizan un campamento de verano con diversas actividades típicas de estos eventos. Normalmente estas actividades suelen ser más parecidas a un deporte o están más relacionadas con un esfuerzo físico. Sin embargo, al chico se le ocurrió que uno de los minijuegos del campamento fuese algo virtual.
El chico me compartió una lista de las actividades que él creía que se podían adaptar al formato videojuego y llegamos a la conclusión de que la mejor era el “Gaga Ball”, un deporte parecido al juego del balón prisionero en el que los participantes golpean la bola dentro de un recinto octagonal.
Uno de los requisitos del juego es que se pudiese jugar desde un navegador web para que cualquier persona pueda probarlo independientemente del dispositivo y sistema operativo. El objetivo es que cada jugador obtenga una puntuación en base al número de eliminaciones que haga o el tiempo que sobreviva.
Así que con todo eso en mente, decidí hacer un juego rápido, frenético y divertido. Un juego que refleje esos momentos de caos entre risas compitiendo con amigos y que se pueda jugar tanto en un ordenador como en un móvil.

Primer boceto del juego
EL PROTOTIPO
Una vez tuve la idea definida, me puse a diseñar los sistemas centrales que iba a tener el juego. Algo que siempre intento hacer es reducir estos sistemas de la manera más general posible.
En este caso, el juego necesitaba un campo de juego octogonal, unos personajes que se puedan desplazar dentro de este y una pelota que pueda rebotar en las paredes del recinto además de poder rodar por el suelo y ser golpeada por los personajes.
Pero en vez de hacer simplemente eso, me propuse hacer un sistema de colisiones que pudiese detectar cuando cualquier círculo estaba dentro o fuera de cualquier polígono regular (esto tiene sentido, hazme caso).

Sistema de colisiones
Esto me iba a servir para detectar cuando cualquier personaje o incluso la pelota estaban dentro o fuera de cualquier campo de juego, independientemente de su tamaño, forma, ángulo… ¿Y si el campo es pentagonal? ¿Y si el tamaño de la pelota es distinto al de los personajes? ¿Y si hay varias pelotas? ¿Y si el campo se desplaza o rota? Todo funciona perfectamente.
Esta es una de las estrategias que más uso a la hora de desarrollar un juego: no me centro en programar un caso concreto, sino que intento diseñar un sistema genérico que me sirva para la mayor cantidad de casos posibles. Si el día de mañana quiero hacer un juego para el que necesite un sistema de colisiones parecido, ya lo tengo hecho. Esto quizás hace que vaya más lento desarrollando algo por primera vez, pero a la larga acelera muchísimos procesos. #ConsejoGameDevDeVuestroAmigoChumas
Después de esto, me puse a programar el movimiento del personaje. Como el juego se tiene que poder jugar tanto en PC como en móvil, implementé un joystick y un botón virtuales que sirven para mover al personaje y golpear la pelota respectivamente. Subí el juego en privado a itch.io para poder probarlo desde el navegador en mi móvil y me aseguré de que fuese cómodo de jugar.
Además, programé el movimiento básico de la pelota, el comportamiento de los NPCs e implementé los primeros sprites que me servirían como placeholders (arte temporal) hasta que me pusiera con el arte final.
Con todo esto funcionando era hora de testear y reajustar mil cosas: La velocidad de movimiento, las colisiones entre jugadores o entre jugador y pelota, a qué distancia puede un jugador golpear la pelota, cada cuánto tiempo puede golpearla… Parece que no, pero detrás de un juego muy sencillo como este también hay muchas variables que, simplemente cambiando su valor, pueden transformar el juego por completo.

Prototipo del juego (Ejecutado desde un navegador web en mi móvil)
EL ARTE
Con la base del juego funcional, era momento de darle un lavado de cara y hacerlo más atractivo visualmente, así que dije adiós a esos placeholders y empecé a diseñar a los personajes. Siempre me gusta hacer criaturas pequeñas, simples y adorables (y esta vez no iba a ser menos).
Los personajes solo pueden moverse y golpear la pelota, así que quise darle importancia a esto último haciendo una animación guay, pero como las animaciones tradicionales no son lo mío… (y aquí va otro #ConsejoGameDevDeVuestroAmigoChumas) decidí hacer animaciones por código.
Se me ocurrió que estas criaturas podían tener unas manos flotando alrededor del cuerpo (similar a Rayman o a los personajes del Wii Sports) y que para golpear la pelota las giraran muy rápido, parecido a Taz de los Looney Tunes cuando se convierte en tornado.
Esto, combinado con otra animación por código para el movimiento, basada en la técnica de squash and stretch, le da muchísimo dinamismo a los personajes, haciendo que se sientan vivos y “blanditos”.

Personaje golpeando
También terminé el arte de la pelota y me puse con uno de los mayores retos para mí: el arte para el background (o fondo) del juego. En este caso, debía ser un terreno concreto a petición del chico basado en una foto de referencia que él mismo me pasó del lugar donde organizan el campamento.
Trabajar el pixel art con lienzos grandes no es mi mayor virtud, me defiendo mucho más con objetos o personajes chiquitos, así que la solución más viable fue hacer un tileset para las diferentes texturas que formarían el terreno. Un tileset es un conjunto de imágenes que se usan para construir una textura como si fuesen piezas de un puzle.
Para este terreno usé un color base para la tierra y creé las texturas de la hierba y del mantillo (yo tampoco tenía ni idea de como se llamaba ese material pero oye, aquí aprendemos de todo). Monté el escenario acorde a la foto de referencia y añadí algunos detalles extra.
Además, hice que el borde del campo fuese más visual y añadí algunos efectos más a la pelota y a los personajes. Así es como se ve todo en el momento de redactar esto:

Captura del juego en su estado actual
El juego aún está en desarrollo, hay cosas sujetas a cambios y aún quedan muchas otras cosas por añadir pero estoy muy contento con el resultado hasta ahora. Y espero que te haya gustado el proceso creativo detrás del proyecto, próximamente seguro que traigo más cositas así, yo lo he disfrutado mucho.
TU TURNO

Desde hace un tiempo, me he dado cuenta de que me cuesta jugar a cosas nuevas. Ya sea por falta de tiempo o por recaer en los mismos juegos de siempre, durante estos últimos años he probado pocas cosas. Y no será por no tener suficientes juegos en la biblioteca de Steam, porque tengo auténticas joyitas que aún no he ni jugado.
Pero como poco a poco estoy intentando cambiar eso, voy a intentar traer recomendaciones de cosas que encuentre, pruebe o me apetezcan, sin más. No me quiero limitar a juegos de puzles, pero estas primeras recomendaciones sí que van a ir por ahí, hoy te traigo dos propuestas para darle al coco:
Isles of Sea and Sky, un sokobania (sokoban + metroidvania) que me ha encantado. Me flipa cuando varios sistemas dentro de un juego interactúan entre sí y este juego lo hace de maravilla. Está en Steam por 19,50€ aunque yo lo pillé en una mega oferta hace poquito por 4€.

Isles of Sea and Sky
Piece by Piece, un juego en el que debes montar los niveles como si fueran, literalmente, piezas de un puzle y que también tiene varios giros muy interesantes. De este solo he probado la demo, así que si quieres una alternativa económica, la puedes probar gratis en Steam.

Piece by Piece
Espero que alguna de estas o de las futuras recomendaciones te llamen la atención. Aunque yo estaré encantado de intercambiar descubrimientos videojueguiles contigo, así que dime…
¿Has jugado a algo interesante últimamente?
¡Anímate a participar!
Muchas gracias por leerme, de corazón. Hasta el próximo mes,
Xavi :)

