Page MenuHomeFeedback Tracker

Weather conditions not the same for everyone
Closed, ResolvedPublic

Description

Playing an internet co-op mission (escape from stratis in this case) hosted by my PC, the weather conditions were not the same for everyone playing. My machine had dark clouds & raining for half the game, while everyone else had clear sunny skies the whole time. {F17567}

Details

Legacy ID
2540495162
Severity
Major
Resolution
Reopened
Reproducibility
Random
Category
Multiplayer

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

4 non-ai players in total - two of those with sunny sky, two with dark clouds & raining

I confirm this issue. I hosted a mission and played with two other guys. All of us had different weather conditions.

To illustrate the relevance I'll summarize how we experienced this:

Another human player and I watched a group of AI opponents in a distance of roughly 350 m. My weather was cloudy and rainy but at first I could clearly recognize the AI. As we were working out who should attack which target, suddenly fog appeared and concealed the opponents on my machine. I mentioned it to my friend who told me that he had a clear and sunny day. We had to wait with our attack until the fog had cleared.

That's a known issue. Weather is not synced...

This issue was processed by our team and will be looked into. We thank you for your feedback.

Please keep the issue monitored to see when it is fixed.

This is really annoying, sometimes you cannot see your opponent due to the rain or darkness while he can easily spot you because it's sunny on his side...
In the same way, when the weather is stormy, lightings should be synchronised for all clients.

izaiak added a subscriber: izaiak.May 7 2016, 11:51 AM
izaiak added a comment.Sep 3 2013, 7:24 PM

+1 Big problem for MP or MP COOP, if the weather is not sync for every players.

E.g. For stealth mission in PVP if one have fog the other no ... Big Problem.

Upvoted.

Agree would love to see this get some attention, aswell as more features from their weather middleware implimented "clouds casting shadows!"

Please get to this asap. I know there's lot's of other issues/bugs floating around to deal with, but this pretty much kills most Multiplayer and since 90% of the game is now multiplayer it's a major issue IMO.

Playing any type of players against other humans will end up with someone having an unfair advantage over others when they have nice sunny weather and the other player has fog or rain and visibility drops.

It is absolutely ridiculous that weather doesn't sync between all clients in multiplayer. The clients should always sync their weather with the server. It makes no sense having local weather in multiplayer, none at all! Seriously, get this fixed, it's beyond a major bug!

^^ agree with PolarisUK. This issue should have a level of priority.

It's quite frankly a joke that it hasn't been fixed already. A multiplayer orientated game where all the clients can, and often do, have completely different weather. This has to be one of the most high priority bugs on the tracker. It effects gameplay drastically!

I've been attempting to figure this out on my own in the meantime. I've got a semi working script to do this, but it's not the best, and it would be much better if the game just synchronized all MP clients to the same weather forecast by default.

http://forums.bistudio.com/showthread.php?164140-Creating-Dynamic-Weather-in-Arma-3

It's obviously possible to do this using scripting but it's simply ridiculous that it's not part of the engine. Plus it's just a lot more messy doing something this fundemental by scripting.

This bug should have been fixed before release, it doesn't just affect some servers... It affects all servers... Come on BIS fix it.

Bezzy added a subscriber: Bezzy.May 7 2016, 11:51 AM
Bezzy added a comment.Oct 3 2013, 8:51 PM

I agree with Polaris, this should have been fixed ages ago!

Tachi added a subscriber: Tachi.May 7 2016, 11:51 AM
Tachi added a comment.Oct 3 2013, 9:26 PM

I agree, it sometimes happens when mission is running for some time and some player joins the game. That player will probably have the time and weather conditions that were at the mission start. For example mission started at 9am, some player joined after 1 hour, everyone on the server will have 10am and the player who joined after will have 9pm.

Since the weather values are generated randomly the more clients on the server and the longer the duration of the mission the greater the chance of players having starkly different weather conditions. Occasionally one player may have 20m visibility because of fog and rain while another has blue sky and full visibility. That's creates ridiculous scenarios that should never be allowed to occur, especially in a military simulator! In the alpha or possibly even the beta this could be ignored or forgiven but not in the release version!

