Built-in LOD & Foliage model support

unions
meshparts
parts
openworld
lod

#1

As a roblox developer, it is currently too hard to make large, free-roam / open-world maps. This is not a problem with the roblox engine itself; any engine would struggle rendering the amount of polygons that roblox renders. The problem is that there are no ways to make up for the large amount of polygons. Developers have no way of making LOD models like every other engine uses. This causes great strains on the roblox render engine, and it’ll kill some graphics cards in no time. I think roblox should add built-in LOD support that works in studio and in the client. This way players with mediocre computers can both develop and play large, optimized games.

Here’s how I think roblox could go about doing this:
Because bricks are, by nature, incapable of being optimized any better without a human brain deciding what needs to be taken out, it would be a smart move to allow players to create their own LOD models. This could be done by adding a new instance called an LOD Modifier. the LOD modifier would contain more than one object value, and an integer value. The object values would point to the default model & LOD models in ReplecatedFirst, or somewhere that they’re not being rendered. (Perhaps the object itself could prevent the object values from being rendered, despite whether or not they’re in workspace.) The integer value would define the distance threshold that had to be met any time the object would jump another LOD level.

I think this would help developers a LOT at optimizing their games, especially for groups that have a large roleplay city for their group members. It would also help developers make their games more interactive because less processing power would be spent on graphics, so more could be spent on the game itself.

Optimization is what makes the videogame world spin. I think it’s very necessary that roblox devs get more options when it comes to determining how the game runs, and what kind of aspects of the game will require more / less processing power. Thank you,
-bigcrazycarboy

EDIT: I forgot to add in a vegetation section lol
I think vegetation should have its own LOD settings that can view the category as a whole. Making interactive, realistic worlds is hard to do when there is little to no volumetric foliage. I think vegetation should be handled by directing an LOD object at a folder, and checking a “For all children” bool. This would iterate through all the children of the folder (the, for instance, trees) and apply the LOD settings to all of them. This way, roblox devs can make dense forests, and beautiful scenery in large levels.

Example of dense forests that could use some LOD. It wouldn’t be a good idea to put that scene in a game right now…


#2

I have used scripts to simulate LOD and was able to have maps with extreme amounts of trees, building interiors, etc. fairly well. However, it takes a bit of setup and has its share of limitations (including speed) compared to a built in alternative.