SUMMARY: Think a Meshpart but instead it’s terrain.
I know a lot of devs want terrain changes, but that’s because it’s necessary, and as a roblox developer, it is currently just too hard to use terrain in live games. A lot of people want terrain materials to be able to be parts, but honestly I think it’s just time for a terrain overhaul to just redesign the whole thing.
At the moment, Terrain is managed on a per - level basis. Each roblox world has a terrain object that remains, for the most part, static. Unfortunately, it takes a lot of experience with studio and roblox to be able to make terrain objects dynamic - not to mention processing power. Here’s what I think we should do:
-
Make the terrain a dynamic instance
- Creating multiple terrain objects in workspace would be a very useful feature.
- Potentially applying physics to small chunks of terrain would be a neat plus
- Voxels would operate in an environment relative to the bounding box of the terrain
- Terrain colors operate on a per - instance basis, so red and yellow sand could be in the same level at the same time
- Resolution defined by developer (I wouldn’t expect this to be able to change during run time, though that would be great)
- LOD would operate based on the center point of the terrain, or if it’s large enough then use the method currently used
-
Better terrain tools
- Sculpt tools, like we have now
- Vertex grabbing
- Built - in part to terrain conversion
- LOD Customization
- Tools to set water level & create ponds
- Terrain Isolation mode would be nice
I think a lot of these features would really change a lot of developer’s minds about terrain and help them to turn to it as a resource to creating their games. I like it a lot but I don’t feel like it lives up to its potential on the platform, especially considering that meshparts and CSG don’t have a perfect collision fidelity at the moment. Ideally large terrains would still be viable and could act the same way they do now, though there would be terrain “regions” (let’s call them blocks not to get confused) that could be spawned and used elsewhere.
Edit: I forgot some stuff:
- Terrain brushes to brush patterns and things of that nature onto the terrain (Ideally these could be programmed to paint on materials as well)
- Heightmap importer
Edit: I figured I would leave my current advice on how to create good terrain in this post just so devs can use it:
- Make it in Blender or outside roblox
- Import it to roblox as obj using the old method (we want wedges, not MeshParts)
- Convert those wedges to terrain
It’ll be paper thin and idk how to fill in the middle but it works pretty much so I’d recommend it.