Sunday, February 9, 2014

Game Streaming on X1 Carbon 2nd Gen Haswell with Linux

I'm running Ubuntu 13.10 on my new X1 Carbon 2nd Gen. I debated whether to get a laptop with dedicated graphics card like the new XPS15 9530 or the Razer Blade, but then read about some solutions people are using to stream games from a dedicated gaming rig to a less-powerful linux laptop and thought I'd give it a try, so I bought the X1. My goal is to be able to play less-intense games on the laptop stand-alone, but to be able to play more intense games when I'm at home and connected to my gaming rig.

Obviously the experience on the laptop will not be as good as playing directly on a desktop with dedicated graphics, but lately it seems to be getting pretty good.

If you're not familiar with the concept of streaming games, there are a few things you should check out:

Steam In-Home Streaming:

Steam in-home streaming is in beta now, but it's working pretty well for me and I'm using it on wireless N. Ethernet or wireless AC will probably improve the experience. Not every game works - in particular if they don't support the "steam overlay" they won't work.

Games I've tried that work well: Blackguards, Skyrim, XCOM

Game that didn't work: Star Wars the Old Republic.

I haven't tested extensively, and obviously I'm not playing the most demanding games for low latency and high frame rates. But to hear about other people's experiences check out the steam forums.

To get into the beta you need to join the forum group from the link above. I got into the beta the day after I joined the forum group, but YMMV.

Splashtop:

Splashtop was developed initially for iPads to connect to desktops, but now there is a beta linux client that you can install through the Ubuntu software center. I couldn't work out another way of installing it.

The performance is pretty amazing if you're used to using remote desktop'ing with RDP or VNC protocols. Sound worked out of the box as well. The main issue I had with Splashtop is that mouse movements are not transmitted to the host, so the mouse cursor stays in the same position on the host while you're moving it, then "teleports" when you click. That's a problem for most games. Some people have used Synergy to solve that problem. I haven't tried it. Synergy is a general-purpose software to share a usb keyboard and mouse between computers on your network, which is interesting in its own right for kvm-switch-style functionality.

When you install splashtop initially, it will only give you low-resolution options, but there's a configuration file you can edit to give you 1920x1080. Instructions here.

Teamviewer:

The Teamviewer linux client uses Wine to run. You can download a .deb install from the Teamviewer website and then install it using "dpkg -i". My experience on Ubuntu 13.10, though, was that sound doesn't work because there's no pulseaudio driver in the wine libraries that are packaged as part of the Teamviewer installation. I found a fix that involved copying the pulseaudio library from a working copying the pulseaudio driver from a working Wine installation to the Teamviewer wine directory, but it didn't work for me on 13.10.

Some other free software alternatives:

RealVNC is way too slow for transmitting graphics. TightVNC is supposed to be faster, but I haven't tried it. TurboVNC and TigerVNC are forks of TightVNC, and might also be worth trying. The big difference in performance comes from compressing the stream from the host to the client. Particularly when the compression can be performed on the GPU rather than the CPU. I do not know at this point how that's working between the different solutions I've tried.