You can sign up to get a daily email of our articles, see the Mailing List page!
Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can support us on Paypal and Liberapay!
tagline-image
Sad news for those waiting on it, as Aspyr Media have again delayed cross-platform multiplayer for the Linux version of Civilization VI [Steam].

They posted this on Steam earlier:
QuoteHey everyone, status update on the Summer 2017 Patch for Mac/Linux:

It is with huge regret and sad faces that we, again, have to delay the release of cross-platform multiplayer.

We are moving forward with the launch of the Summer 2017 Update for Mac and Linux, which will offer all of the available content as the Windows update. After thorough investigation, we’ve decided that we cannot hold back the content any longer in lieu of some nasty cross-platform bugs.

We’ve consistently stood behind a quality bar for our products, and it’s a standard that our partners and players have also come to expect. For those of you who were looking forward to cross-platform multiplayer, we urge you to understand that should the feature have come into the live environment, desyncs would have been guaranteed and frequent to the point of an extremely poor experience.

It's a real shame, but I really do appreciate how open they're being about the process. It's better to have a stable and enjoyable experience first. Hopefully they will get it nailed before the year is up, because I imagine there's a bunch of people who have been waiting on this on both Linux & Mac.

The Summer Update was released for Windows on July 27th, so we've been waiting nearly a month for this patch. I imagine the large time difference there was due to them trying to get cross-platform multiplayer working. For a complete list of what's coming in the patch, see here from the original release announcement.
1 Likes, Who?
Comments
Page: «2/2
  Go to:

TheSHEEEP 25 August 2017 at 7:36 am UTC
MayeulCA bit sad to hear this. Would love to hear the complete technical analysis of what happens here. The function names, actual differences, etc.

Is it floating point related, RNG related, other? Wine doesn't seem to have a problem with this. Wouldn't using some parts of winelib help? (It is LGPL, so definitely linkable against).

My guess is that they went for a full deterministic approach (each player is running the full simulation). You can make sure that all players actually have the same results (yes, even with floats and rng) - but only within the same platform.
So far, so good.
What I don't get is why they don't just add an occasional sync to it all to offset the rare case where there would be differences between the platforms. It's not like the game has a great deal of data to sync. It's not a Supreme Commander or something like that.
Afaik, that's how all others do it that go for determinism.

If this is not what actually happens, then I have no idea. There is no logical reason not have a turn-based game work cross-platform.


Last edited by TheSHEEEP at 25 August 2017 at 7:37 am UTC
ryad 25 August 2017 at 8:07 am UTC
Sad news, as I'm indeed waiting for cross-platform multiplayer since the Linux release. However, the game is one of the best Linux games around and I'm looking forward to the summer update and its balance changes. Also it sounds like Aspyr is working hard to get the multiplayer bugs fixed. Can't wait to be able to play Civ 6 with some (Windows) friends - hopefully some time later this year.

Anyway, thanks Aspyr for your hard work, I really appreciate it!
Ehvis 25 August 2017 at 8:38 am UTC
View PC info
  • Supporter
TheSHEEEPWhat I don't get is why they don't just add an occasional sync to it all to offset the rare case where there would be differences between the platforms.

Because the Windows devs have no stake in the matter. It works for them, so no reason to change anything. These things almost never happen with in-house ports or games that have console versions. It's probably also something that can be held on to because digital distribution makes it easy to force players onto the exact same version of the game.
F.Ultra 25 August 2017 at 2:09 pm UTC
MayeulCI remember a game that lasted me six months, singleplayer on civ V (biggest map, slow time). But not every game is like this.

Usually, playing with your friends as an ally is less boring, as they can see your troops.

