updated 04:56 pm EDT, Sat May 24, 2014
Stream Steam games from a Windows computer to OSX, Linux
Earlier this week, game purveyor Steam opened up the in-home game streaming feature to all users. In a nutshell, the feature allows users of a Windows PC to stream the video of a game to a satellite computer on Windows, OS X, or some flavors of Linux in real-time, with input provided by the satellite computer . All the "heavy lifting" of the game is done by the Windows PC streaming the game, as well as "on the fly" conversion of the video stream to H.264, allowing for the satellite computer with a much lower specification or incompatible operating system to play. How well does this work in real life?
Setup is simple. A user logs into a Steam client with the same user ID and password on two computers on the same local area network. The user then browses the library on the client computer to view games, and commence a stream by hitting the "stream" button rather than the "install" or "play" button, as appropriate. Steam streaming requires port 27036 to be open network-wide with no other traffic on that port.
The host machine (running Windows for now, OS X streamer support will launch shortly) has just a few settings. The main option is to allow the router to prioritize traffic from the stream, as well as toggling Hardware Encoding of the stream. Hardware decoding is on by default, but can be toggled if the game is low-load and is streaming to a less-capable client computer -- more on this in a bit.
Client options are a bit more complicated, but not terribly so. Advanced options include bandwidth limitations between 3Mbps to 30Mbps. Resolution limitation is set on the host machine, allowing constraint of a game streaming to a home theater PC on a 720p or 1080p television. Since the Steam client will scale the streamed video to suit the client computer, the best results are obtained when the resolution is limited to the native resolution of the client computer's display.
Our streaming game server is a quad-core i7, with 16GB of RAM and a 4GB AMD R9 290 video card running Windows 8.1. Our streaming clients are an assortment of Mac Mini computers from 2008 and up, a MacBook Pro 2010, a Retina MacBook Pro mid 2012, a Core 2 Quad computer with a Radeon 7200, and a first-generation Mac Pro with Nvidia 8600 video card. Also tested are a Microsoft Surface Pro 2, as well as a Dell XPS 18. We tried Ethernet, Gigabit Ethernet, 802.11g, 802.11n, and 802.11ac networks in our testing.
Games used ranged the gamut from Steam Greenlight title Broforce, Batman: Arkham City, Civilization V, Shadowrun Returns, X-Com: Enemy Unknown, and Call of Duty: Ghosts. In general, with all titles, we had no stuttering at all up to 1080p resolution on a HD television with a either a Ethernet or Gigabit Ethernet wired network.
Things started to get a little flakier with the more demanding titles like Arkham City and Call of Duty:Ghosts using the wireless network. We then (forcibly, in one case) disconnected all the other wireless users, and ran into no problems with 802.11n, but still had issues with 802.11g. Although Steam says that 802.11g or n streaming works, we really don't recommend it unless you're the only user on the network.
We ran some other unconventional tests from the streaming computer, like iTunes audio and video streaming, and the like. With traffic prioritization on, we had no issues with streaming while also using the same computer on a Gigabit Ethernet connection. Framerate suffered when performing the iTunes streaming with traffic prioritization off, or with a regular 10/100 Ethernet connection.
So, for best performance, the network pathway between the streaming computer and clients needs to be as "quiet" network traffic-wise as possible on at least a 10/100 Ethernet network. We're sure that if we hit the connection hard enough on a Gigabit Ethernet network, we'd run into the same issues, but we gave up trying to induce the problem after four concurrent video streams alongside the game. This all said, no matter how good the network performance, the streaming process injects a very small delay into gameplay -- we really couldn't time it as it was much less than a tenth of a second, but it was perceptible. If microsecond timing is vital for a player, then Steam game streaming isn't going to work. For most of us, or in games where response time has no bearing whatsoever, the tiny lag isn't a big deal.
Gaming is still a very tactile experience, and there are only just a few titles with optimal touch-screen interfaces. Virtual keyboards and the like work on the streaming client, but we heartily recommend a keyboard and mouse or other mechanical interfaces, rather than a touchscreen for game input. As such, we didn't care for the Surface tablet or the touchscreen on the XPS 18. As portable screens with keyboard attached, however, both devices performed admirably.
For OS X users, an important caveat for streaming is the minimum spec for hardware decoding of H.264 streams. Mac models equipped with the Nvidia GeForce 9400M, GeForce 320M, GeForce GT 330M, ATI HD Radeon GFX, Intel HD Graphics, and up are capable -- earlier hardware is not. This limits available choices somewhat for streaming targets, eliminating most hardware pre-dating 2009, but given that this is five years ago and an operating system four major iterations ago, this is less of a problem than it seems at first glance.
We see several use-cases for Steam's technology. Ventilation issues notwithstanding, the technology allows for a powerful gaming computer to be located someplace else than the main play-area, keeping fan noise and the like down. Alternatively, the technology opens up a large amount of titles for a home theater PC or even a Mac Mini connected to a television, which may not have the horsepower to push the pixels enough for a good gameplay experience.