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 F.Ultra
Some things developers might want to think about when bringing a game to Linux
6 Jul 2017 at 10:33 pm UTC

Quoting: rkfg
Quoting: EhvisI remember one game where the developer had a Unity3D game running within a day, but had dependency problems when starting from the Steam runtime.
STASIS is suffering from this right now. The engine needs newer libstdc++.so.6 than provided in SteamOS so it doesn't start there. So another advice: check your dependencies on older distros if possible and either ship the libs with the game or link them statically if you can.
Actually this is a very specially sad case. SteamOS supplies 6.0.20 but the Steam runtime supplies the 6.0.21 version that STASIS requires so the problem with STATIS is that it doesn't use the Steam runtime but the system one and that Valve somehow messed up their own distribution by supplying an older version for the OS than what they themselves support via their runtime.

For STASIS it should work on SteamOS if they changed their start script to look in the Steam runtime path for libraries before looking at the system path.

The Witcher 3 didn't come to Linux likely as a result of the user-backlash from The Witcher 2
6 Jul 2017 at 10:16 pm UTC Likes: 9

The stock exchange story does not hold water at all. Witcher 2 was released for Linux on 2014-05-22 and the blog post talked about the CDR share plummeting on the Warsaw Stock Exchange in 2014. Well this is the actual closing prices of the CDR share on the Warsaw Stock Exchange from the release to the end of 2014 and as you all can see the price went up, not down (it closed the year at +12.45% as compared with the day the Linux version was released).

