When using Live CSG I’m finding it extremely unreliable and impracticable to use in any production level game, or at least on a reasonable scale. Currently I’m experiencing two issues:
- It can take up to a minute in complex unions for SubtractAsync() to finish, while on standard shapes it will only take under a second.
The bug happens in game and in studio after SubtractAsync() is called, it typically only happens / increases in severity in a stable ratio with the complexity of the shape its cutting.
I started noticing this happen today, however I only started using Live CSG yesterday and I only tried to cut a shape that wasn’t a cube / cuboid today.
–Video of expected result when cutting a regular object:
https://gyazo.com/b19a8abf6b65b000d2af509b4ab9a54e
–Video of what happens when we start to cut more complex objects:
https://gyazo.com/c72dcd784a2d04cd37e44b4d58bdb49e
The gif ended before the subtraction even finished, however ‘Made cut’ was printed around 4 seconds after the gif cut out. Giving a total of about 10 seconds for the cut to be made. And in my opinion, the object was relatively simple. I also tested with a union made out of 5 spheres, this took over a minute to cut.
Replication:
Create a fairly complex union - doesn’t even have to be that complex.
Call subtract async on it - in my testing I was subtracting a regular cuboid from the main shape in order to make a cut effect.
I can provide a place repo if required, however not willing to publicly share.
- Unions corrupting (not being visible) is all too common, especially when playing in game and not testing in studio, can you honestly expect a player to understand that half of the block just ‘Vanished?’
This bug happens mainly in game, however sometimes in studio but when subtract async is called it has a very high fail rate sometimes completely removing both halves of the object from the workspace.
I can provide a place repo if needed, however its pretty self explanatory and has been encountered before.