Technical solution to eliminate desync in single-player sessions

"
OP, you seem to firm that knowing the deterministic sequence of numbers cannot be used to gain advantage. I do not agree, but I may be misunderstanding what you mean by it. If you could, please demonstrate some sample logs using a sequence.


There are several replies in the history of this thread which explain why it's not a problem.

Lets assume the next 10 deterministic seeded values are:
1, 34, 94, 27, 14, 48, 57, 28, 12, 17

These numbers are sequential 'rolled' against anything that requires a randomly generated number. Because these numbers could be 'rolled' hundreds of times per second (imagine a room filled with mobs that are performing attacks, the seeded numbers are changing hundreds of times per second), it would be difficult/impossible for you to accurately use it to your advantage.

Moreover, even a 'lower number' could result in you doing more damage. The deterministic seed requires a 'context' in order to actually generate the random number. The seed is just a VALUE that is used to generate a random number.

I also stated that even if a bot was designed to 'exploit' this, it would require several seconds of computational power to make a decision, which could ultimately result in a disconnect/death.
Last edited by qwave#5074 on Nov 18, 2013, 3:59:41 AM
"
qwave wrote:
If you use a hack of any kind, the server would detect it and ban you.
And no one who has ever stolen anything has ever gotten away with it.
When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted.
"
And no one who has ever stolen anything has ever gotten away with it.


The server would require a full snapshot. If your snapshot is inaccurate in any way (due to hacks), it would be detectable.
"
qwave wrote:
If your snapshot is inaccurate in any way (due to hacks), it would be detectable.
What if it's inaccurate due to not being there, due to network failure?

What if someone is able to figure out a way to send an accurate snapshot, despite hacking? (Don't say it's impossible, because it's not; the client needs time to generate the accurate snapshot itself, assuming no hack.)

Hell, now that I think about it: if the client has all calculation tools on its side, what's to stop a hack from completely disabling communication with the server completely, instead communicating with a fake "server" completely internalized on the player's computer which basically just okays everything, and allows full single player mode, with any hacked items or microtransactions that player wants?
When Stephen Colbert was killed by HYDRA's Project Insight in 2014, the comedy world lost a hero. Since his life model decoy isn't up to the task, please do not mistake my performance as political discussion. I'm just doing what Steve would have wanted.
Last edited by ScrotieMcB#2697 on Nov 18, 2013, 4:03:47 AM
"
What if it's inaccurate due to not being there, due to network failure?


In the event of network failure, the server takes over with the snapshot and continues to simulate the game as it currently does.


"
What if someone is able to figure out a way to send an accurate snapshot, despite hacking? (Don't say it's impossible, because it's not; the client needs time to generate the accurate snapshot itself, assuming no hack.)


Snapshots are streamed to the server in real-time as the game is played. This is no different than having a bot which plays the game for you. A snapshot is just a record of the actions you have performed. POE is already using your 'snapshots' (input / actions) to simulate the game on the server-side. 'Figuring out how to send an accurate snapshot' is the same as creating a bot which plays the game for you. You can't prevent bots from playing the game.



"
Hell, now that I think about it: if the client has all calculation tools on its side, what's to stop a hack from completely disabling communication with the server completely, instead communicating with a fake "server" completely internalized on the player's computer which basically just okays everything, and allows full single player mode, with any hacked items or microtransactions that player wants?


You can do this with any game, that's why there are 'server emulators' for popular MMORPGs out there. This has nothing to do with my proposed solution.
Last edited by qwave#5074 on Nov 18, 2013, 4:09:52 AM
How I would abuse this:

Force a single second of ping on PoE by delaying packets. In that second I analyze packets and look for any packets where I've died. If it exists then I inject a new first packet with one of me opening a portal scroll ( there's already instant macros for this ). I then let all packets proceed as normal until I get to the 0,95 second mark where I insert a packet of me right-clicking the created portal, all subsequent packets I delete. Nearly a full second should be a believable time for human reactions, if not then I delay packets longer and adjust the timing.

The death that would have occurred at the 1 second mark now never will. I safely took a portal out just in the nick of time. As long as I ensure I don't get into near-death situations often enough to be noticeable I'm immortal on hardcore with no way to detect my cheating. After all, who's to say I don't have such good reflexes?
My vision for a better PoE: http://www.pathofexile.com/forum/view-thread/863780
Last edited by Gobla#3221 on Nov 18, 2013, 4:11:37 AM
I am still seeing the part where you gave the client the number sequence. We have to make a prototype to this, then try to hack it, which I am very sure will happen.

Proof of concept is needed.
I need more purple titles
"
I then let all packets proceed as normal until I get to the 0,95 second mark where I insert a packet of me right-clicking the created portal, all subsequent packets I delete.


Similar to a timeout for logging out to avoid death, I would also propose a brief timer to create/enter portals (1 second?). A fair price to pay to do away with desync/lag.
"
We have to make a prototype to this, then try to hack it, which I am very sure will happen. Proof of concept is needed.


I think that any seasoned hacker/bot developer will inform you that it is not exploitable because intelligent bots are too computationally expensive to pull this off.

As for a player that could 'see' the data, it would potentially provide them an edge in solo fights such as Brutus due to the few number of seed changes. However, some random entropy to the seed value could fix that (rotate the seed every 100 ms, for example). In other words, the random value will be changing too quickly for you to take advantage of.

Also, the random generator could involve some cryptographic salt to make it too expensive for bots to evaluate the data.
Last edited by qwave#5074 on Nov 18, 2013, 4:18:55 AM
"
qwave wrote:
"
I then let all packets proceed as normal until I get to the 0,95 second mark where I insert a packet of me right-clicking the created portal, all subsequent packets I delete.


Similar to a timeout for logging out to avoid death, I would also propose a brief timer to create/enter portals (1 second?). A fair price to pay to do away with desync/lag.


I would delay all my packets by two seconds. One second for human reaction time, one second to enter the portal.

Crappy internet connections happen. Can't blame me for having 2000ms ping. I'm probably leaving all my torrents on since lag doesn't impact me anymore.
My vision for a better PoE: http://www.pathofexile.com/forum/view-thread/863780

Report Forum Post

Report Account:

Report Type

Additional Info