redeclipse / base

Base environment for Red Eclipse and associated source files.
https://redeclipse.net/
439 stars 90 forks source link

Client lag and game interference #7

Open qreeves opened 9 years ago

qreeves commented 9 years ago

From: http://redeclipse.net/forum/viewtopic.php?f=9&t=159

Obviously playing against laggers is frustrating, and I think something should be done about it. I know people can't help it sometimes or even all the time but it's unfair on everyone else. I'm not sure how other twitch arena shooters have dealt with it, nor do I know much about how RE works, so sorry if the following is stupid.

What if servers detected players who's packet jump goes over a variable threshold number and automatically kicks them if their packet jump stays over that limit for a variable amount of time? For example, lets says player x has been found to has 300ms packet jump, way over the threshold (lets say 200ms packet jump). 10 seconds later (the hypothetical variable amount of time), as player x's ping has stayed over the threshold in every second interval the server has counted, the user is kicked. No ones banned or anything, the player just can't stay on for an extended period of time until their packet jump gets lower.

acerspyro commented 9 years ago

It's not entirely stupid, it somewhat makes sense. Just replace kicking with spectating, along with a pre-spectate notice that says "Unusually high packet jump detected! Stop all your downloads, streams, etc. you might have or you will be put into spectating after 10 seconds!".

gynter commented 9 years ago

Yeah, playing agains teleporting players can be pretty annoying. Other games have a maxping setting which usually ends with kick or immidiate disconnect, but I like @acerspyro`s idea more - force spectate + notification. Thou there should be some final limit, like teamkill has, eg if player doesn't fix connection issues then he/she gets kicked (not banned thou).

But on the other side, the main packet/ping issues are usually between continents (eg US client + EU server and vice versa etc), this means that thiskind of limit will probably break community more apart.

coornio commented 9 years ago

Put them in spectator mode and warn them that the server enforces an upper limit for packet jump/ping and that they won't be able to play if they're not within normal boundaries for 30 seconds to ensure line stability.

freezurbern commented 9 years ago

@gynter instead of kicking for connection issues, tie the /allow command to allowing them to play. Also, if the client is not able to fix their connection, the server could keep them in spectator and not use a server slot. Which leads to another idea, of player slots vs spectator slots.

acerspyro commented 9 years ago

@gynter Unless I am completely wrong, transcontinental playing induces higher pings, not higher packet jumps, which are caused by crappy internet connections and heavy bandwidth usage on the client's side. Also, if this gets implemented, it would be a good idea for the mechanism to differentiate between server-side lag issues and client-side lag.