What I have done to get more snappy jumps is add "additive gravity" to my players, so that gravity gets increasingly stronger the longer the player is in the air. This helps it feel a bit more snappy in my opinion.
It can be implemented using something like this:
extends KinematicBody2D
var velocity = Vector2.ZERO
export var Gravity = 900
export var AdditionalGravity = 200
var AppliedAdditionalGravity = 0
func _physics_process(delta):
if is_on_floor() == true:
velocity.y += GRAVITY * delta
AppliedAdditionalGravity = 0
else:
AppliedAdditionalGravity += AdditionalGravity * delta
velocity.y += (GRAVITY + AdditionalGravity) * delta
You may want to clamp AppliedAdditionalGravity
so it doesn't get too large is the player is in the air for a long time, but the code above is generally how I do it. You will likely need to further increase the jump speed to compensate for the additional gravity, but I find it makes the player feel a bit more weighty and less floaty overall.
It can also be adjusted so initially the additional gravity is not applied when the player is holding the jump key down, allowing for higher jumps if the player holds the key but lower jumps if they quickly press and let go.