Controlling Change

Happy Sunday everyone! This post will be relatively brief, but I did manage to get some work done and continue pushing the project forward.
I’ve successfully migrated the control system from traditional WSAD movement to my preferred scheme: Click to Move/Interact, all while maintaining full camera control. As I mentioned in last week’s post, I find this control scheme offers a more strategic style of play, giving all types of players a more level playing field—especially in PvP scenarios. My goal is for players to be rewarded for their strategic thinking, not just fast reflexes, which tend to dominate modern RPGs. This shift helps ensure accessibility and fairness across different player skill levels, ages, and hardware setups.

I’ve also started transitioning from in-place animation to root motion animation. For those unfamiliar, this means syncing the player’s movement directly with their animations. In many games, especially with in-place animation, you might notice characters sliding slightly when their feet move but their position doesn’t change—this disconnect breaks immersion. With root motion, the character’s movement speed is driven by the root bone of the model, making everything feel much more natural. Think Assassin’s Creed or other parkour-heavy games—there’s a fluidity that comes from the engine interpreting movement directly from animation data.


This change does mean that many of the locomotion animations I recently purchased will no longer be used—but honestly, that’s fine. It’s all part of the learning process. Working with those assets has taught me a lot about how 3D animation systems function within Godot, and that knowledge is valuable moving forward.
Once the root motion system is fully integrated, I plan to rework the state machine, as the current setup was tailored to a different gameplay style. From there, I’ll implement a basic targeting system and begin outlining the combat system using simple debug messages. Once I have the basic flow—targeting, movement, attack range, and attack execution—I'll start transitioning from local code to a networked architecture, allowing for proper server-side authentication of all player actions.
Until then, the void will continue to echo.
Cheers.