Latency issue
Hi,
That's just some post with my thoughts, but not really an update of the project itself, so not too exciting, I know...
Recently, I had an opportunity to test my project from location far away from my server location (like almost another side of the Earth). That test was pretty interesting, because it show some issue related with high latency when connected to the game server.
Usually when you play Internet game it isn't actually "real time". It is close to being real time, but usually what client see is a bit offset (into the past) from current state on the server. That is to make game look smooth, even with limited data being received or in cases when packets are lost or delivered with delay. That offset (let's call it interpolation offset) should be usually the smallest possible to assure smooth game, but not too delayed. If interpolation offset is for example set as 100ms, what you see is not actually current state, but state from 100ms in the past. If you have fast connection with latency like 50ms, everything will be ok, but the issue happens if your connection latency is higher than interpolation offset.
Well, that's exactly what happened during my test. When I tested connection from far away location, my latency was stable at around 250 ms, but my project interpolation offset is at 100ms. That mean all data are actually received too late and what is even worse during playing, the gap between "render time" (so what client should see) and latest available data is bigger and bigger all the time (received data never catch up with render time). Technically that cause client to always extrapolate old states (never interpolate) and it cause very strange and random movement and behavior of other characters.
Current interpolation and extrapolation strategy is fine, but only in cases when connection is fast and only sometimes it may stuck for some reason (being too slow), but it will return to being fast again however, if your connection is constantly slow, it will cause playing very hard, because all characters will act very randomly during playing with such slow connection.
So what's the solution here? That's a good question. When I worked on that solution, I haven't decided to adjust interpolation offset to current latency, because wouldn't it be unfair if you see actually older (more into the past) state than other players? After thinking about it some time, I actually think that maybe adjusting interpolation offset is better anyway? Currently if you have latency > 100ms you will see very random movement of other players. If I would adjust interpolation offset based on latency, maybe player with slower connection will see action more into the past, but at least they could play (still more stable than now)?
By the way, I still don't have any idea for MMO like game to push this project into any meaningful direction, so if you have any idea of such game you would like to see, you can let me know. Until I will be confident about some idea I don't want to move it into random directions, especially I am still working on my other project (single player). I believe my other project won't be finished anytime soon either, but I hope that maybe I will be able to publish something at the first quarter of the next year (maybe, but that depends also on progress and how much time will take my full time job). Maybe I will work on this project too from time to time just as break from that other project (hah, as many game devs do, working on 10 projects at once :p).
Get EWF Multiplayer test
EWF Multiplayer test
Multiplayer framework tech demo
| Status | Prototype |
| Author | GlyphTheWolf |
| Genre | Role Playing |
| Tags | Furry, Multiplayer, Prototype |
| Languages | English |
More posts
- Gameplay idea needed :DJun 25, 2025
- Terrain editorMay 05, 2025
- Version ALPHA 0.1.0.0Apr 13, 2025
- Auto Updater is here!Mar 24, 2025
- Some status updateFeb 16, 2025
- Auto updater progressJan 01, 2025
- Idle server connection issue fixDec 08, 2024
- I'm backDec 07, 2024
- Server connection issuesOct 20, 2024

Leave a comment
Log in with itch.io to leave a comment.