Jump to content

Netcode change giving issues...


Xenithar

Recommended Posts

Netcode change giving issues...

OK, so a while back Ark was released on EGS. Somehow, EGS is so screwed up that it required the core netcode to be changed for us on Steam. I would have thought that if I make a program and sell it on any store it just works, but EGS has no match-making or social features, so I assume that was part of it. Either way, we lost raw UDP (this is how the Unreal Engine has worked since 1997) and I assume are now using some kind of Steam TCP setup.

Since the loss of UDP players who used to have low latency and zero issues now experience random drops and higher pings. In addition, those of us on gigabit connections now have game freezes while large bases and towns load in as we fly past. I assume this is due to UDP being non-blocking and TCP being blocking. In other words, since TCP guarantees that data will arrive in order and complete, each bit of info about each structure means that, while data is received, we get a slight pause. Normally not noticeable but on an entire village it causes drops from 60fps+ to stutter-town. This started the instant we lost UDP, so I am fairly sure it is related.

In addition, we have two or three players that now randomly drop and sometimes cannot reconnect for a while. None of this happened prior to the loss of raw sockets. This has cost one player in particular her items at least once and I seem to recall a second time.

Has anybody else noticed much of a change in anything since losing the raw sockets option? Using Steam networking as I understand it encapsulates UDP in TCP to traverse NAT or firewall issues. The raw sockets option allowed a client to speak directly to the server using only UDP, but required the server admin to forward the UDP ports correctly. I believe this is the root cause here.

Also, I could care less if the EGS version can use raw sockets. Give me back my raw sockets and simply tell me that, if I use raw sockets, EGS players cannot join my server. I am perfectly fine with that! Nobody I know uses EGS for ANYTHING so my players and I are being restricted for no reason!

Link to comment
Share on other sites

You are correct. To get around NAT (firewall) Steam forms connections with intermediary servers. When a user wants to connect to your server it takes the client UDP packets and puts them inside TCP packets, sends them to those servers which in turn forwards them through your server tunnel to your server. This means higher latency due to things like TCP resending lost packets and UDP just ignoring them. If one of the intermediary networks is saturated it could slow transmission as well.

With raw sockets the client attempts to directly speak to the server in UDP. No ecapsulation, no intermediary crap, and if a UDP packet or two get dropped the game keeps going, it doesn't stop and wait for a resend.

Encapsulation has been around forever. Back in the early days of The Internet services like Kali, MPlayer, Heat, WON, and others simply encapsulated IPX packets from games (we used IPX back then) in TCP packets, transported them across the planet, and delivered them to the players you were playing against. The thing is, it always introduces latency and rubber-banding when a TCP packet gets dropped. Always has, always will.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...