Steam and Source on Linux
Jun. 6th, 2010 10:45 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
There's been some grumblings about getting Steam and Source-engine games natively onto Linux. And frankly put, it needs to be straightened out hard.
Lets get one thing straight: Steam's just a launcher and storefront. It doesn't need 3D, and it uses Webkit everywhere. Webkit's been ported already to Linux (see Second Life v2.0, Chrome, etc...), so "Linux isn't ready for Steam" really means "I don't know jack of what I'm talking about."
We're now down to Source-engine games. Some say the drivers are rubbish. I ask "what GPU are you running?"
If you're running ATI, then you're running on crud that is tuned for DirectX and gets updates every six months (when Ubuntu does it's updates). New GPU's come out every six WEEKS. ATI's lagging behind.
If you're running NVidia, then you're golden; NVidia not only pushes updates on a regular (read: faster) basis, they push decent beta drivers out too. NVidia's tuned for OpenGL, which is the Linux (and Mac) standard for 3D graphics. So you gotta run NVidia in Linux.
If you're running anything else, you need to upgrade. Period.
That's just for the eye candy, of course. We got the audio, or ear candy, to worry about too. And that supposedly is due to PulseAudio, GStreamer, ALSA, and SDL... which is deceptive when listed like that.
First of all, there is only one set of drivers for audio, and that's ALSA. That's what is in the kernel now. Most cards and almost all on-board audio is supported. Some cards allow hardware mixing of multiple channels, while others require ALSA to do that via it's own libraries. Needless to say, anything that plays sound goes through ALSA when it's said and done.
Second, PulseAudio is just a sound server; it plays cached bongs and blips and beeps on command, and does it slightly better than it's predecesor, the Enlightenment Sound Daemon or ESD. Ether way, takes the audio all to itself and demands you play through it. It's best stripped out of any distro and used to strangle the distro's manager.
Third, you have SDL, which is a portable shell for anything graphical or audio. You tell it to play something and it'll translate it and route it for you. Most any game will have it, because it's so damn useful.
Fourth, you have GStreamer. GStreamer is for taking various formats, munging them, and playing them through whatever you point it at, audio or video. It's very heavy weight, and of little use in games. It may be used in Second Life, but that may be through the Webkit libraries now.
What does this all mean?
If it does OpenGL and Alsa through SDL, then it'll game in Linux with an NVidia card in it.
Want a modern game that plays in it? Then get a copy of Penny Arcade Adventures' On the Rain Slick Precipice of Darkness. Get both episodes. That's 3D rendering there, baby, background music, effects, the whole nine yards.
Lets get one thing straight: Steam's just a launcher and storefront. It doesn't need 3D, and it uses Webkit everywhere. Webkit's been ported already to Linux (see Second Life v2.0, Chrome, etc...), so "Linux isn't ready for Steam" really means "I don't know jack of what I'm talking about."
We're now down to Source-engine games. Some say the drivers are rubbish. I ask "what GPU are you running?"
If you're running ATI, then you're running on crud that is tuned for DirectX and gets updates every six months (when Ubuntu does it's updates). New GPU's come out every six WEEKS. ATI's lagging behind.
If you're running NVidia, then you're golden; NVidia not only pushes updates on a regular (read: faster) basis, they push decent beta drivers out too. NVidia's tuned for OpenGL, which is the Linux (and Mac) standard for 3D graphics. So you gotta run NVidia in Linux.
If you're running anything else, you need to upgrade. Period.
That's just for the eye candy, of course. We got the audio, or ear candy, to worry about too. And that supposedly is due to PulseAudio, GStreamer, ALSA, and SDL... which is deceptive when listed like that.
First of all, there is only one set of drivers for audio, and that's ALSA. That's what is in the kernel now. Most cards and almost all on-board audio is supported. Some cards allow hardware mixing of multiple channels, while others require ALSA to do that via it's own libraries. Needless to say, anything that plays sound goes through ALSA when it's said and done.
Second, PulseAudio is just a sound server; it plays cached bongs and blips and beeps on command, and does it slightly better than it's predecesor, the Enlightenment Sound Daemon or ESD. Ether way, takes the audio all to itself and demands you play through it. It's best stripped out of any distro and used to strangle the distro's manager.
Third, you have SDL, which is a portable shell for anything graphical or audio. You tell it to play something and it'll translate it and route it for you. Most any game will have it, because it's so damn useful.
Fourth, you have GStreamer. GStreamer is for taking various formats, munging them, and playing them through whatever you point it at, audio or video. It's very heavy weight, and of little use in games. It may be used in Second Life, but that may be through the Webkit libraries now.
What does this all mean?
If it does OpenGL and Alsa through SDL, then it'll game in Linux with an NVidia card in it.
Want a modern game that plays in it? Then get a copy of Penny Arcade Adventures' On the Rain Slick Precipice of Darkness. Get both episodes. That's 3D rendering there, baby, background music, effects, the whole nine yards.