- Yes, we’re always looking to highlight experiences using our features in new, innovative ways! Please share any you really enjoy playing
- No, as of now that isn’t possible. It seems like you’re trying to achieve local air pressures, is that correct? Tell us more about what you’d like to do!
- We’re always looking for bug reports! We hope to provide the most accurate, performant model possible so please reach out to me if you ever find any bug
Thank you for sharing this, we’re actively taking a look!
We’ll get back to you on this
This isn’t planned as of now, but I like the idea! We’ll see what’s possible
I’m sorry to hear that
I would love to hear more about what we could improve to restore your faith in our Physics system - we’re always looking to improve it for all creators and all experiences!
The global toggle will exist for a while, don’t worry
I recommend you try this place file with Aero enabled and let us know if you do notice any performance issues! If so, feel free to reach out to me via a DM and we can try to help!
I’m mostly curious, how’s the performance of this?
Is simulating 1000 falling parts slower now or are the aerodynamics very cheap to compute?
Our team worked hard to make the performance of aerodynamics as good as possible, but aero simulation is not completely free. We’ve measured performance using different use cases and focused a lot on low-end devices in order to get our system runnable there.
Your described case is the worst case scenario for aero as other systems are not stressed when there’re no collisions and no complex rendering is involved. So in isolation, without any collisions, 1000 balls falling endlessly would see a ~1.2x effect in the time physics takes of that frame. But in any realistic scenario where simulation is more complex, aero costs start to be south of 5% of the whole frame time.
We don’t plan on releasing the exact windsock source code as it is fairly embedded in our code base and would likely not be instructive as an exemplar. However, we do plan on releasing a developer-focused aerodynamics tutorial with demos that should help fulfill this need! Please look forward to it!
I think they mean the speed of sound propagation, like the time sounds take to travel to reach your ear.
More built in sounds is always nice isn’t something I was expecting but certainly nice that we’ll have nice high quality wind sounds in our games!
Which part? The delay or the relative velocity?
I think local pressure and wind should be two separate things for maximum control and they, should be controlled via an instance that would be placed under a part(or even meshes and unions if the calculations aren’t too heavy) that would smoothly change air pressure or wind depending on a Boolean, there should be a smoothing radius that would be a property of the object and they should be additive and allow negative pressures to allow subtracting pressure from areas(it would be clamped to > 0 for obvious reasons).
Using parts(or meshes and unions) would allow easy visualisation of the volume that they effect
and the smoothing radius would allow a smooth transition between pressures and wind speeds.
Here’s a place file which you can use to run a number of performance experiments with aerodynamics enabled:
- Change number of bodies spawned by changing
Value
property ofworkspace/CreateBench/NumObjects
- Change what kind of object you want to clone by pointing to it in
workspace/CreateBench/ObjectToCreate
. In the place file we’re providing:-
ReplicatedStorage/Ball
to showcase performance with endlessly falling balls -
ReplicatedStorage/Confetti
to showcase performance with falling light bodies which generate more lift than drag -
ReplicatedStorage/F15
to showcase performance with falling bodies of F-15. Note that you’ll need to increaseValue
property ofworkspace/CreateBench/SpawnRadius
for it to exclude collisions with each other
-
- Add your own unanchored body to
ReplicatedStorage
and measure performance with your own objects! Note that this example benchmark only supports Parts and MeshParts, it doesn’t support Models. - You can disable aerodynamics by setting workspace property
FluidForces
toDefault
aero_body_fall_test.rbxl (120.6 KB)
That would also be a very cool addition but originally I meant the time it takes for a sound to travel to the listener
My understanding is that you’re suggesting a built in doppler effect based on the relative velocity of the sound emitter and sound listener, is that right?
Thanks for explaining your idea with local pressures - I’ll talk to the team and see what’s possible. I’ll get back to you, give us some time
ohhh, so you’re saying it’d be cool if we provided you the time it takes for sound to travel from the sound emitter to the sound listener?
No im sorry I meant that it would be cool if there was a built in feature which can be toggled per soundemitter which handles the delay of sound playback due to the speed of sound. For example: If a sound is emitted 343 meters away from the client, the sound playback be delayed by 1 second for the client.
By the way, I would have an important question even if it may seem unrelated.
Im planning on making a highly realistic military flight simulator just like the game “DCS” (Digital Combat Simulator). The maps will be atleast 120km x 120km big since its a reasonable size for a flight simulator but that raises 2 major issues which are:
-
The current terrain implementation is way too inefficient for such a big map. Even if you were to use Streaming enabled, you wouldnt be able to edit the game in Studio since it requires an ungodly amount of ram. I have however thought of a way to use EditableMeshes and create my own terrain implementation. Ive done a few successful tests already using a quadtree structured LOD system which resulted in very fast terrain generation and high framerates.
-
The floating point errors are really bad at such a big size, there was a fix for that issue which was showcased during the hackweek in 2019 but has never been implemented sadly. I could make a workaround for this issue but it would be extremely hacky and would be another extremely massive obstacle for my project.
Another major issue that is not related to terrain but rather to replication is that when you have a fast moving plane, the latency from client to client is massive and the plane has extreme visual stutters in its interpolation.
Is there plans to fix or atleast significantly alleviate these issues? And if not I would strongly recommend addressing these issues to allow for more innovative usage of the Aerodynamics!
Ahh gotcha - I’ll relay the request to the right team! thanks for the feedback
- I will relay the feedback on terrain to the right team, thank you!
- is there a link you could provide to the floating point error fix? I’d love to learn more!
- Wrt interpolation issues, do you have a repro file and repro steps + video to show what you’re referring to? We are actively working on our interpolation system and would benefit from concrete examples!
Again, thanks for all the feedback!
I’m super excited about this. Will you release more information about the underlying aerodynamics model? How does it compare to the models used in flight simulators like X-Plane and Microsoft Flight Simulator?
Thanks!