[Devlog] - Cursed Gem

Ridote

#149 "forzado ha", Aikon ya van dos cabrón jajaja

#150 No, no implementa físicas, implementa las colisiones. Las físicas te las cocinas tú jugando con vectores. Dependiendo del tiempo que pasa entre una llamada y otra, tú calculas toda la interacción y el movimiento final y luego haces llamadas a las funciones de kinematic para mover y colisionar cuando tenga que colisionar (o hacer desplazamientos al colisionar de forma automática). Pero las físicas son tuyas y mucho más básicas que la de los rigids. Ten en cuenta que los rigids por debajo tienen mierdas mil que consumen un huevo y tú con cuatro sumas y un cuatro multiplicaciones te haces tus físicas como las tiene aikon que van genial y te ahorras tiempo de cómputo que para tu PC te la suda pero para el móvil dependiendo del que tengas igual no tanto cuando le metas tropecientos rigids a la vez.

Edit: Estamos desviándonos un poco del tema, mis disculpas a @AikonCWD

1 respuesta
AikonCWD

xddd, está ok.

Dejamos cerrado el tema de los rigid. Hoy meteré update con los checkpoints y si puedo, con algo más. Besos ha todos (este te lo dedico, rigodote)

1 1 respuesta
kesada7

#151 Bueno estamos hablando como está desarrollado su proyecto no está tan desviado xD

Thanks por las aclaraciones.

1
Ridote

#152 Si eso algo más no, di qué más tienes pensado meter, no nos dejes en ascuas. Mañana andaré yo también dándole, avisa si necesitas un par de hogos.

1 respuesta
AikonCWD

#154 Pues será algo que esté en "planned" dentro del Trello, ojalá hacer el MainMenú, pero necesito de tu sabiduría haciendo menús y eso :P

1 respuesta
Ridote

#155 Pues mañana termino un par de cosas del mío y le damos a un menú guapérrimo. Sobretodo si luego te marcas unos gráficos para las interfaces, te puede quedar bastante interesante. Ojalá un grafista en mi vida :(

kesada7

Pues a mi me ha pasado que los pinchos después de morir ya no caían, se han quedado así:

Y después de morir en ese mismo totem los fuegos han tardado bastante en arrancar, por lo que he podido pasarlos sin tener que esquviar xD

El juego me mola mucho esa mecánica y enfoque que ha tomado de pantallas muy cortas pero dificiles donde tienes que pasar y esquivar con exito por varios obstaculos, un poco a lo super meat boy (es la referencia que tengo porque tampoco soy yo muy de haber jugado a muchos plataformas sacado de los clasicos).

Me he pasado el tuto completo y luego me he suicidado para ver que pasaba cuando te quedas sin vidas xD simplemente no te puedes mover estás perma dead forever and ever jajaja. Supuestamente que vas a programar que empiezas desde el principio?

1 respuesta
AikonCWD

#157 Exacto, ese "bug" con los checkpoints lo he visto. Al tocar un checkpoint llame a una función llamada PackScene, básicamente empaqueto la escena actual en una variable y luego la instancio cuando morimos. Los pinchos que caen se quedan congelados en esa "foto" que tomamos al tocar el checkpoint. Tendré que meter una comprobaci´no sobre los nodos (pinchos) para que continuen cayendo una vez se instancia la escena de nuevo.

Con el fuego ocurre un poco lo mismo, tengo un delay metido para hacer que salgan de forma alternada, tengo que reducir los timers para que al menos uno de ellos empiece en el segundo 0.

Me falta programar la escena del gameover y quizás meter "continues" que te obliguen a repetir el nivel desde el inicio (como en el Sonic, por ejemplo). Por ahora ocurre lo que tu dices, no puedes respawnear.

Gracias por los tests

kidandcat

Y yo retomo el tema de rigids, que mola mucho. Otra de las grandes ventajas de no usar el motor de físicas es el control. De hecho en muy pocos juegos 2D se usa un motor de físicas pues tienes que controlar muchos edge cases y bugs que podría causar tu juego toqueteando los parametros del motor de fisicas. Por ejemplo, en nuestra primera prueba con godot, @Ridote montó un mini plataformas con rigid body, pero resulta que había rampas. Ni os imaginais las cosas raras que pasaban si por ejemplo saltabas con un buen angulo en alguna rampa.

Si no es absolutamente necesario un motor de físicas (por ejemplo, seguro que lo usaron en ese plataformas que salio en steam de dos monigotes que llevaban un carro tirando de cuerdas), es mucho mejor currarte tu las "fisicas" para tener el control absoluto de lo que puede y no puede pasar.

