Drop hacking -- solution?
Posts: 51
Posts: 51
SITUATION:
Two players battling, both have an army value of 2000 ( I don't know a proper army value off the top of my head)
suddenly one player goes from 2000 to 800 and the opponent goes from 2000 to 1800. Then a disconnect. This can probably be determined as a drop hack. So the game should then be determined by army value and Ticketvalue. Maybe calculate a time, like, 5 minutes, after that it's again up the algorithm or the ELO.
Example 2: two players, each with 2000 value army, one goes from 2000 to 1300, the other to 1500:, but the player with 1500 army values has 150 tickets, the other with only 18, sudden disconnection. Win goes to player with 150 tickets.
Posts: 449
But let's say you were to introduce a more complex arbitration process that took vp's and army composition into account:
-You would still be able to abuse the system by temporarily stalling your connection at a moment when you're in the lead, thereby triggering the end of the game and eliminating any chance of a comeback from your opponent.
-Where would you draw the line on arbitration? What if you have an equal army value but one side had a 1vp advantage?
All in all, I think the current connection check + trust check setup is the best we can get with the current setup.
Posts: 51
2) I was going to draw the line of 'Total Army Value' decline. For example;
two players have equivalent armies, one goes from 2000 to 1500, the other goes from 2000 to 600. if there is a system error after that, use that fact as evidence to give the 2000 to 1500 player the win. Again, this is already covered by the current in-game coh2 post-game graph/algorithms.
Sorry big EDIT: but I read the last part of your post again, "All in all, I think the current connection check + trust check setup is the best we can get with the current setup."
I don't think the current trust system is, 'wrong or bad,'" I think that it can be improved on -- is the point of my post.
Posts: 51
Posts: 449
If one of the players loses his connection to the routing server:
1. The game pauses for the remaining player. This player maintains the current state of the game and is forced to wait.
2. Upon re-connection to the server, the game state is passed on to the reconnecting player and the game resumes.
I assume there's a good reason why this system isn't in place already though. It's probably too costly to create/maintain or opens the door to more security issues.
Posts: 51
The only acceptable solution I can think of is to create a re-connection feature.
If one of the players loses his connection to the routing server:
1. The game pauses for the remaining player. This player maintains the current state of the game and is forced to wait.
2. Upon re-connection to the server, the game state is passed on to the reconnecting player and the game resumes.
I assume there's a good reason why this system isn't in place already though. It's probably too costly to create/maintain or opens the door to more security issues.
I think what you just stated was the, "Battle Sever," solution. Which was covered a couple patches ago. The problem is, what if the other player does no reconnect? That's when ELO, Trust, or whatever, comes into play.
Posts: 1679 | Subs: 5
The way battle servers work is, every player is connected to the server. The server acts as a relay between players; players send information to the server and the server relays that information to all the other players. This means one player with a bad connection won't lag all the other players, since all that matters now is a good connection to the server, not a good connection to the other players. It also means the server knows which players are connected to it.
This second point is the most important when it comes to discussing drophacking. If the server knows which players are connected, it also knows when a player disconnects. Therefore, pulling the plug doesn't work, because the server will detect it, realize the other player is still connected, and award the connected player the victory. Lagging out won't work either, because the server will know which client is lagging, and will grant the other player the win. Blocking the server IP won't work either, because again, the server will know which player isn't connected.
Those are the traditional means of drophacking. None of them work, because the server has enough information to make a correct decision. The only way to get "drophacked" these days is to get denial-of-service attacked to the point where you are unable to communicate with the server anymore. That's the only way your opponent can cause a drop and get the win short of hacking the server or finding a serious exploit in the game's communication with its server, and it requires your opponent to know your IP address, which you can't get through the game.
Of course, plenty of situations can result in lost connection. Drops in your internet connection, drops in the server's internet connection, server crashes, natural disasters, planned maintenance, all sorts of things can cause all of the players on a server to be disconnected. When that happens, the trust system takes over. It's not practical to judge a game's outcome based on game data because game data is largely inconclusive; in those rare instances of mutual lost connection, the trust system is more than adequate.
So to summarize, you aren't getting drophacked. Please stop complaining about drophacking. Networks are imperfect, expect them to have issues.
Posts: 51
I know my post was very long and covered a lot of issues, but this is my end goal.
SITUATION:
Two players battling, both have an army value of 2000 ( I don't know a proper army value off the top of my head)
suddenly one player goes from 2000 to 800 and the opponent goes from 2000 to 1800. Then a disconnect. This can probably be determined as a drop hack. So the game should then be determined by army value and Ticket value.
Example 2: two players, each with 2000 value army, one goes from 2000 to 1300, the other to 1500:, but the player with 1500 army values has 150 tickets, the other with only 18, sudden disconnection. Win goes to player with 150 tickets.
Posts: 449
I think what you just stated was the, "Battle Sever," solution. Which was covered a couple patches ago. The problem is, what if the other player does no reconnect? That's when ELO, Trust, or whatever comes into play.
The battle server does not allow re-connections at all. If one player drops out, it's over.
The point of a re-connection system would be to give the disconnecting player the option and time to reconnect, if he doesn't want to, he concedes.
Dota2 and Cs:Go do this pretty well but in their case, the true game state actually runs on the server and I guess that makes things much easier. Mimicking that on a p2p system probably creates a load of other issues.
Posts: 1221 | Subs: 41
Posts: 1679 | Subs: 5
The only reconnect feature we might see in the future is resuming from replays, which is entirely useless in a matchmaking environment.
Posts: 449
Also, reconnecting isn't possible because the servers don't have any knowledge of the game state; they only relay messages between players. In order for reconnecting to be possible, the server needs to store a history of player actions so that the reconnecting client can simulate the parts of the game it missed and catch up in the gameplay simulation. This adds a ton of overhead and isn't all that feasible for an RTS.
The only reconnect feature we might see in the future is resuming from replays, which is entirely useless in a matchmaking environment.
But assuming one player remains connected to the server, couldn't he send his game state to the re-connecting player(s)?
Posts: 2693 | Subs: 1
Posts: 449
Forcing the opponent to wait after a disconnect just opens the door for tons of low-life players to grief their enemies when they are losing.
Penalties could be added to discourage such behaviour.
Posts: 1679 | Subs: 5
Posts: 503
Permanently BannedGood luck...
Posts: 1679 | Subs: 5
Livestreams
15 | |||||
14 | |||||
14 | |||||
3 | |||||
1 |
Ladders Top 10
-
#Steam AliasWL%Streak
- 1.831222.789+37
- 2.34957.860+14
- 3.589215.733+4
- 4.1099614.642-1
- 5.280162.633+8
- 6.305114.728+1
- 7.916405.693-2
- 8.271108.715+22
- 9.721440.621+3
- 10.1041674.607-2
Replay highlight
- cblanco ★
- 보드카 중대
- VonManteuffel
- Heartless Jäger