*sigh* Alright I guess I didn't publish that info very well.
Finished ResearchStatic shapes must be convex, or collision will be glitchy and not work for vehicles, projectiles, raycasts, etc.
Player objects might work ok. But that's it.
Static shapes must be scaled down by 0.5, or there is some probablility that vehicles or small/fast objects can glitch through them.
Because the static-shapes must be scaled down, they must NOT have a visible mesh attached to them. (The visibile portion will pop-in/pop-out when a camera turns it's view away.)
You must not force a client to keep track of a large number of static shapes.
For my computer, the limit is about 2000 before performance drops noticeably.
Judging by my frame counter, TSStatic uses about half as many resources as Static Shapes, and it interacts better with the camera, blocking the camera from moving through it.
For visual aspects, Static Shapes can do some fancy visual tricks, such as turning transparent while shaders are on, or playing animations.
For best performance in making a StaticShape map, I would keep the number of collision shapes down below 2000, and I would use as few staticshapes for the visual aspect of the map. Maybe just 1 or 2.
Current Research ProjectThe current project I'm doing involves making a terrain generating tool using modTer bricks.
But I plan to expand upon this project. Instead of using modTer:
I will use unattached TSStatic for collision, so that I can get perfect collision. I will use selective ghosting to force clients not to ghost TSStatic that is too far away from any moving objects to matter.
I will use hackneyed bricks w/no collision to display the terrain's shape. So far as I can tell, bricks are much more efficient visually, than static-shapes.
Cool thingA cool thing I did yesterday. I needed to plant two modTer bricks in the same place. Normally this causes one of the modTer to fail to plant, and thus not have collision.
To avoid that, I modified the planting function I'm using to convert the brick to a 2x2hNULL brick just before planting, and then convert it back to modTer after planting.
A 2x2hNull brick is just a 2x2 half brick with no brick grid collision. It will never throw an overlap error when planted, but will always throw a float error. I can ignore the float error.
I originally use this method to make a
"Plant Anywhere" script. While it did work, allowing me to plant bricks anywhere, this script introduced a few problems. Problems such as accidentally planting extra bricks inside of each other, or forcing me to disable chain-kills so that killing a brick didn't destroy the entire building.