[Devlog] Christmas Stack! (Crónicas de un DROP anunciado)

Geck0

¿Qué es Christmas Stack!?

Es un pequeño juego navideño que combina el tipo match3 con un poco de plataformas. Eres un ayudante de Santa Claus que envía los paquetes a través de magia a su saco uniendo cajas del mismo tipo o haciendo líneas de cajas.

Dependiendo del nivel, interesa que hagas cierto número de puntos enviando cajas, que envíes solo las de un tipo, hacer un número determinado de líneas, etc.

¿Cómo se juega?

Los controles son sencillos:

  • Movimiento: WASD o stick izquierdo del mando.
  • Saltar: SPACE o A en un mando estilo Steam controller/XBOX

Cuando estamos en el mapa de selección de niveles podemos movernos en todas direcciones, pero cuando entramos al nivel en sí, solo nos moveremos de izquierda a derecha.

Movernos hacia una caja que tiene espacio para ser empujada, la moverá en esa dirección. Si la caja cumple las condiciones de ser enviada (estar cerca de otras dos iguales, como mínimo, o hacer una línea) desaparecerá.

Si nos cae una caja encima, perdemos.
Si se acaba el tiempo, perdemos.
Si conseguimos el objetivo del nivel, ganamos y podemos volver al mapa de selección de niveles para ir a otro nivel.

¿De dónde surge la idea de hacer el juego?

Este juego nace en mi cuarta Ludum Dare, allá por el año 2016. Está basado en un antiguo juego de movil que tenía en mi Siemens A50 y que "sorprendentemente" nadie recuerda xD.

Podeis ver un video de esta versión del juego:

Como esta jam fue en la versión antigua de la web de ludumdare, no podeis entrar en la página de la publicación, pero os lo dejo en la versión de mi cutre portfolio.

Equipo de desarrollo y herramientas utilizadas

Equipo

El equipo de desarrollo consta de un miembro, que soy yo obviamente.

Herramientas

Las herramientas utilizadas son:

  • Unreal Engine 4
  • Blender
  • Material Maker
  • Audacity
  • Mixamo.com (para las animaciones xd)
  • Krita
  • Photopea.com
  • Trello
  • Google Drive docs
  • Visual Studio Community (solo para crearme un programita para generar niveles, los pinto en una hoja de cálculo, pego el texto en mi programita y el resultado lo inserto en una tabla de UE4 con los datos necesarios)

¿Cuánto tiempo llevas desarrollando el juego?

Es muy complicado de calcular. Empecé en noviembre de 2020 y, como comenté en puntos anteriores, el tiempo dedicado semanal igual no llegaba a 8 horas. Y no son las horas más productivas del mundo.

A parte he tenido parones de meses de desmotivación. A muchos de los que me estais leyendo les pasará seguro xD

A 4 de enero de 2023, he sacado una demo jugable de la versión ALPHA del juego.

¿Por qué hacer un devlog?

He estado, desde que empecé con el proyecto pensando si escribir o no este devlog. Pero claro, el avance de la mayor parte del tiempo era ridículamente lento. Por ello es que lo que voy a ir enseñando va a ser información vieja, voy bastante más adelantado, pero por darle cierta progresión al hilo, como me gustaría que hubiera sido en su momento.

Actualmente, el foro no se acerca al movimiento que tenía cuando me empecé a interesar en el mundillo (que tampoco era la mega actividad), pero finalmente me he lanzado, igual tenía esa espinita clavada, o quizás busco motivarme de otra manera antes de caer de nuevo en el pozo, estando ya casi en agosto >_<.

Estado del juego

Hecho

  • Menú principal funcional (elementos visuales provisionales)
  • Mapa de selección de niveles funcional (elementos visuales provisionales)
  • GamePlay listo para, al menos, 4 tipos de partida (objetivos).
  • Modelo del personaje + algunas animaciones.
  • 2 escenarios de fondo: una fábrica de juguetes y su variante de día.
  • Menús de pausa/victoria/derrota funcionales (elementos visuales provisionales, o no xd)
  • Nivel Tutorial
  • Menú de ajustes para cambiar el volumen de la música y efectos sonoros y cambiar el idioma español-inglés.
  • Mejorar elementos visuales del menú principal
  • Añadir las animaciones que faltan.
  • Completar los escenarios de fábrica con patrullas de elfos y algún evento simpático.
  • Publicar lo que haya en Itch.io
Histórico imágenes

Falta

  • Mejorar elementos visuales del mapa de selección de niveles.
  • Mejora la UI en general.
  • Hacer la parte visual (y sonora) de debufos que ya tenemos diseñados para poder introducirlos en niveles.
  • Generar, al menos, 100 niveles.
  • Modelar diferentes peinados y aplicarlos aleatoriamente a los elfos del fondo. (También está la idea de que cada partida seas un elfo random, pero es secundario por ahora).
  • Modelar 2 trajes más, los del concept: el clásico de Santa Claus (color está por ver) y el de la camisa a rayas blancas y rojas con diadema de cuernos de reno.
  • Crear, al menos, 2 escenarios más: uno al aire libre tipo bosque o así y otro un centro comercial o tienda de juguetes.
  • Conseguir música.
  • Publicar en Steam (no dará tiempo ni de coña)

