ScrotieMcB vs Desync Dev Manifesto (Massive Wall Map of Text)

"
Odoakar wrote:

Let me tell you what are the priorities for most gamers:

1. Non-terrible gameplay experience
.
.
.
.
.

.
.
.
1000. Zero manipulation of combat results.


Tell that to the numerous multiplayer games that have failed hard due to the prevalence of hacking.
Diablo 2? :)
Yeah, D2 is the best example of that. Failed game due to boting and hacking.

I don't want a multiplayer aRPG, I'd play MMO if I wanted that. I can enjoy myself just fine playing solo or in private mp games, and for that I don't care if someone out there is hacking or not.

Edit: don't get me wrong, I understand for a financial and overall success of the PoE, since it does rely heavily on multiplayer aspects, it's crutial to prevent hacking, but I can't be convinced that one should sacrifice game experience for system performance.
„I don't give a fuck if it was his tenth anniversary with his goddamn neckbeard...“
„If they think I'm going to let them sweep this pizza guy thing under the rug...“
No mod action. Business as usual.
Last edited by Odoakar#1827 on Aug 25, 2013, 4:24:39 AM
it probably the FIRST time that i see someone called diablo 2 'failed game'..

your other point: if GGG was so much about hacking/fair play they wouldve banned JSP users that currently take a large proportion of top anarchy/ons ladders. they are still there so i do not think that they care that much about fair play
"
Odoakar wrote:
Yes, I agree, but this shouldn't be a trade off that one accepts. I don't know about you, but for me non-terrible gaming experiences is way, way more important than the fact some douche is using client manipulation to cheat his way though the game.


Don't know if (EDIT:irrelevant explanations, but explanations nonetheless :D) explanations will help to assuage your frustrations, but I'll give it a try.

Writing netcode is hard. This is pretty much a fact, because nothing can travel faster than the speed of light, and our physical wires are still imperfect even then.

Then, you bring in what economists call "opportunity cost."

If 5% of your users are experiencing prohibitive levels of desync, but 50% of your user population wants gameplay/content updates, how do you think the developers will spend their time?

If you produce zero content and focus entirely on desync, what will happen to your user base?

Additionally, you have to consider: How much benefit is there in forcing someone who develops art, or mechanics, or music, or lore, or graphics optimization, to try to participate in fixing something they have zero experience or knowledge about?

The one thing I truly TRULY hope GGG is not doing is refusing to hire netcode programmers if they would benefit greatly from doing so. Startups require investment and risk, and from the limited numbers released by the devs, it truly sounds like GGG has more than enough revenue to sign on more programmers should the need arise. Here's to hoping they're allocating the right amount of resources on addressing desync so that they can stay nimble as an independent gaming company, but also with sufficient manpower to fix these "terrible gaming experiences."

EDIT: Whoops, misunderstood your statements, so I probably come off as condescending in the first sentences of this post. Sorry.

EDITS UNTIl THE END OF TIME: Just realized my explanations are actually still pretty relevant.

It's all a matter of what proportion of the player base has what priorities, and it's really great that the devs read the forums so they can get a sense of these proportions.

For example, if easy duping/hacking/etc. would negatively impact the gameplay experience of 70% of your users, while desync would only negatively impact 25%, then it makes a fair bit of sense to implement options that grant immunity to duping/hacking/etc. and develop fixes to desync gradually. Immunity to dupes is a 99.99% sure thing, while if you consider the other choice - implementing client-trust to reduce desync - desyncs will still happen, making it less of a sure thing than immunity to dupes/hacks. It makes it easier for a company like GGG to lean towards the immunity to dupes/hacks option.
Need game info? Check out the Wiki at: https://www.poewiki.net/

Contact support@grindinggear.com for account issues. Check out How to Report Bugs + Post Images at: https://www.pathofexile.com/forum/view-thread/18347
Last edited by adghar#1824 on Aug 25, 2013, 4:41:19 AM
As it seems that devs are reading this thread....

Just want to ask developers if my idea of making the game more deterministic is suitable for PoE (beside the fact that it need a massive recode). I repost it here:

Send to the client a RNG seed once every 4-5 seconds with a buffer of 3 seed (quantities are just examples). The game is completely determined by those seeds and by the timestamped actions of the client, with the exception of non-time-critical events as for example loot definition and effects of orbs on items, which are instead calculated sever-side.

Comments on this suggestion:
- This solution COMPLETELY solve desync when playing solo, and also when playing multiplayer in a local lan by defining one client as the 'main player'.
- It would save an incredible amount of bandwidth
- It could have a lot of positive implications (e.g. think about streaming/recording: my client could reproduce any game session with very few inputs)
- It has a very-minor drawback on cheating/botting. I think that the 'amount' of negative effects is comparable (or less) than the map-info described by Scrotie.
- The idea is basically very easy. As a theoretical researcher, i realized that silly ideas are the ones that may allow big jumps.

