"
sacremon49 wrote:
In regards to desync:
Note: No attempt to analyze any data belong to GGG was made. I frankly don't care about whatever is in the payload of packets being sent between my machine in GGG's servers.
Being a network engineer by trade, I wanted to see just how much latency there was between me and the servers that I connect to. While I had a character running around in a map, I fire up Wireshark on the same machine for a minute. I then stopped the trace and took a look. Well, now I have some better understanding why there is desync in PoE and not in any other game I have played in the last decade.
Every packet in the communication was TCP. There was no UDP whatsoever. For those who are not into networking, TCP is a very reliable method to transfer data. Every packet that is sent from one machine is acknowledged to have been received from the other side. If a packet is lost, the sending machine can resend that data. The downside is the overhead (roughly 20% of the bandwidth used is not data itself) and it is slow. Slow because of all those acknowledgements and resending of packets if things get lost.
What 99.9% of the gaming/video streaming/videoconferencing industry uses for the data stream is UDP. UDP is send and forget. If it makes it to the destination, great. If it doesn't make it there, we aren't checking or resending, because what we are doing is time sensitive, so resending data won't accomplish anything - we can't go back and place put a frame of video that was missed 2 seconds ago, you are already watching the video beyond that point.
Why is GGG using TCP for data transport in an action RPG? It makes no sense whatsoever. You can set the push bit to get a little more priority in network transport (which GGG has done) but the client machine is not always setting that bit on the ACKs. All this is doing is slowing down the communication between client and server, which GGG has already stated is the reason for the desync in the first place.
"
sacremon49 wrote:
As an addendum, what I am talking about is the data. It is entirely possible to have a separate control stream that is TCP. Videoconferencing that uses the H.323 standard does this. It sends all the data streams (up to 8 between two points) as a form of UDP called RTP (Real Time Protocol). The control stream, RTCP, is TCP.
*jaw drops*
Not using UDP is just... wow. Seriously. Wow.
UDP with TCP control stream. Make it happen, devs.
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.
|
Posted byScrotieMcB#2697on Apr 20, 2013, 2:24:37 AM
|
"
spacebear wrote:
I don't quite understand why you guys at GGG feel that server sync is unacceptable for an ARPG while admitting that it's perfectly acceptable for games like Dota 2 and LoL. The genres share way more in common than they do in differences, and I imagine that if you had a more broadly spread server infrastructure rather than having all your servers centralized into 3 relatively poor locations, a system where players have to deal with a constant and predictable 50-120ms delay would probably look much more appealing than a system that just predicts actions and hopes they're within some ballpark of accuracy. I for one would take lag I can adjust to over random desync that kills me before I can react A N Y D A Y.
The pace of combat is a lot faster in PoE. The games you listed rarely involve the sheer speed of attacks used in PoE, OR the massive number of mobs and modifiers during combat.
To sum it up, PoE is doing a LOT more work under the hood. More commands are issued to the server, both from ridiculously fast attacks and large numbers of mobs, and any delay is multiplied by the number of commands.
|
Posted byZertael#3979on Apr 20, 2013, 4:53:25 AM
|
|
If i could have the latency graph moved somewhere else i will be able to monitor it at all time and easily exit game before it's too late. That will be good enough for me, atleast for now...
|
Posted byslarur#2205on Apr 20, 2013, 9:42:39 AM
|
"
ScrotieMcB wrote:
UDP with TCP control stream. Make it happen, devs.
+1 Vote on that.
|
Posted bysai25#5589on Apr 20, 2013, 10:08:24 AM
|
|
I am not sure if someone else allready posted ...
I would like to rise hands in case of BSOD with Creative sound cards.
I did all to get it worked (noncreative drivers, -softwaresound, alchemy etc) ... no way.
Still switched to onboard shitty sound card.
Thanks
|
Posted bydjWilly#6996on Apr 20, 2013, 10:45:20 AM
|
|
Hey Mark, I know you probably won't see this. I really hope you will!
Anyways, I'm commenting on the synchronization between client and server. It's pretty obvious right now that there is something different between the client logic and the server logic when it comes to calculating what an entity "does" with regards to certain mobs. The mobs I'm talking about are the 2h mace wielders in the docks. I don't know why, but they just walk around. The client seems to think they're coming to attack, but upon throwing bear traps, it's obvious the mob is still just walking around.
What's up with that? Is the client/server logic with regards to the scripting of mobs not consistent?
|
Posted byvmrob#4382on Apr 20, 2013, 1:33:08 PM
|
"
ScrotieMcB wrote:
"
sacremon49 wrote:
In regards to desync:
Note: No attempt to analyze any data belong to GGG was made. I frankly don't care about whatever is in the payload of packets being sent between my machine in GGG's servers.
Being a network engineer by trade, I wanted to see just how much latency there was between me and the servers that I connect to. While I had a character running around in a map, I fire up Wireshark on the same machine for a minute. I then stopped the trace and took a look. Well, now I have some better understanding why there is desync in PoE and not in any other game I have played in the last decade.
Every packet in the communication was TCP. There was no UDP whatsoever. For those who are not into networking, TCP is a very reliable method to transfer data. Every packet that is sent from one machine is acknowledged to have been received from the other side. If a packet is lost, the sending machine can resend that data. The downside is the overhead (roughly 20% of the bandwidth used is not data itself) and it is slow. Slow because of all those acknowledgements and resending of packets if things get lost.
What 99.9% of the gaming/video streaming/videoconferencing industry uses for the data stream is UDP. UDP is send and forget. If it makes it to the destination, great. If it doesn't make it there, we aren't checking or resending, because what we are doing is time sensitive, so resending data won't accomplish anything - we can't go back and place put a frame of video that was missed 2 seconds ago, you are already watching the video beyond that point.
Why is GGG using TCP for data transport in an action RPG? It makes no sense whatsoever. You can set the push bit to get a little more priority in network transport (which GGG has done) but the client machine is not always setting that bit on the ACKs. All this is doing is slowing down the communication between client and server, which GGG has already stated is the reason for the desync in the first place.
"
sacremon49 wrote:
As an addendum, what I am talking about is the data. It is entirely possible to have a separate control stream that is TCP. Videoconferencing that uses the H.323 standard does this. It sends all the data streams (up to 8 between two points) as a form of UDP called RTP (Real Time Protocol). The control stream, RTCP, is TCP.
*jaw drops*
Not using UDP is just... wow. Seriously. Wow.
UDP with TCP control stream. Make it happen, devs.
Cripes. I know GGG wanted to make a game like diablo 2 but I think they went too far hahaha
IGN: Asser, AssDelver, Assphobic, AnointedAss, BetrayedByMyAss, CrackedAss, FracturedAss, FulcrumedUpMyAss, ImpaledAss, IncursionOfTheAss, WarForTheAss, UnleashTheAss, ScreamingAsshole, SwampAssKing, Yui
|
Posted byWooser69#4318on Apr 20, 2013, 6:30:00 PM
|
"
vmrob wrote:
What's up with that? Is the client/server logic with regards to the scripting of mobs not consistent?
The logic is probably exactly the same. Same logic doesn't matter if the two are have different data.
Example: You're standing still messing with your inventory, and out of the peripheral of the screen you see: oncoming rhoa charge! You frantically move out of the way at the last second... on the client. The client then sends that data to the server, and for whatever reason that data is held up and doesn't get there until later.
The client and server may agree completely about the movement caused by the initial rhoa charge. However, because the server didn't get the initial character movement, it was basing all the rhoa's subsequent actions off of the character's initial position. On the server, this would likely be a series of melee attacks, since it's already in melee range of the character; on the client, this would likely be the rhoa maneuvering (perhaps charging again) to get within melee of the character. By the time the server actually gets word of the character movement, it's already sent data to the client on the damage caused by the initial charge and a few followup melee attacks. No difference in logic needed.
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 Apr 20, 2013, 10:34:47 PM
|
Posted byScrotieMcB#2697on Apr 20, 2013, 10:32:28 PM
|
|
Ranged vs Melee Disparity
Last edited by Doomsdxy#1242 on May 17, 2013, 10:03:14 PM
|
Posted byDoomsdxy#1242on Apr 21, 2013, 1:19:13 AM
|
|
Remove unit-blocking = Desync solved.
|
Posted byDeansy#7239on Apr 21, 2013, 2:55:05 AM
|