The "Other" Gaming Problems in Linux

Warning! This post is not intended as flame-bait! It is merely to present and discuss issues often overlooked when people begin to look at the usability of Linux for gaming. I use Fedora 21 as my daily driver, I am not a Linux hater (: Also: this thread is directed at issues present to native Linux gaming. Not virtualizing Windows.

If you know of a solid workaround for anything mentioned on this thread, link it!

My first and foremost issue with gaming on Linux, other than driver performance, is peripheral support. Most guys who just wanna try Linux out to see if it is practical for them don't wanna buy a new mouse and keyboard just to make sure their extra buttons/macros/features work. I believe there are a few manufacturers who offer Linux support, but the majority don't. For instance, not even my thumb buttons on my Razer DeathAdder work out of the box in Linux. The easiest solution would be to buy a mouse and keyboard that have official Linux support (I happen to have wanted a new set anyway) but that is not the most economical solution.

I started playing CS:GO on Windows, but I have since moved away from that platform. I play at a relatively high level (LEM) and I had my config and mouse settings PERFECT on Windows. I want to play on Linux, however the tools are not there for me to be an effective player. I assume my mouse is running at the factory 3500 DPI, whereas on Windows I was using 400 DPI. I am looking for a simple gaming mouse with hardware DPI selection...

I could care less about my keyboard macro keys, never used them anyway (aren't useful for the games I play) but I'm sure there are some who do. However I really liked being able to use the thumb buttons on my mouse for PTT in TeamSpeak. There just isn't a better key for that use to me in terms of comfort and not interfering with other system functions.

I digress. What are your specific but overlooked issues with gaming on Linux? Remember, we aren't here to discuss how many games are on Linux, performance, etc...

The issues aren't with Linux but with Razor if they would open source their code or submit code it wouldn't be a problem.

I get that, trust me. But well all know Razer isn't going to do anything about that. It's up to us to either find ways to make things work, or buy from other vendors.

That's why I wanted to make this thread, to sort of document the options that are out there for Linux users who take games seriously.

Additional mouse(/keyboard)buttons are possible. But it requires some (sometimes hardware specific) work.

I made a blogpost about my fiddeling with the Logitech G600. There are a lot extra buttons + gshift stuff blabla. It was some hrs of work to be true, but since it workes I can do nearly everything with it. And that without any shitty driver software (not that the logitech software is that bad). Even more complex macros or whatever.

http://martins-prolog.blogspot.de/2014/09/logitech-g600-in-arch-linux.html

https://wiki.archlinux.org/index.php/All_Mouse_Buttons_Working

I think most decent mice have dpi buttons on the mouse itself, that always work even without proprietary application software. Most mice also have an LED indicator for the dpi setting on the mouse, and most mice are just class compliant USB HID devices.

Mouse buttons are often mapped in linux in a very easy to configure way, basically just opening the hotkey dialogue and clicking the button to define it suffices.

What interests a lot of CS:GO players, is how to set the polling rate at 500 Hz. That is also very easy to do, and it will work with any class compliant mouse, even with very cheap ones that don't have the function to set the polling rate to 500 Hz on Windows because they lack drivers. In linux however, this is not a problem at all, if the sensor is fast enough, any mouse can be polled at 500 Hz (or any other polling frequency).

The same goes for keyboards by the way. If the keyboard controller can handle it, the keyboard can be polled at a higher frequency than the standard frequency.

And this is the cool thing: in linux, you can even set PS/2 devices to poll at a higher rate! PS/2 devices normally have a mere 100 Hz polling rate, making them pretty slow in comparison to modern USB devices in terms of latency. In linux though, it's possible to change that through config, even though it's a little more involving that to set the polling rate of a USB HID.

The reason why CS:GO doesn't work on linux, is because it's nerfed. It "feels" completely different than in Windows, because the simulation latencies are completely different, and when you look at the netgraph details, those suggests that wait states have been put in place, and the way the game feels, suggests the same. The simulation timing is completely different. CS:GO is one of those rare games that require very specific hardware and a very specific config. Even in Windows, CS:GO still - even after all of those years - has a lot of problems. Lately, there have been massive lag problems.

As a LEM, you'll probably also be frustrated by the details in the simulation that keep changing, only noticeable to more skilled players, but they make a big difference in the gameplay, even in Windows, the experience changes regularly because of changes Valve implements. This has nothing to do with linux as such, it's made maintaining by Valve.

To be perfectly honest, I think that it's just not possible to release a timing sensitive game like CS:GO on multiple platforms. I think that it's impossible to truly get the experience right, and level the playing field. If Valve wouldn't nerf the linux client and would make a real native linux client next to the Windows software console client, all the pros would want to play on linux, because the simulation would be much higher performance, network latency would be less, etc... obviously Valve doesn't want that, and they also don't want discussions in the competition about the right to use this or that operating system, so they just nerf the crap out of the linux version, and that settles it for them.

So it's kinda like Valve saying "fuck you" to Linux... Great.

I think I may just sell my current hardware so that I can have the proper equipment for PCI passthrough (I know there are different types, just not if that is what it's really called lol). All I really need to do is trade my 4670k for a non-K, and see if my motherboard supports what I need.

In a properly configured Windows VM, could I see the same experience as running CS:GO on a normal Windows computer?

Normally you should be able to just configure your buttons in settings for your applications. I think _maybe_ some devices might not pick up all the buttons on a device and you need to set how many buttons a device has in xorg.conf, but this is rare.

running xev i can see it picked up all 6 muttons on my mouse without any configuration needed, this should be the case for most mice, and most input devices.

Yeah, TeamSpeak only picks up my 3 main mouse buttons. I ran xev, but I'm not sure what I'm doing. It seems to react to all 5 mouse buttons however...

Probably a case of proprietary crap software. Some games i just tried don't properly recognise two buttons on my mouse but recognises left, right, and thumb button fine. I think you can set it up in xorg.conf to recognise each button, possibly look at this for some info on it. It may or may not be up to date or work.

In a properly configured Windows VM, could I see the same experience as running CS:GO on a normal Windows computer?

I'm curious about this as well. Do you also passthrough your kb and mouse or is there a software layer in between that can cause additional lag or other problems?

I was hoping the CS:GO experience on Linux would be better than on OSX. Apparently Valve does not give a damn about anything but the Windows version. I wonder why they even bother releasing it on these platforms if they are just going to half-ass it. You can't complain about the price but this is early-access quality.

Yeah, I don't like what they have done with the Linux version of CS:GO. I would just love to move entirely away from windows, but I just can't have the same gameplay with it as I do in windows, so I can't abandon it! For whatever reason I cant get it to run properly and whatnot, but that's not what we are here to talk about. I have tried for a while to get my macro buttons on my Razer BlackWidow to work, but to no avail! However, all the buttons on my mouse worked right away with Linux, I have Mint 17 Cinnamon so obviously it could vary.

Wendell and Logan did som test with Windows as a VM using KVM. On some games they got an 5-10% performance increase other ran very near bare metal performance.

When playing one of these arcade-style shooters I don't really care about a 10% percent average fps increase. If you play them competitively you'll probably have all the eye-candy turned down anyway because it's just distraction. What's more important is that the game has consistent fps, runs smooth and feels snappy.

I'm not sure how you could benchmark responsiveness. Maybe you could mock a USB mouse using software to have consistent input and then compare the screen captures of different system hardware/software configurations? 

Is it possible to install and run your peripheral software (like Razer Synaps) using wine? I wonder if that would work...

Otherwise, I would suggest just running windows in KVM and play your games that way so you can have all your settings just as you want.

 

I really feel you on this one. When I had to wait a little while for my money to come in I tried going Linux, ( I thought I was going to have a great time and "vote with my wallet") ubuntu distro as it was noob friendly. Playing games it was such a Nightmare, nothing was working right... Nothing was working in the first place and the performance was soooo bad. In csgo I would get 40fps. Okay that's Driver support. Some people told me to go and find the program's for dpi change drivers configure everything to achieve more fps, but what is that gonna do when I come home I want to sit down and relax  while playing a game not searching 6 hours for why my csgo wouldn't even launch, because you have to force steam to detect nvidia gpu instead of my AMD. When I moved to windows 8 the most hated windows apart from vista I loved it I mean loved it after what Linux showed me even the Mac would have been better. I really enjoyed some of Linux features, but all those videos of Nixie Pixel talking about Linux gaming nahh don't want any of that. :( I'm going to make an effort to try and give linux another shot at me, with a new PC. I truly hope that it became better.

This is the same reason I still have Windows 8.1 on my gaming PC. I tried wine and it only works for some games. I don't game competively so I can sacrifice a few FPS but I would rather not when I know the hardware is more than capable of running the games without breaking a sweat.

I have tried a KVM several years ago. I know much more about Linux now that I have been a regular user so I may have to look into building Windows in a KVM again. I would love to run my laptop with Windows only in a KVM. Most of the time I boot into Linux and I need to reboot into Windows if I want to run something Windows specific.

A good thing for people to try in Linux for Gaming is: Running the Phoronix-Test-Suite. Especially if you install the Development Version (5.6) and run the Unreal Engine 4 benchmarks or Unigine Benchmarks. on my system with the proprietary FGLRX drivers for my 7970, I got ~45 FPS on high settings in Unigine Valley at 1920x1200.

http://openbenchmarking.org/result/1501302-KRDU-KRDUCKY62

I recently found out on Mac that using renice on the game's process helps a lot with mouse responsiveness and even gives a boost to frames per seconds.

Here's the reddit post with the original trick: http://www.reddit.com/r/macgaming/comments/2tf67f/ever_tried_prioritizing_your_game_with_nice/. I'm sure you can change it to work on Linux.

The issue is, Valve doesn't care unless they sell games. Most people don't notice the virtualization going on, so Valve won't make a truly native client. My question is: if you're going to release a virtualized client, why not use something like KVM as the back end so you can play every game? Then, Linux would be the ultimate gaming platform (if you consider KVM it already is).