Over the past few weeks, I've been heavily working on updating the movement systems, animations, and network logic. I reworked the movement calculation so that both speed and direction are taken into account simultaneously. Additionally, I added improved client-side position prediction, smoothed things out, and reduced delays. I added lag compensation functionality, but haven't tested it on the global server yet. Ideally, the ping for gameplay should be under 100 ms, but I'm also going to try implementing adaptive compensation for those whose ping may be higher.
I added animation state synchronization: character actions are now transmitted and synchronized over the network — for now it's displayed as a text string like "standing"/"walking" (but that's just temporary, for debugging purposes).
I added a pluggable debug module to the client and tried making it excludable from the build — this code won't ship to production, but it gives me a layer for displaying current synchronization state and system logs.
On the server side, I enabled a neighbor synchronization grid — data is only transmitted about characters/mobs/objects that are nearby.
P.S.: I've finally gotten around to the functional visual part.