Help with large-scale map border & Reducing part-count

Hello, I have quite a large map for my game. (Approx. 2500 x 2002), with currently a part count of 80K. I’ve found that this, combined with a lot of heavy/complex scripting can cause lag for anyone not on at least a mid-end pc.

About 20K of those parts come from trees, as we have the map surrounded in forest (Only way we could think of to elegantly cut off the map without just a wall of terrain. I want to get rid of these trees, so I’d love for some suggestions on how else to enclose the map.

(Trees highlighted in pic to show the pure amount)

1 Like

Before you try that, have you tried optimizing the tree model? How many parts does just one tree use?

You could also try spacing out the trees so there isn’t so many in the same area. Alternatively, you could just use a flat image if realism isn’t your top priority.

Have you tried to add billboard tree images to surround the map? The trees directly at the border could be kept as higher fidelity border details. You can also configure their meshes’ CollisionFidelity to “Hull” for best physics performance and RenderFidelity to “Performance” or “Automatic” for better render performance. To increase rendering performance even more, you can turn on SteamingEnabled to add automatic LOD for the trees’ meshes. The LOD are automatically generated when you set the RenderFidelity to the ones mentioned earlier.

1 Like

I may try the billboard images later, but im not sure how it’ll look, as we’re aiming for a pretty high-quality realistic feel, atleast with the map.

We use StreamingEnabled, the trees are only 2 mesh parts and have the simplest collisions possible, and any trees that the player cannot physically touch (up a hill, outside the map e.t.c) have collisions disabled.

But still, I feel the part count is greatly hindering performance, and the trees are the only thing with a lot of parts now, except from main buildings that need to be detailed. All background/scenery buildings that don’t have interiors are like 4-5 meshparts.

You could replace the furthest untouchable trees with billboard trees. Many realistic games like the ones by Activision actually do use this. Another game with good graphics is Genshin Impact which also does use this. The key is in the image used in the billboard. For realism, slap a photo of a tree with a transparent background. For other art styles, you could experiment which ones look the best. Higher resolution image the closer it is to the detailed borders, and lower resolution images for ones further away from the detailed border.

1 Like

How would this work, like a part with a billboardgui and an image of a tree inside of that, or a transparent part with a decal on it?

Also, with either way i’d still need one part and one GUI, which doesn’t really make much of a difference from 2 parts per tree, I feel like it would be a pretty negligible difference

The problem is in the triangle count and overdraw. Roblox skips rendering parts that have a transparency of 1. The worst value to set transparency to is between 0 and 1, since the game doesn’t do occlusion culling and has to render the things behind it, wasting GPU power. Here’s how it goes; transparency of 1 = best performance, 0 = mid, and between them (0.3, 0.8, etc) are the worst.

So, billboarding works the best since it always faces the camera. You should also avoid parts with transparency between 0 and 1.

Few ideas:

  1. Use illusions, instead of let’s say 3 small trees you can make 1 bigger tree and a bush or smth like to make it seem bigger and more denser

  2. Disable collisions, querries and aerodynamics on each tree part, this may help reduce your performance problem

  3. Consider using terrain, sometimes making hills is good idea, it also adds realism to your game

  4. Optimize scripts, sometimes you can implement tricks to reduce a lot of memory usage and network bandwidth

  5. Reduce triangle count for each tree in blender if possible

If the trees are 500+ studs away, make them a giant stretched image across the border. This should be able to combat the problem of too many triangles.


megaimage