v0.6.x Windward
The Windward update focuses on adding wind to influence flight.
"Wind" will encompass all external forces a flight object can encounter. For this release, that will include directional wind, windward terrain wind deflection, lee side terrain wind rotor, and thermals. Other wind phenomenons that may or may not be included are inversion layers, and wind dir…
The Windward update focuses on adding wind to influence flight.
"Wind" will encompass all external forces a flight object can encounter. For this release, that will include directional wind, windward terrain wind deflection, lee side terrain wind rotor, and thermals. Other wind phenomenons that may or may not be included are inversion layers, and wind directional shifts with altitude. The phenomenons that are rare for flight creatures to encounter won't be included, such as wave lift. The intentions for which forces to include directly correlate with what will give the player the most interesting and memorable experience. Players should recognize just through play that they are flying through wind, or a thermal. Additionally, I want them to take those experiences with them when they put down the game, and perhaps watch birds circling in a thermal and understand what is happening.
This update will require an API to add wind forces to a flight object. I see two possibilities for how this may be architected:
-
Through World Physics -- at each physics time step, the flight object makes a call to the World Physics object with its position, and returns the sum of wind forces the world is producing at that position. Conversely, the World Physics tracks all wind producing objects, where the developer can decide which forces to include or exclude from the world.
-
Event Driven -- Forces will be applied when a flight object collides (Physics Colliders) with them in the world. For thermals, this would happen through the rigidbody OnTrigger() methods.