DEMO jugable de la versión ALPHA

La he subido a Itch.io para cualquiera que lo quiera probar. Cualquier feedback es bienvenido

1
kidandcat

Muchos ánimos! estamos más o menos en las mismas jajaja, con el bebe, pero tu dale caña, que tener un juego tuyo publicado, aunque tenga 0 descargas, da satisfacción.

Mis respetos por tirar tú solo con Unreal 🫣

2 1 respuesta
Geck0

#2 thanks!

El siguiente paso que hemos dado, ha sido corregir un bug que nos impedía en ciertos momentos a mover las cajas (no hay nada que enseñar al respecto) y continué ampliando el número de cajas distintas.

Nuevas cajas

Hasta ahora teníamos varias cajas por tipo: lazo, puntos y rayas.
He incluido un nuevo tipo que es "nieve" y he cambiado un poco las texturas probando cosas.

Sigue siendo provisional porque no me he puesto a "estudiar" el código de color y mirar cuáles debería usar, he ido añadiendo un poco aleatoriamente:

  • Cajas lazo: amarillo y rojo, verde y naranja, rosa y azul
  • Cajas puntos: azul, rojo, verde
  • Cajas rayas: morado-blanco, naranja-blanco y amarillo-marrón
  • Cajas nieve: azul, marrón y morado.

Ahora hay más variedad de cajas y podré configurar niveles con más o menos densidad de tipos, y está pensado un modo en el que se pedirá enviar solo cajas de un tipo.

Ahora aparecen unas cajas puestas a mano ya en el suelo al principio del nivel.

Walljump

Además de añadir más cajas, he añadido una nueva mecánica que no existía en la versión de LD: wall-jump.

Era un poco frustrante caer entre dos pilas de cajas altas y no tener posibilidad de escapar, más que esperar a tener suerte de que no te caigan encima y se envíen las de alrededor.

Ahora el jugador será capaz de salir d ahí saltando entre cajas.

1
B
#1Geck0:

Es un pequeño juego navideño que combina el tipo match3 con un poco de plataformas. Eres un ayudante de Santa Claus que envía los paquetes a través de magia a su saco uniendo cajas del mismo tipo o haciendo líneas de cajas.

Enhorabuena por todo lo logrado hasta ahora.

Me gustaría incidir en la parte navideña del juego, ¿representa una época del año importante para ti? ¿Encaja de alguna manera la temática del juego con la nostalgia por juegos retro o por la propia Navidad?

Recuerdo haber probado una de las versiones del juego y fue muy divertida, el primer juego con el que disfruto en años.

Me recordó a esos grandes juegos de antaño que se centraban en pasar una buena experiencia por parte del jugador y no se perdían en otros apartados que considero menos importantes. Como si buscases crear momentos especiales como hacen los encargados de marketing experiencial.

1 1 respuesta
Geck0

#4 Básicamente no suelo pensar en hacer un juego por hacerlo de cualquier manera. Cuando me acordé de aquel juego de movil de principio de los 00', no quería copiarlo tal cual ni hacer poner a un monigote random cayéndole cajas porque sí, sino que le busqué un sentido aunque fuera un juego tan simple.

Me lo imaginé de esta manera (era diciembre, siempre ayuda el contexto) y vi que podía tener mucho sentido, que en-caja-ba (chistaco xd) a la perfección y no me he salido de esa línea. Tengo la posibilidad de hacerle un lavado de cara, ponerle un contexto genérico y dejar la parte navideña como DLC navideño, pero no me apetece, lo visualizo y la verdad que para eso prefiero publicar lo que tenga y a por el siguiente (tengo muchos en mente y tiempo para nada xD)

1
Geck0

Yo sigo con la turra, aunque no le interese a nadie, que puede que dropee el juego pero nunca el devlog! xD

Voy recopilando a ratos el proceso para ponerme al día

Menús

Añadimos algo de menús. Es aspecto es, como todo lo que vereis, provisional.

MainMenu

Hemos creado un menú de inicio, con 4 opciones: Nueva partida, cargar partida, ajustes y salir.
En principio solo funciona "Nueva partida", que carga el primer nivel, y Salir (no más alt F4!).

El aspecto simplemente son las cajas del juego en primer plano, con un fondo azul con cutrenubes que van pasando y el título hecho en unos minutos xD

Menú pausa

Simplemente es un recuadro rojo y verde (colores típicos de la navidad) con las opciones como texto.
Tiene dos variantes:

  • Victoria: Aparece el texto VICTORIA en amarillo encima del recuadro y las opciones "reiniciar nivel", "siguiente nivel" y "salir al menú".
  • Derrota: Aparece el texto DERROTA en amarillo encima del recuadro y las opciones "reiniciar nivel" y "salir al menú".

(En la captura ya se ve un spoiler del siguiente cambio, info de la partida en la interfaz)

Interfaz del nivel