This is also a good candidate as a "mail-chess"-like (see freeciv 2's website).

A bit sad to hear this. Would love to hear the complete technical analysis of what happens here. The function names, actual differences, etc.

Is it floating point related, RNG related, other? Wine doesn't seem to have a problem with this. Wouldn't using some parts of winelib help? (It is LGPL, so definitely linkable against).

Wine does not experience this problem, but it will also not fix it. Because the difference in the floating points are due to the compiler (yes different math libraries can also cause this but there is a basic difference on the compiler level) so one fix would of course be to force all windows devs to compile with gcc, but for some strange reason most windows devs prefer the Visual Studio compiler.
MayeulC 25 August 2017 at 2:39 pm UTC
F.Ultra
MayeulCI remember a game that lasted me six months, singleplayer on civ V (biggest map, slow time). But not every game is like this.

Usually, playing with your friends as an ally is less boring, as they can see your troops.

This is also a good candidate as a "mail-chess"-like (see freeciv 2's website).

A bit sad to hear this. Would love to hear the complete technical analysis of what happens here. The function names, actual differences, etc.

Is it floating point related, RNG related, other? Wine doesn't seem to have a problem with this. Wouldn't using some parts of winelib help? (It is LGPL, so definitely linkable against).

Wine does not experience this problem, but it will also not fix it. Because the difference in the floating points are due to the compiler (yes different math libraries can also cause this but there is a basic difference on the compiler level) so one fix would of course be to force all windows devs to compile with gcc, but for some strange reason most windows devs prefer the Visual Studio compiler.

Ooh,that's right

Another solution could then be writing a hybrid: separate the game logic/simulation into its own library (or object file), and link it later (might need a DLL loader, but I don't think it's that complicated; and maybe a shim or two if the calling conventions are different).

In any case, I trust Feral to be competent enough to know the right thing to do (and choose whether to spend time on doing it).
F.Ultra 25 August 2017 at 8:48 pm UTC
MayeulC
F.Ultra
MayeulCI remember a game that lasted me six months, singleplayer on civ V (biggest map, slow time). But not every game is like this.

Usually, playing with your friends as an ally is less boring, as they can see your troops.

This is also a good candidate as a "mail-chess"-like (see freeciv 2's website).

A bit sad to hear this. Would love to hear the complete technical analysis of what happens here. The function names, actual differences, etc.

Is it floating point related, RNG related, other? Wine doesn't seem to have a problem with this. Wouldn't using some parts of winelib help? (It is LGPL, so definitely linkable against).

Wine does not experience this problem, but it will also not fix it. Because the difference in the floating points are due to the compiler (yes different math libraries can also cause this but there is a basic difference on the compiler level) so one fix would of course be to force all windows devs to compile with gcc, but for some strange reason most windows devs prefer the Visual Studio compiler.

Ooh,that's right

Another solution could then be writing a hybrid: separate the game logic/simulation into its own library (or object file), and link it later (might need a DLL loader, but I don't think it's that complicated; and maybe a shim or two if the calling conventions are different).

In any case, I trust Feral to be competent enough to know the right thing to do (and choose whether to spend time on doing it).

Or rather the companies doing these multiplayer protocols should stop using the raw float values since they cannot be trusted (different raw values of a float can produce the same decimal representation which is the problem) and there is nothing that says that a new version of the Visual Studio compiler will produce raw float values that is binary compatible with the current/old ones. Would probably speed up things as well if they changed to something sane like i.e scaled integers.
caballero 26 August 2017 at 10:58 am UTC
OK so when is the summer update for linux actually out? Can I even see that on Steam somehow?
Nouser 26 August 2017 at 8:38 pm UTC
ExpalphalogI've never understood Civ being a multiplayer game. A single game typically runs me 20+ hours and that's without having to wait for anybody else to take their turn. Is multiplayer faster somehow or do people really sit there without sleep for days on end to play?

Simultaneous turns make it almost as far as playing with the IA. Also, we usually extend a single game across several 3-4 hours gaming sessions.
Expalphalog 26 August 2017 at 11:48 pm UTC
That makes sense. So I take it it's the sort of thing that you coordinate with your friends instead of playing against strangers?
  Go to:
While you're here, please consider supporting GamingOnLinux on Patreon or Liberapay. We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

We also accept Paypal donations and subscriptions! If you already are, thank you!

Due to spam you need to Register and Login to comment.


Or login with...

Livestreams & Videos
None currently, submit yours here!
See more!
Popular this week
View by Category
Contact
Latest Forum Posts
Facebook