Why desync is fixable:
" They did not eliminate it by default, they actually considered it. GGG mention it in the manifesto, so the option *has been* considered. They actually considered three options: 1) Run the game completely on the client, without servers: i think they did not ever tested that, since it is easily cheatable (http://www.youtube.com/watch?v=EbsZQo4OJhs) and obviously does not work with an online economy. I remark that this solution has nothing to do with determinism: the game showed on the video is not deterministic, since it allows the player do create any gamestatus by directly work on memory. 2) Wait the server solution (as proposed in this thread). As Real_Wolf, I also think they tried that, but they realized that such approach is incompatible with the 'hardcore' game GGG wanted to simulate and with its complex mechanics. 3) The current system. It has only advantages with respect to 2), the only drawback is that it is difficult to code. However i think GGG did a good job with that, and i do not think that can be improved too much (i hope that i'm wrong). Maybe GGG did not explain well why this is better, but Scrotie give a nice explanation both here and with more detail in another thread. Now, if solution 2) is < than 3) AND solution 1) is stupid for PoE (i'm pretty sure about these), then if we want to solve/alleviate desync whe are left with: - (greatly) improve solution 3) (but i do not think it is possible for PoE, even if i'm not 100% sure) - find ANOTHER solution. Roma timezone (Italy)
|
![]() |
I am sorry, I didn't read all the pages here.
Just come to say the OP wrote absolutely brilliant thing. I thought exactly the same when I was reading Dev Manifesto. GGG knows that hit/miss calculation put very high requirements on server-client intercommunication, but still they go for it just for... lols? Please note how in D3 (I hate that game as it's primary PoE's competitor, and I think PoE deserves much better) there are no such thing as miss in game mechanics - and you see the result - desyncs are far less common. GGG acknowledges that constant game state syncing also puts very high requirements for client-server communication. It's either MOBA style (click, wait for server response, move afterwards) or... Actually, there is no accurate "or" option for this case. It's either occasional rubberbanding (you see charge animation to only find yourself in the old position a moment later) - this happens when you force re-synchronize game states between server and a client - or this nonsense "desync". Please note, how this very term "desync" appeared only here, but not in multiple previous ARPGs. They do not have this problem. It is completely fictional and nonexistent problem that lingers no other ARPGs around here but Path of Exile. And it really makes me very sad. Yes, there occurs occasional rubberbanding (say in D3), or you really feel your ping via delayed command execution (as you do in HoN, Dota, LoL etc). It's not really ideal, but... " So would you rather die because of it occasionally after playing for X hours? Your character level will be high level enough for death penalty to hit you hard. And what if you happen to be playing HC? I see this is really an option for you, but it just flushes all the HC playing experience down the drain? I already saw the topic here on forums about "Why even bother having Hardcore leagues?" and this is that very question that is reasonable here, you know. Everyone is definitely entitled to their own opinion, someone would rather desyncing occasionally but having a great and fun playing experience all the other 99.99% of time. Me personally would gladly give everything away for the sole goal - to NEVER be in desynchronized state with the server. Sorry, even 0.01% is just too much for me to loose my HC character. I'd much rather "lag" everytime (just as I do when I play HoN - ~0.1 sec of delay for every ability or movement is virtually nothing), and would gladly trade all my "realistic" hit/miss chance (that spell caster already don't care about) for just lower damage output. It's not that hit/miss is bad and I want stability - you should understand - it strains server-client communication a little too much for the little benefit it may solve. In D3 you never miss and "desyncs" or rubberbanding is virtually never encountered. Believe it or not, but these two facts are not a simple coincidence - they relate very closely. TLDR: I understand GGG tries its best to develop the game with very deep and entertaining mechanics (realistic hit/miss mechanic, fast movement abilities should feel great without dealing with ping), but exactly as OP says - stability is the key here. It can never be sacrificed to achieve other goals, as it's itself the primary one to achieve in the first place. Edit:
C# and D flat
"As I am not having any musical education, it can be hard for me (and many other people as well) to tell two adjacent sounds of a chromatic scale just by hearing only one of them. But it's actually not that hard to tell them when you hear them both in a sequence. Considering you are not straight out lying with the two notes you actually play (like, you may play F and F#), the note that is lower (sounds more bassy) would be C# and the other, higher one (that sounds more bright) one - would be D. Note that there was no rocket science here, as I was using just musical basics here, and anyone who cares can learn it all in less than an hour of free time. I care, as I love playing my guitar through stacked distortion in my leisure time. But on the other hand, having 10 years of commercial programming experience definitely helps me "see" (or "guess" if you rather) the problems in the code of the program (namely, Path of Exile here) just by seeing the looks of these problems (desyncs) externally, without even having the source code available for me (as I definitely don't have it lol). Last edited by Daefecator#4146 on Sep 17, 2013, 4:51:38 AM
|
![]() |
I've skipped over most of the posts in this thread, but as a musician, hopefully I can shed light on that analogy (especially since you don't seem to be a native speaker of English. Hoping to clear it up for you if I can).
C sharp and D flat are quite literally the same note*. I think what the poster was trying to say is that "you can't tell the difference between two things that are exactly the same."
*technicalities
in contemporary Western music. Naturally, if you're using a just tuning system, C# and Db do sound different, but not only that, different C sharps sound different (i.e. C# in A major vs. C# in F# minor). So it's more than likely the poster was just trying to say "You can't tell the difference between two things that are exactly the same."
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 Sep 17, 2013, 5:01:31 AM
|
![]() |
Oh, D flat is Db :/ I assumed flat = "that same", so I thought D flat = D.
My thoughts were for C# and D sounds. C# is equal to Db, and I know it, just confused the word "flat". And yeah, I am from Russia, thanks for helping me out :) Edit: I always knew b = "bemole", not "flat" lol :) Last edited by Daefecator#4146 on Sep 17, 2013, 5:40:21 AM
|
![]() |
" Option 1 isn't reasonable, i think everyone will agree on that. For me the 'reasoning' (for option 2 that is) in the dev manifesto reads like this: 'We know this option, we tried to play some MOBA to see if it is viable, but it wasn't, because we are in NZ and we can't do shit with 350ms ping. This option won't work.' That is all reasoning there was and THIS is garbage, because if you have a server in NZ and you play with 20-50ms IT IS (probably) perfectly viable. Dev manifesto quote in spoiler:
Spoiler
Wait until data arrives back from the server before doing anything. This is a very common strategy in RTS and MOBA games. If you click to move, the unit will only start moving once the server says so, which is 50-250ms later. If you are close to the server, you'll quickly get used to the lag and everything feels pretty good. If you're far away (New Zealand, for example), it feels like you're playing drunk. Every time you issue an order, nothing happens for quarter of a second. This does not work for Action RPGs.[/quote]
I think there are only 2 reasons why GGG didn't answer this thread now (considering the thread is there for over a week, there should be no possibility that they didn't see it...). 1. They have no answer. They have no idea why they didn't considered it properly and have no argument for the reasoning made in this thread. 2. They rethink their approach and discuss it inside of GGG, but nothing is clear now so they won't make a statement. There may be other options, but that should be the most likely ones. Last edited by DE3me#2347 on Sep 17, 2013, 6:56:27 AM
|
![]() |
There may be a lot of reason for discarding option 2). I never played MOBA, so these are just my opinions...:
Consider for example these 2 videos: http://www.youtube.com/watch?v=MV2rRcskn4Y http://www.youtube.com/watch?v=zWMVMxM0crs I think that is clear that PoE needs a completely different structure, since there is far more action. Also, there are another very important thing that should be discussed: the difference in desync caused by server and caused by other player, they must be issued with a completely different approach. I play PoE solo, and i experience a lot of desync (it is my 'fault' because i choose to play a cyclone build). We cannot compare syncing solutions of MOBA (which are multiplayer) with PoE, because in PoE the main source of desync (the server) is problematic even in solo. There are also a lot of post in this forum like "I play D3 and I never desync". Or "There is a lot of desync also in D3". It would be very interesting to analyze the difference of desync in games like PoE and D3 with respect to the number of players. Does PoE desync more in mplayer or in solo? (answer: obviously in mp, but how much more?) What is the situation in D3 for Solo and MP? How do PoE and D3 handle solo and MP? How does clients communicate (if they communicate)? The situation is far more complex than it seems. Roma timezone (Italy)
|
![]() |
" Yeah, you really don't play AoS/MOBA. Such a game got slow phases, but can explode in a moment. Here is a video (DotA 2) in super slow motion with around ~20 different casts in 1-3 seconds: http://www.youtube.com/watch?v=W4h4jdYwpLE&feature=c4-overview&list=UUNRQ-DWUXf4UVN9L31Y9f3Q By the way, it is NOT your fault that it desyncs with your build. The moment players play out their way, because of a bug, is the moment the game goes the worst wrong way. From what i know (i don't play D3) D3 uses the same option (3) and got desync problems, BUT the game is created by Blizzard and there is one thing Blizzard does better than any other game company. They polish their games longer and with more people than any other company around. So you can't really compare a blizzard game with hundreds of people polishing for month to a game like PoE and i never said that desync can't be better. Yes, even with option 3 there should be less desync, but that is not the point when there is an option (2) that allows you to avoid this problem at all. Last edited by DE3me#2347 on Sep 17, 2013, 8:50:12 AM
|
![]() |
I've found an interesting article about desync in RTS (it should apply also to MOBA). It seems that RTS are also based on determinism. This is why they works well. They desync because they are multiplayer (or for coding bugs). They use the same framework I proposed.
http://www.altdevblogaday.com/2011/07/09/synchronous-rts-engines-and-a-tale-of-desyncs/ I also suggest to read the other articles linked therein, as well as the comments at the end. A consideration: " This is the wait philosophy ( number (2) of desync manifesto ). The GGPO philosophy is number 3). However all these do not really apply to PoE, because it is the server that causes desync, not the other players. A question to D3 players: do you experience desync only in multiplayer or also in solo? Roma timezone (Italy)
|
![]() |
" " You just confused it more. C# is a programming language. D flat is a note. He's basically saying "You're comparing apples to oranges and making yourself sound stupid because you're criticizing apples because they aren't perfect oranges." |
![]() |
"You were supposed to wait until after Stark came off probation for the big reveal. You ruined it. But yeah, Dae and Gauss... yeah, you really aren't experts in the field of programming. Couldn't even pick up on an industry pun. 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 Sep 17, 2013, 11:42:05 AM
|
![]() |