How is a gameworld of super large size handled? I was always wondering how games handle large MMO worlds. Until now I thought that separation of areas was the key for games like World of Warcraft. In WoW there are continents, that are handled by different threads. And each continent can be multiphased and each phase would be handled by different thread. But recently I started playing a game called Dual Universe. This game features a single shard space of size more than 100 000km x 100 000km x 100 000km. There is no loading when moving around and you can be anywhere with your 2m tall character and build anything of even smaller size. So, how is this possible? Do they just have one core to process this whole game world? (of course use different threads for networking, user input validation, database, etc) Or did they come up with some way how to split game world into zones and handle each one by different thread and then do some syncing and handovers when something happens near the zone edges? I always thought that this is impossible, because all MMOs do some kind of world splitting like continents/planets/solar systems/realms.
There is little reason for things to interact with something a kilometer away. So there is no reason for the entire world being a single shard.
This means that if you segregate the world into chunks each in their own thread/process, there is only the boundaries where those things need to interact across shards. And where players traveling through need to get migrated from one shard to another.
There are a few ways to design those areas to encourage players to stay away from them:
If those boundaries are non-pvp-combat zones then it's less critical that sudden interactions need to happen instantly.
Remove the farmable critters in those boundary areas and you naturally create a zone where players just travel through quickly.
Other options to design a boundary is long corridors with sight blockers at either end (not uncommon in MMOs to create an entrance to a building). As the player runs through you migrate them from one shard to another.
As an aside: there is no reason that a shard only needs a single thread. There are plenty of strategies of dealing with multiple players and entities interacting with the world and each other and resolving that spread over all the cores in a server.