This is a theory question, just out of curiosity.
What’d be the best way to have a singular world where physical modifications save globally?
Kinda like a Minecraft server. You join the server, you break some trees and build something, it saves globally. Someone could hop on the server, even when you’re offline, and find what you’ve built.
There are two methods/ideas I can think of for achieving this.
I’m curious as to what other options there are.
I wanna get thoughts from others about this.
Method 1:
- Player joins a game hub →
- Hub teleports player to specific private server with singular seed->
- Private server game saves everything.
Nothing gets overwritten by having multiple servers and everyone plays in the same world.
This has one major drawback; After a certain number of players join the game, the server becomes full.
It’d probably be fine so long as you have under a few hundred active players (which would definitely be enough for a long time!)
Apparently Roblox can allow for a crazy number of maximum players. I don’t know how well such high player counts are supported as I’ve never seen a game actually use them to the full potential.
Even then, depending on how resource intensive your game is, performance might become a major issue. This leads me to
Method 2:
Very similar to Method 1 except the entire world is split into multiple places.
- Player joins game hub →
- Hub teleports player to random Private Server →
- Each private server saves everything under that specific server’s seed.
- If the player reaches the edge of the world, they get teleported to the adjacent private server.
This would significantly increase max player count and make things a lot easier to manage in terms of performance.
The only problem arises in the unlikely event that hundreds of people want to gather in a single part of the map. If this happens, and you want players to continue in the same part of the map where they left off (similar to Rogue Lineage or Minecraft), you get a conundrum. What if everyone logged off at the same spot during different times of the day, then tried to join at the same time?
There are a few solutions that I can think of to this:
-
Have a secondary self-imposed max-player count for each private server. When someone logs out, decrease that max-player count. Almost like they never left the server.
This is a pretty bad idea because someone crazy enough could create a bunch of alts and clog the system. -
If a player attempts to join a private server that’s full, teleport them to a another server. This might annoy/confuse the player though.
-
Keep each private server map relatively small (500-2K studs in length and width)
This is very viable, and probably the best idea. For reference, the default Roblox baseplate is 512x512 studs.
That little grey dot is a default Roblox R15 character, 1x4 studs.
The idea here being if hundreds of people want to gather in the same part of the map, there’d literally be no space. They’d push eachother off the edge and into other private servers.
This assumes your map is flat enough. If players can move vertically, or tower ontop of eachother, this might not be very effective.
Either way, it’d be pretty rare for hundreds of players to gather in a single area.
A combination of solutions 2 and 3 would probably be sufficient.
Can anyone think of a better method of doing this?
Does anyone know of a game on Roblox with a crazy high number of players in a single world?