My team is developing a multiplayer space sim (very lightweight and arcade-like, nothing crazy). Not an MMO, it’s just 2-4 players, connected peer-to-peer.
The scale of our world is current measured at around 150km in radius (player characters are a couple of meters), and is populated by very small planets which are the main focus of the gameplay. Naturally, we are running into visible floating-point error, and all of the fun bugs that come with that.
I understand that Unreal has world origin rebasing, but this only helps smooth out client visuals. Since the server only has one physics world for all players, it can only have one origin, so the physics still have floating point errors when players are far apart.
Our current intended solution is to create either multiple PxScenes or UWorlds, depending on which is easier, one for each planet in the game. However, based on initial research, this seems like a daunting task, mostly due to how Unreal handles network replication.
My ultimate question is:
Is there any prior art we can study of creating large-scale multiplayer worlds, perhaps using multiple physics scenes or UWorlds? If not, does anyone have any knowledge to share that would help us in this endeavor? Again, we are mainly concerned about the multiplayer aspect, as obviously in singleplayer we’d just use world origin rebasing.
If this becomes too much of a burden for us to implement in Unreal, we will likely switch to building a custom engine, which obviously wouldn’t be ideal, especially because console porting would be a nightmare.
As an aside, we evaluated Unity, which has multi-scene physics, documented here, but this seems to mainly be intended for physics predictions, and we determined that we’d really be no better off with it, since we can just create a new PxScene in Unreal just the same.