Multiplayer flying doesn't synchronize weather state - makes multiplayer glider flying (almost) impossible

:wave: Thank you using the Bug section, using templates provided will greatly help the team reproducing the issue and ease the process of fixing it.

Are you using Developer Mode or made changes in it?

No

Have you disabled/removed all your mods and addons?

Yes

Brief description of the issue:

Weather progress/simulation including cloud position and thermals is simulated locally from initial state from the moment of pressing “Fly” button.
If players sharing the same place/time and weather preset, even in private group flight or using live weather will press the “Fly” button not at the exactly same time their weather simulation progress will be different and thus won’t be able to rise circling in their gliders in the same thermal to gain lift - they cannot fly together with gliders as they do not experience the same weather/airflow state - and same weather/airflow should be a fundamental part of multiplayer flying (“One shared world” as advertised in “Feature Discovery Series Episode 7: Multiplayer”).
Current situation makes also impossible to create official community fly-ins with gliders as no one can expect all 100 joining players will press the “Fly” button simultaneously.
We, as glider enthusiasts, have this problem for group flights at way smaller amount of people (about 20) as all people that came even little bit too late simply cannot join us, because of unfixable weather state desynchronization.

Possible solutions:

  1. People joining group flight or joining another player (ideally even when setting some not friended player with “Set as departure” option) upon joining should have their weather simulation fast-forwarded to the group/joined player current state from joined player/group leader initial weather state OR:
  2. Worser, but maybe easier version: For group flights create some “lobby/before-flight state” that would synchronously transition to “Fly” state for all players at the single button press of group leader, but sadly this variant doesn’t help people who joined even just a little bit too late.
  3. Add some explicit “Synchronize weather state” option clickable on an available online friend.

Provide Screenshot(s)/video(s) of the issue encountered:

Sorry not this time - as this requires screenshots from at least two players.

Provide coordinates (DevMode > Options > Display position)

Any place - start from ground or in air

Provide time & date of the observed Weather issue

Best experienced with thick Cu clouds layer (as this generates “cloud thermals”) moved by wind

Detailed steps to reproduce the issue encountered:

Scenario 1:
Player A chooses weather preset with Cu clouds, thermals and wind and starts flight simulation.
Player B waits for 15 minutes and also chooses exactly same weather preset, time and location and starts flight simulation.
Player B will have weather lagging by 15 minutes from player A - all the cloud and their thermals moved with the wind.
Mismatch of weather in this scenario is understandable, but there is no way for player A or B to remedy this offset or a way to synchronize their weathers.
Scenario 2: Setting initial time for player B to be 15 later than player A (or progressing time during flight) won’t make their weather synchronized, even increasing simulation rate won’t help.
Scenario 3: Finding a friend flying on the world map and joining him won’t make your weather synchronized to his current weather state (which should be the obvious expected behaviour as you expressed the will to fly with him).
Scenario 4: Joining late a progressing group flight you have been invited to will start your weather simulation from initial state, not fast forwarded to current group flight state.

PC specs and/or peripheral set up if relevant:

does not apply

Build Version # when you first started experiencing this issue:

Even before SU11


:loudspeaker: For anyone who wants to contribute on this issue, Click on the button below to use this template:

Do you have the same issue if you follow the OP’s steps to reproduce it?

Provide extra information to complete the original description of the issue:

If relevant, provide additional screenshots/video:

Do you have the same issue if you follow the OP’s steps to reproduce it?

yes

Provide extra information to complete the original description of the issue:

if invited to a group weather file is shared and loaded by joining player but their weather will lag behind by whatever the join time difference is.

If relevant, provide additional screenshots/video:

Agree! We have no way to synchronise each other’s weather in multi player flights. Breaks the immersion a lot becasue there is no point in call a friend over to your thermal like you can in real.

Do you have the same issue if you follow the OP’s steps to reproduce it?

Yes

Provide extra information to complete the original description of the issue:

