Extreme Performance Hit When Using Smooth Terrain

Does this sound right?

Regardless of graphical settings; a place, where I have isolated the smooth terrain to be the cause, gets a framerate on most machines of 10fps to ~25fps. Even fairly powerful machines struggle to maintain 30fps, though with occasional jumps to 40fps.

If, in-game, I enter game.Workspace.Terrain:Clear() into the server console within seconds everyone has a solid 60fps.

As for my use of the terrain, it is essentially a thin shell built atop water, though with quite a lot of empty space between the water and the other terrain. Terrain Views - Album on Imgur

Initially I thought it may be the large body of water, but if you clear all terrain apart from the water you will get, counter-intuitively, a solid 60fps. Whereas, if you clear only the water, the issue remains.

Is this normal of smooth terrain use?

It might be useful for admins to elaborate a bit, which place is causing the issue? (Include link/repro file (in confidential tags))

Got some specs?

It tends to happen with Smooth Terrain water, terrain without water doesn’t really impact framerate.

This is from personal experience of experimenting with the terrain, and why I avoid using too much terrain water at the moment.

[hide] Place : Anquietas Videum - Roblox [/hide]

Of course, there could always be other issues at play. And the terrain is just a bridge too far. It is a massive place after all. Tens of thousands of instances of parts and meshes alone.

And I’m in the bracket of fairly powerful machines
i7 920 @ 2.66GHz
GTX 760
8GB Memory @ 1337MHz
I get framerate issues. As for other people, I haven’t taken a hardware survey.

A bit off-topic, but the hide tags hides stuff from guests, not members. Use [ confidential ] [ / confidential ]

Yes, it told me that when I selected it. I don’t mind people here finding the place.

There’s no need to hide it then, because only RBXDev members can see these forums.

Will investigate.

So this is what I observe:

The actual performance issue is not with smooth terrain - it’s actually a mix of a heavy collection of CSG parts and a Workspace.Feature.Animate.Mesh.Script (there are four of these).

When the mesh is being scaled (on the server, which replicates to the client), due to the mechanics of the current CSG rendering system which we’re planning to revisit we do some heavy operations on the client every time you change that. So you see fast frames followed by really slow frames, resulting in choppy framerate and bad experience.

Running workspace.Terrain:Clear() on the server indeed fixes the problem! The reason it does that is because it takes an exceptionally long time to complete due to a scalability issue of our broadphase structure with big complicated parts (described elsewhere on this forum…). After it does complete you can notice several Timeout errors in the server console - not only does this script terminate, but all animate scripts get killed as well.

As a result you don’t see the performance issue after you clear terrain…

As far as I can tell, removing 4 Animate scripts from the game results in smooth 60 FPS on my computer on max quality. Also on my computer most of the rendering load in this level is actually on CSG parts, especially on low quality (because there’s a lot of them in the tight space).

1 Like

Workspace.Feature.Animate.Mesh.Script, I would never have suspected those. I’d completely forgot they were even animated. (I guess that’s an issue with building a place with 8 long month gaps over 4 years).

Thanks for the help. You saved me from butchering the place.