Hemos colocado un poco de información en la UI del nivel:

  • Nivel actual
  • Objetivo del nivel
  • Puntuación del objetivo

Además, hemos creado 3 niveles, uno de cada tipo:

  • Hacer 1000 puntos
  • Enviar 10 cajas de tipo lazo
  • Hacer 5 líneas

Finalmente, me daba cosita ver al personaje verde y simplemente le cambié el color de los materiales para que se vea menos mal:

1
Geck0

Seguimos actualizando

Sonidos

He pillado sonidos gratuitos y los he modificado un poco con audacity para lo que necesitaba en la mayoría de casos.

Hemos metido algunos sonidos al juego:

  • Música gratuita: 3 temas que suenan en bucle e ininterrumpidamente desde que carga el menú. En principio comienza con uno de los temas de forma aleatoria.
  • Pasos: Ahora se escuchan pasos (muy bajito). Según si pisas una caja o el suelo se escucha un sonido y otro. Digamos que en el suelo se escuchan pasos "normales" y en las cajas se escucha como sonido de papel arrugándose, modificado un poco para que parezca que pisa papel de regalo.
  • Envío de cajas: se escuchan cascabeles en la localización de las cajas a enviar.
  • Victoria: se escuchan niños elfos ovacionando.
  • Derrota: se escuchan niños elfos diciendo "ooooooh".
  • Salto: se escucha un "hop!" al estilo worms >_<

(se puede subir video con sonido a imgur o uno de estos? por compartir con audio sin estar subiendo a youtube)

Sistema de combos

Hasta ahora enviar cajas hacia que brillaran en amarillo y desaparecieran, haciendo X puntos si el objetivo es hacer puntos.

Ahora hemos implementado un sistema de combos, que se ejecutan entre envíos cuando pasan menos de X segundos:

  • Primer envío: efecto amarillo/naranja y X puntos.
  • Segundo envío: rosa y X*2 puntos.
  • Tercer envío: azul oscuro y X*3 puntos.
  • A partir del cuarto envío: azul claro y X*4 puntos.

No se ha comentado, pero al enviar cajas, depende también el número de cajas que se envían, por ejemplo enviar 3 cajas (mínimo) son 80, 4 son 150 y +5 son 250.

Cambios interfaz

  • Se añade la cuenta atrás del tiempo que le queda al nivel. Cuando quedan 10 segundos empieza a parpatear en rojo.
  • Al enviar cajas, sale un texto flotante con los puntos, con color según el combo.
  • Aumentar el objetivo del mapa (sumar puntos, hacer línea, etc) hace una pequeña animación en el texto de los puntos.

Imagen con los cambios de interfaz haciendo un combo:

Splash

Finalmente le he metido un splash con mi logo por las risas, de fondo se escucha un susurro que dice "geckooo..." xD

2
Geck0

La actualización que toca ahora es un buen ladrillaco, lo separo en dos xD

Nuevas cajas especiales

Se añaden nuevas cajas, que tienen una funcionalidad particular

  • Caja de cartón: Al no estar empaquetada, no se puede enviar. Ni consiguiendo juntar 3 ni realizando una línea, de hecho no se puede enviar una línea que contenga una caja de cartón. Se puede mover igual que las cajas normales.
  • "Caja" muro: No es una caja en realidad, es un bloque que no se puede mover ni enviar ni nada. Un obstáculo para el jugador y que evita enviar líneas, por supuesto.
  • Caja del enemigo: Cada cierto tiempo tendremos que lidiar contra un elfo gamberro que nos boicotea el trabajo poniendo unas cajas especiales. No se pueden mover ni enviar, pero se pueden destruir haciendo un envío de una caja adyacente. Lo normal es que sea el objetivo del nivel destruirlas todas.

Hemos creado un nuevo nivel, el 4º en este caso, que contenga todas estas nuevas cajas

Generador de niveles

Aprovechando el nuevo nivel que hemos generado, me he creado un sistema sencillo para generar niveles (entendiendo esto como las cajas que aparecen puestas ya al comenzar el nivel).

Básicamente pinto en una hoja de cálculo con ciertos códigos y luego con un programita creado por mi, copio y pego las celdas del excel y lo convierto en la información que entiende el UE4 para generar dichas tablas.

Estrellas, guardar partida y selección de niveles

Estrellas

Ahora al pasarte un nivel consigues estrellas según el tiempo que has tardado (de 0 a 3)

Guardar partida

Ya podemos guardar partida, al volver a entrar podemos seguir por el nivel que toca y tenemos almacenadas las estrellas y los tiempos conseguidos.

Selección de niveles.

Hemos creado un mundo básico y cutre donde seleccionar el nivel. Al acercarnos al nivel nos aparece un cuadro con la información del nivel, si nos lo hemos pasado, en cuánto tiempo, cuántas estrella o si no podemos jugarlo porque debemos pasarnos los anteriores primero

También nos muestra el progreso de la partida, el porcentaje de niveles superados y las estrellas conseguidas (en la captura sale al revés, el icono de estrellas sería para el 10/12)

