Will this map end up causing performance issues? What should I keep in mind?

I’m not really a “builder” so I have to make something over and over until it looks good. Right now, my fear is that when I’m finally done the map, it will cause noticeable issues.

My map is about 1700x1700, with terrain covering that entire area like a floor. There is some more terrain for a large mountain in the corner. The part count will probably be around 12k by the end. There won’t be too many moving parts, but these questions keep popping in my head and I’ve been getting mixed answers:

  • Does this much terrain cause problems?
  • Should I be making unions purely to reduce part count, or only when necessary/logical to do so?
  • What should be the part count limit if I wanted to support mobile? Just PC?
  • Is using the roblox fire/smoke a bad idea? I’ve been using them with lights to make torches
  • If I use the same mesh over and over, does it become less taxing?

What else should I keep in mind when I’m making the map? Right now I’m just always debating about terrain vs parts vs unions vs meshes. I’m not used to working with a large connected map and I’m not sure if this is large enough for this to matter or if its perhaps too large.

2 Likes

1700x1700 with mostly a flat floor shouldn’t cause too much lag. Water is the terrain item that lags the most but it doesn’t sound like you have much water or any at all.

12k parts spread over a 1700x1700 map should be fine. If you cram like 10,000 parts into one area, then it could be a problem. Also, avoid using unions, they’ll lag your game a lot more.

Excessive use of these would cause lag, but it’s hard to say without an image of how many torches you have in the map.

But yeah, #1 thing is try to avoid using unions as much as possible.

5 Likes

I agree with everything in this post.


In addition to this, there was a talk at RDC this year that would definitely interest you (the OP), check it out at the timestamp below:

I think that talk should give you answers to basically all of your questions, though I found some other posts that may interest you:
https://devforum.roblox.com/t/part-count-and-lag/145280/7
https://devforum.roblox.com/t/building-a-massive-map-with-smooth-terrain/147185/8

I generally advise to not use unions but rather MeshParts due to how many polygons the CSG system makes for complex shapes, you can control this better if you 3D model objects yourself.

7 Likes

So if I have overlapping parts, is it better to shrink one by .01 in that dimension to avoid the weird overlap effect than to union the two parts?

1 Like

If you’re referring to z-fighting, that’s more of a visually unappealing thing than an actual thing that makes rendering cost more (unless rendering is trying to calculate what face is shown, but as far as I know that’s not how it works. Please correct me if I’m wrong :stuck_out_tongue:)

If I were you, I’d still fix the z-fighting regardless as best practices for visual design. Unions shouldn’t be used to get around them.

If you need more information, ask or DM me :smiley:

2 Likes

I see, thanks.

I guess the only thing confusing me right now is StreamingEnabled. From the video above it was mentioned quite a few times and I’ve been reading it here and there. However, I’ve also heard bad things about it earlier. From my understanding, it makes the clients remove/add parts of the workspace according to distance to make it easier to render, but I also heard that it causes issues with missing parts. Should I be using SE?

While it’s true that you can’t beat careful hand modeling for having the most control over your parts (both for optimal triangle count and how they look and receive textures), the CSG engine got replaced over the past year and the quality of geometry it’s generating now is worlds better than it was. Night and day difference. I’ve been really impressed by the quality of the meshes that come out of it. Improvements are ongoing, so if you see something you don’t like, let use know!

StreamingEnabled is a great tool if you don’t rely on anything that could be removed for code. Like say you need the game to check the status of a door on the other side of the map, StreamEnabled would remove the door and mess up anything to do with it. This is my limited understanding of StreamingEnabled, if anyone else can expand on it please do so.

It’s a great tool in some instances, but you could get more control with a custom made version.

1 Like

Yeah terrain doesn’t cause too many issues with performance, however Smooth Terrain Water can certainly cause performance issues.

I still say that you should stay away from Unions unless it’s gonna be a large(ish) prop that would require too many bricks, but then again you could just use a mesh…or bricks.

For a large number of Roblox builders, Unions are essential, so I think it’s important to acknowledge how much they have been improved lately (and will continue to). Making quality mesh parts that work correctly requires a lot of specialized knowledge of tools outside of Roblox, and has an appreciable learning curve, so “just use a mesh” realistically isn’t a option for majority of builders. For a lot of relatively simple shapes, unions offer a quick solution too, and allow for many shapes that are simple, yet can’t be made additively with bricks (like a block with a round hole through it, or hemispherical void).

3 Likes