Download

Redesigning UE4 Netcode, cost estimation

Hi

Could somebody help me estimate the cost of preparing Netcode? Roghly.

Assumptions:
-UE4
-gameplay already created in blueprints
-gameplay works already in multiplayer tests
-6 player and a ball between them

Netcode should work differently than in UE4 currently is. So it seems it’s about changing it.
Here how it should work.
Every player shold have equal delay 150 ms (round trip time). For player with lower ping server should increase response time up to this limit.
For players with higher ping server should not allow them to play.
No prediction or lag compensation.

I’m total noob if we speak about this topic but I need some price/workload range.

Thank you in advance!

Multiplayer networking is a mess, independent of game engine used, you will never be able to dictate people’s latency.
Still, for something like that would integrate a Photon layer instead of messing with engine code; which basically means rebuild the multiplayer piece of the game from scratch.
Otherwise use Pawn class instead of Character then create your custom networked movement component for your pawns…

BrUnO XaVIeR

So, shortly speaking, it is possible to handle something what i described totally outside UE4?

No. I’ve never seen a game where everybody have the same latency, ever.
Not even the authoritative P2P old RTS games like Age of Empires where all clients are always waiting for everyone to sync to the last game world snapshot.

Yeah… what’s being described sounds like a lockstep system.

Unfortunately Lockstep is great for massive amounts of objects (when combined with determinism) - but sucks for real-time, especially anything first-person. Since Unreal isn’t deterministic anyway, you’re only creating problems for yourself IMO. Players can start to detect latency quite easily when it’s more than 30-50ms, so forcing everyone into a 150ms game sounds like shooting yourself in the foot.

Prediction and smoothing is a far better approach. It shouldn’t be too hard to create a predicted ball physics component.

Ok guys. But what about games like fifa or Pes. For me it looks like what I described. There is no way to use prediction and lag compensation in this type of game…

Sure you can, just predict ball movement on the clients too.

If you really want what you’ve described in the OP, then you’ll have to implement it yourself as Unreal doesn’t have determinism nor is it lockstep. Collision is probably the biggest issue, since you won’t be able to use any of Unreal’s built-in collision functionality.

I can’t find any talks about sports-game netcode, other than people complaining about how terrible it is on reddit. Go figure…

Well. I also could not find anything about fifa netcode. But from by personal experience it’s not prediction. I know how it works in rocket league and there is nice prediction build. But the movement is more predictable than in fifa. When a car is in momentum then you know 1sec before hit that it will hit it in not changed direction. In fifa that’s not possible. Mili seconds before hiting the ball you ca do at least few things: pass, shot, intercept or mark receiving…

So I assume that in serious soccer games (maybe also basketball etc) it’s just about playing in the past…

Well my advice would be to try prediction first, since it’s the path of least resistance. If it doesn’t work, go down the more extreme route.