New player movement


New Movement System: Improved Responsiveness

We redid the movement system in ZomdeadZ to make it more responsive and smooth. Here’s what we did.

Problems We Faced

Unresponsive Movement

Players experienced delays between input and movement, leading to a sluggish feel. While low ping, such as in local testing, felt fine, the problem became evident on external servers, where there was a noticeable delay between pressing a key and actual movement.

Server Desync

Positions often desynchronized between the client and server, causing sudden "snaps" whenever changing direction. Although these snaps were animated to appear smoother, it led to a floaty, disconnected feel.

High Refresh Monitor Gameplay Feeling Laggy

All player movements were previously locked to 60fps, which didn't feel right when using higher refresh rate monitors. The gameplay felt laggy compared to the expectations set by higher framerates.

Our Solutions

Client-Side Interpolation

We implemented interpolation to smooth out movement. The client now updates movement without waiting for the server, reducing visible delays. Once the server registers movement, it sends back information to the client, which adjusts the position to better match the server's data.

Instant Client Feedback

Movement now starts immediately on the client upon input, ensuring fast, responsive control. The sluggish feeling of waiting for the server is gone.

High Refresh Rate Support

Instead of moving in fixed increments, the client now smoothly adjusts the character's location according to the refresh rate of your monitor. This means that gameplay at 144Hz, 240Hz, etc., now feels as smooth as expected, unlike the previous 60fps-based system.

Conclusion

The new system provides smoother, more responsive movement, significantly enhancing the overall gameplay experience. It’s a vast improvement over what we had before.

Leave a comment

Log in with itch.io to leave a comment.