The_Sloth_Sleeps
Arcane
- Joined
- Oct 26, 2016
- Messages
- 2,284
Version 1 could have the problem of server overload, I don't mean just compute, but also network bandwidth to that server.So how exactly is that supposed to work? If you fly somewhere they spin up a server with pregen proc gen world, then save that data, fly somewhere else, repeat?
Is the prior tech video somehow supposed to support this?
in 1.0 version called static server meshing world will be divided into zones and each zone will be handled by different server. So for example Planet A will be handled by server 1 and planet B by server 2. This is compared to now where whole system is handled by one server that tries not to fry up. That alone is not something that is not seen in industry the major difference is that this is completely seamless and you can send missile from server A that will arrive on server B to hit something.
That version alone can reduce server strain and multiply amount of people on server a lot. Say something from 100 currently into 1000s
2.0 version called dynamic server meshing will be like name suggest dynamic version of this where world will get divided in smaller and smaller chunks depending on load and servers will spin up and spin down depending on that load. Say you have 10000 people on planet, that's too much for one server so planet gets divided into different servers where oner server handles city second one outposts third one caves and last one surface stuff. But then you have still 5k people in city so city itself goes from one server and it divides works between more and more servers distric A will have separate server district B will have another etc. But then it might be that all 5k people will want to be in same disctric so district itself will get divided into more servers. So bar will be separate server, hotel separate server, corridor separate server. The whole point of this system is to enable massive amount of people in same place at the fidelity of what you can see they are trying to do including stuff like physics, destruction system and so on. And the most important part it all works in background seamlessly so player never notices it. This kind of version has theoretical capability to hold essentially all millions of players in the same world without any instancing.
Most of MMO games work on instancing where each server can handle so much people at the same time and can't handle more than X amount of people so you need to switch server essentially starting from start or interacting with completely different people.
Then there is cutting corners. For example you won't find in any MMO advanced physics because it is nightmare to have shitload of particles that all synchronize with clients and interact that would instantly make server cry, same with complex gameplay. You can have creature attack you but it's pathfinding will be very limited because server has to do not only few creatures attacking you but also everyone else on server.
Here in theory with their magical dynamic server meshing you can have true one world without instancing or cutting corners. In theory at least. Who knows if it will be possible, only attempt at it can show if it works or not.
Those cool scenes with thousands of objects, each one needs a real time update. Any complicated objects moving between servers (like a huge spaceship) is potentially huge amount of state and data to transfer. Also players will want to "see" beyond server borders, so to some extent servers must be synchronized to neighbours. Probably no gun fights between borders either. Will require a lot of game design to avoid taxing borders heavily.
We know from other games, that this can work if you embrace the limitations, and that lag will arise. This seems unlikely to work with an open world that they are touting however.
Version 2 I don't believe its possible, as this has even more problems than Version 1. Indeed it could easily hold millions of players, provided none of them interacted. In most conditions there will be exponential growth of network traffic.
I know of several examples of this failed idea including:-
https://www.mmorpg.com/columns/pikko-server-technology-2000103219
And of course the Dual Universe.
Whats interesting to me is how (intentionally?) the problem is misrepresented by these guys. Its not a problem of scaling computation. Rather scaling network interactions. Plus of course, there network round time, which has to be insanely low for real time simulation. You have to complete jobs on time otherwise everything sucks.
Computation can scale reasonably well by increasing cores but you will always need to be shifting lots of data around on a VERY slow network bus. Compared to a CPU or graphics card bus, this is the key difference.