If you’ve followed my Twitter these past couple of months, some of you may have noticed I’ve been messing around with Valve-Produced software, namely Team Fortress 2, Source Filmmaker and Portal 2. Two of these runs on it’s Linux-based client (TF2 and Portal 2) and one does not (take a guess…), and while I enjoy Team Fortress 2 on my Windows 7 Partition, I want to get games running under my Ubuntu side of my PC.
Unfortunately for me, I run an AMD Graphics Card, the Radeon HD 5450 for those curious, and AMD has been known for essentially being very not-very-linux-friendly. To be fair, they have changed their stance, and they do try to make Linux Driver updates that actually does stuff, which is what Nvidia have done for ages. That being said, I’ve gotten a few recent games to work. Portal 2 runs fantastic on Linux, and, after a bit of tinkering, so does TF2.
The Windows one has some jagged edges on the Engineers dungarees.
Whereas The Linux one looks more shaded in, with smoother models
To help me run Team Fortress 2 at a windows-equivalent level, I had to download a Daemon script called “Preload*”. This allows you to cache information on programs that are going to run, so when you run them, it gets a performance boost, and it does so without causing a fuss. and it runs silently in the background. I initially tested it for Team Fortress 2, and it sped up my game loading times from 3 minutes of initial loading to about half that. The loading of maps was reduced as well, with the Payload Beta Maps loading in just under 2 minutes. It also (somehow) improved my Internet Ping in-game, so games ran better too.
Out of the box, I didn’t need to mess around with Portal 2. It just worked. This game, unlike it’s predecessor and TF2, don’t share assets, meanihng better quality anyway. The assets are remade for the HD gaming era. That means If you run modern games, such as Portal 2, on either Mac or Linux, it also looks alot better on Linux/ Mac than on windows.
This is because Windows XP, Vista, 7, 8 & 8.1 use DirectX, with DirectX 7 being used for low performance games >2008 and DirectX 8 being used for High Performance games. As of 2014, This is the same scenario for DirectX 9 ,10 and 11. DirectX is the default video renderer to use for Steam (and various other applications), as it’s easy to develop for. What Mac and Linux use is a software renderer called OpenGL. This is ,sadly, more C++ based, rather than GUI-It-Yourself. That means that, until quite recently, you had to have coding knowledge. The upside is, is that if you can port games to Mac, you can do it for Linux, albeit with a few changes to the code.
DirectX uses Software Levels, 70,80,90,95 and 98, to determine the rendering quality of the game, with 70 being the Lowest quality, and 98 being the highest. OpenGl doesn’t use this methodology. Without going into too much detail, It renders everything in High Quality, and then questions whether your computer can handle, say, Ultra High graphics. If yes, it sets it to Ultra High. If not, then it lowers it to High, or Medium. You can easily override this via the Game settings, and the settings will stick. What this also means, is that it can render even Low Performance games to look good, with smoother models and High Quality texture mapping, rendering the aforementioned graphic settings useless. Think of it this way: Low settings = High quality, but more jagged models, with less lighting effects, Medium settings = Higher Quality, with slightly less jaggedy models, and more lighting effects, and so on and so forth.
It’s helped by the fact Mac and Linux use OpenGL for all applications, and that it can reach the very deepest parts of your PC Pipeline, which basically means it can use your processor and graphics card more efficiently, as it can communicate with these parts in the same language (C++, HTML etc.), therefore meaning better graphical quality output.
Let’s get away from OpenGl, and onto a little hack I found, which also improved performance. So long as you have a login screen on your Linux OS, there exists a Steam Big Picture Login Launcher, which cleverly only loads resources that Steam needs to run (OpenGL, Python, etc), while Bypassing the OS almost entirely, again, only loading Steam. This significantly improves performance, as Ubuntu doesn’t load RAM-hogging utilities like Unity, and the desktop icons, and even the desktop itself, which causes slowdowns. You can also run FSGamer, which places a game you launch from it’s GUI to another, seperate, Xserver (another screen session). Like with the Login hack, it bypasses the OS almost entirely and loads only the things you selected. It currently i in Alpha stages, so it won’t work very well on Ubuntu 13.10+, which proves annoying for me, as I’m on Ubuntu 14.04 LTS.
Unlike Windows or Mac, Linux supports crude Controller support on the OS itself, which is more of curse than a blessing sometimes. If you disable it to NOT work as a mouse, then it’ll run perfectly under Big Picture, and other games with Controller support.
That’s all I have to blog about for now, but be sure to let me know Via Twitter (or below) to any other performance “hacks” that’ll improve Steam performance. Dribbles Out!
*If you cannot get Preload via the Ubuntu Software Centre launcher link inserted above, then download Preload directly Here: 32-bit+64-Bit: Download!