Tachi's point is very relevant i believe. Anyone testing this in MP environment should control and check the client's daytime where weather desync is observable. Current desync issues _may_ simply come down to this.

I'm pretty sure the reason why that occurs is because when the client joins it uses the original mission values to begin with. But the values generated for the weather after this are completely random, I have tested this before in a MP environment. So if you both start the mission at the same time and the starting overcast value is 0.3 you will both begin with 0.3 but then your clients will independently generate forecast values randomly. So after 6 hours your client could have an overcast value of 0.9 and the other client could have 0.2. If a new client joins they will use the 0.3 default mission value and then randomly generate their own values.

kazeen added a subscriber: kazeen.May 7 2016, 11:51 AM

This really needs to be fixed

Attached Weather.txt. You can see the values are simply generated independently, it's not a JIP/time issue.

^^ good enough.

I was reading on nextWeatherChange command http://community.bistudio.com/wiki/nextWeatherChange and

"Return the remaining time (in seconds) over which the current weather change will occur. When a weather change finishes, the game engine will automatically generate a new _random weather change_ over a realistic time period (minimum of 90 minutes).

Multiplayer: Each client and the server can have differing weather."

So this is, since old time, left to the mission maker to assure syncing. I maintain my view this would be probably best done at the engine level. Specially since visually relevant weather parameters may not all be obvious to the scripter.

You can actually see that command working in the txt file I attached. The forecast values change at different times.

Weather should always be synced by the engine. I can't think of any situation in any game where I, or any other developer, would want clients to have independent weather. It makes no sense. It's like saying the time and date shouldn't be synced so some clients can be playing at night and others during the day and others with a full moon and others with none.

I'm pretty curious as to who exactly decided that weather syncing wasn't a necessary feature in a multiplayer orientated game :p.

Plus don't get me started on the lack of documentation concerning weather. I spent a whole day simply experimenting to see what commands were still relevant. The fog, fogForecast and fogParams commands are amusing to get lost in :p.

The only reason i come up with is network overhead. Specially since it will affect moslty JIP players, specially since the legacy weather was not as spectacular visually, and therefore less noticeable.

There really isn't that much data to send though. Weather is an extremely important part of the environment and should be a high priority. It isn't superficial, it can impact gameplay drastically, especially in PvP. Plus the vast majority of mission designers will want weather synced so by not including the feature in the engine all they're doing is causing more work for community developers and an even less efficient system to be implemented.

Agreed, I can't see how weather would create any network overhead problems. Sending 5 or 6 variables to all clients every few minutes about current weather conditions can't even compare to network traffic dealing with AI/Unit positions...

p1GER added a subscriber: p1GER.May 7 2016, 11:51 AM
p1GER added a comment.Oct 4 2013, 12:10 AM

This issue really needs to be fixed asap! Weather syncro is very important!

We're not in disagreement at all in regards to the need of this. But i think you're underestimating the underlying complexity of the whole issue.

I wouldn't be surprised that even if an absolute value for value syncing was made by scripting means, the end result would still be some discrepance, due to the eventuality (pure speculation) of cloud generation not being deterministic, and showing in different ways to players, and in border cases even raining >< not raining instances.

Also BI is dependent on a 3rd party technology which may even further delay progress/debugging.

The only real issue with weather syncing is the overcast value because it takes time to simulate any changes due to the volumetric clouds. The rain, wind, lightning etc are really easy to set and are instant. Even using basic scripting you can advance the cloud simulation by using skipTime, if you were to use 86400 setOvercast 1 (making sure the overcast value will be 1 in 24 hours) and then skipTime 24 the overcast would successfully be at 1 and the time would be the same. Of course you would be one day ahead as well obviously, which isn't desired but that's fixable.

If you were to include a simulation "jump" to the current overcast value when joining the server and then simply update the forecast value and change interval time to the server's values and then instantly update the rain, lightning, wind, etc values every 60s then the syncing would be pretty decent. The environment would be almost identical on all clients. Obviously there would be variation in exactly where lightning struck or where exactly a cloud was but the playing conditions would be so similar that it wouldn't effect gameplay any more.

Simply a decent weather syncing feature so the conditions are identical. Keeping the overcast, fog, rain, lightning, wind, etc values consistent on all clients is enough.

