I’m currently thinking of porting my RTS game over to UE4, but It looks like unreal engine 4 is using PhysX to do physics behind the scenes which according to Nvidia website is non-deterministic. This throws out the lockstep model of creating a game out. I was wondering if anyone has any knowledge of easily swapping out PhysX for a deterministic physics engine or any other method of creating a network game that requires a large number of actors.
From Page Not Found | NVIDIA :
The first problem here is that the PhysX SDK is not deterministic.Especially when running different hardware setups, bus latencies can vary between runs, or on different machines. Even without hardware in the machine, we do not guarantee any type of determinism"
Unreal Engine 4 was developed without determinism as a goal or a design consideration, so implementing a networked game based on lock-step determinism would be an extraordinarily difficult undertaking.
However, I think you’ll be pleasantly surprised by the scalability of UE4’s built-in asynchronous gameplay networking, which supports culling of far-away objects based on many criteria including distance and bandwidth. An RTS should be achievable.
Thanks! I didn’t know UE4 had those network features as well. I guess I’ll have to run some test on my side since there can still be 1000s of actors on-screen if I do a zoom out feature like supreme commander, but hopefully any delay in updating won’t be noticeable at that level.
Strange to think of implementing an RTS without having to consider lock-step or determinism, but should make things easier though. Too bad I’ll have to throw out most of my own rts engine code then, but looks like UE4 will be worth it.
Dude, you just got answered by Tim Sweeney himself…