Character controllers are a tricky thing to get right. It takes a lot of effort to make a game feel good, and a character controller is something that has a huge effect on how your players judge your game. I have spent a lot of time researching how to make a controller that achieves this high standard of game feel, while simultaneously trying to keep the code somewhat consolidated. I think I was successful in my mission.
Here are some of the features I have implemented in my controller:
- Variable jump height
- Multi jump
- Coyote time
- Jump buffer
- Variable jump gravity
- Camera zoom
*Please note that this demo is intended for mouse and keyboard
You can download the entire project here:
https://mattf.blog/wp-content/uploads/2025/06/matt-third-person-camera.zip
Simply import this project into Godot 4.4x or later, and it should be ready to run!

If you were to look through my code, you would notice that I have many “TODO” comments. I think there are a lot of areas where this code can be made better and will likely follow up with a second version of this project at a later date. It will likely implement controller support, advanced camera motion, and a state machine. With that said… Development takes time, and making a character controller this elaborate is not currently one of my priorities.