| 2014-05-22 |      14.85 |
| 2014-05-23 |      14.66 |
| 2014-05-26 |      14.89 |
| 2014-05-27 |       14.8 |
| 2014-05-28 |       14.8 |
| 2014-05-29 |      14.89 |
| 2014-05-30 |       15.2 |
| 2014-06-02 |       15.4 |
| 2014-06-03 |      15.38 |
| 2014-06-04 |      15.32 |
| 2014-06-05 |      16.15 |
| 2014-06-06 |       16.5 |
| 2014-06-09 |      16.75 |
| 2014-06-10 |      16.58 |
| 2014-06-11 |      16.27 |
| 2014-06-12 |       16.5 |
| 2014-06-13 |       16.1 |
| 2014-06-16 |      16.25 |
| 2014-06-17 |       16.3 |
| 2014-06-18 |       16.7 |
| 2014-06-20 |      16.73 |
| 2014-06-23 |      16.35 |
| 2014-06-24 |      15.88 |
| 2014-06-25 |      15.44 |
| 2014-06-26 |       15.3 |
| 2014-06-27 |         15 |
| 2014-06-30 |      15.24 |
| 2014-07-01 |      15.07 |
| 2014-07-02 |       15.2 |
| 2014-07-03 |         15 |
| 2014-07-04 |      15.07 |
| 2014-07-07 |         15 |
| 2014-07-08 |       15.3 |
| 2014-07-09 |      15.23 |
| 2014-07-10 |      15.08 |
| 2014-07-11 |      14.95 |
| 2014-07-14 |      14.72 |
| 2014-07-15 |      14.85 |
| 2014-07-16 |      14.84 |
| 2014-07-17 |       14.9 |
| 2014-07-18 |      15.25 |
| 2014-07-21 |      15.33 |
| 2014-07-22 |      15.42 |
| 2014-07-23 |       15.6 |
| 2014-07-24 |       15.5 |
| 2014-07-25 |      15.63 |
| 2014-07-28 |       15.5 |
| 2014-07-29 |       15.5 |
| 2014-07-30 |      15.41 |
| 2014-07-31 |       15.3 |
| 2014-08-01 |      15.06 |
| 2014-08-04 |      15.25 |
| 2014-08-05 |       15.4 |
| 2014-08-06 |      15.08 |
| 2014-08-07 |      14.47 |
| 2014-08-08 |       14.5 |
| 2014-08-11 |       14.9 |
| 2014-08-12 |      14.77 |
| 2014-08-13 |         15 |
| 2014-08-14 |       15.3 |
| 2014-08-18 |      15.25 |
| 2014-08-19 |      15.69 |
| 2014-08-20 |      15.85 |
| 2014-08-21 |       16.2 |
| 2014-08-22 |      16.05 |
| 2014-08-25 |       15.8 |
| 2014-08-26 |       15.7 |
| 2014-08-27 |         16 |
| 2014-08-28 |      15.23 |
| 2014-08-29 |       15.5 |
| 2014-09-01 |      15.45 |
| 2014-09-02 |      15.55 |
| 2014-09-03 |      15.85 |
| 2014-09-04 |      15.89 |
| 2014-09-05 |      15.98 |
| 2014-09-08 |         16 |
| 2014-09-09 |       16.6 |
| 2014-09-10 |      16.75 |
| 2014-09-11 |       16.9 |
| 2014-09-12 |      16.61 |
| 2014-09-15 |       16.7 |
| 2014-09-16 |      16.89 |
| 2014-09-17 |         17 |
| 2014-09-18 |      16.74 |
| 2014-09-19 |      16.76 |
| 2014-09-22 |      16.73 |
| 2014-09-23 |      16.61 |
| 2014-09-24 |      16.59 |
| 2014-09-25 |      16.61 |
| 2014-09-26 |      16.59 |
| 2014-09-29 |      16.59 |
| 2014-09-30 |      16.59 |
| 2014-10-01 |      16.59 |
| 2014-10-02 |      16.63 |
| 2014-10-03 |       16.7 |
| 2014-10-06 |      16.95 |
| 2014-10-07 |      16.97 |
| 2014-10-08 |      16.74 |
| 2014-10-09 |      16.86 |
| 2014-10-10 |       16.4 |
| 2014-10-13 |      16.15 |
| 2014-10-14 |       15.7 |
| 2014-10-15 |      15.46 |
| 2014-10-16 |      15.56 |
| 2014-10-17 |      16.15 |
| 2014-10-20 |      16.26 |
| 2014-10-21 |      16.46 |
| 2014-10-22 |      16.42 |
| 2014-10-23 |       16.5 |
| 2014-10-24 |      16.65 |
| 2014-10-27 |       16.7 |
| 2014-10-28 |      16.68 |
| 2014-10-29 |      16.67 |
| 2014-10-30 |      16.65 |
| 2014-10-31 |       16.7 |
| 2014-11-03 |      16.64 |
| 2014-11-04 |      16.84 |
| 2014-11-05 |      16.73 |
| 2014-11-06 |      16.95 |
| 2014-11-07 |      16.57 |
| 2014-11-10 |      16.45 |
| 2014-11-12 |      16.39 |
| 2014-11-13 |      16.28 |
| 2014-11-14 |      16.44 |
| 2014-11-17 |      16.48 |
| 2014-11-18 |       16.9 |
| 2014-11-19 |      17.73 |
| 2014-11-20 |       17.7 |
| 2014-11-21 |      17.95 |
| 2014-11-24 |      17.99 |
| 2014-11-25 |      17.98 |
| 2014-11-26 |      17.85 |
| 2014-11-27 |       17.5 |
| 2014-11-28 |      17.53 |
| 2014-12-01 |      17.42 |
| 2014-12-02 |      17.98 |
| 2014-12-03 |      17.87 |
| 2014-12-04 |      17.39 |
| 2014-12-05 |       17.4 |
| 2014-12-08 |       17.3 |
| 2014-12-09 |      16.58 |
| 2014-12-10 |       16.8 |
| 2014-12-11 |      16.15 |
| 2014-12-12 |         16 |
| 2014-12-15 |      16.22 |
| 2014-12-16 |      16.22 |
| 2014-12-17 |       16.2 |
| 2014-12-18 |      16.54 |
| 2014-12-19 |      16.19 |
| 2014-12-22 |      16.15 |
| 2014-12-23 |      16.37 |
| 2014-12-29 |      16.36 |
| 2014-12-30 |       16.7 |

Looks like Dying Light is set to get more free DLC
16 Jun 2017 at 11:27 pm UTC

