Learning what actually cause game performance issues

Okay, so I’m developing a game that I’m finally following through on. But I want to know more in-depth about what can actually cause a game’s performance to suffer.
Before I start, I do want to point out that I know(And you can correct me if I’m wrong)

  • Large part count obviously causes performance issue.
  • Anchored any parts that are not supposed to be moving.
  • Optimized your scripts
  • Don’t rely on Unions.
    So what are any other methods or ways to improve your game’s performance?

If you want in depth definitely check out the microprofiler tool


Ill try to list some though I may be incorrect on some :stuck_out_tongue:

  • Large mass of parts in one area being rendered
  • Changing properties/rendering things such as material/color/transparency increase lag.
  • Objects that are transparent between 1 and 0 (Ex: 0.9, 0.99, 0.01, 0.05) cause more stress though might not be that noticable :man_shrugging:
  • Meshes/any unions that contain difficult rendering problems/collisions (If you’re using the default collision fidelity thing) increase lag.
  • Collisions on unnecessary objects (Depends)
  • Memory leaks due to scripts and connections that never get disconnected and keep stacking.
  • Server sided calculations (Dont do tweens on server unless its super necessary. If you need to, use TweenServiceV2)
  • A massive amount of cloning/instancing.new in a short span of time.
  • An abundant amount of Heartbeat/Renderstepped in unnecessary spots.
  • A massive amount of terrarin/land with parts. (Especially noticeable the more you go away from the 0,0,0 origin)
  • Textures on sides of objects that are never seen. (Ex: Dirt texture below path that nobody will see below)
  • Terribly unoptimized code/deprecated things.
  • The use of welds/unanchored bricks in a massive amount.
    There are much more but thats the jist of it.

Besides the great list above, here’s a golden rule for any world builder/asset creator:

Instancing is your friend! Reuse textures, meshes, parts, and generally all assets as much as you can so the game only has to load it in once and instance it around the workspace. This saves on performance, time, and money.


That’s actually really smart! I used to do that with sounds & stopped for some reason. But I’m sure I can benefit from it!

I really like this list!
With meshes with no collision, I make sure to change it to “box” collision. And turn CanCollide off.
But I really like this!

Question about the second point. Can I get away with have uneeded or unnoticeable parts with the plastic and/or smooth material and the base colors?