Hey, I am working on a large terrain map (4684 x 6220 studs, estimated 60-70% is going to be full city), and me and my team are now working towards optimization. We’re probably going to have a 30-50k+ part count at the end, right now we’re nearing 17k.
Is StreamingEnabled good for handling large maps like this? (I’ve heard it is, but I’ve also heard some bad stuff/bugs about it)
What ways do you guys go about optimizing your game, or what do you think would work the best in my case? Please list them in order from MOST impactful to LEAST impactful, because all of these optimization tutorials say more or less the same thing like convert unions to meshes, bla bla bla, without really showing any of its impact in a real scenario. Please be in depth.
(I would post this in discussion but I dont have access)
One tip if you’re using terrain is not have unnecessary thickness. Thick terrain causes a lot of lag. The less voxels the better, so remove terrain you can’t see.
Roblox’s generated terrain is, by default, really thick. Try cutting large portions underneath off.
This is also seems like common knowledge, but try making your game as small as it can be without reducing the amount of gameplay you can get out of it.
A plugin I use to create the illusion of extended terrain can be found here:
It’s really really useful.
And an explanation by the creator can be seen here:
Streaming enabled can be useful, but since I’m not an expert in that field I’ll let someone else give you feedback.
I’ve also heard trying to optimize your scripts is a good idea because they can cause lag too, but since I’m also not an expert there I’ll let someone else explain.
The opposite is true. If a terrain cell has an occupancy of 0 or 1, it will be slightly more optimized than terrain that is thin/has intermediate thickness. This is per-terrain cell, and only affects memory though.
Streaming is great for large maps with low part density in individual areas, although if you use terrain, you have to keep in mind that roblox loads low-resolution versions of terrain past the StreamingTargetRadius, so make sure you only use terrain in realistic geological formations, and don’t use it as part of a building, or else you’ll end up with floating islands visible in the background when that area isn’t fully streamed in.
StreamingEnabled doesn’t solve everything though; it can make it a bit harder to script around (not impossible; my game does it), but it’s one of the better things you can do for client-side performance if your build is large. The tradeoff is server-side performance.
People rarely complain about client-side lag, although I do get issues with server lag. Not sure how much of the server lag is due to StreamingEnabled, and how much is due to other things.