The ultimate optimization guide for builders(WIP)

Untitled-3

(Note: The guide is currently WIP and will take a while to finish)

CHAPTER 1:

  • Topology
  • Collisions
  • Level of detail

CHAPTER 2:

In this guide I will be going over some tips and brief explanations about what I think is a really optimal workflow for building. I will also be using blender sometimes for references.
(Note: This guide is based on my personal building experiences over the course of 4 years, however I may be susceptible to err)

Topology

This refers to the geometrical shape of the object and how vertices are interrelated. To explain in simple terms vertices are these tiny points highlighted(image 1.1). Vertices join together to form “triangles” to create a mesh(image 1.2)

The more the no. of triangles(also referred to as tris count) an object has, the more calculations it will be required by the computer to render that object. Hence more triangles = more lag. So its always a good idea to model your objects in a way that ensures a low tris count for best optimization.
Generally objects that are “blocky” tend to have lower tris count as compared to those with curves, such as a cylinder or sphere. You can check how many triangles a certain object has in blender(image 1.3) for this example I am using a cylinder(image 1.4). As you can see in the top left corner it currently has 124 Tris(image 1.5). Which is a lot for a basic shape, comparatively a cube has only 12 tris(10 times lower then the cylinder).

Now I will demonstrate how we can optimize this cylindrical object in 2 different scenarios.

First Scenario:
The cylinder needs to placed in small spaces such as a nut or bolt, in such cases we can simple use shapes that vaguely resemble a cylinder i.e. an octagon(image 1.6). From a distance the players would not be able to notice a difference since the object is too small.

image

Second Scenario:
The cylinder is a large object such as a water tank or a pipe, we can adjust the tris count after adding a cylinder in blender(image 1.7) and adjust the no. of vertices on the bottom left corner(image 1.8). By default its 32 vertices but we can lower or increase the no. depending on how large our object is, for a pipe we can safely lower it down to 12 vertices. However this presents a new problem, our object looks very blocky and unpleasant to eye(image 1.9)

We can fix this issue by right clicking the object and set it to “shade smooth” (image 1.10). Then go to object data property → Normals → check Auto smooth(image 1.11). Now our cylinder looks smooth and pleasant to look at(image 1.12). Without the smooth shade technique we could make a smooth cylinder by increasing its vertices to a considerably high amount but it would probably have more or less 500 tris count(for reference the cylinder in Roblox studio is 94 tris which should be good for a large pipe). Anyways its important to keep in mind to use different variations of tris count depending on how big or small the object size is.

Collisions


These determine how different objects in a build interact with each other such as a player walking on a road, without collisions the player will fall through the road as if like a ghost passing through walls. It is important to optimize the collision geometry of your object, similar to topology the more complex a collision geometry of an object is, the longer it will take for the computer to calculate it. Hence the simpler your collision geometry is the lesser the lag.(Note: I am using the term “collision geometry” just to make things easier to understand, it refers to the volume in 3d space occupied by the collisions)
To analyze the collision geometry of your object you will first need this plugin:
Mesh Optimization Tools - Roblox
For demonstration we will analyze collision geometry of a hollow cylinder(image 2.1). After switching on the plugin you will notice the mesh turns into a rainbow-like texture with tons of squares on it(image 2.2). The no. of squares shows the complexity of the collision geometry(more squares = more calculation).

If you go to the mesh properties and scroll down to “CollisionFidelity” this property decides how the engine will render the collisions of the object. It will automatically be set to default mode(image 2.3),
The image below(image 2.4) shows how each of the options affects the collision geometry of our object:

For most cases the box and hull setting would suffice and as they are the easiest to calculate for your computer, however in places where you get collision issues such as player not being able to pass through an area or being blocked by something invisible etc you can set the collisionFidelity to precise. In some rare cases the default setting ends up being more optimized than the precise one which I will cover later on.

Level of detail

14 Likes

I’d change the title to “The
ultimate optimization guide for modelers.” It’s pretty misleading.

I’d also organize the post better. It’s hard to navigate.

Then bold it on the post or finish the guide completely.

5 Likes

umm no, this guide is heavily wip. the topics after the first one will all be done within studio

3 Likes

ok yeah dats a good idea lol, ty for letting me know

3 Likes

This is looking pretty good. I’d also add somewhere that if you have multiple meshes colliding inside of a model, it’d be best to delete faces that are not visible, as well as leverage normal mapping for detail instead of modeling-in detail (I’m sure you were going to go over this last one eventually).

2 Likes