2
Geck0

La segunda parte del tochaco de hoy en #8 tiene que ver con los menús, implementando las estrellas y las partidas guardadas. Se aprovecha esto para hacer un lavado de cara

Menú principal

  • Hemos cambiado la fuente de letra de todos los textos del juego
  • Nueva partida y cargar partida se unen en "Jugar". Si es la primera vez que entras carga una partida nueva, y si no, te da la opción de cargar o empezar otra.
  • Sigue pendiente de hacer los ajustes y aparece como deshabilitado "cómo jugar".
  • Se le añade a todos los menús una línea en la parte inferior con las teclas/botones que nos sirven para navegar y utilizarlos (muy provisionales los iconos, es un cuadrado de fondo con un caracter en texto delante)

Pinchando en "Jugar" se abre el panel para seleccionar slot

Tenemos la opción, cómo no, de eliminar partida. Muy fea la ventana tbh.

Menús del juego

Se rehacen el menú de pausa, victoria y derrota, pero siguen manteniendo, entre ellos, el mismo aspecto. Cada uno tendrá los botones que necesite en su momento y el menú de victoria tiene, además, una pequeña animación con las estrellas conseguidas.

El menú pausa cambia cuando se abre en la partida y en el mundo de selección de niveles.

3
tuskas

Joder, que pasada los que sabéis hacer estas cosas!

Mi más sincera enhorabuena y ánimo con tu proyecto aunque vaya poco a poco. Muy chulo todo. Sobre todo el lore! 😂😂😂

Y yo intentando aprender javascript y soy un puto inútil xdd maldita vida.

2 2 respuestas
Geck0

#10 Jajaj gracias se hace lo que se puede

Todo es ponerse, empiezas con JS y en un tiempo si te gusta y le das caña puedes hacer casi cualquier cosa

1 1 respuesta
B

#11 ¿Cuál dirías que ha sido la parte más complicada de todo el proceso de crear Christmas Stack?

#10 Además, como dije, la versión que yo probé era muy divertida. No sólo tiene arte para crear el juego siendo un hombre orquesta, sino que sabe hacer que pases un buen rato y es algo muy difícil de conseguir, no todos los juegos lo logran.

1 1 respuesta
carra

El título de este hilo es clickbait, no veo ningún drop! :stuck_out_tongue_winking_eye:
Sigue así, a este paso lo terminarás jeje

1 1 respuesta
Geck0

#12 Todo lo que no es programación, que es lo que controlo. Me gusta modelar, dibujar, etc pero no es mi fuerte precisamente xD Se hace lo que se puede pero el nivel es el que es jejejej. La versión que te pasé es justo como se ve ahora en el update #9

#13 Bueno, en realidad estoy actualizando muy rápido porque es contenido que he ido haciendo meses atrás y lo voy presentando poco a poco porque no creé el devlog en su día. Voy más avanzado pero creo que no llego a diciembre con todo hecho con el tiempo del que dispongo, pero sigo ahí intentándolo >_<

1
Geck0

Sigo actualizando, viene el update fatídico que hace que pierda meses (más de 6 seguro) desmotivado sin tocar nada

Concept y primer intento de modelar el personaje

Ya tengo todo lo necesario programado para que el juego funcione, muy pocos bugs he tenido y por el momento parece que va todo correcto. Pero todo lo visual es provisional y hay que empezar a darle caña.

Concept

Hago un concept del personaje que ríete tú de los artistas de Blizzard

La idea es hacer varios skins para darle un poco de variedad y si diera tiempo, modelar distintos pelos y el color de piel sea variable y así tener diferentes personajes, aunque sean 'atrezzo'. En principio no tendrían género visible.

También habría un enemigo, que sería visualmente reconocible, en este caso me lo imaginé de color verde y una cara más puntiaguda.

Por ahora vamos a crear uno como principal y ya veremos.

Primer modelo

No me gusta nada como queda, me desmotivo y caigo en el pozo.

Se viene el drama y el drop (que ahora ya sabemos que no fue definitivo, porque lo retomé a los 6-7 meses).

3 1 respuesta
Thanat0s

Menuda currada, gran trabajo <3

2 1 respuesta
Geck0

#16 <3

Más de medio año después, motivado quizás por ver a otros en streaming continuar con su juego, me he "obligado" a continuar. He empezado a refactorizar un poco el código para ir recordando cosas y porque había algo que quería cambiar hace tiempo.

Refactorización de código

Me puse a mejorar un poco el código. La es verdad que no suelo tener código spaguetti ni cosas muy locas así que tampoco me llevó mucho tiempo, fue como una toma de contacto. Pero sí que había algo que quería cambiar:

Para el que no esté familiarizado con Unreal Engine, hay una clase que se llama GameMode que se carga siempre que se carga un mapa, antes del CharacterController, HUD, etc. Es una clase básica que está pensada para controlar ciertos aspectos básicos del juego: qué debería cargarse según el nivel, cuándo ganas, cuándo pierdes, etc. Pero al final, a este tipo de clases le puedes meter lo que quieras que lo aguanta...

