As a Roblox developer, it is currently too difficult to fully optimize a game due to a lack of being able to hide specific faces from rendering. This is a huge problem because assuming that each side on a part has around 2 triangles, that’s 12 triangles per part, and due to the limitations of most mobile phones & computers without graphics cards, that’s a huge performance hit.
Allowing us to Cull sides of Parts, Unions, and MeshParts that no one will ever see would greatly improve optimization by cutting a 2k part’s scene with 24,000 triangles, down to only 8,000; assuming the backside, top, & bottom of the part are culled.
While frustum culling needs to be added in, the thing I’m talking about is being able to hide or show a specific face on a part. If you’ve ever been outside the map on a game, especially one by Valve, a majority of the time, the backface is completely unrendered on the “Brush.”
Currently, the only way I know to achieve this effect is by using textures on a completely transparent part, and I’m not sure if it serves the same purpose as backface culling.
Textures on a transparent part is definitely not an optimization in comparison to just showing the whole part. That was brought up as an example of really bad performance during zeuxcg’s talk at RDC EU, if I remember correctly. That and partly transparent parts.
I think you might be a bit too focused on the triangle count of your level. Triangle count is not a perfect measurement for rendering performance, and I’m not sure the count you see in your stats is what is actually rendered behind the scenes in Roblox.