Breath of the Wild has renewed my hope that ROBLOX improves the way terrain looks. Ostensibly, BofW uses some similar system to ROBLOX’s terrain (at least when it was designed) of shaping blobs and painting them with materials and then blending the textures.
These suggestions probably reach a bit, but I don’t think that’s a bad thing. ROBLOX being beautiful by default is a good goal to have, I think.
Consider the following screenshot I found online:
Here is a 30-second mock-up of the scene built with ROBLOX terrain. I will be comparing these two scenes in this post.
Rocks
First, the “rock” material in ROBLOX looks off. In the real world, rocks are brown.
No other materials really fit “rock” better, either:
- Sandstone looks great! but it’s smooth, and not appropriate for mountains
- Mud and ground are smooth
- Slate is unreasonably flat and gra. It’s so smooth it looks polished
Second, there is no large-scale texture. ROBLOX uses the roughness of the geometry (lots of pointy triangles! that don’t look so good up close when you have a screen full of rock) to add some visual interest, but it doesn’t hold up at a distance and it’s not nearly as great as it should be.
Real rocks have large-scale texture, with features larger than single voxels. This would make rock much more visually interesting, up close and at a distance.
BotW packs most of this visual interest into the texture’s normals. ROBLOX could learn something from this, I think.
Vegetation & Detail
To quote the blog post that introduced smooth terrain,
With Smooth Terrain, anyone and everyone on ROBLOX can create beautiful, detailed environments that feel more alive and vibrant than anything you’ve seen on ROBLOX before.
However, right now terrain is limited to being plain textured geometry.
The most obvious way this could be improved is by including vegetation in the materials that call for it (grass!)
I don’t expect lower-end machines / mobile to be able to support highly detailed terrain geometry. However, a lot of players’ computers probably can, and it can easily be a performance toggle.
It’s not realistic to do vegetation in ROBLOX right now because
- it requires too many resources to do level-of-detail
- it requires too many textures
- lighting looks really bad with it because we don’t have control over normals or shinyness
However, it really isn’t all that expensive to simply allocated a few thousand (back of the envelope calculation suggests the above scene uses around ~12k triangles for grass) grass triangles that are packed tightly in the GPU terrain data, especially since they shouldn’t receive true lighting (though they ought to receive shadows).
Terrain materials that support it would breathe a whole lot more life into games that want to use terrain.
Style Variation
There are only a few materials. Since they are fairly rich (and I want them to be richer!) this is reasonable; you only need so many.
However, they make games all look the same, and areas within a game have limited diversity.
Adding a “style” or “variation” brush to terrain would be an excellent way to improve this. Possibly something as simple as a Color3 “tint” on a larger voxel grid, in order to tweak the appearance of different games / moods / areas. This could also satisfy my “rocks should be brown” complaint, and it will let players better control how light/dark their materials are.
This might correspond to how parts have a BrickColor (and soon to be Color3!?) in addition to a Material.
By the way, is merging Part and Terrain materials so that they’re all supported and appear similarly actually happening any time soon?
TL;DR
- Rocks are brown
- Large scale textures for interest afar (and up close)
- Paint the town red (or green or brown or gray or dark or light)
- Grass geometry on grass material