Thanks! It's awesome to know you're designing this for all the right reasons. Getting that true "feel" hinges on accurate simulation of every relevant force, and you seem to have a clear vision of what you want to simulate and a realistic sense of the limitations within which you'll have to work. The description of your Stage 2 wind model doesn't sound too far from a real-time CFD model--I'll be very interested to hear your thoughts and approach to that when you get to it.
If you would knew what a physics engine I'm
really after (another one than
the one I'm currently building), you would start to cry! This sort of a next-
gen physics engine will be way more sophisticated than most of things we see
today in video games. It is the real deal so to speak, simulating objects by
breaking their - material volume - into finite elements simulating real
stress, shear, material properties etc. Hence, real volumetric deformations,
and no matter whether the volume consist of some matter, fluid, or gas. So we
would be able to compute structure deformation/breaking/buckling, fluids,
fluid-structure interaction, gaseous phenomena, etc. All of this would rely on
the same mathematical principles. However, computational requirements will be
very demanding. I think we are approximately one console generation away from
making such kind of physics a reality. But I think we can even have it in part
for the coming next-generation of console like PS4 and XB1 while keeping the
world within bounds. 8 cores and 176GB/s (PS4) is quite a lot of resources!
Esp. the memory bandwidth is the real kicker for making said simulations a
reality, since for such kind of simulations there will be a huge amount of
data that needs to be send to the equation solvers as fast as possible. I
still can't believe that we indeed have 176GB/s on the PS4. Holy shit!
I would pretty much be interested in doing all of the things said above, but
it's hard doing so on all temporal and financial limits I have. And I think
it's very unlikely getting enough bakers to bake such an engine via
kickstarters. What you think? Hence, for the time being, am bounded by rigid
bodies and friends. Which isn't so easy to say either given all the
constrains, but result will come out faster. And so I'm here pimping rigid
body physics to my liking and see how far I can go with it, building some cool
games and making some money to even further improve on the stuff mentioned
above.
As you have clearly recognized, stage 2 requires a fluid simulator, which
leads us straight into CFD. Well, I think I can program a 3d fluid simulator
for games. I think it would work out quite well since for simulating wind we
can use large grid cells (assuming that small objects won't influences the
motion of the wind) which would lessen the computational burden quite a lot.
Stage 2 is actually a preparation step for another stage, stage 3. However,
this is stuff for the Real Deal (seems I have found a name! xD). I wrote; "for
the time being" (last post). Unfortunately, axis-aligned structured meshes
aren't able to approximate curved objects as good as unstructured meshes can.
So the deal is to reformulate the Navier-Stokes equation on unstructured
meshes, which clearly is pretty much advanced stuff and falls right into the
next-gen stuff I was indicating above. This is something I can't do yet,
because I'm pretty much limited in time and money. That's the reason why I'm
doing it in an incremental fashion. And each increment needs to spit out some
games, since otherwise it won't be possible to advance on the engine.
... I originally wanted to develop a bird flight sim for my first project. However, after familiarizing myself with Unity and the way the PhysX engine handles rigid bodies, I felt my limited programming experience would tempt me to rely on writing very basic AOA/drag/lift functions to arrive at the forces I desired. My simulation of wind was going to consist of a few simple "multiplier" variables plugged into those functions, the values of which would change based on the bird's velocity/trajectory versus the local rotation of its lifting planes versus a predetermined global wind direction/magnitude. Kindergarten stuff compared to the realistic wind dynamics you want to achieve... and I knew my basic approach might not produce the most accurate feeling of flight, so I dropped my sights to the BMX sim... so it's easy to see why I'm interested in what you're doing. Keep it up!
That bird flight sim sound pretty interesting. Perhaps you can reignite it
after your BMX stuff is done. Perhaps we can make sort of a deal and you can
use my wind simulator than. :+