Un buen ejemplo de como hacerlo bien, es Cursed Gem, sobre todo el trabajo que hizo @AikonCWD con la piedra que se puede mover.

2 respuestas
Ridote

#159 No sé al final como quedó, pero al principio hizo una guarrada padre jajaja. ¿Al final cómo lo modelaste @AikonCWD ?

1 respuesta
AikonCWD

#159 #160 La caja? Me ayudó bastante @kidandcat

Básicamente es recoger los objetos con los que colisiona el player y buscar aquellos que sean una caja. Obtener el punto de colisión con la caja (normal) y aplicar la fuerza correspondiente:

	# Collide with boxes
	for coll in get_slide_count():
		if get_slide_collision(coll).collider.is_in_group("box"):
			var box = get_slide_collision(coll)
			if box.normal.y == 0:
				box.collider.push(175 * -box.normal.x)
			if box.normal.y == 1:
				box.collider.rebote()

Si la normal.y es 0 entonces estoy colisionando por el lateral de la caja, le aplico una fuerza para mover la caja.
Para solventar el posible bug de que el player golpee la caja con la cabeza (normal.y == 1), llamo a la función "rebote" para desplazar la caja hacia los lados.

1
AikonCWD

Bueno, por aquí sigo

Haciendo la parte que más odio; menús, interfaz, etc... me está ayudando @Ridote
Me falta añadir animaciones, un fondo que se mueva y tal, el logo quizás lo cambie, de momento será así:

Un besito

2 1 respuesta
Jastro

#162 que grande <3

Poco a poco te haces tu primer juego :O

ESL_Kaiser

recuerda cuando seas famoso y rico quien era tu fan base!

1 respuesta
Ridote

#164 ¿Yo?

1 respuesta
ESL_Kaiser

#165 que va macho, si tu supieses... guiño guiño codo codo

1 1 respuesta
Ridote

#166 El que no lo sabe bien eres tú, guiño guiño puñetazo en la barriga, patada en la boca, repetidas patadas en el estómago.

En verdad podríamos montar un club de fans oficial con camisetas de aikon sin camiseta.

AikonCWD

Bueno, he subido un pequeño update:

  • Añadida interfaz con menú principal y opciones (sin terminar, la tengo que mejorar)
  • Añadida opciones de audio, con 2 buses independientes para la música y efectos
  • Añadidos checkpoints (y un pequeño audio)

Recomiendo probar la opción ejecutable/Rar, ya que la versión online/web va un pelín laggeada al tener los sonidos sin comprimir.

1 1 respuesta
larkkkattack

#168 recomiendo audacity pa comprimir los sfx

1 1 respuesta
AikonCWD

#169 gracias!!

Quiero poner un efecto CRT/scanlines al juego, ya que es royo Retro y Pixel, creo que ese efecto le podrá venir bien.
Evidentemente será posible activarlo o desactivarlo según el gusto del jugador:

Os mola el efecto? En el GIF se ven diferentes efectos por separados y luego todo junto. Cambiaré un poco los valores para que el scanline vaya más lento y eso. En cuanto lo tenga os aviso.

2 respuestas
ESL_Kaiser

#170 Me gusta cuando no hace ningún efecto y se ve todo perfecto

1 respuesta
AikonCWD

#171 osea que no te gusta el efecto shader, xd.
Será algo que quien quiera podrá activarlo en las opciones.

1 respuesta
Ridote

#172 Lo que yo le metería sería skins al personaje con shaders. Como un shader invirtiendo colores o cosas así.

Mete también otros shaders para el juego como escala de grises o poyadas del estilo.

1 respuesta
AikonCWD

#173 Ojalá saber hacer eso hulio. Había pensado meter skins desbloqueables con gemas (hola @kalgator te copio la idea de tu juego) usando sprites diferentes.

2 respuestas
Ridote

#174 Illo pero si eso es to fácil. Nos ponemos y en media hora hacemos un par de shaders guapos.

1 respuesta
Kalgator

#174 Uy ya va el ladron de ideas :new_moon_with_face:

1
AikonCWD

#175 te tomo la palabra

starfucker

#170 eso te podria servir para activar y desactivar en animaciones o cuando entra a sales y demas, para dejarle claro al usuario que esta pasando something rollo aparicion del boss

1
AikonCWD

CRT Shader implementado:

Lo podéis probar en vivo:

De momento está activado por defecto. Se desactiva pulsando la tecla "M" o "SELECT"

kesada7

LLegaste a implementar el ghost jump?

2 respuestas