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?
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.
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.
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.
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
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
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