When invited to a group, the weather file is transmitted and uploaded by the joined player, but the location of their clouds will differ by the time of joining.

If relevant, provide additional screenshots/video:

2 Likes

Yes, this is needed. The current way to get all players in sync is with one player down counting 3, 2, 1, FLY in a Discord voice channel. This is not very practical.

Besides, I’m not sure it is totally synchronized as everyone spawns on the airfield at different moment because of how much time it gets their system to load the scenery and weather. So, depending on when the weather starts running (supposedly when you spawn), it’s probably impossible at the moment to be really totally in sync.

3 Likes

Wow… With the introduction of thermals, Asobo has a huge challenge ahead of it. She’s running into a technological barrier using this engine and I don’t know if she’ll be able to solve that anytime soon and make our wishes about the thermals come true. But I don’t doubt it, they went where a lot of people didn’t go, it doesn’t hurt to have faith, right?

The problem with clouds not being synchronized between players is that they are generated locally in an algorithm via the GPU, it is the same problem with thermals not having a direct connection with cumulus clouds: The CPU does not know where they are because this step is processed by the GPU .

Even if that barrier is broken, I can’t even measure the impact of a server trying to direct where clouds will be created to sync for players. The fact that they are created locally alleviates a lot of potential stress on the servers and consequently the load on the local PC’s CPU.

We already have a huge problem with CPU usage in this simulator and seeing how much we still have problems related to it and especially the use of other cores, it’s better to put our feet on the ground and be aware that it is a huge problem for them and that it will take a long time. They will need to resolve these issues first before implementing this clouds/thermals connection.

May God have mercy on the Main Thread lol

3 Likes

I know you are posting this in good faith, but you state some incorrect info about clouds being only known to GPU and also present this multiplayer weather synchronization issue as far more difficult than it really is - let me explain:

Two incorrectness:

  1. CPU knows exactly where clouds are - as far as SU5 we have learned how to set weather with thick cloud layer that give strong correlation between cloud position and updraft benath that cloud - we call it “cloud thermals”. SU11 (or SU10) messed this situation somewhat by introducing overwhelmingly strong “ground thermals”, that are sadly totally unrelated to clouds so it somewhat confused us. But by setting windspeed to zero we are able to cleverly disable those “ground thermals” and still retain those “cloud thermals” - as a confirmation last saturday we performed a group flight of over 20 gliders with thermal only weather (no wind, no ridge, only thermals under clouds) and everyone who started at the same time experienced same clouds and same lift under them (no lift under clear sky) - even after flying for 2 hours. As updraft is not generated by GPU CPU must know cloud position.
    If you want to experience this updraft to clouds correlation (of corse this updraft has huge amount of other issues, but at least it exists) yourself join “Sim Soaring Club” on discord and try settings of “soaring saturday” from 26 nov 2022 flight - “Borkenberge” Discord

  2. That the clouds are generated locally is not the cause of desynchronization between players and there is no need to constantly stream weather data to all players to have it synchronized - as we already have confirmed that local weather evolution/progression algorithm is deterministic - that is from the same initial settings (preset settings, sim date & time, location) evolves exactly the same with time for all players! We confirmed it in SU10 even with life weather - we started flight simultaneously and after more than hour of cross country flying compared sreenshots - the clouds looked the same! This is very beneficial property that Asobo should carefuly try to maintain as this greatly lessens the burden of sharing weather synchronization data - you just need to share same initial conditions and add ability for late-joiners fast-forward weather algoritm to the same “wall clock” time of the group flight.

So I hope my explaination above assured you that this is not as difficult nor CPU heavy problem as you might have thought :slight_smile:

4 Likes

Clouds in MSFS are displayed according to the initially created cloud map and its settings Coverage, Scattering, Density and the programmed cycle of development/extinction. This cloud map is the same for all users, covers the entire MSFS world and moves above the ground according to wind settings. This cloud map has been created and exists in MSFS since the alpha version of this simulator and remains unchanged. This version of the implementation of clouds in MSFS is very simple, but it is better than in other simulators. I don’t think the developers will give up on it soon and come up with some more complicated option.

