I lost the majority of my weekend to my cluster invalidation problem, and it wasn’t until I decided to dig into trying to learn how draw call batching worked that an obscure OpenGL thread made me realize that my Humanoids were forcing all relative parts to cluster. ‘Moving parts around without lag’ has always been a feature and major selling point of Roblox, but developers unwittingly sabotaging their games performance due to sparsely documented (if at all) internal systems is a very common occurence. Without seeing the microprofile details or the separate step rates of physics and render, nobody can really say for sure if the hangs are from the collision calculations, cluster invalidation, render latency, or possibly a combination of the three. The clip of the bullets not causing noticeable latency while firing at smooth terrain without any parts around, but then the latency occurring when firing at clustered parts, would suggest there could possibly be a batching problem. My problems revolved around forcing instances into a cluster that was being constantly invalidated by moving parts. I recently learned that it can be rather easy to break the draw batching without realizing it, and there are some hints here that could be happening. I think there’s a combination of factors contributing to the slowdown. The examples do contain a lot of transparent parts and particles that are often the primary offenders of low render step rate from my experiences. The solved hulls are probably part of the problem, but from the few pixels I can see of the performance stats, it looks like cpu and gpu are both stuttering at the same time.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |