Does it make sense?

In my game, the map should be quite large, and all sorts of objects should be located on it. to improve the performance of the game, I came up with this:

for example, trees. they have two options: a tree as a “model”, and a tree as a “decal”. At a certain distance from the player, the tree becomes transparent, and a “decal” with the image of this tree appears instead

The question is, does it make sense? There should be quite a few trees and other small objects on the map. will this method benefit a bit of performance?

4 Likes

It makes sense for very low end devices, but it is noticeable, too.
I’d suggest to use meshes for the objects and set their RenderFidelty to Performance or something like that. You should notice that when your camera is far enough from the mesh it should render with less polygons or at least reduce its quality to enhance
performance. Correct me if I’m wrong.

Hope that helps, I haven’t used Studio in a while.

4 Likes

This is possible and you’re in luck because Roblox already does it for you.
Make sure Streaming Enabled is turned on your trees are models and set the LevelOfDetail to StreamingMesh.
Here is more info about the Model Level of Detail

5 Likes

Maybe just make it into a mesh and let roblox do the work for you with RenderFidelity

2 Likes

Try a billboard in the distance and fade them into objects when they get closer. If you do it right it’s hard to tell that’s what’s happening. That’s how professional games do it anyways.

2 Likes

As far as I remember a Roblox admin pointed out that using decals in quantity is better than using billboardgui in quantity

1 Like

As some people already mention usage of meshes, streaming enabled.
That would be probably way to go.

You can probably find a tutorial on distance based tree rendering like in big games outside roblox. Really depends what game are you making exactly, if something ultra realistic then yes, optimization is a really big thing to look at.

1 Like

If your game doesn’t support streaming, then there is another way, see you can create LOD system on your own, you can tag very small objects that will be almost impossible to be seen from afar and unload/load them when you need, remember to not loop every each object, but rather create some sort of spatial hashing and check grid in radius from player

2 Likes

Ya that’s more of a Unity thing… LOD may be a better choice.

2 Likes

I once worked on a game that used several tens of thousands! billboard guis. I’ve been going through huge performance issues. then, I just replaced the billboard gui with decal, and then the performance increased several dozen times

this is logical, because the billboard gui is a whole interface that needs to be rendered and processed, and decal is just a picture

2 Likes

I used to use a slightly crooked loading system for small objects

at the start of the game, the client created invisible part chunks, just like in minecraft. after that, each small object/decoration was searched for the nearest chunk, and “joined” into it

during the game, when the client exits/enters from one chunk to another, all objects “attached” to this chunk were hidden/they were shown

(several chunks were uploaded at a time)

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.