En mi caso, tenía metido en el GameMode toda la lógica principal del juego:

  • Cargar el nivel según la tabla de niveles.
  • Invocar cajas (en relación a la coordenada 0,0,0 del mapa).
  • Revisar si se puede enviar las cajas en cada movimiento.
  • Etc.

Me entretuve bastante días en pasar esto a un blueprint por separado, de tipo Actor, que no solo ya no dependía del gamemode sino que, además, ya no trabaja en el 0,0,0 sino en las coordenadas donde yo ponga este actor. Esto último me permite mover la parte jugable sin drama, antes tenía q estar en el 0,0,0 sí o sí. Ahora ya el gamemode no tiene que estar comprobando si estamos en el nivel de cajas para ejecutar toda su lógica, sino que es el blueprint del nivel el que lanza esta nueva clase para empezar la partida.

"Nuevo" modelo del personaje

Llegó el momento de enfrentarme a lo que me hizo perder la motivación, el modelo del personaje.

No hice uno nuevo, sino que retoqué el anterior:

  • La cara es menos redonda y el cuerpo un poco más estilizado.
  • Los adornos de la ropa ya no son mallas independientes, es todo en uno. Sí los dividí en distinto materiales y por el momento solo tienen un color simple por pieza.
  • Un par de retoques más y lo he pasado por mixamo.com para hacerle el rig (añadir esqueleto con 2 clicks) y le metí un par de animaciones básicas que he retocado levemente: Idle, Correr, Saltar y Caer.

El resultado no me ha disgustado tanto esta vez, y teniendo en cuenta que en el juego se ve pequeño, adelante.

Ya podemos seguir modelando cosas en siguientes updates y quitar el fondo feo ese gris.

3
Geck0

Nos vamos a poner con el primer escenario del nivel, el atrezzo de fondo. Así que toca ronda de modelado.

Hemos imaginado que el escenario es una fábrica de juguetes de los elfos.

