Let's discuss how there are ways to create character controllers!
- Edited
That was an interesting read, however, most tutorials use kinematic controllers and they seem to work decently. I guess it's expectation. I know they have that slide down problem on slopes but I think I read or saw a video that they had worked on it in the next iteration of Godot. I turned gravity to zero when the character wasn't moving so far because it didn't work in my application. I've seen different fixes for it. The move and slide with stop didn't seem to work for me. I need to experiment more. Still working on basic interface with inventory, etc. Godot moves pretty fast so you have to find up to date tutorials.
- Edited
@fire7side said: That was an interesting read, however, most tutorials use kinematic controllers and they seem to work decently. I guess it's expectation. I know they have that slide down problem on slopes but I think I read or saw a video that they had worked on it in the next iteration of Godot. I turned gravity to zero when the character wasn't moving so far because it didn't work in my application. I've seen different fixes for it. The move and slide with stop didn't seem to work for me. I need to experiment more. Still working on basic interface with inventory, etc. Godot moves pretty fast so you have to find up to date tutorials.
In my "CustomPhysics" script, which game entities extend from (and the player extends from that), I actually use move_and_collide() to manage "perpendicular" (as in, perpendicular to an entity's gravity vector) movements and, if the normal of a barrier in that direction is within an acceptable angle, it uses the remainder of the move_and_collide() to travel up-slope, with a separate check for down-slope movement. This works pretty well from my testing and avoids the skidding effect from move_and_slide(). Could definitely be improved upon a bit, but it's been working with everything I've thrown at it currently.
Looking good.
@Megalomaniak said: Shifty's Godot Character Movement Manifesto
This doesn’t take into account the numerous improvements KinemeticBody has had, nor the many improvements Godot Physics has and will have in compared to Bullet. Writing a controller using a rigidbody is not the correct alternative to a kinematic body with bugs, for instance there are several rigidbody-based controllers for unity that are not as predictable and accurate as the sole kinemetic body asset, however that one took years to perfect and account for every possible anomaly.
Sure, the post you are quoting is from a while ago and is linking a resource from even further back.
I didn't read the "manifesto" but the KinematicBody works fine. Yes, there are a few issues, but they are easily solved with work arounds (like using ray casts in addition to the default physics response, adjusting gravity and velocity yourself, etc.). Using a RigidBody for a character makes no sense, this is a recipe for pain. You can see this Parkour prototype I made with Godot when I was first starting using it. The KinematicBody is fine.