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 donate through PayPal, Liberapay or Buy us a Coffee. You can also buy games using our partner links for GOG and Humble Store.

It seems Aspyr Media hit a small roadblock when trying to get the latest Civilization VI patch out for Linux, the one to finally give cross-platform online support.

Back near the start of August, we reported that Aspyr Media had put the patch forward to their partners to get it approved and put live on Steam. An hour ago, Aspyr-Blair commented on the Steam forum about the delay with it still not being released yet:

I've been at Gamescom since last Friday, so apologies for the delay in response. A crash bug was found on a specific chipset during final test/approval. We are fixing now, and hope to get the build back into approvals this week.

It has been a long wait, with the cross-platform patch originally due back around mid-April 2017. Honestly, I forgot all about it again because of the delay. That's what happens though, if something gets delayed again and again people do forget and move on.

Hopefully, it means the publisher only needs to re-confirm that specific issue is fixed. Otherwise, we might be in for another pause.

If you're after a copy of Civilization VI for Linux, head to Humble Store or Steam.

Article taken from GamingOnLinux.com.
9 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more here.
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
23 comments
Page: «2/3»
  Go to:

Doc Angelo 28 Aug, 2018
Quoting: PatolaThis seems to be an enormous development hurdle with likely lots of traps and unexpected behavior due to the small differences involved in calculations of different libraries. I just hope the knowledge that these people have accumulated due to this task is not lost being confined to the proprietary source code of this game. It would be nice if they published a document or book with 'lessons learned' from this programming experience.

It's not a new thing. It's well known. Apparently, some people at Firaxis just didn't give a shit or actually didn't know about it. If they wanted Civ 6 to be multiplatform from the start and used a mathematical library in a way that doesn't work the same everywhere, they (Firaxis) simply fucked up.
Patola 28 Aug, 2018
Quoting: Doc Angelo
Quoting: PatolaThis seems to be an enormous development hurdle with likely lots of traps and unexpected behavior due to the small differences involved in calculations of different libraries. I just hope the knowledge that these people have accumulated due to this task is not lost being confined to the proprietary source code of this game. It would be nice if they published a document or book with 'lessons learned' from this programming experience.

It's not a new thing. It's well known. Apparently, some people at Firaxis just didn't give a shit or actually didn't know about it. If they wanted Civ 6 to be multiplatform from the start and used a mathematical library in a way that doesn't work the same everywhere, they (Firaxis) simply fucked up.
Is there any programming literature on this problem or is it always case-by-case?
Doc Angelo 28 Aug, 2018
Quoting: PatolaIs there any programming literature on this problem or is it always case-by-case?

Of that particular thing? Not that I know of. But I'm sure that there are plenty of books on development where this is mentioned. Buddies of mine are devs (only partly in game industry) and from what I've heard, it is a well known thing. I've read about it myself rather often, also.

As far as I remember, floating point operations don't always get 100% exactly the same results on each platform/compiler/processor. Sometimes, they are just a teeny tiny little bit off, which may or may not throw your game logic up. If you have deterministic game logic and never check if the results are the same on each platform, you have a hard time fixing that afterwards when the game is finished.

As far as I understand, Civ 6 is deterministic. In multiplayer rounds, only the player input is synced, and every system calculates the game state for itself. If one system comes to different results, the round is out of sync. That's why there was no cross platform MP until now.


Last edited by Doc Angelo on 28 August 2018 at 10:01 am UTC
TheSHEEEP 28 Aug, 2018
View PC info
  • Supporter Plus
Quoting: Doc Angelo
Quoting: PatolaIs there any programming literature on this problem or is it always case-by-case?
As far as I remember, floating point operations don't always get 100% exactly the same results on each platform/compiler/processor. Sometimes, they are just a teeny tiny little bit off, which may or may not throw your game logic up. If you have deterministic game logic and never check if the results are the same on each platform, you have a hard time fixing that afterwards when the game is finished.