Se han encogido las paredes laterales, solo para que el jugador pueda saltar sobre ella, estirado el suelo para que ocupe todo el espacio visible y el fondo deja un espacio para las ventanas que veremos a continuación (no tengo imagen de esta fase :( )

Ventanas

Hemos empezado creando una ventana con cortinas, contiene:

  • Pared con el hueco de la ventana
  • Borde de la ventana
  • Barrotes
  • Cortinas: una recogida y otra estirada, así como "esa cosa que cubre el riel de la cortina" >_<

Lo importamos a UE4 y nos creamos un nuevo actor para maquetarlo a nuestro gusto. Le hemos añadido luces para simular la entrada de luz por la ventana. Jugando con variables, el constructor nos pinta la ventana de una u otra forma:

  • Ventana con o sin barrotes.
  • Con cortinas (y esa cosa que cubre el riel) o sin cortinas.
  • En caso de tener cortinas, podemos elegir para cada una si está recogida o estirada.
  • Es de noche o de día: de noche no hay luces.
  • Incluso podemos decir que no es una ventana, y nos deja solo una pared, quitando también las luces que hemos colocado.

Cintas transportadoras

Vamos a poner un par de cintas transportadoras. La idea es que se ven pasar cajas de cartón que se meten dentro de una máquina y salen empaquetadas de un papel aleatorio.

Modelamos las piezas por separado;

  • Extremo de la cinta
  • Cuerpo de la cinta (para luego repetirlo las veces que queramos)
  • Ruedas/rodillos de la cinta (lo hemos puesto separado por si queremos animarlo, pero en principio al ser tan pequeño y se solo de fondo, croe que no lo haremos)
  • Pata de la cinta
  • Máquina empaquetadora
  • Tapa de la máquina empaquetadora

Lo importamos a UE4 y nos creamos un nuevo actor para maquetarlo a nuestro gusto. Jugando con variables, el constructor nos pinta la ventana de una u otra forma:

  • Elegimos el número de piezas intermedias que queremos añadir
  • Si queremos poner "la máquina" en medio o no
  • Si queremos tener patas o no
  • Si queremos que la tapa de la máquina esté a la izquierda o a la derecha (la idea es que se mueva, solo estará en el lado que se vea)

Vigas

Queda como mucho espacio en la parte superior, vamos a añadir unas "vigas".

En este caso solo hemos hecho un par de tubos, uno fino y otro más grueso con agujeros.

Luego al importarlo a UE4, como en el resto de casos, creamos un actor para maquetarlo a nuestro gusto. Ponemos dos tubos gordos, uno arriba y otro abajo y en medio dos tubos finos haciendo una X.

Con una variable definimos la cantidad de veces que esto se repite.

Seguiremos con más props, que tengo una idea para sustituir las paredes esas que no pegan nada ya y un par de cosas más.

3
Geck0

Segunda parte de la "oleada" de props para el primer escenario

Columnas bastón de caramelo

Para sustituir a las paredes, había pensado en poner unas columnas. Se me ocurrió que podía estar adornada como un bastón de caramelo pero... ¿por qué no hacer que esas columnas sean un bastón de caramelo en sí?

Modelamos la parte circular por un lado y un pequeño cilindro por otro

Al importarlo en UE4 nos creamos un nuevo actor donde podremos ir indicando el número de cilindros que tendrá, y marcarán la altura.
Además, tenemos una caja de colisión que crecerá con el bastón y será por la que salte el jugador, el bastón en sí no tiene colisión.

Tuberías

Las cajas tienen que ir por las cajas transportadoras a algún lado, ¿cómo hacemos esto? pues que entren en tuberías que los distribuyan a las zonas de envío.

Modelamos, más que una tubería, un conducto de aire xD.

  • Pieza de conducto normal
  • Pieza "codo"

Una vez más, lo añadimos a UE4 y creamos un nuevo BP actor para poder insertarlo con la longitud que queramos. El constructor nos spawneará el número de piezas que configuremos.

Al final los codos no los hemos añadido a este actor, era un coñazo "automatizarlo" así que los pondremos a mano en el mapa.

Probamos los nuevos props

Probamos a introducir los nuevos modelos que hemos hecho, sin pensar en la luz ni nada, tal como estaba con las paredes de antes, y el resultado es el siguiente:

Luces

Probamos a cambiar las luces, con las luces dinámicas que le pusimos quedaba chulísimo. Pero los FPS caían en picado, supongo que al final son muchas cajas proyectando sombra...

Así que las quitamos, todos lo elementos del mapa son estáticos y 'bakeamos' las luces. Igual en un futuro vuelvo a investigar (también se me ocurren buenas ñapas para imitar esa sombra xd)

Añadimos más elementos

Ponemos tuberías recogiendo las cajas, otra cinta por la derecha para romper la simetría innecesaria y algunos elfos con la T-Pose por ahí desperdigados. Hemos creado un actor provisional con lámparas, por no poner las luces de posición sueltas. Las lámparas ahora mismo son el tubo pequeño de las vigas y un cubo estandar de unreal.

Además, hemos visto que se ve muy pegado a la pantalla, y con el espacio que "ha ganado" la pantalla, podemos alejar bastante la cámara y se ve mejor:

¡La cosa ya tiene otra forma!

2
carra

Al final lo vas a pulir bastante :smiley:

2
tuskas

Menudo avance!

Parece que el ir contando en el blog, te va dando más ganas para seguir y meterle caña, aunque sean cosas que ya tenías hechas y estés contando.

Te está quedando muy chulo, mucho ánimo y esperamos más novedades!

2
Geck0

Estamos acabando con las novedades no tan nuevas (lo que llevaba hecho antes de escribir el devlog) y se viene el frenazo (desde que empecé con el devlog he avanzado 0, me he pegado contra una pared por una tontería visual y he tenido poco tiempo para ponerme, menos del habitual)

Lo separo en 2 updates que ya bastante ladrillaco es >_<

Lámpara

Hicimos una lámpara básica para quitar el cubo de prueba que habíamos puesto de prueba. Nada que destacar:

En UE seguimos usando el tubo que importamos con las vigas, no necesitamos más.

Árbol de Navidad

Se me ocurre que en un juego navideño algún árbol de Navidad debe haber... así que me puse a modelar uno. Al tercer intento me salió algo que no me disgusta del todo (los primeros me salían muy lowpoly, y, a pesar de que no es un juego con mucha definición, tampoco es lowpoly). Modelamos 3 partes:

  • Tronco
  • Ramas del medio
  • Ramas de la parte superior

¿Me sobraba las partes del medio y me valía con stackear las de la parte superior? Puede ser, pero recuerdo probarlo y quedaba feo porque tenía que pegarlos mucho al estrecharse antes la parte de arriba.

Al mismo tiempo, y antes de crear nuestro actor en unreal, hemos hecho unos pocos modelos para usar de adorno, a ver cómo queda. Tenemos:

  • Bola de navidad (que nos servirá para las luces)
  • Estrella
  • Lazo

Ahora sí, importamos todo en UE4, creamos nuestro actor y maquetamos el árbol. En un principio podíamos decidir la altura del árbol (número de partes centrales) en el constructor, pero a la hora de ponerle los adornos se complicaba y lo preparé a mano a la altura que necesitaba.

Añadimos bolas de diferentes colores, lazos rojos la estrella en la parte superior y reciclamos las bolas para añadir luces.

Las luz de las luces simplemente es un material emisivo, ya veré si las hago parpadear, porque tampoco quiero que moleste porque solo es atrezzo de fondo. No están puestas a mano, sino calculando las posiciones en base a un número de luces establecido, las diferentes partes del árbol y en un radio determinado según la parte del árbol que rodean.

Área de envío

Al ver cómo quedaba el árbol y otras pruebas, se me ocurrió que podía tener delimitado el área de envío. ¡Los otros elfos de la fábrica no deberían acercarse para evitar accidentes!

Creé un widget rápido por probar

Y lo añadí al BluePrint que gestiona el gameplay del juego. Aproveché para configurar ahí varias cosas:

  • Al principio solo tenía una caja que simboliza el "panel" del juego, el ancho y el alto.
  • Le añadimos el área de envío que acabamos de crear.
  • Añadimos las columnas de bastón de caramelo, en lugar de añadirlas al mapa.
  • Hicimos lo mismo con el rail de las cajas en la parte superior.
  • Añadimos una caja de bloqueo en la parte superior, que teníamos en el mapa antes, por el cual el personaje no puede pasar. Es el límite del salto.

1
Geck0

Continuamos con la actualización del escenario para llegar al estado actual.

Material suelo

Me he puesto a trastear un poco con Material maker y encontré una plantilla que me venía bien com suelo de madera no muy realista. La he modificado un poco a mi gusto y al final tenemos este material para el suelo:

Paredes segundo nivel y escaleras

Como habreis notado, las cintas transportadoras del fondo están en un nivel algo por encima de la zona de envíos. Esto es porque si lo ponía al mismo nivel no se apreciaba bien y quedaba mucho espacio vacío donde solo había pared.

Había barajado varias opciones, como subirlo un poco más y hacer como pequeños despachos con elfos haciendo papeleo y tal, pero finalmente he decidido probar con poner alguna pared con barandilla y escaleras para acceder a ese nivel. Vamos a blender y hacemos varias piezas:

  • Listón de madera para unir pared con suelo. + Separador
  • Listón de madera más pequeño para pasamanos de la barandilla. + Separador con bola
  • Barrote de barandilla.
  • Pasamanos en diagonal para usar en la escalera
  • Escalera
  • Pared triangular que casa con la escalera para tapar el hueco.

Importamos a UE4 y creamos, en este caso, 2 actores.

Pared

Creamos un actor para las paredes donde podemos maquetarlo a nuestro gusto con los distintos parámetros del constructor:

  • Longitud (número de repeticiones de la pared)
  • Tiene barandilla o no
  • Empieza con palo vestical o no, dependendiendo dónde va la pared, podemos no necesitar el primer palo porque se solapa con otra pared o escalera.

Escalera

Creamos otro actor para contruir las escaleras, podemos decidir si tiene barandilla o no.

Resultado con los últimos cambios

Unimos todos los cambios de las últimas 2 updates y el resultado es el siguiente:

Además, el escenario tendrá la variación de noche, que a groso modo tendrá unas pocas diferencias:

  • Algunas cortinas están cerradas
  • No viene luz de fuera de las ventanas
  • Hay menos elfos trabajando
  • Se me ocurre alguna chorrada más que ya veré si implemento

Estado el escenario

Faltaría ver si se mueven las cajas y los elfos del fondo, lo visual en cuanto al escenario ya lo tenemos al día. No se cómo "pintar" la parede del fondo, alguna idea? En principio iba a hacer algún estampado que se repita en blanco con algunos motivos navideños y el resto probar con colores de fondo... azul... verde... naranja... gris...

4
RosaNegra

#15 350 pavos y te hago el personaje to maqueao.

Aquí un personaje que hice (game ready)

:new_moon_with_face:

Bagh! llego tarde :(

2 1 respuesta
Geck0

#24 Se agradece igualmente

De todas formas toy pelao, probablemente hasta la música voy a tener que ponerla free o de alguna colección de assets >_<

1
Geck0

Le he dado un poco de movimiento al escenario, en cintas transportadoras y en elfos

Cintas

Básicamente hago spawn de cajas (que llamo cajas 'dummy', porque no tienen el funcionamiento de las de la partida) dentro de la máquina de las cintas transportadoras del fondo, activando el trigger que tienen dentro. Activar este trigger implica que:

  • La luz gorda pasa de verde a roja (está ocupada)
  • Se encienden y apagan en orden las luces pequeñas roja, naranja y verde. Cada una indica el estado del empaquetado (?).
  • Sale humo por la chimenea de la máquina. En principio es humo blanco/gris + el color predominante de la caja resultante. Apenas se nota, en el mapa d noche algo más, igual lo dejo solo del color de la caja, no se.
  • Spawnea una caja de cartón el tubo de detrás y se mueve hacia la máquina
  • Se abre la tapa de la máquina y sale la caja con un papel random hacia el tubo final.

En la cinta que se ve al lateral no le he puesto la máquina, simplemente se ven aparecienco las cajas y entrando en el tubo. Igual pongo algún tipo de nube negra metida en el tubo para que no se vea el interior y que simplemente desaparezca poco a poco.

Elfos de atrezzo

Creamos un character para los elfos del fondo y un IAController para los movimientos. En principio solo quería hacer movimientos simples de un target point a otro. Pero me ha dado problema y al final les he tenido que meter un árbol de comportamiento para buscar siguiente destino, moverse y, en un futuro, hacer alguna acción "especial".

Pequeña muestra de los cambios

7
27 días después
Geck0

Bloqueo mental y vacaciones

Casi un mes sin actualizar debido a que he estado en uno de esos bajones en los que se me bloquea la mente, seguida de las vacaciones que no he parado quieto en casa. Todo esto ha hecho que apenas me haya puesto con el juego y que el tiempo para acabarlo sea cada vez más escaso. Pero bueno, seguimos.

Quitar el cursor del ratón del juego

Una de las cuestiones con las que me he peleado es con quitar el ratón del juego. Por lo que sea sentí la necesidad de quitarlo, manejar los menús con los botones de dirección y listo (a veces el cursor puede molestar con el foco del elemento).

Mi sorpresa es que no es tan sencillo y que mucha gente tiene los problemas que estuve teniendo. Resulta que puedes ocultarlo pero aun así si lo mueves puedes seguir haciendo 'hover' e incluso hacer click. Configuré los distintos widgets para que al menos al hacer click no se vuelva a mostrar, pero no encontré la forma de desactivar el puto ratón por completo.

Al ser una tontería y llevarme tanto tiempo para que al final no quede como quiero me pudo frustrar un poco, teniendo en cuenta que si no saco el juego en Navidad no tiene sentido, y queda nada.

Lavado de cara del mapa de selección de niveles

Pasé a otra cosa, poner algo medio decente en el mapa de selección de niveles, que lo tenía abandonado. La idea era poner como plataformas circulares con una tapa, y que de ella salga (cuando sea oportuno) un icono/distintivo del tipo de nivel que contiene.

Pin de selección de nivel

Nos ponemos manos a la obra, la idea con lo que tenemos es la siguiente:

  • Mapa de conseguir puntuación: El distintivo sería una caja con lazo flotando sin más.
  • Mapa de enviar un tipo de caja: El distintivo sería un grupo de cajas del mismo tipo girando sobre el mismo centro.
  • Mapa de enviar líneas: El distintivo sería una linea de cajas con un hueco en medio, por donde cae otra caja para formar la línea.
  • Mapa de romper cajas del enemigo: El distintivo sería un gorro navideño con orejas verdes (como el dibujo que tienen las cajas esas).

Entonces necesitamos solo modelar las bases circulares y el gorro+ oreja:

Modificamos el BluePrint que ya existía con el nivel a seleccionar. Antes tenía una especie de fábricas con el número del nivel y que cuando te acercas te sale la información del mismo. Lo cambiamos por el nuevo modelo y configuramos para que según el nivel nos salga lo descrito arriba.

Además, si nos hemos pasado el nivel sale en color. En caso contrario todo blanco:

Suelo

El color del suelo fue otro quebradero de cabeza. Nada que ponía me gustaba. Probé colores planos sin más y le faltaba algo siempre.

Luego me dió por poner cesped, pues vamos allá:

Podría quedar bien un cesped tupido, que tape los pies o incluso hasta la cintura al personaje. Nada, F, los FPS se van a pique.

Terminé poniendo poco cesped por ahí repartido para tratar de matar la monotonía del color plano al menos. PD: No me gusta pero lo dejo para otro momento porque también me está desmotivando xDD.

Líneas entre niveles

Se me ocurrió que podía poner líneas que unan los diferentes niveles en orden y que, además, cuando cargues el mapa la última línea se cargue desde un nivel a otro como una animación.

Investigué un poco con materiales y finalmente me hice un material que, con un parámetro sencillo, añadimos o quitamos transparencia al objeto. Entonces nos creamos un blueprint para manejar esto, Simplemente es un cubo con el material que hemos creado y un método para manejar, desde un timeline el porcentaje del cubo que será transparente.

Resultado de los cambios

Estado del devlog

Esto es lo que hay, ya el devlog está en fecha. El tema del modelado de los pins y algo más lo había hecho mientras escribía posts anteriores. Ahora ya si vamos modo tortuga por aquí es porque el avance va como se puede >_<

4 1 respuesta
B

#27 ¡Ánimo! Eres un grande.

1
carra

Jeje no me imaginaba un mapa para este tipo de juego pero puede quedar bien cuando lo pulas un poco

1
Geck0

Transición entre mapas

El juego no tiene mucho que cargar, pero quizás al cargar el mapa del escenario principal se puede notar medio segundito como un pequeño tirón al cargar todo. Por ello, y porque creo que tiene sentido, he estado trasteando con transiciones entre mapas y he hecho esto:

Básicamente creé un estampado con iconos navideños. Es como un papel de regalo que cubre la pantalla, se escucha un sonido de papel y sale el logo del juego. Al cargar el siguiente mapa simplemente se muestra el papel con el logo y una vez cargado el escenario se reproduce la animación al revés hacia el otro lado.

Acceder al mundo (selección de niveles) entra de derecha a izquierda y salir de él lo hace de izquierda a derecha.

Correción de bugs

Al hacer pruebas en la TV con el mando y tal, me di cuenta de un problema en el sistema de guardado/carga de las partidas. Al corregirlo he tenido que retocar un poco otros problemas en la navegación del menú principal. Creo que esto último es por algo que toqué al tratar de quitar el ratón dle juego.

Después de tanto ladrillo por fin parece que cambiamos de página en el siguiente post, me hace gracia ver una sola página tan llena xd

1 1 respuesta

Usuarios habituales