Wind, lighting, fog, rain, overcast, ect... Should all be able to be synced to every player. Even little differences can causes issues for player, even the clouds when flying or sky diving can cause problems if not synced to everyone.

Of course I agree with you, ProGamer. But until that is implemented I would really be happy with even basic weather syncing for the time being.

Even in arma3 this basic stuff still not done :(

It's a little disappointing. This should be a really high priority. You look at a game like Battlefield 4 and all the waves sync. It would be nice if the general weather settings as least synced in A3.

o_O waves are may be synchronized in BF4 but what about the shots and players moves? (moreover the sea is ugly in multiplayer)
The Batlefield series has the worst netcode ever. [end of discussion]

Freeman_D my point wasn't to compare the two engines because you simply can't, they're entirely different. Plus this is a bug report/feature request relating specifically to weather so I obviously wasn't attempting to compare ballistics or player movement. The point I was trying to make is that weather should be relatively consistent for all clients in a commercial game of this nature.

Sorry, I simply had to jump on the wagon of pointless additions and add...

[end of discussion] :)

Any part of a cloud could cause one player to have an unrealistic advantage over the other. Meaning if you fly behind a small part of a cloud, the other player should see that as well. Which means clouds need to be perfectly synced. And any other weather that visually affects the player.

The source of this problem though is likely because all simul weather commands are local currently.

Yawn!
This has only been the case in Operation Flashpoint (2001), Armed Assault (2006) and ArmA II (2009). Why should they actually change it now when we just got used to it?
*irony off*
upvoted

Yes, that's realy annoying because it gives some players horrible advantages...

I really don't know details about the weather engine, but since weather is not affected by players at all, wouldn't it be enougth to sync the starting params and random seeds?

This should be done with latest weather sync in 1.14.

Is this done passively or does one have to active it/place a module/etc?

I don't believe this is resolved yet. Weather may stay in synch during a mission, but weather set on the server by script at mission start does not synch out to clients.

It's synched automatically/passively. You are supposed to use the new forceWeatherChange to change the weather when scripting:

http://forums.bistudio.com/showthread.php?152866-General-Discussion-%28dev-branch%29&p=2638861&viewfull=1#post2638861

There is also another new command

https://community.bistudio.com/wiki/simulWeatherSync

but it's not clear what it's used for. Probably to trigger a manual sync, but it's mostly unneeded, according to what's been told in the forums and Skype chats I'm in.

simulWeatherSynch has actually been out for a while and I use it to force cloud cover updates.

As for forceWeatherChange, there any documentation of it anywhere? I don't see it in the biki, and I didn't see any other posts in that dev thread about it. To immediately change weather, do you just need to run it on the server at weather change, or do you need to run forceWeatherChange on the clients as well?

Only ever change weather on server now, I was told. Clients are sync'ed automatically now.

EDIT: Yes, it seems undocumented as of now, but I'm sure once they will as soon they catch up.

Awesome, I'll give it a shot. Thanks!

Yeah, it's not working yet in my testing. Set a dedicated server to be heavy clouded and rainy through script on mission start with forceWeatherChange in the script and I connected two clients, and neither saw clouds/rain.

I then tried to add forceWeatherChange into the init.sqf for everyone near the end of it's run (and much later than the weather script ran on the server). One client saw rain/clouds, another client did not.

Gippo added a subscriber: Gippo.May 7 2016, 11:51 AM
Gippo added a comment.Oct 21 2014, 3:48 AM

It's still not syncing properly... This is just makes the servers not to use weather changes AT ALL... Sometimes it's just a bit difference, sometimes it's a storm on one computer and on the other it's a sunny beautiful day.

ocf81 added a subscriber: ocf81.May 7 2016, 11:51 AM

I think that this problem has been inherited from arma 2. It was present in that game as well. Back then, it was dependent on CPU load and syncing problems, and it could marginally be solved by having a script running which would coordinate time and weather changes. Is anyone who has reported seeing different weather having performance issues?

Is this problem ever going to be fixed. Seeing the same weather 24/7 gets old. Having the different types of weather effects that Bohemia worked hard to create would be a nice change.