As far as I understand, Civ 6 is deterministic. In multiplayer rounds, only the player input is synced, and every system calculates the game state for itself. If one system comes to different results, the round is out of sync. That's why there was no cross platform MP until now.
That's pretty much the problem with floating points being transferred in multiplayer cross-platform. And that is actually very much common knowledge for any programmer worth their salt - but since nowadays most coders "learn" their craft in everything-is-done-for-you-boxes like Unity, of course this knowledge has actually gotten rare and whoever implemented MP in Civ6 just naively went with floats because "what could go wrong"...

But when you actually dig around and look for some guidelines about multiplayer programming, this problem is mentioned a lot.

What makes me sceptical about this actually being the problem here is that this would actually be somewhat simple to solve without taking months of time.
Replace all important float usages with fixed-point arithmetics (very slight performance and possibly memory impact), regularly sync the host state with the client states (especially doable in a turn-based game as those are rather slow by nature), ...
Once you recognize you have this problem, the solutions really aren't too hard to pull off. So... yeah, I somewhat doubt this is the (only or even main) problem here.


Last edited by TheSHEEEP on 28 August 2018 at 11:00 am UTC
Doc Angelo 28 Aug, 2018
Quoting: TheSHEEEPOnce you recognize you have this problem, the solutions really aren't too hard to pull off. So... yeah, I somewhat doubt this is the (only or even main) problem here.

Is it really that easy to translate the game logic from floating point to fixed without changing the behavior of the AI and other things? Even the slightest change that only occurs in extremely rare cases would render it non-compatible.
Kohrias 28 Aug, 2018
Quoting: TeodosioThis is NOT the way to support GNU.

I like how you call the operating system GNU instead of GNU/Linux or just Linux.
Teodosio 28 Aug, 2018
Quoting: Kohrias
Quoting: TeodosioThis is NOT the way to support GNU.

I like how you call the operating system GNU instead of GNU/Linux or just Linux.

Yes, the mainstream propaganda has been very effective in basically banning the word 'GNU'. There are many young, innocent souls out there that may get wrong ideas if they think about GNU too much, better keep them safe!


Last edited by Teodosio on 28 August 2018 at 11:43 am UTC
TheSHEEEP 28 Aug, 2018
View PC info
  • Supporter Plus
Quoting: Doc Angelo
Quoting: TheSHEEEPOnce you recognize you have this problem, the solutions really aren't too hard to pull off. So... yeah, I somewhat doubt this is the (only or even main) problem here.

Is it really that easy to translate the game logic from floating point to fixed without changing the behavior of the AI and other things? Even the slightest change that only occurs in extremely rare cases would render it non-compatible.
Not easy, no, but not half-a-year difficult, either.

On the other hand, I've witnessed people take multiple months to implement a prebuilt 3D sound library, so... *shrugs*


Last edited by TheSHEEEP on 28 August 2018 at 12:33 pm UTC
jens 28 Aug, 2018
View PC info
  • Supporter
Quoting: TeodosioThis is NOT the way to support GNU. Compared to this, we would be better off with Valve's Proton indeed.
The game should have been programmed from the start to be cross-platform.

Please be a little bit more reasonable. Its not like Civ6 is the classical multi player game and is absolutely useless in its current state. Single player worked very well from the start on. I think Aspire did/does a very good job here considering the low number of Linux player. I prefer quality over rushed releases.


Last edited by jens on 28 August 2018 at 4:58 pm UTC
Teodosio 28 Aug, 2018
Quoting: jens
Quoting: TeodosioThis is NOT the way to support GNU. Compared to this, we would be better off with Valve's Proton indeed.
The game should have been programmed from the start to be cross-platform.

Please be a little bit more reasonable. Its not like Civ6 is the classical multi player game and is absolutely useless in its current state. Single player worked very well from the start on. I think Aspire did/does a very good job here considering the low number of Linux player. I prefer quality over rushed releases.
I never played Civ multiplayer, I care about the patches.
I hope they develop their next game with Vulkan instead of trying to patch GNU support after the damage has been done...
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.
Livestreams & Videos
Community Livestreams
Latest Forum Posts