Improved performance for GeometryService CSG APIs

I get the following error when I try to use UnionAsync, SubtractAsync or IntersectAsync within the Command Bar: New API is not enabled for plugin on publishing use yet

  1. What are the limitations preventing the use of these APIs?
  2. When will these APIs be available?
1 Like
  1. What are the limitations preventing the use of these APIs?
  2. When will these APIs be available?

Hey @AlreadyPro,
We really want to enable this as soon as possible, It’s causing us to have to unwind some historical behavior with the Studio APIs and that is taking a bit longer than expected. Honestly the best timeline I can give you for this is Soon ™.

Will the soon to release occlusion culling count as it being “destroyed” if completely culled out?

Hey @DabidarZ
Occlusion culling refers to Rendering resources. Basically: don’t render stuff that’s not visible. This will reduce load on the GPU but. It will not affect the amount of data that is actually in the game. Think about it this way: You still want an object to move and respond to physics even if it’s behind a wall

~BelgianBikeGuy

4 Likes

@PeZsmistic
Thanks for bringing that up.

It’s something we really want to enable but there are underlying issues that need to be solved first: Trust and safety (moderation), permissions and IP (who owns the published thing and who can modify it), economy and so forth. Creating things ephemerally allows us to sidestep some of these issues but as we work through them, we’re hopeful we’ll be able to enable this.

~BelgianBikeGuy

1 Like

When I use SubtractAsync, both parts have the same position. Shouldn’t their position be at the COM? How can I detect which part is higher than the other?

I see it the most in Project Flight, a game where you typically go 200 - 300 kts.


And the developers have an issue with it and have to render cockpits separately and it results in poor quality cockpits.

3 Likes

Are you sure this is to do with speed, and it not being due to how far away the object is from the world origin? If it’s the latter, then that’s an engine limitation due to floating point precision that gets worse the further objects travel from (0,0,0).

3 Likes

This is just the result of how floating point numbers work, every single game engine has this. The only solution would be to teleport the player back to 0 on the X and Z axis every time a high distance is reached.

1 Like

Hey @Lil_devboy123
Is there a way you could give us a minimal reproducible example?
Is everything welded together in this case or do they use other constraints to keep everything in place?
I notice you’re not play testing anything so this is visible both in studio and in experience?
Feel free to pass on anything to help us investigate
~BelgianBikeGuy

It might be better to teleport players to the opposite side of the map rather than the origin.

1 Like

Is the geometry service method parallel safe?