Advanced weather: Difference between revisions

Jump to navigation Jump to search
Line 184: Line 184:
-->
-->


Basically that's pretty difficult - it's a plane-centered approach - it won't translate into a global weather server and it won't naturally give two planes in approximately the same location precisely the same weather (apart from METAR reported parameters which would agree - but there's an inifinity of ways to have scattered cloud cover). Years ago ideas were discussed and Thorstten worked out a neat way of approximately synchronizing it in a peer-to-peer fashion among MP participants (assuming they all run on METAR, which seems the thing on MP).  
We have two weather systems that work aircraft-centered, butero which work server-centered - what's the smaller task - creating a p2p design to transmit a comparatively small amount of info, or write a server-based weather system from scratch?<ref>{{cite web
  |url    =  https://forum.flightgear.org/viewtopic.php?p=151995#p151995
  |title  =  <nowiki> Re: Clouds online </nowiki>
  |author =  <nowiki> Thorsten </nowiki>
  |date  =  Mar 1st, 2012
  |added  =  Mar 1st, 2012
  |script_version = 0.40
  }}</ref>
 
To state the problem in a nutshell:
An aircraft-centered system doesn't have to care about matching to large-scale weather patterns beyond cloud visibility range. It doesn't have to care that Earth is a sphere. It doesn't have to care if winds lead to severe inconsistencies 3 hours into tile generation, because you'll be long gone from the area by the time the problems become visible. A server-based weather system has to care about all things. There is no space beyond visible range into which you can simply let problems run.<ref>{{cite web
  |url    =  https://forum.flightgear.org/viewtopic.php?p=152091#p152091
  |title  =  <nowiki> Re: Clouds online </nowiki>
  |author =  <nowiki> Thorsten </nowiki>
  |date  =  Mar 2nd, 2012
  |added  =  Mar 2nd, 2012
  |script_version = 0.40
  }}</ref>
 
Suppose we manage to spawn exactly the same weather tile for two players. In scheme B), since cloud motion is a tile property, they would continue to evolve the same way. But in scheme A), if one player flies at 5000 ft where the wind is 10 kt and the other at 15.000 ft in 20 kt winds, the clouds will drift apart with 10 kt even if you manage to create them synchronied. So you can't cast this into a mere synchronization problem at tile creation. But if you want to enforce synchronization later, the problem goes beyond a mere exchange of information - it becomes one of control (and consistency) Nature moves clouds in a windfield C), and at least you must detatch that from aircraft position as in scheme A). My original scheme B) would have been suitable for MP synchronization (this is part of the reason I introduced it that way). But since Stuart's cloud rendering system doesn't recognize 'tile-index' as a valid concept, there is no easy way to get it back and to move clouds by tile again.
And thus, wind is going to be a problem if you require high precision and wind drift of clouds.
 
<ref>{{cite web
  |url    =  https://forum.flightgear.org/viewtopic.php?p=152428#p152428
  |title  =  <nowiki> Re: Clouds online </nowiki>
  |author =  <nowiki> Thorsten </nowiki>
  |date  =  Mar 5th, 2012
  |added  =  Mar 5th, 2012
  |script_version = 0.40
  }}</ref>
 
 
Basically it's pretty difficult - it's a plane-centered approach - it won't translate into a global weather server and it won't naturally give two planes in approximately the same location precisely the same weather (apart from METAR reported parameters which would agree - but there's an inifinity of ways to have scattered cloud cover). Years ago ideas were discussed and Thorstten worked out a neat way of approximately synchronizing it in a peer-to-peer fashion among MP participants (assuming they all run on METAR, which seems the thing on MP).  


Basically the first plane gets to build the weather tile is in the vicinity, any plane that reaches the area queries the plane already there whether it has weather tiles available or not, if yes it queries for the information to build them, if not it does it itself and announces their availability. This doesn't have to be high bandwidth because the meta-information to build a tile is very small (a random seed and a handful of parameters) and decision times can be of order of minutes.  
Basically the first plane gets to build the weather tile is in the vicinity, any plane that reaches the area queries the plane already there whether it has weather tiles available or not, if yes it queries for the information to build them, if not it does it itself and announces their availability. This doesn't have to be high bandwidth because the meta-information to build a tile is very small (a random seed and a handful of parameters) and decision times can be of order of minutes.  

Navigation menu