Quoting: Greaser
Quoting: Lakorta
Quoting: Guppy
Quoting: razing32
Quoting: Guppy
Quoting: razing322) Germany ? The heck is happening ? I thought only games with Nazi imagery got banned (for obvious reasons)
The obvious reason being a pathetic attempt at hiding their shameful history from public view. Remember nazi in game are always the villans so there is no chance of the game glorifying it :P
Sorry but have to disagree.
I met germans and I think they apologize too much.
What the Nazis did was a horrible atrocity , but I don;t think Germany today is Germany then.
How many horrible things were done in Europe , Africa , Asia since then yet Germany is held up as the example for human wrong doing. Doesn't seem fair in my mind.
I'm not saying blame Germans today for what happened then, I'm saying censoring media because they contain bits of history your not proud of is a dangerous and slippery slope. Instead own up to it, tech that it's bad and *why* it's bad.
They/We do. Germans are taught about Nazi Germany in school. It's just that Nazi symbols are forbidden unless they're for educational purpose.
And this is what I never understood.
For example movies have an educational purpose the same way as a game could have.
The Nazi Symols in movies aren't censored in germany.
But in general they're unconstitutionally and chargeble. So why is that?

Movies that handle the german history serve the art and games aren't subordinated to art yet officially.

Furthermore games are interactive and movies not! Sounds stupid right?

That's the official justification in germany.
Because it will be a long way before society at large will label games as art and the only exception in the German law are for "art or science, research or teaching".

The law itself is a remnant from the Allied occupation after the end of WWII. Of course Germany could remove these laws since the occupation ended decades ago but which politician in their right minds would suggest "we should really allow the nazi symbols again".

Bloodstained: Ritual of the Night shows off some action in a new trailer
12 Jun 2017 at 6:37 pm UTC

Quoting: razing32Cool if it gets released on Linux , but , is she fighting in high heels ? By the end of that castle , crystal skin will be the last of her problems...
I found the "knees inwards" defensive position far more troublesome to be honest. That looks really, really, cringe worthy.

Shadow of Mordor on AMD Ryzen CPU suffers from a performance hit due to non-optimal thread scheduling
30 May 2017 at 5:32 pm UTC

Quoting: GuestFrom a programmers perspective if you can manage your own thread priorities, the user can raise the overall process priority appropriately... or some other process manager could.. for example Windows auto boosts the front process's priority.

Moreover, cgroups is Linux specific, and PTHREAD_SCOPE_PROCESS is not. You have more chance of getting it well supported if it works like every other OS does.
Of course, but as I wrote it's not fun if/when there are other processes running on the same machine competing for CPU time with your threads since all the process scope threads in your application is seen as a single item for the global scheduler. Now I have no experience with programming games since I mainly do server stuff, but the problems that you describe sounds more being due to starting more threads than there are cores on the system which makes them compete with each other in the first place.

The Windows auto boost of the interactive thread is perhaps nice for a game but creates havoc for system daemon writers like me (and thankfully it can be user disabled [but only on the system as a whole]) with latencies going completely haywire every time a end user would move a window around and so on.

Quoting: GuestYou are thinking of forked processes, which are copy-on-write. Web servers typically use forked processes for resilience - if a worker sub-process dies, it can be re-spawned and doesn't crash the whole web server. It also provides for process isolation which increases security.

Threads implicitly share their processes memory. Again the confusion here is because threads were originally poorly implemented on Linux as a "hack" on fork().
Yes this particular scenario of a web server such as Apache works this way by forking but it's not mandatory nor is it always desirable. You can avoid heavy overhead IPC:s (and do note that such IPC have a much heavier overhead than the Infinity channel have on a Ryzen type of cpu architecture) and so on by using threads instead of forked processes even when most of the work load is not shared so still, there is no way for the kernel/system to know what to do with threads and a cpu architecture such as Ryzen more than give the developers tools for managing this on their own because it's only them that know if thread A will often share data with thread B but not with thread C and thus pin them so that threads A and B are always running on the same CCX while thread C can roam free wherever there are idle process time.

The problem here is not that the threads have access to a shared memory pool, the problem is that some of these threads actively do work on the same memory locations which if they run on different CCX:es will cause massive amounts of copying over the Infinity channel.

IF this was "solved" by the kernel then the consequences would be that all threads created by a application would be pinned to schedule on the same CCX leaving quite a few cores running completely idle and all this just to handle a particular work load where the threads do heavy work with the same memory.

