- Home /
Infinite space, precision problems, and multiplayer
I've been researching this for a while and it seems Unity is restricted in world size just like every other engine. I know there are ways around the floating point precision problems though, like moving everything around the player instead, or streaming.
But my problem is I need a way to implement an open world, seamless infinite environment networked for multiplayer. I'm unable to do this in UDK because streaming levels together in multiplayer has an effect like if one player loads a level, its loaded for all players. And sometimes they are all warped into a void and fall to their deaths. Also not possible to scale the player down as that creates physics and collision problems.
UDK and CryEngine both have precision problems at around 5 - 10+ km from the origin.
How much better is unity? I suppose I'd have to use level streaming to achieve this, but how big can I make each level? And does Application.LoadLevelAdditiveAsync work for a networked game? http://unity3d.com/support/documenta...tiveAsync.html I will be using uLink or photon for networking, but I don't want getting bigger space to be a huge deal to implement.
I may have to stick with another engine if I cannot get more space per "level" with unity, only because the other engines built in networking + server streaming would be easier. By server streaming I mean combine all the levels into one world but each level is on a separate server and reconnects player upon entering a trigger zone. That and much of the code for my type of project is done.
Any ideas how complicated it is to make a seamless massive amount of space in Unity? My main reason for being attracted to Unity is the fact that I can get infinite space with the least amount of work, or at least accomplish it period, without having each zone on a separate server.
UD$$anonymous$$ and CryEngine both have precision problems at around 5 - 10+ km from the origin.
Actually you will encounter similar issue in every engine, since it is due to floating point single precision. There are way to overcome such issues like changing the origin of the world (i.e. translating everything by a given vector). This works fine for single player (e.g. Elder Scrolls Oblivion) but it much more tricky for multiplayer games (e.g. World of Warcraft).