Some further consdierations:
As a melee character i realized that time is critical. It is like walking on razor-blades. I play a well equipped LV83 mara, and even in mid-maps my survivability is LESS than a second if i'm surrounded by enemies and i do not leech life. For such builds having an immediate feelings of what happens is mandatory.
Also, for a good game experience, the feeling of immediate response is very desirable: it is very annoying to see my molten shell explode away from me or when skeletons disintegrate 0.5 seconds after i hit them: it seems that it was not me that kill them. It is like to drive a car which turns 0.5 seconds after you turn the steering.
I did not played other online aRPG such as D3, but my feeling is that PoE has a far more complex mechanics, which is therefore more dependent on sync issue: it is not that D3 resync better, it is that PoE needs a better sync to be playable.
In his article Chris described three main 'paradigmas' to handle sync problems, and concluded that, since PoE is an ARPG, the third one must be choosen. Are you sure that there cannot be more paradigmas to choose from?
Also, the sentence 'never trust the client' is meaningless. You actually HAVE to trust the client when it is sending commands. May be you want to say 'never let the client define by itself the game status, only let the client sending commands'?.
Roma timezone (Italy)
Last edited by HellGauss#6525 on Aug 25, 2013, 4:37:07 AM
"
sidtherat wrote:
it probably the FIRST time that i see someone called diablo 2 'failed game'..


If you decided to interpret 'numerous multiplayer games' as 'everything including diablo 2' then that is your own fault.

Did you know some people get away with murder? NO WAY RIGHT?

"
sidtherat wrote:
it probably the FIRST time that i see someone called diablo 2 'failed game'.
Overall, I wouldn't say D2 was a failure. When it came to trusting the client and thus opening itself up for all kinds of hacks, cheats, and bots... in that category it would have been hard for it to score worse. The implementation of ladders was a pretty smart cover-up fix, but even that was plagued by security exploits such as temp-dupes. Nostalgia has a funny way of having us remember all the nice ways in which Diablo 2 was groundbreaking and genre-defining, while conveniently forgetting the negatives.
"
adghar wrote:
Netcoding is Hard
"
Odoakar wrote:
Yes, I agree, but this shouldn't be a trade off that one accepts. I don't know about you, but for me non-terrible gaming experiences is way, way more important than the fact some douche is using client manipulation to cheat his way though the game.
Don't know if (EDIT:irrelevant explanations, but explanations nonetheless :D) explanations will help to assuage your frustrations, but I'll give it a try.

Writing netcode is hard. This is pretty much a fact, because nothing can travel faster than the speed of light, and our physical wires are still imperfect even then.

Then, you bring in what economists call "opportunity cost."

If 5% of your users are experiencing prohibitive levels of desync, but 50% of your user population wants gameplay/content updates, how do you think the developers will spend their time?

If you produce zero content and focus entirely on desync, what will happen to your user base?

Additionally, you have to consider: How much benefit is there in forcing someone who develops art, or mechanics, or music, or lore, or graphics optimization, to try to participate in fixing something they have zero experience or knowledge about?

The one thing I truly TRULY hope GGG is not doing is refusing to hire netcode programmers if they would benefit greatly from doing so. Startups require investment and risk, and from the limited numbers released by the devs, it truly sounds like GGG has more than enough revenue to sign on more programmers should the need arise. Here's to hoping they're allocating the right amount of resources on addressing desync so that they can stay nimble as an independent gaming company, but also with sufficient manpower to fix these "terrible gaming experiences."

EDIT: Whoops, misunderstood your statements, so I probably come off as condescending in the first sentences of this post. Sorry.
The thing is, I actually believe GGG understands most of these things already. What they have a problem with is simplifying things, keeping file sizes low, optimization. I mean, look at the recent art patch and how much they were able to reduce art file size without a decrease in quality... then think of how bloated the art system was before that. Pretty sure that's a lot of the problem with their current netcode as well. It might not be so much about hiring more netcode programmers as getting the current ones to take the disorganized-yet-semifunctional mess we have now and clean it up into something more efficient.
"
HellGauss wrote:
RNG seed idea
As it seems that devs are reading this thread....

Just want to ask developers if my idea of making the game more deterministic is suitable for PoE (beside the fact that it need a massive recode). I repost it here:

Send to the client a RNG seed once every 4-5 seconds with a buffer of 3 seed (quantities are just examples). The game is completely determined by those seeds and by the timestamped actions of the client, with the exception of non-time-critical events as for example loot definition and effects of orbs on items, which are instead calculated sever-side.

Comments on this suggestion:
- This solution COMPLETELY solve desync when playing solo, and also when playing multiplayer in a local lan by defining one client as the 'main player'.
- It would save an incredible amount of bandwidth
- It could have a lot of positive implications (e.g. think about streaming/recording: my client could reproduce any game session with very few inputs)
- It has a very-minor drawback on cheating/botting. I think that the 'amount' of negative effects is comparable (or less) than the map-info described by Scrotie.
- The idea is basically very easy. As a theoretical researcher, i realized that silly ideas are the ones that may allow big jumps.

