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.
Quoting: Doc AngeloThat'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"...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.
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
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.
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.
Quoting: KohriasQuoting: 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
Quoting: Doc AngeloNot easy, no, but not half-a-year difficult, either.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.
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
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
Quoting: jensI never played Civ multiplayer, I care about the patches.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 hope they develop their next game with Vulkan instead of trying to patch GNU support after the damage has been done...
I'm all for giving GNU credit, but calling Linux binaries having "GNU support" can be misleading.
Quoting: TeodosioQuoting: jensI never played Civ multiplayer, I care about the patches.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 hope they develop their next game with Vulkan instead of trying to patch GNU support after the damage has been done...
I really don't see what your problem is when multiplayer is not your focus...
Anyway, bringing Civ6 to Linux (for what I'm very grateful) already needed a lot of cookies. I don't think a Civ7 will come to Linux by Aspire, if a Civ7 happens. Reading comments like yours I would totally understand this :(
Quoting: jensAnyway, bringing Civ6 to Linux (for what I'm very grateful) already needed a lot of cookies. I don't think a Civ7 will come to Linux by Aspire, if a Civ7 happens. Reading comments like yours I would totally understand this :(
Aspyr have a lot of experience porting Civ games and doing so brilliantly. What I hope is that Aspyr will be involved in the developpelemt of future Civ games much earlier.
We actually have seen many times with Kickstarter projects that starting working on the Linux port after the Windows release is a source of massive delay like Divinity Original Sin or cancellation. I guess it makes the port much more expensive, so you're less inclined to port future games to Linux.
I do hope there will be a Civ7. If Firaxis have cross platform compatibility in mind from the start, then it should be much simpler for Aspyr.
See more from me