Game Optimization

In terms of optimizing builds, is it better to do high poly meshes (so about 5000 tris per mesh with a Roblox material) or low poly meshes with a texture (about 700 tris with a 1024 x 1024 texture)?

edit: for context I plan to have about 100 of these meshes in game (they’re wall segments for an exterior palace wall)

2 Likes

In my opinion, I would say a textured low poly mesh would be less laggy. Textures don’t usually cause lag unless there are too many of them.

2 Likes

what if there are 100 meshes with the same texture?

1 Like

Actually tbh, I might change my answer. Roblox materials dont directly cause lag,

Also, are you using PBR or nah?

1 Like

ideally just a diffuse map + normal map with no transparency if i go the texture route

1 Like

Just make a MaterialVariant and use that on all of the meshes. And I would try to stay clear of the “Texture” object, you quickly end up putting too many and having like 6k of those alone will drop performance

Use the texture object for things that cant easily be put into a regular material, dirt blending, leaves on the ground, foliage- but SurfaceAppearance is still more performant for the things I just mentioned

2 Likes

If optimization is your main concern then go for 700 tris with 1024x1024 textures.

However when it comes to optimization, other information about your builds matter too! Do you use the same textures? Do you have lots of seperated meshes? How many texture maps are you using? Are the models close to each others? And so on. In your case, heard you mentioned “100 meshes in the game”, this can cause lags for mid to low end devices for sure because of a thing call “Draw Call”. To keep things short, a draw call is a call from the CPU to tell the GPU what to render on the clients’ screen. Now, each of the seperated meshes, different textures, particles effects, anything that needs to be rendered on the clients’ screen will require a draw call. Each call will delay the processing power of the CPU (how much delay in processing power depends on the specs of that CPU) and too much delay for the CPU to handle will definitely cause lag for GPU rendering because the GPU needs the information from CPU to be able to render (that’s why when your device hardware is lagging you see everything freeze like a static picture because the GPU doesn’t know what to render next when the CPU is not telling the GPU what to render). So keep your mind on that concept. Now, textures can also cause lag base on the size and you guessed it, draw calls. Roblox textures are very optimized and doesn’t cause concerning lags but they are very ugly so keep your mind on that. I hope this helps and I know this is long read but I hope you got what you want. Have a good day you beautiful people.

Thanks! The amount of detail is definitely appreciated.

I’m working on a palace loosely inspired by the Palace of Versailles. It really is quite big featuring a ballroom, throne room, chapel, art gallery, guest quarters and a theatre lobby all in real space with teleports to the individual bedrooms and the actual theatre.

I plan on loading the interiors dynamically based on the player’s location i.e. which room the player is in.

I’m really happy the low poly wall segments are better for performance as they also worked better stylistically. (screenshot linked below) The exterior walls are split into segments to facilitate not having to load the entire thing at once but I am considering doing larger segments so instead of 100 meshes we could do like 30 with surface appearance. (Diffuse and normal maps) I think this will help with the Draw Calls you mentioned.

I plan on limiting the number of different meshes and images as much as possible so a lot of furniture, walls and lighting fixtures will be repeated throughout the game. Ideally, we won’t be crossing 1000 parts/meshparts total.

Screenshot_5320

Textures only load once. So that will be fine