Sure, if different winds for players, this could be interesting with Marksmen DLC supposed to enhance the tandem work sniper/spotter along with wind parameters!

R34P3R added a comment.Apr 9 2015, 8:47 PM

So Marksmen DLC is out.. pls BIS now look at the Weather sync and overcast timing !

This was a bit of a startling bug to discover. Using post-process effects and fog, I was hoping to surprise my milsim group with a sandstorm when they logged in, but instead all I got were the post-process effects. Why have weather settings for the mission if the server is going to override them? I'd love to see this addressed in the next update.

Adam added a comment.Jun 22 2015, 2:21 PM

Will be fixed in next dev build update!

speechless :)

Can provide more info on the issue and how it was fixed? Quite curious. Could not figure out if it was a uiNamespace issue, a client issue with Simul Weather, or ...

will this also fix setOvercast command/timing ? Ty

Do you have any info by testing it on DEV branch? Any new/old issues?

Can provide more info on the issue and how it was fixed? Quite curious.

  • Actually there weren't too much changes in the end. Fixed how values are applied on clients and calculate correctly when values are sent from server. Also some changes for clients connected when mission is already running.

Nesquick and Adam - Can you validate how the new fix works? As in, how can mission makers take advantage of it? Do you need to just set initial weather on the server at mission start and everyone will stay in synch (including folks that connect later in the mission), or do you need to continuously send out some weather info from the server to clients?

It should work with what weather is set on server (from mission settings or by scripts during mission) clients should stay in sync. It shouldn't need any more weather synchronization mechanism.

There are just 2 different situations.

  1. When player connects later weather should be set immediately, so he should start with same weather as on server.
  2. During gameplay if client gets different values he changes them with slight delay (several seconds) so the transition is not that apparent.

Yes it seems to work. Good job!

Here's what happens:

[1.48]

If I set the overcast on the server, I must run the forceweatherchange command too to change it on the clients and also to form the clours on the client.

However, If I just set the overcast server side, that can change even instantly, but the client cannot. Wouldn't be a problem as it should just set the forecast, the future overcast value in x seconds.

The problem is that if I reconnect, the client automatically update to the server's value. It would be good to know what is the actual setovercast maximum change per second on the client. (the max speed of the overcast can change on the client) to avoid joined and JIP players differences.

edit2: I measured the changing rate on the client, and 1 to 0 or 0 to 1 should take around 3125 seconds, so setting 3600 setovercast 1 (from 0) should be safe - but it's not. The client overcast value is always changing slower than the server one, no matter if the client could handle the 0 to 1 change in 1 hour. That's the problem. SO with time the overcast values won't match between already joined and JIP players (as stated above, they get the server value)

edit: Or just make the same limit on the server (except if you use forceweatherchange - that should still set it automatically to the set value)

Value of the waves isn't syncing - not sure if that even changes anything. However if I can notice some waves forming no matter what are these values, but if I reconnect the waves are gone and I need to wait for them again.

Fog, lightning, rain is syncing with a little delay, so that's actually pretty OK. Rainbow is not syncing (not even sure that's a valid weather effect) I haven't checked the wind though

wind should be checked. It seems different. Difficult for me to confirm. In this case, forget the dual work spotter/sniper.

EDIT: Subsequent attempts have actually worked. The server appears to use the fog and overcast values of the mission file as of v.1.48. Great work!

Overcast synchronization in MP is much better in 1.48, from preliminary check. Good job!

setWind / wind / windRTD are fine.

Gusts still local.
Waves still local.
Rainbow still local.
Lightnings seems fine, good work!
Haven't checked fog.

windStr / setWindForce / setWindStr not sure if these are obsolete or how they fit into the picture.

Gippo added a comment.Jul 20 2015, 9:49 PM

There's another problem. Sometimes the clouds are not present, no matter if the overcast is set on the client. So players can experience heavy raining and a clear sky.

@Astaroth I've checked - it's resolved. Ticket can be closed.

Astaroth closed this task as Resolved.Tue, Sep 3, 3:22 PM

Thanks for confirmation.

Groove_C removed a subscriber: Groove_C.Wed, Sep 4, 5:43 PM