Hello, maybe this is a dumb question, but could a map this big be replicated on roblox without any big issues? Deducing i would say it could be done with meshes, but roblox unfortunately dont make this option a way to make maps, so basically i would like to know if i could make a map this big on roblox, its just a minimap but i think you can have some ideas, probably i cant but i would like to have an answer of someone more experienced, thanks!
You might be able to separate it into different places, or create a chunk loading system to only load parts near the player, but having the entire map loaded will most likely not work.
Building wise, you could make the entire map made out of mesh terrain, but you won’t be able to make all the terrain be a single mesh because of Roblox limitations.
Like @KdudeDev Said you can split the map though that may not look great if you use terrain, You could also have multiple “Places” in the game. I believe ROBLOX allows devs to use their own loading screens on places within the game though I’m not sure. I’m not really a scripter so I don’t know what I’m talking about sometimes. The only disadvantage to having multiple places is the loading screens. Roblox doesnt handle huge maps with a lot of parts very well sometimes. The three ways you could theoretically recreate it is with huge meshes instead of part based builds (Less useless polygons) , Chunk loading (live terrain isnt great yet) or places. There may be more but idk.
how will this work? I am a scripter, and i was a bit curious about this system.
yea i was thinking not using terrain from roblox, like no offense but they are kinda bad and i cant do exactly what i want to do with it
im not experienced on that but i think you could make like a fog, so you wont see the whole map, and make blocks, everything that is touching that block is gonna appear the rest not, it needs some thinking but thats the way, make like minecraft chunks, 4 2048x2048x2048 blocks i think or something
You can move parts of the map into ReplicatedStorage and it helps with lag. If you really went all out, you could even destroy it, and use remote functions to return parts of the map from ServerStorage based on where they are. Things in ReplicatedStorage will still have some effect, so if you want the best system possible you’d want to do ServerStorage. I’m not sure about how the RemoteFunctions would affect lag however.
When I meant terrain I meant the map itself, not Roblox Terrain. You could use MeshParts up to the max size of 2048x2048x2408, and basically build the map out of a lot of large meshes.
yea sadly i wont be able to do it i think, because i wanted to make something like gta, and add minimap, then i got a great minimap from frederik and it only supports one image, but when i put the image on the minimap the image gets all blurry and i think theres no way to get around since the maximum size of image is 1024 for ui i think
Image sizes are limited, so you’d need to make it multiple images. You could also do a minimap that uses a Camera and follows the player. It would be 3d, so not exactly what you’re looking for, but it’d work.
very sad that roblox cant implement such easy things, just increase the size limit, of course the excuse would say they would need to hack the pentagon to do that
with a localscript correct? (for moving to rep storage)
Yep, that way its local and every player has their own chunks loaded.
would a touched function be ideal? example:
player touches a chunk hitbox,
moves out of range chunks,
the chunk and the surrounding chunks load,
That could work, but touched can be weird, I’d just track the players position and update it based on that.
could you elaborate on this? thanks.
You could do a loop, where you loop through all the chunks, and check what the magnitude of the player and the chunk is
(Player.Character.HumanoidRootPart.Position - Chunk.PrimaryPart.Position).magnitude
--needs to be in () for magnitude to work
--chunks primary part would probably just be the entire chunk, like a hitbox or 1 big part.
Then simple either move them to ReplicatedStorage, or Workspace if the magnitude is lower than a set amount (this amount would be like the render distance)
if (Player.Character.HumanoidRootPart.Position - Chunk.PrimaryPart.Position).magnitude < 100 then
--load chunk into workspace
else
--load chunk into replicated storage
end
--you would replace 100 with whatever your render distance is
And I’d probably use some checks to check if a chunk is already loaded to that instance or not, just to prevent doing more than needed.
Then you’d encase all that in a while true do loop, and add a wait() with whatever time works best. If you have a way to check if its already in workspace/replicatedstorage or not, you can probably do a quick wait.