Page 1 of 1
Auto-deny joining players by maximum ping
Posted: Sun Mar 06, 2016 2:18 am
by MCorgano
The request is simple. The server can set a PING LIMIT in their settings, and BEFORE a client starts downloading / connecting, it ping's the server. if the client's ping is higher than the PING LIMIT the server will send a packet telling it PING TOO HIGH, and close the connection.
This lets servers automatically refuse players who would lag the game for everyone.
Re: [Feature Request] auto-deny players by ping
Posted: Sun Mar 06, 2016 10:19 am
by Bisa
addind to this, you would also need to ensure the round trips to all other peers have sane pings... but how do you do this without first connecting? =/
still, detecting "bad" ping on that first connection would hopefully weed out some of them.
Re: [Feature Request] auto-deny players by ping
Posted: Sun Mar 06, 2016 3:16 pm
by Hexicube
It's important to actually do more than 1 packet's worth of testing, preferably at least 50. It's easy for a single packet to mysteriously take half a second to get to where it wants to go, and it wouldn't be representative.
Re: [Feature Request] auto-deny players by ping
Posted: Tue Mar 08, 2016 6:56 am
by MCorgano
How about this
client sends server a "I want to connect packet"
Server pings client 10 times, 100ms apart, to test
IF BAD: send client a "you're ping is bad" packet
IF GOOD: continue
Server sends client list of other clients to ping
Client pings other clients 10 times, 100ms apart, to test
OTHER CLIENTS report the ping information to the server
IF BAD: server sends client "your ping is bad" and closes
If GOOD: server pauses game and sends client map
This would prevent the new client from lying that it has a good ping to the other clients, but would be more complex
upshot is if this succeeds then the new client is almost guaranteed not to slow down the server
I also ran into another issue: A slow client can freeze the server for a LONG time. RIGHT NOW, i could DDOS a server by connecting to it with a VERY slow connection intentionally, so the server stops for a long time to send me the map, therefore halting the server.
Auto-deny joining players that take too long to download map
Posted: Tue Mar 08, 2016 7:49 am
by MCorgano
Merged with the other suggestion, I'd rather have discussing Auto-deny features as a whole and not in separate threads, as they are very similar and overlap in parts.
-- daniel34
Title says all really. Problem is the ENTIRE SERVER stops when a player is joining. This means if a player comes on with 15k DIALUP you need to wait ten minutes before we can tell them their connection is too slow to play on this server. The request is to add a configurable timeout to drop the joining player.
This is damn easy to abuse. Throttle your connection to be really slow, and connect to a server you don't like. Bam - instant DOS attack, built into the game.
Fixing it could be as simple as waiting for mapsize * somenumber seconds, and if the player joining still doesn't have the map downloaded then drop them (Or give us the option to auto-bad so they won't keep trying to join). Each server could choose their "somenumber" to be more or less lenient.
Re: Auto-deny joining players by maximum ping
Posted: Tue Mar 08, 2016 4:14 pm
by MCorgano
Welp. I didn't know if they were similar enough to be included together or not. They deal with two different but related things - high latency and slow download.
Had the server I play locked out for 25 mins because someone with a crappy connection tried to join, disconnected, and tried to join AGAIN.
Re: Auto-deny joining players by maximum ping
Posted: Tue Mar 08, 2016 6:13 pm
by Bisa
the topics are similar enough even tho they handled two separate use cases they still boil down to one thing: Ensuring playability and keeping the badies out
some form of solution/tool is highly sought after to battle slow dsl and far away clients in a public setting (I for one tried to block ips by country but would rather be more open and simply weed out the occasional bad apple)
Re: Auto-deny joining players by maximum ping
Posted: Thu Mar 10, 2016 3:01 pm
by bobingabout
I'm probably against the idea for one simple reason. The person I would most likely want to play a game of factorio with lives on the complete opposite side of the planet (UK and Australia). We play games together quite often, and we expect and allow for latency based lag. It is insanely annoying when a game tells us we can't play with each other because our ping is too high. we get like 350ms ping on a good day.
Last time we tried to play multiplayer was back in it's early days, we gave up when we were getting basically 1 tick every 3 seconds. They've added a lot of latency hiding stuff since then, so we'll see what it's like next time.
Re: Auto-deny joining players by maximum ping
Posted: Thu Mar 10, 2016 3:41 pm
by daniel34
As bobingabout said, if something like this were implemented it should not be enabled by default.
I might use it on my servers to keep people with high latency / slow speed out, but if I wanted to play a multiplayer game with a friend I wouldn't want to be disconnected from the game just because Factorio thinks the connection is too slow/unreliable.
Re: Auto-deny joining players by maximum ping
Posted: Thu Mar 10, 2016 9:10 pm
by Bisa
a configurable threshold and or disable/enabling of this feature would be required, I agree with the two previous speakers...