✓ Accepted answer
I don't know how Roblox's rendering system handles everything (though feel free to do your own performance test, I give suggestions below), but I do know the following:
- You can activate the
StreamingEnabled feature and it will definitely handle this for you (in addition to handling your first "gigantic map" efficiently)
- Every part in the workspace must be transmitted to every client - same for most storage spaces except ServerStorage / ServerScriptService. This transmission takes resources, even if the rendering system knows not to try to render them. If your maps aren't in use, put them in there instead.
- I imagine Roblox has an efficient method for determining where parts are. Roblox can automatically stop rendering things far away or even nearby if the FPS is too low.
For performance testing, you can get an approximation of how well a computer is doing by running a loop with only a period wait() in it, like this:
local start = tick()
local n = 0
while tick() - start <= 0.1 do n = n + 1 end
print(n)
Run that code a few times (with a 'wait()' in between), then add the gigantic map (or a lot of bricks/terrain to simulate it), and then run the code again (a few times) and see if there's a noticeable difference. Other possibilities:
- If you're testing locally, you can also View > Stats > Render (and try the others if you like) to see various bits of information
- You can listen for Heartbeat and then calculate your FPS that way. Do it in a world with 2 large maps side by side, then compare it to 2 large maps very far away.
2 comments
Both* sorry for the typo.
There is an 'edit' button at the bottom of your questions/answers you can use to fix typos/etc