Skip Navigation

[Q] Wanna make a realistic FPS controller

I want to make an FPS controller that feels realistic, like when you move you really feel that your character has mass. In Unity I would've done that with RigidBody, but how do I do that in Godot 4.3.1 with CharacterBody3D? I know that RigidBody3D is not suitable for character controllers. May anyone show me the direction in which I shall dig?

7 comments
  • There's nothing stopping you from making your player a RigidBody3D if that's what you're going for, it's just CharacterBody3D is more common. You would apply forces and impulses on the player to move them around. You could use a CharacterBody3D but then you might want to program your own calculations for inertia and things like that which change their velocity.

    • I've seen that RigidBody3D is not recommended to use for player movement because of some physics stuff in Godot Docs. Is that not the case anymore?

      • You can't precisely control the movement of a rigidbody like you can with a characterbody, so most games use a characterbody since that's what they want. But you can have rigidbodies in a game and apply forces to them, it doesn't matter if the forces are triggered by input and you happened to have a camera on it and call it a player.

7 comments