How to make a huge, detailed and still optimizated map

Hey everyone! I’m currently working on a game that is open world.

I tried to make everything very detailed, to make a very immersive game, but I was also trying to keep the game optimized at the same time, so there’s what I did:

  • The least amount of Textures/Decals were used
  • All objects that the player cant reach have the collision disabled
  • Props have the collision turned off or set to the box RenderFidelity
  • Streaming mode is enabled

But still, the game is reaching 800 client memory usage, which really let me concerned, because that’s a huge project, and I haven’t even started scripting. I’m 100% sure that the main reason of this is the high number of trees:

I bet that there’s more than 200 tree models only in that region. And that’s really bad because that area corresponds to only 10% of the map:

Anyway, I’m here to ask for help on how could I handle to keep my game detailed and immersive, but at the same time letting people play it properly. Any tip on how could I reduce the number of models, but still make the landscape looks nice would be really appreciated!

Sorry for any English mistakes, and thank you so much for your time!

2 Likes

Terrain can take up large amounts of memory. Have you tried optimizing your terrain (making it exactly 4 studs thick)? This makes it much more performant than keeping it very thin or very thick.

You can create code to stop rendering trees if they’re too far away. You can also turn collisions off trees if the tree collisions aren’t important.

Although, there’s no need to stress about 800mb usage. That’s quite normal. Depending on your device, Roblox will use more or less memory. For example, if you’re running on a PC, Roblox will use more memory than if you’re running on a mobile phone.

5 Likes

As @VegetationBush pointed out decreasing terrain will help, especially any water terrain to a few studs thick.

With the amount of trees, I would turn off CastShadow on any tree after a certain distance (scripted, unless they are in the far distance and won’t be examined closely then you can just disable the shadows manually).

You can also take a look at this link in my reply to this post, it has a few other things you can do to help improve performance:

1 Like

Using the same tree models should drastically reduce the amount of memory you use (if you’re not already doing this).

Have you tried tweaking the StreamingEnabled settings?

Also try your game on a low performance device and see if there is actually a performance issue.

1 Like

Yeah, I tested it on my trashy phone and it worked well, even better after I reduces a little bit of the model variation.

1 Like

You shouldn’t be worried then.

Keep building larger and larger, and periodically check if the performance is still okay.

1 Like

There are a few things you can try to optimize your map and reduce the memory usage:

  1. Reduce the number of trees: You can try using tree models with fewer polygons or using texture-based trees instead of mesh-based trees.
  2. Use texture atlases: Combine multiple textures into a single texture, which can reduce the number of draw calls and improve performance.
  3. Use Level of Detail (LOD) models: LOD models are lower poly versions of your models that are displayed when the model is far away from the camera. This can help reduce the number of polygons being rendered and improve performance.
  4. Use Occlusion Culling: Occlusion culling can improve performance by not rendering objects that are occluded by other objects and not visible to the camera.

I hope these tips help! Let me know if you have any other questions.

2 Likes