Hacker News new | ask | show | jobs
by dogma1138 3084 days ago
Fortnite doesn’t use UDP at all (80, 443 and 5222 all TCP), UE4 uses TCP for its network stack by default.
2 comments

Nope, it might use TCP for negotiation of things that aren't time sensitive but it uses UDP for replication[1] as has pretty much every Unreal or Quake based engine since they were first developed.

I've worked on a variety of engines which were either UE or Quake based. All of them use UDP for temporal game state updates to avoid head of line blocking[2][3].

[1] https://answers.unrealengine.com/questions/197713/is-replica...

[2] https://stackoverflow.com/questions/39323556/why-do-game-dev...

[3] https://www.gamasutra.com/view/feature/131781/the_internet_s...

Are you sure? I would be extremely surprised if it wouldn't use UDP.

For things like getting stats, probably from a HTTP endpoint, sure, but for gameplay? The lag would be very bad, no? Lose a packet and everything is slowed down

I see this, which indicates it uses UDP: https://imgur.com/al6KTwT

and according to wireshark it's used heavily when in a game, so I assume that's the gameplay protocol. Also when I left my game (but stayed in the lobby), immediately the port 61879 stopped listening.

I'm not sure about UE4, but previous versions of the unreal engine used UDP for replication and RPC.

It's not entirely uncommon to have TCP on the backend even for AAA games.

I worked on a huge open world third-person shooter always-online AAA game and it uses TCP for everything.

Interesting. I know World of Warcraft uses TCP, but I imagine it's less "real-time" than shooters (ie: no hitscan) so a few dropped packets wouldn't have a huge impact (ie. if you're standing casting a spell for 2sec, the game can recover the lag easily). Didn't know some shooters used TCP