Multiple Maps: Same place or multiple places?

The game that I’m making has multiple maps with multiple combat modes. The lobby is its own place. However, to store multiple maps, I have not decided if I should just stick to one place and keep the maps in ServerStorage or use a different place for each map. Parts can be cloned and parented to the workspace easily enough along with the lighting stuff.

This brings up a number of issues either way:

  • How do I store the terrain of a map? According to the official documentation, Terrain:PasteRegion does not replicate between client and server. So how to other games do it?
  • I would need to spin the game place up to receive data from the lobby so the map can be prepared before players teleport in. How could I accomplish this?

I have thought about doing a hybrid solution where each place has the basic map which is then modified for the specific game type being played. In my own testing, the Terrain object is locked to the workspace, so the terrain data would have to be stored and copied over.

Keeping everything in one place is not a viable option in my use case because the lobby is unique and there’s a skybox involved.

1 Like

If you can disguise a loading screen into the loading period that I would recommend different places for performance’s saké.

Wrong, the terrain DOES replicate from server to client, if you read it correctly, TerrainRegion data is the one that does not replicate from server to client, so you can’t pass a terrainregion object through a remote event. So it is viable for use in saving and loading terrain.

You could send the data from the lobby to the game server for which map to load and what gamemode.

It is viable if you just load the maps at like a million studs away from your lobby map, and the skybox can simply be changed on the client. This would be preferred if your maps aren’t very big and plan to have one map at the same time.

1 Like

No, it’s not. I have things animating and moving around in the lobby for effect. If I use the lobby place to load the game map, when the players are on the game map, the lobby will still animate and pull resources from the game map. It is not possible with the current code to stop or pause the lobby animations without a complete, major rewrite of most of the lobby code which I am not going to do. Furthermore, some maps have parts that animate procedurally as well. The two must remain separate.

I think you just answered your own question. Its probably best to have them as separate place.

What type of game is it? Because if the maps change frequently, it’s better to keep everything in one place. You could also use robloxs native streaming to load in the maps. Might be hacky, but just keep them far away and spread apart, then teleport them to the spot on the map you need.

@SelDraken Yeah. I just don’t want a gazillion places in the game. I want to keep it three or four places max due to management issues of code and such. That’s why I’m thinking of the lobby place, the game place, and a development place. I have a mechanism where I can transmit data from the lobby to the game so the correct map with the correct options can be loaded.

@DataSigh It’s a shooter type game like a TPS or FPS (player choice). Rounds last 10-20 minutes depending on how many kills each player/team accumulates or how many times a goal is reached. and the game supports a multitude of combat modes such as the following:

  • Free For All
  • Team Deathmatch (2 & 4 team)
  • King of the Hill (2 & 4 team)
  • Last Person Standing (FFA Only)
  • Infection (2 & 4 team)(Get everyone on your team to win)
  • Capture the Flag (2 & 4 team)

CTF has a couple of variations. For 2 teams, it’s the standard CTF. For 4 teams, it’s a little different. In one mode, capturing a flag, any flag, will give a point. In a different mode, players must fight to grab a central flag and bring it to their base to score.

That’s the game that I’m making.

1 Like

I know phantom forces keeps all their maps in RS then loads them in when the game starts. Usually fast pace fps games where rounds last <10 minutes keep everything in the same game place to avoid the long wait times. But if you’re making a battle royal game (fortnite, pubg) with the lobby model (which is what I think you’re trying to do by having a lobby in your game?) with a large open world map then it’s probably better to make it in a separate place.

Also not sure why you have a development place in the main universe. Would be better to make a dev/staging place in different games.

1 Like

Map sizes vary from large to medium to small. I have some maps with terrain and some without terrain. The problem with placing the maps in replicated storage is that the map has ModuleScript files that get loaded when the map loads which has a bunch of information about the map

As for having a development place in the main game, I did it for convenience, but it’s a pain to use because the lobby is loaded first. So I moved it over to The Proving Grounds where I’m actively developing.

The lobby only has the code necessary to run the lobby. The game runner has all the code.