Patreon Logo Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal Logo PayPal. You can also buy games using our partner links for GOG and Humble Store.
Latest Comments by compholio
The huge 'Opportunity Update' for Surviving Mars is out
26 Apr 2018 at 1:16 pm UTC

Quoting: WorMzyIt has been stable since it launched for me?
In the livestream it seemed like Liam had a lot of trouble with it locking up...

The huge 'Opportunity Update' for Surviving Mars is out
26 Apr 2018 at 3:33 am UTC

Is it getting to where it's relatively stable?

Another Surviving Mars patch is out, fixing loading saves on Linux and more
23 Mar 2018 at 2:29 pm UTC

You generally have really good recommendations, and you clearly like this game, but I am very hesitant to get this with all the negative reviews on Steam. Hopefully you'll address these a bit in your livestream, as this looks like it could be a very fun game.

The developers of Solus are hoping to improve Linux gaming with snaps and their Linux Steam Integration
13 Oct 2017 at 4:33 pm UTC Likes: 1

Personally, I think that this is the wrong way to solve this problem. The ABI for major system libraries changes very rarely, so if your software doesn't work with different versions then that's either a bug that should be fixed or a problem with your software. I think that it would be far more valuable to have a standardized system to automatically LD_PRELOAD small hacks for end users so that their old software can run on new systems without them even noticing.

Did you miss Shadow Warrior for free last month? It's free again on Steam this time
23 Aug 2017 at 2:34 am UTC Likes: 4

Quoting: Shmerl
Still here? Okay, well, there's sadly no news on Shadow Warrior 2 coming to Linux. You can all stop emailing me asking me if I have any updates now
Can you try contacting Devolver Digital about it? Since they were more outspoken in the past, may be they can update on whether it's still even in the pipeline or not.
Maybe point them at icculus?

Linux game sales statistics from multiple developers, part 5
3 Aug 2017 at 3:58 pm UTC Likes: 1

Woah, I must have missed Planescape: Torment availability. Time to rectify that problem...

The RPG 'Eschalon: Book I' is now completely free, to celebrate being 10 years old
1 Mar 2017 at 2:03 am UTC Likes: 1

Oh man, I loved this game. It's really long though, I still haven't gotten to Book III...

Early Exclusive: Civilization VI to release February 9th for Linux with a discount, NVIDIA only for now
6 Feb 2017 at 7:44 pm UTC

Quoting: Purple Library Guy...
There are reasons why it's often a bad idea to get cute even if it seems to be saving (effort, bandwidth or whatever)
Sure, but working on Wine you run into all sorts of weird Windows programs ;) The idea behind it is actually pretty sound, but people that choose to do this should really use their own psuedo-randomizer rather than the system provided version. I would guess that a lot of people that choose this tactic come from a single-player game mentality, there you're just trying to make the results the same across saves to prevent people from reloading to get better loot.

Early Exclusive: Civilization VI to release February 9th for Linux with a discount, NVIDIA only for now
6 Feb 2017 at 7:18 pm UTC Likes: 2

Quoting: rkfg...
Wow, I've never heard of that. I presumed, in TBS the host has authority so it does all the random stuff and then just sends the numbers back to the clients. Deterministic engines are made to fight excessive bandwidth and accompanying lags if you have hundreds of units that are constantly moving. Not the case for TBS I guess... Still, an interesting reason for incompatibility.
The standard rand() implementation on any system is not actually random, it is very predictable. This is used to great advantage in many games, since by properly seeding the randomizer you can get consistent behavior without transmitting the full state between systems.

So, lets say you have a treasure chest and you want to make sure it always has the same contents no matter who opens it and without transmitting the contents to everyone. All you have to do is seed the randomizer with an ID for the treasure chest, if you do that then you just need to use the output of the randomizer to determine the contents. This means you don't have to transmit "plate mail (with all associated properties), sword (same deal), amulet (having fun yet?)", you just send "seed X" and all clients will run through the same randomization algorithm (calling srand() and then rand() an appropriate number of times).

If, however, your randomizer works differently on different platforms then you run into trouble. The problem you run into is that periodically you want to verify that a client didn't cheat, so every once in a while you send a hash of your state data - if any client mismatches then somebody cheated (or there's a platform difference). In my experience with Wine and RTS games this actually has to do with bugs in MSVC's trigonometry* instead of random number generation, but there are plenty of ways to get a state mismatch.

* This is frequently an interaction between MSVC's calculation technique and a processor bug.

Early Exclusive: Civilization VI to release February 9th for Linux with a discount, NVIDIA only for now
6 Feb 2017 at 3:05 pm UTC Likes: 3

Quoting: rkfg... I understand if there are issues with deterministic RTS engines, math could be slightly different on each platform and in the end the butterfly effect causes heavy desyncs. But in a turn-based strategy?.. Weird. ...
It is the same problem, it just (usually) has to do with the randomizer instead of the trigonometry. Wine has also struggled with getting this right in the past. As an example, rand() from MSVC is particularly crappy while the glibc version has a lot more randomness. Wine gets around this by implementing the crappy MSVC algorithm when an app tries to use MSVC's rand(), but this is not the only way to get random numbers. So, unless you capture all the ways that an application does its math differently on different platforms then you're going to have a problem.