Some further consdierations:
As a melee character i realized that time is critical. It is like walking on razor-blades. I play a well equipped LV83 mara, and even in mid-maps my survivability is LESS than a second if i'm surrounded by enemies and i do not leech life. For such builds having an immediate feelings of what happens is mandatory.
Also, for a good game experience, the feeling of immediate response is very desirable: it is very annoying to see my molten shell explode away from me or when skeletons disintegrate 0.5 seconds after i hit them: it seems that it was not me that kill them. It is like to drive a car which turns 0.5 seconds after you turn the steering.
I did not played other online aRPG such as D3, but my feeling is that PoE has a far more complex mechanics, which is therefore more dependent on sync issue: it is not that D3 resync better, it is that PoE needs a better sync to be playable.
In his article Chris described three main 'paradigmas' to handle sync problems, and concluded that, since PoE is an ARPG, the third one must be choosen. Are you sure that there cannot be more paradigmas to choose from?
Also, the sentence 'never trust the client' is meaningless. You actually HAVE to trust the client when it is sending commands. May be you want to say 'never let the client define by itself the game status, only let the client sending commands'?.
"
ScrotieMcB wrote:
Let's all take a moment and agree that trusting the client leads to all kinds of hacks, which would be problematic enough in itself but made even worse by bots, who can use the hacks themselves to augment their power... and thus this method is insanely stupid.
"
ScrotieMcB wrote:
trusting the client ... is insanely stupid.
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 Aug 25, 2013, 4:49:45 AM
"
HellGauss wrote:
RNG seed idea
As it seems that devs are reading this thread....

Just want to ask developers if my idea of making the game more deterministic is suitable for PoE (beside the fact that it need a massive recode). I repost it here:

Send to the client a RNG seed once every 4-5 seconds with a buffer of 3 seed (quantities are just examples). The game is completely determined by those seeds and by the timestamped actions of the client, with the exception of non-time-critical events as for example loot definition and effects of orbs on items, which are instead calculated sever-side.

Comments on this suggestion:
- This solution COMPLETELY solve desync when playing solo, and also when playing multiplayer in a local lan by defining one client as the 'main player'.
- It would save an incredible amount of bandwidth
- It could have a lot of positive implications (e.g. think about streaming/recording: my client could reproduce any game session with very few inputs)
- It has a very-minor drawback on cheating/botting. I think that the 'amount' of negative effects is comparable (or less) than the map-info described by Scrotie.
- The idea is basically very easy. As a theoretical researcher, i realized that silly ideas are the ones that may allow big jumps.

Some further consdierations:
As a melee character i realized that time is critical. It is like walking on razor-blades. I play a well equipped LV83 mara, and even in mid-maps my survivability is LESS than a second if i'm surrounded by enemies and i do not leech life. For such builds having an immediate feelings of what happens is mandatory.
Also, for a good game experience, the feeling of immediate response is very desirable: it is very annoying to see my molten shell explode away from me or when skeletons disintegrate 0.5 seconds after i hit them: it seems that it was not me that kill them. It is like to drive a car which turns 0.5 seconds after you turn the steering.
I did not played other online aRPG such as D3, but my feeling is that PoE has a far more complex mechanics, which is therefore more dependent on sync issue: it is not that D3 resync better, it is that PoE needs a better sync to be playable.
In his article Chris described three main 'paradigmas' to handle sync problems, and concluded that, since PoE is an ARPG, the third one must be choosen. Are you sure that there cannot be more paradigmas to choose from?
Also, the sentence 'never trust the client' is meaningless. You actually HAVE to trust the client when it is sending commands. May be you want to say 'never let the client define by itself the game status, only let the client sending commands'?.


I think the problem with a fix like that, as Scrotie alludes to in the post right above mine, is that POE's mechanics system has a lot of interdependent parts - monsters need to path based on user position, for example, and the server lacks that information until it's already too late.

After thinking about it for a while, though, the idea seems to hold more and more viability in my mind. Chris mentioned in the manifesto that there were ways desync COULD have been improved were it not for "hardcore mechanics like accuracy and what we call stun," but with a fixed seed, GGG might be able to treat the netcode as if accuracy etc. doesn't exist, because it's predetermined server-side and client-side before the choice to attack or not is even made. This would allow them to implement whatever traditional code exists for games that don't implement accuracy/stun.

+1 for GGG exploring this idea and seeing if it's possible to implement it in any practical form.
Need game info? Check out the Wiki at: https://www.poewiki.net/

Contact support@grindinggear.com for account issues. Check out How to Report Bugs + Post Images at: https://www.pathofexile.com/forum/view-thread/18347
Last edited by adghar#1824 on Aug 25, 2013, 4:57:10 AM
"
ScrotieMcB wrote:
trusting the client ... is insanely stupid.


So PoE server should not trust the client when it is sending commands because it can be a bot. PoE should not exists at all. I do not say that there is no drawback, i say that the benefits are so high that even if a bot can take 10-20% more loot exploiting this it would be acceptable.

Again, i do not see so much exploitability on the RNG seed. GGG has already make evasion deterministic (even without RNG seeds). Is there any bots that exploit this? How much advantages the bot takes from the deterministic evasion?

Again, i would trust GGG opinion on this, since they are the only one that have the data to give a proper answer.
Roma timezone (Italy)

Report Forum Post

Report Account:

Report Type

Additional Info