Hello everyone!
I'm in the midst of developing a low-poly 3D MMORPG and have successfully tackled various elements like networking, multiplayer functionality, and database management. However, I've hit a stumbling block with one aspect of my game's design that currently feels a bit makeshift, and I'd love your insights on a more elegant solution.
My game features diverse environments, such as wilderness areas, urban settings, interiors of buildings, and dungeons. Players can transition between these areas through specific teleportation points. For example, stepping into a crypt's entrance will transport the player to the dungeon's starting point. On the server side, I've structured the map as a single extensive scene tree with all potential locations pre-loaded and spaced out to prevent visibility from one to another, reminiscent of how Ultima Online managed its map.
However, this approach presents three significant challenges:
- Performance is a concern since the entire map is loaded continuously, despite the absence of players in most areas.
- The use of directional lighting affects the entire map. To simulate darkness for underground locations, I've had to resort to shadow-only meshes to act as roofs, given the game's top-down perspective which ordinarily doesn't include roofs.
- Instancing is currently unfeasible. I aim to allow multiple player groups to navigate the same dungeon simultaneously in their own instances, without interaction, enabling, for instance, competitive speedruns through the dungeon.
Here's my core question:
Is there a more efficient method to load maps or scenes solely for the areas occupied by players? Or a way to load scenes in such a manner that they don't interact with others?
Essentially, I'm exploring the possibility of adding a 'fourth dimension' to space within the game. This would allow players to exist at the same Vector3 coordinates but, based on an additional variable, either interact with each other or remain completely unaware of each other's presence.
Any advice or guidance on this matter would be greatly appreciated!