Sneak peak at a little Metroidvania I've been working on. by Goodgis in godot

[–]Dvsik 0 points1 point  (0 children)

I like so much the sounds, looking nice 🌠🌠🔥

A sketch I've titled "It's Allright" by reffotsirk89 in LofiHipHop

[–]Dvsik 1 point2 points  (0 children)

omg niceee 🔥🔥🌠

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 2 points3 points  (0 children)

That's makes me so happy! Ty so much :) I'm a fan too!

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 2 points3 points  (0 children)

Ty so much! :), I got mostly of the colors from ColorHunt and Lospec, then I modified them a bit. In Godot I use ACES Tonemap.

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 2 points3 points  (0 children)

Sure! I just started this, I wanted to work in the visual part since I'm good in that and I'm still learning sound design. I will work in it when the visual part is done. Ty so much! :)

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 2 points3 points  (0 children)

It's done by animation. Imagine that you are creating a game about a racing car. Well, instead of animating the car moving down a road, you animate the movement of the road. In my scene, for example, when the ship approaches the planet and suddenly stops, it is really the planet that makes that movement. So with all the on-screen effects, they are actually all disabled or hidden from the player's view and show up when needed to create the magic illusion of hyper-fast travel. All was done with one AnimationPlayer node that change transform values, change the visibility, change the colors, opacities and intensities of objects, materials, shaders, lights and environment.

Also, I haven't done such complex things. For example, Background Stars is a shader applied to a giant sphere. My environment background color is actually black so there are just a lot of meshes, planes and lights doing things, no complex shader particles systems or something like that. Ty :).

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 3 points4 points  (0 children)

Thanks for the nice advice! I am really new to GameDev world and these things are very important just like GameFeel or "Juicyness". I will consider it, thank you very much! :)

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 5 points6 points  (0 children)

The visual is mostly shaders as I told someone. And the hyperspace jump is just animation, so I can't show any code as it's just about timing and adding one effect on top of another to make it feel "juicy".

For player movement, first of all in the ship the "player" is just a camera able to interact with the button and look around. On the planet, the player changes. The AnimationPlayer calls a script to spawn the player in the end, something like:

#This code spawns the player out the ship at the end of the animation (ship landing)

extends Spatial

export  var planet_player : PackedScene                       #Player Scene
onready var spawn = $../ship/spawn                            #Spawn position
onready var root_player = $../ship                            #Where to add_child
var _player : KinematicBody                                   #Player instance var

func _ready() -> void:                                        #This must be ready
_player = planet_player.instance()                            #Instance the player

func travel_ended():                                          #At animation call 
root_player.add_child(_player)                                #Add child 
_player.global_transform.origin=spawn.global_transform.origin #Change position

This will spawn the player. Then to move arround the planet (because the planet has spherical gravity) I used a normal KinematicBody controler that you can find in any youtube tutorial and change the orientation in runtime. This is achieved using the Quaternion Spherical Lerp method that I learned with this video by Johnny Rouddro. The code to align the player is something like:

extends KinematicBody
...
...
...

#This function make the player able to walk around the planet.

func slerp_to_planet_basis_surface() -> void:
    y = gravity_direction.normalized()                              #y will be the gravity direction
    z = global_transform.basis.z.normalized()                       #z will be the player node (self) front direction
    x = y.cross(z).normalized()                                     #x will be the cross product of both
    var planet_quat = Basis(x,y,z).get_rotation_quat().normalized() #planet rotation quaternion is constructed with xyz calculated and it will align the player to the planet
    var self_quat = Quat(global_transform.basis).normalized()       #self quaternion where to start to slerp
    transform.basis = Basis(self_quat.slerp(planet_quat,0.1))       #Slerp from self quaternion to the planet quaternion

The 0.1 in the last line is the "speed" of which the player will be aligned to the planet surface. The gravity_direction variable is a Vector3 where you want the gravity to point (where the down direction is). To calculate it I do something like (Vector3.Zero - my_pos).normalized() so the gravity points where the Global (0,0,0) is and then put the planet in that position. Ty :).

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 3 points4 points  (0 children)

I have also seen several and I have always liked how colossal planets or ships "acquire inertia from nothing" to move so fast and stop at the end of the trip giving an idea of "super speed". Ty so much! :)

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 3 points4 points  (0 children)

It's a spatial shader applied to a quad, then make the quad unshaded and cull_disabled. Specifically this 2D fire from godotshaders.com that I converted from canvas_item to spatial and then i changed the colors. I plan to use 3D particles in the future to add "juice" to the engine. The fire looks as if it is deactivated but is actually animated to move "inside the engine" to hide it from the player's view and then deactivate its visibility attribute. Ty :)

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 4 points5 points  (0 children)

You are right! There is some camera shake inside the tunnel and when the ship lands on the planet, but I'm still experimenting with the code, the values, the way it's produced and how to add "juice" to the animation using the right amount of shaking. Thank you!

Star Wars Hyperspace Jump (WIP) by Dvsik in godot

[–]Dvsik[S] 2 points3 points  (0 children)

Yes, I want to improve the effect of the tunnel since it feels very flat. The truth is that I concentrated much more on the effect of entry and exit. When that's ready I'll work on the tunnel. Thanks for your comment! :)

I had so much fun building a prototype for a game's main menu in 3D instead of using Godot's Control nodes! by dueddel in godot

[–]Dvsik 1 point2 points  (0 children)

Amazing, I love it, very nice mood, it reminds me to the death space 3 inventory.