This is a work in progress first person framework. At this early stage it is limited in functionality but should continue to grow to include a full feature set for a first person template.
The goal is to create a feature rich framework for first person games. Each feature set added will be contained in a new branch to allow for easily following the evolution of this project
In it's current state it contains a basic, yet robust finite state machine handling all basic player movements.
- Each state is contained in its own separate node, completely independent of any other state.
- States are responsible for their own condition checks.
- Every state has the ability to report multiple state names/IDs
- Finite state machine which can be used for player movements, weapon systems etc.
- Basic player movements: Walking, Sprinting, Jumping (including double and more), Crouching
- Stair climbing. This makes use of the SeparationRayShape3D while still respecting sloped floors and the max climbable slope angle
- Wall running
- Wall jumping
- Sliding, and breaking the slide early. Camera has limited rotation during a slide. Sliding also behaves differently depending on slopes and direction on slopes
- Ability to decouple camera rotation from body rotation allowing for a "Free Look" type functionality
- Smoothing added directly to the camera ensures no actions are too "snappy" (ie: stair climbing)
- This is in early works and at this point only contains the basic player states.
- Player animations (Everything currently snaps to position)
- Advanced player abilities (ie: climbing)