#1310 te falta el genero no binario!
Estoy re-diseñando un poco el prólogo y los inicios del juego; diálogos con Jerry, el guardaropa para las skins, etc... Y se me ha ocurrido hacer otro homenaje más a Dark Souls (mi juego favorito):
Una skin de Solaire de Astora. Me ha costado bastante porque al tener un poco de "falda" se me ha complicado respetar la animación de correr. Estoy abierto a sugerencias porque ya sabéis que yo no soy muy bueno en esto del pixelart.
Se parece? Se nota que es él?
Bueno, ya he terminado la zona inicial. He grabado un pequeño vídeo mostrando lo que quiero enseñar al jugador. Me gustaría saber si se entiende. Que alguien se ponga en el papel de no conocer nada sobre este juego... tengo que asegurarme que el jugador interesado en las runas, podrá diferenciarlas:
(ver en pantalla completa y 1080p)
Mi idea es explicar brevemente que son esos garabatos en las paredes, y por qué hay algunas runas de colores y otras son grises.
Además quiero regalar el aprendizaje de algunas palabras y letras. Para asegurarme de no dejar a nadie atrás, regalo las 5 vocales y algunas consonantes importantes.
Mi idea es que luego, durante el transcurso de los niveles, el jugador podrá aprender letras nuevas por el método de sustitución.
Cómo lo veis? Los mensajes que aparecen los he puesto yo en inglés usando el Google traductor, seguramente esté mal expresado o con faltas de ortografía. Ya lo cambiaré xd
Bueno, actualizo un poco con lo que he hecho hoy:
- Actualizado el mapa de controles, añadiendo el botón para dejar mensajes online
- Mejorados los diálogos con Jerry
- Añadida una animación de desvanecer para Jerry
- Solucionado un bug visual con la skin de Solaire al hacer un minijump
- Actualizado inicio de Level 1: Aparece Jerry explicando la mecánica de los mensajes online
- Solucionado un bug que hacía saltarse el diálogo con Jerry en una nueva partida tras jugar al tutorial.
- Ahora los mensajes online de más de 10 días se borran de la base de datos.
Me toca ya ponerme a actualizar el menú principal, añadir multiples savegames, etc... un coñazo ya que odio programar la UI, en fin...
Del video anterior... se entiende lo de las runas? nadie ha comentado nada.
Yo las runas las dejaría para que la gente comenzase a descubrir sus significados, si quieres dandole pistas o algo, pero no dejarlo tan mascado
Eso, o si vas aprendiendo las letras, que una vez consigas aprender la runa, se transforme en la letra (en la propia pared), y no decirle nada de sus significados en el tutorial
#1327 Hey! hola, bueno yo no sigo mucho el juego, si un poco..
Te comento lo que entendí
Runa roja peligro
Runa amarilla un confre en algun lado
Runa verde significa Flor.
El resto fue como mucha información...recién estoy entrando en la cueva y hay runas que son letras y que no se para que voy a usar..... mmm creo que esa fue mi sensación... las primeras entendí que me iban a dar información clave..pero el resto quede medio..como...y para que?...
Espero te ayude!
¿Las runas con letras las vas a usar para algo clave o se puede jugar bien sin tener que leerlas? Si lo realmente importante son los colores, que tampoco es mecánica, sino algo estético, lo dejaría sin tutorial, que el jugador se lo encuentre. Es un pequeño detalle que gana fuerza si no hay que explicarlo.
#1330 Muchas gracias, eso es lo que más o menos necesito escuchar... la sensación que produce esa información a jugadores nuevos.
#1331 El jugador se podrá pasar el juego sin leer las runas.
Las runas es un añadido, ofrecen pistas y ayudas. Imagínate poder leer (peligro, fuego derecha) o (cofre secreto arriba)... el jugador que se haya molestado en aprender las runas, tendrá más información para sortear peligros o encontrar items secretos (como las skins).
Recordáis que dije hace meses que no añadiría contenido ni mecánicas para no alargar el desarrollo del juego?
Mentí
Por suerte me ha llevado poco tiempo entre dibujar la sierra y programarla. Se puede mover en las 2 direcciones, parametrizar velocidad y distancia de desplazamiento. Al chocar cambia de dirección y sentido de rotación.
@ArticoDelSur esta pantalla te la dedico xd
Estoy cambiando el sistema de checkpoints (el código) ya que no lo tenía bien implementado del todo.
Y como siempre ocurre, cuando toco algo pues genero bugs nuevos y este es lo tengo que enseñar:
Tras revivir, hay que resetear el estado del player xd
Bueno, vengo a desahogarme un poco.
He tenido que re-hacer el sistema de checkpoints/totems ya que tal y como lo tenía implementado (mal) me estaba dando unos problemas de lag al usar el totem que han repercutido ahora en todas esas hachas sincronizadas, haciendo que se desincronicen un poco al usar un totem. Os pongo en antecedentes.
Hasta ahora, lo que hacía al tocar un totem, era guardar toda la escena actual, con sus nodos/objetos, en una cosa llamada PackedScene. Y luego tras morir y revivir, eliminaba la escena actual y cargaba la PackedScene (así la partida continuaba en el mismo estado que cuando tocaste el totem).
Hacer eso funciona y te ahorra mucho trabajo, código y horas de pensar. Pero cuando el juego y sus escenas empiezan a ser mínimamente grandes, el proceso de crear la PackedScene puede resultar "pesado", haciendo que el juego haga lag de unos milisegundos. Provocando el error que he comentado en los péndulos. (intenté meter esa rutina en un thread a parte, pero no funciona)
Solución? Hacer las cosas bien. He tenido que cambiar el código de todos los elementos coleccionables (llaves, gemas, corazones, etc...) y objetos importantes tales como cajas, puertas y botones. Ahora cada vez que coleccionamos un item de esos, se marca un flag en dicho item. Si morimos sin tocar un nuevo totem, al revivir, una función se encargará de instanciar de nuevo los items con el flag.
He estado haciendo pruebas con un nivel de testeo, con varios totems, puertas, llames, etc... para ver si es robusto. Ahora el juego no se cuelga ni una milésima de segundo, tras morir no se resetea el nivel, ni se reinicia la música ni nada de eso. Y creo que funciona bien.
Y digo "creo" porque uno nunca está seguro de si ha probado todas las combinaciones para romper el nuevo sistema. Un bug en este proceso podría dejar el juego incompletable (por ejemplo que tras consumir una llave y abrir una puerta, ésta se cierra tras morir). O dejar el juego roto (duplicar llaves muriendo y cosas así).
Pues eso, que llevo 7 horas programando esto de nuevo y estoy enfadado por no haberlo previsto antes.
#1346 yeah. Al menos me quedo con que algo he aprendido hoy xd
Abrí un hilo en reddit por si alguien le interesa: https://www.reddit.com/r/godot/comments/hg6bm0/having_lag_spike_when_saving_packing_a_scene/
Ahí me han propuesto más o menos la solución (no hay una forma correcta de crear un savegame o checkpoint, ya que depende de como quieras diseñar tu juego).
He hecho algo similar a este artículo: https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html
#1345 usas deltatime para rotar el ángulo de los péndulos y le das a cada péndulo un valor inicial de ángulo diferente ajustado al tipo de sincronización que buscas?
#1348 Nope. De momento cada pendulo empieza en X grados fijos, y a cada uno de ellos le he puesto un delay inicial.
Le daré una vuelta mañana, de todas formas con el nuevo checkpoint sin PackedScene, ya no se desincronizan.
#1349 si usas delays el problema estará presente en máquinas que estén justitas.
Si haces como digo en #1348 nunca se desincronizarán, incluso con framerates inestables extremos.
Y ya puestos a ser "puristas", lo suyo sería crear un gestor que controlara todos los péndulos... o al menos los que estén asociados a un tipo de sincro.