A task for developers has been asking for a long time, this is the synchronization of the movement of the cloud map in multiplayer for all the players of the group with a weather preset common to them. Now, the movement of the cloud map in the wind begins for each player from the moment the flight is launched. However, the cloud map has its current coordinates and for synchronization it is enough to transmit these coordinates from the creator of the group to all the players of the group, similar to the rest of the weather preset settings.

2 Likes

The CPU does not know where the cloud is in 3D space, what you are referring to is the light filtered by a cloud and through this mechanism it is possible to generate these effects, it is the most logical and economical solution in terms of performance given the way that the climate engine was created. The CPU knows that it has to give instructions when the light is filtered but it doesn’t know the exact position and shape of these clouds as this is in the GPU’s field.

Summarizing in a very simplified way, the central problem is this: He knows how to give instructions in a filtered light but he doesn’t even know the shape of the cloud much less its exact position in space. Trying to bring it to the human side, it’s like he’s a blind man who reacts to these effects by “feeling” them.

And that’s exactly why if you go on MSFS and fly in a sky full of cumulus, there will be a cloud that will have thermals and another that won’t. It is extremely inaccurate because of this limitation.

When this barrier be broken one day, this weather engine could be rewritten and in the ideal scenario we will have Cu being formed by thermals but as I said earlier it is not a simple task as many people think. If it was easy Asobo would have already implemented it. Who wouldn’t want a climate engine running almost exactly like real life?

And as I said, there’s a lot going on over the top that needs to be sorted out before this kind of CPU-GPU communication works. In the current state with these CPU issues we would have a huge impact on simulator performance.

It is necessary to solidify the foundations first.

2 Likes

Just syncing the initial cloud map can also be done by switching to Live Weather then back to the preset for the task. Probably gives a better sync between players doing that on 3, 2, 1 than on the Fly Now button. Even so, voted as having synchronised conditions is important for competitive flight

1 Like

“Some of the air may go up because it’s in the middle of the cloud, some may go down and at the edges you get shear. So this is all now naturally simulated and we have all the updrafts and downdrafts in the world which match actually the weather.”

1 Like

Hello Anri. Have you posted your fantastic Discord post about Vertical Winds in this forum? It deserves a lot of exposure.

Has there been any acknowledgement from the devs at all on this? It takes all of the fun I hoped to have with friends soaring and throws it in the trash…

2 Likes

We glider pilots are a gregarious bunch - we love to fly multiplayer (and so I suspect do bush pilots and other G.A groups). Glider pilots especially need to synchronise the sky so that we can all see and share the same cloud thermals when flying a task. At the moment, we all agree a start time, and click “Fly” on an agreed “3-2-1 GO” signal. This gets our clouds pretty much in sync until someone has a CTD or turns up late to the party, or has some other equally frustrating issue.

So my idea is this (and is based on the presumption that there MUST be some algorithm in the code that moves/create/dissipates clouds over time).

We all agree a sim start time (which we do now) of EG 13:00 hrs, those present click fly now on the agreed signal, so we all start with a sim time of 13:00 and we all have the same cloud map in our sky. Then someone has a CTD or turns up late. By the time they are (re) set up and ready to launch, those who have started together are now showing EG 13:15, whilst the unfortunate late-comers will spawn in at 13:00.

So now, our cloud map will have moved on but theirs will be what we saw some 15 minutes earlier. So now we call out (because we are mostly on DISCORD) and say " hey guys we are at 13:15", then if the cloud map was linked in some way to the time slider, they could simply call down the in-sim weather menu, move their time slider to 13:15, and we would then be all seeing the same sky again, sharing the same thermals.

NB - it is usual practice for the task setter to create a custom weather preset which is distributed to the group, so all the sliders (wind strength/direction) cloud height/scatter/density etc, are the same for everybody