Devlog 2: First approaches to the game mechanics ✨


Durante la última semana, hemos trabajado en implementar la mecánica principal del juego, es decir, los planetas con sus gravedades y la interacción del personaje del jugador (lo que será próximamente la nave) con estas. Para hacerlo, intentamos inicialmente dos diferentes enfoques:

Por una parte, intentamos modelar con un CharacterBody2D lo que será la nave del jugador y con un Area2D las gravedades de los planetas, sin embargo, nos dimos cuenta en el proceso que, a pesar de modificar las gravedades de las Area2D, los CharacterBody2D por defecto no se ven afectados por estas fuerzas, y para que sean atraídos por los planetas, hay que implementar las fuerzas desde los scripts de los nodos correspondientes. Así, se llegó a una solución en la que los planetas son nodos de tipo StaticBody2D y, por medio del código, se escogen los planetas más cercanos y se aplica la gravedad correspondiente al CharacterBody2D, aunque hasta el momento no funciona como debería, pues la gravedad dentro del área del planeta no está implementada hacia el centro del planeta.

Así, por otra parte, después de toparnos con estos problemas e investigar al respecto, llegamos a otra solución utilizando para la nave un RigidBody2D, pues este si se ve afectado con la gravedad de los planetas en el Area2D, y los planetas están modelados con StaticBody2D pero sumados a su propia Area2D, para darles una forma definida y una gravedad. De esta forma, se implementó en código el movimiento del RigidBody2D en base a impulsos, lo cual tiene sentido tratándose de una nave en el espacio que se mueve a base de gasolina. 

Es así que, hasta el momento, nos estamos quedando con la segunda opción que tomamos, pero seguirá en discusión dependiendo de cómo avancemos y qué podamos necesitar, o de cuánto se complique trabajar con RigidBody en vez de CharacterBody2D. Es por esto que, a continuación, presentamos una demo de cómo funciona el movimiento y cómo interactúa el RigidBody2D con distintas gravedades:

Próximamente añadiremos texturas para la nave del jugador y los planetas! Estén atentos a las novedades :)✨

---------------------------------------

This one will be a resume version of the spanish explanation :)

During last week, we have worked implementing the principal game mechanic: the planets and their gravities, and their interaction with the player character (which is going to be their spaceship). In order to archieve this goals, we have two different ideas: to use a CharacterBody2D as the player character and several StaticBody2D's as the planets with their gravities, and to use a RigidBody2D as the player and, besides the StaticBody2D's for the planets, to use the Area2D node to set their gravities.

Until this moment, we agreed to use the RigidBody2D version for making our life easier setting the gravities with the Area2D's nodes and making them affect by default the player character. Having that done, we presented the mini-demo you can see a few lines above this.

That's all for now! Really soon we will be adding some textures and sprites for the player and the planets, so stay tuned! :)✨

Get Stardust: Rescue Run

Leave a comment

Log in with itch.io to leave a comment.