I have an idea for the next version... ^^
Until 1st november i had a very nice ADSL connection, 20 mega with FAST setup, 0% packet lost, really low ping thanks to QoS and P2P limiter.
After, my ISP got some problems, and now that they are working, I've tested a new type of connection, that remember me a low-cost adsl where there is 10-15% of packet loss. The ping is the same, but 15 packets on 100 are gone.
The Teeworlds gameplay didn't changed so much, i got more lags and sometimes disconnections from the server.
But I've noticed the ping is the same as before.
So I finally realised that the ping is not the only indicator of the quality of a line, but it's the only shown in the game (scoreboard).
I've played other games, like the opensource Sauerbraten based on Cube2, that got a different system.
* if the connection has packetloss. There is no direct indicator of packetloss, instead the "packet jump" figure is provided on the hud (use "showscores"). Packet jump says as much as the amount of milliseconds that pass between updates from the indicated player. If it is extremely variable, or is high(>80) then your gameplay may be hampered (players jumping from place to place). Ideally it is a steady 40 or lower. A consistent packet jump is more vital to gameplay than ping. There is also player prediction based on extrapolation using the physics model, in an attempt to be both as up to date as possible in relation to the game state, and as realistic with regards to physics. However, under packet loss this model breaks down and player movement becomes choppy.
* if ping is high (either yours or someone you play with), some actions may appear lagged. The effect of ping is generally that the players in a game are effectively playing more and more seperate games, as someone with a high ping is "playing in the past". The local effects of this are masked out by client side movement & aim, but may become noticable across players:
o you may get hit by someone even though you are already out of his view. This is because he is aiming at your movements of a while ago, and his hits take a while to arrive back at you. You may therefore be hit by gunfire up to his lag + your lag milliseconds after you leave his FOV.
o item pickup: you may be denied an item if you try to pick it up at virtually the same time as someone else (server decides who was "first"). Item pickup is server side, only when you hear the sound effect have you actually picked up the item.
o players dying appears lagged. This will improve.
* if a player is severely lagged (or you are) he temporarily becomes a "ghost" that cannot be hit (if >1sec packet jump).
I think this is a great idea, and the same could be applied on Teeworlds. This could made Teeworlds more accessible from bad connections and other locations. What do you think?
Another problem that Sauerbraten developers solved is the cheating problem... and I think it's the same way that Teeworlds dev are using:
You will notice that the engine plays and responds better on a high ping connection than most games out there; the reason for this is that just about everything is done clientside, not just movement (as is common in games today) but also aim (the fat client / thin server model).
The benefits of this are that the effects of lag are minimised, and someone on a 200 ping can compete on an almost even playing field with someone with a 20 ping, the disadvantages are mainly in that its harder to combat cheating. Further advantages for server admins are that servers use virtually no cpu, and very little bandwidth for a lot of clients (you can host a 4 player game on a modem!).
Isn't it? Ignoring it?
PS: link to the text i quoted http://www.sauerbraten.org/docs/game.html#multiplayer
Support Staff - ESL.eu Teeworlds Admin