Shadow of Mordor on AMD Ryzen CPU suffers from a performance hit due to non-optimal thread scheduling
29 May 2017 at 1:33 pm UTC

Quoting: GuestI'll try to explain PTHREAD_SCOPE better...

As you know, processes on Linux all have a "priority" value, which is how the kernel scheduler picks the next process to be run. Every process has at least one thread, and games often use multiple threads to do things. Each thread in a process also has a priority value, and this influences which thread in a process the scheduler picks to run.

On Windows, OS X and BSD, thread priorities are *relative* to the processes priority. That means when the kernel picks the process to be run, the scheduler can also see which of that processes threads most urgently need attention. The process itself is completely free to set it's threads priorities as appropriate.

However on Linux, there is a bit more of a potted history with threading. Originally the kernel didn't have threads at all, only processes. Threads were later added by creating processes which shared another process's address space. So it's a bit of a bodge really. This is why if you use the right parameters to "ps", you can see threads, and why threads have a pid_t value.

So on Linux, a threads priority isn't relative to it's owning process - its relative to all the other process priorities too. The problem with this is that changing process priority is, quite rightly, a privileged operation... otherwise it'd be easy to starve out more essential system processes by a rogue process setting a high priority. This also means that a process cannot effectively set its own threads priorities. This means a game is unable to hint to the kernel effectively which of its threads should get priority over others. This is often the cause for stuttering in sound for example, because you cant hint that your sound engine thread needs priority over that background IO thread.
On the other hand a process scope is not so much fun if you run other applications at the same time since all the process scope threads in your application will now be seen as a single entity when it competes for CPU time against all the other threads from the other applications. These days the inter thread intra process priority is handled with cgroups but that is not something that I've tried.

Quoting: shirethroneVery interesting read. I like to have background information.
Do developers have to act or the kernel to fix this issue?
This should be a developers fix mainly because what is happening here is that you have a application where several different threads will perform write+read to shared memory, at the same time you have lot's of applications where none of the threads share memory for anyting (like say a web server) so there is no way the kernel might know which of your threads are sharing memory or not so that is not much it can do. So this behaviour should be apparent on any OS as well.

Shadow of Mordor on AMD Ryzen CPU suffers from a performance hit due to non-optimal thread scheduling
27 May 2017 at 11:53 pm UTC

What's the output from something like cat /proc/cpuinfo |egrep "processor|physical id|core id" | sed 's/^processor/\nprocessor/g' on a Ryzen or FX? Just curios how they tell the system which cores that share the same CCX, which is important to know if you want to optimize your code for architectures such as this.

Feral have released the Linux requirements to run Shogun 2 with NVIDIA, AMD & Intel supported
19 May 2017 at 7:39 pm UTC

Quoting: Mountain Man
Quoting: F.Ultra
Quoting: Mountain ManThere's a SteamOS 2.0? When did that happen?
November 2015 so quite some time ago ;)
That was 2.0?
Yet, 2.0 was when they changed their base from Debian 7 to Debian 8. If I'm not mistaken it was the version they released back when the Steam Machines where to be released.

Feral have released the Linux requirements to run Shogun 2 with NVIDIA, AMD & Intel supported
19 May 2017 at 5:26 pm UTC

Quoting: Mountain ManThere's a SteamOS 2.0? When did that happen?
November 2015 so quite some time ago ;)

Diluvion, the deep sea exploration game with RPG elements is getting a Linux beta
21 Apr 2017 at 4:15 pm UTC

Quoting: Beamboom
Quoting: F.UltraLooks like most negative reviews comes from fiddly controls. Hopefully that is something that they can and/or will improve.
Fiddly controls, camera issues, bad interface, unpolished, multiple bugs... To quote Destructoid:
"I can't remember the last time I had to go to a game's forum to get a bug resolved just so I could advance. It's a lesson in wonderful concept and poor execution."

https://www.destructoid.com/review-diluvion-422788.phtml [External Link]
I ignored the comments about bugs due to the "to get a bug resolved", too me that sounds like the devs are active and are fixing the bugs as soon as they are found.