This is it, the end of the road, the final boss. Will it be challenging and rewarding like old school games, or will you just spam attacks for a long time and / or be underwhelmed by how easy it is like newer games? All signs point to "yes".
In the previous article we discussed the processes and services that are likely to be running on your Linux box (also see the first and second articles in the series). In our final article we’ll discuss how the GUI in Linux works, and how you should get rid of it to leave room for playing games.
Unlike Windows and Mac, where there is a single overriding UI that all applications are built on, under Linux, almost every aspect of what you see on screen in a desktop context has many different approaches. From the window borders to the “start menu” equivalent to the window contents themselves, everything is handled by a different program. Historically, you would mix and match these separate programs to suit whatever style you prefer. Today, however, it is more common to choose a “desktop environment”, which is a collection of “matching” programs which will handle all of the different aspects of your UI.
One of these programs is your Window Manager. The Window Manager handles the surrounds of the programs running in your GUI. These Window Managers can be as simple to understand and use as Metacity, or as crazy and powerful as wmii. There are fairly minimal yet powerful ones like Fluxbox or visually configurable ones like Enlightenment. Each of these has been built for a slightly different audience which wants to achieve different things. These programs “control” your windows.
Then there’s a program which controls your “root” window, which is the thing behind all your windows (known as the “desktop” in Windows). Many window managers will set a background on your root window and that’s it. Some programs, like Nautilus are pretty much exactly like Windows Explorer, and will not only give you a file manager, but will also populate your root window with icons like “My Computer”, “Recycle Bin”, etc. However, Nautilus is part of a “desktop environment” (which, remember, is a collection of programs) called Gnome. What this means is that it’s intended to be used with a suite of programs, and may not “like” being used by itself.
There’s also usually a separate program which forms your “start menu” equivalent. Sometimes this menu is part of a Window Manager, and sometimes it is another program, like AWN which works a lot like the OSX Dock. You can also have desktop widgets, which are like those desktop gadgets you could get on Vista. Many Window Managers give some way to launch programs, but some don’t. The choice may seem bewildering by now. You can literally mix and match every little thing on your desktop, how it works, and how it looks. Many of these programs, from Window Managers to “start menu” style docks will also have theme support.
But wait, we’re not done yet! These are all programs which define how the whole desktop works, but it doesn’t say anything about the programs themselves! Some programs are written “raw” (and look the part) for Xorg, or may just use OpenGL directly (like games). But most programs use “widgeting toolkits”. Two popular ones are GTK and QT, but there are older toolkits available, like Motif/Lesstif, or Tk/Tcl. The important part to know here is, unlike the previous things we were talking about, the toolkits are libraries, and if you want to run your spreadsheet which is based on GTK, you’ll need GTK. And they all look a bit different. QT looks like QT, GTK looks like GTK, Tcl/Tk looks like crap. However, QT and GTK themes (widgeting toolkits, like everything else in Linux land, is visually theme-able) play nice with one another, so you shouldn’t really notice when you’re running a QT app and when you’re running a GTK app1.
But we’re still not done! Many of these apps will use standard APIs to “do things”, like perhaps have a global menu (which looks like the OSX menu bar), or perhaps show icons in your system tray, or a whole variety of other things which integrates with the rest of the apps you’re running, somehow. The Linux world has agreed upon standard ways of doing things, so (to some extent) these extra bits will work with whatever setup you have, as long as it makes sense.
If you’re confused at this moment, I don’t blame you. All this choice might make a Linux system enormously configurable, but it’s bewildering. This is why “desktop environments” exist. These are basically a collection of programs you use together and they work properly. A desktop environment could be Gnome, or KDE, or LXDE, or a whole host of others. All of these roll together a set of applications and configurations so that you can get up and running quickly. Some of them also let you slot in a program you like better to do a part of the desktop management job.
Unfortunately, the situation right now is none too great. Recently, Ubuntu launched Unity which was based on Gnome but wasn’t Gnome. Unity is used by default on Ubuntu. Gnome has also launched version 3, which is very different to Gnome 2. KDE has also started doing fancy things to support tablets and netbooks. What this means is that right now everyone seems to hate all of the popular desktop environments for regular desktop use. If you’re using Linux for every day use as well as gaming, this might mean a little bit of experimenting to see what you’re comfortable with. However, for gaming, this means little.
This is because I haven’t mentioned one of the UI “programs” which you interact with on a daily basis: the login manager. Your login manager is in charge of logging you in, and will also handle changing users and so on. When you login, the login manager usually lets you choose the type of “session” you want to start (which means “desktop environment” in this context). Let’s say you use Gnome for your regular day-to-day activities. I would recommend that if you want to game, you log out and log back in again with a different session. Something lightweight like Fluxbox running by itself. This will free up resources which you can use for the games. Of course, if you want to play a game quickly or a play a lightweight game, you can do this under your default session.
Eventually, I’m hoping Steam Big Picture Mode will get turned into a Desktop Session. This will mean that you would “log in” straight into Steam Big Picture mode, and could play all your games straight away in a console style interface. You can change your computer back to a productivity machine simply by logging out and logging back in again.
I hope these tutorials have given a broad but pragmatic overview of Linux, what it is and how to find your way around. Some of its advantages and disadvantages, some of the power and complication. Most of all, I hope it gives you the confidence to start futzing around with it. It’s an extremely versatile, fast, and powerful operating system. This is why it’s deployed in so many scenarios, from smartphones to supercomputers, by the biggest companies in the world. And best of all, there’s a small army of people looking to protect your freedoms in this landscape. Go out and enjoy the world of Linux!
Incidentally, if you’re looking for an app that’s a bit like a Windows app, go to www.linuxalt.com to find out about some common applications for Linux. Also keep an eye on OMG! Ubuntu! for news on nice Linux apps. I keep on top of Linux related gaming news on linuxgames.com. GL;HF
1 If you look carefully, you will notice. All the little things in a GTK app are subtly different to all the little things in a QT app, even if they have the same theme. Mostly it’s seamless though.