Linux Games HOWTO
Status: Curious
Joined: 13 May 2013
Posts: 5
Reply Quote
I wrote this as a total beginners guide for another forum. Not sure anyone here will find it useful but I post it on the off chance. Enjoy.

###Native Games###
There are many native games for Linux.

Older Games:
The majority of these games were from Loki. Some are from Linux Game Publishing. The rest were usually made by indie developers.
The problem with these older games are the dependencies which I will break down in order of commonality.

Modern distributions tend to use pulse audio as it is a far superior sound server. However pulse audio does not emulate Alsa/OSS.
It does however provide a wrapper program called "padsp" which attempts to allow old programs to use pulse audio instead of Alsa/OSS. Eg:
padsp ut

Unfortunatly long ago Alsa was used to emulate OSS. Most old games either used Alsa or OSS but some relied upon the way Alsa emulated OSS. This code is still part of the Linux kernel but to prevent conflicts with pulse audio many distributions remove it.
If your game relies on this code then although I recommend against it you can compile your own kernel with the code included. Pulse audio also started a project to modify old software to use pulse audio instead but success rate is low.

Often a game ships with a library that is out of date on your system. If you experience problems a good place to start is sifting through the provided libraries (.so) and see if there is a more recent version in your /usr/lib. The most common culprit is libstdc++.
What can be worse is when a game requires a library that your system doesn't have. Your Linux distributor may provide repositories where you can find the libraries you need. If not then is a very good resource. My final suggestion will be an old distribution ISO.
If a game simply fails you can normally say with some certainty that it was libraries. Thankfully there is an easy way to find the libraries a program depends on using ldd.
ldd /path/to/binary

Older games tend to be 32bit. In order to run 32bit games on a 64bit system you need the ia32 libraries which installs 32bit libs (.so) into /lib32 and /usr/lib32. Executables with an ELF32 class are then told to retrieve their dependant libraries from /lib32 and /usr/lib32. If you are running a 64bit OS but need to provide a 32bit library for a 32bit prgram then be sure to put it in /usr/lib32.

Some older games can't handle running with compiz. To disable compiz add the following lines to /etc/X11/xorg.conf
It is very difficult to tell if there is a conflict with compiz so best just try the following and see if it helps
Section "Extensions"
Option "Composite" "Disable"
You can remove the lines from xorg.conf to restore compiz at any time.
You will need root access to edit xorg.conf

Some self contained installers (particularly older ones on new systems) cough up an error like "tail: cannot open +NUM" because the enviroment is too new.
export _POSIX2_VERSION=199209
This will set the way back machine to old school and make your installer happy to run.

Newer Games:
Most recent games for linux tend to come from Id. The rest tend to be indie games ported by icculus.
The problem with these newer games is that they tend to need s3tc texture compression and some shading. This is a massive problem for open source drivers but I am going to show you how to enable these features.
DriConf allows you to turn on and off features for your graphics card using open source drivers.
In order to use s3tc you need the txc-dxtn library.

###Windows Games###
The wine project:
Currently the main way to install and use windows software. Note that at this time you can only install wine or wine64. One is for 32bit apps. One is for 64bit apps. There is no package that supports both.
The wine project is not an emulator, it is an API translator. As such it runs at almost the same speed as native software. I will now overview wine and its forks.

This is the main project. If software is rated at either platinum or gold it's a safe bet you can run it no problem. You can find ratings here: http// %20Applications&sOrderBy=appName&bAscending=true and also any additional tweaks needed to get a game running.

CrossOver (Games)
A paid version of Wine. They help fund the Wine project and add some proprietary components that improves game compatability.

GameTreeLinux - formerly cedega and winex before that.
It was forked into winex when wine was still alpha and made little improvement since. Since the wine project focused more on the directx API this project has slowly lost popularity and development.

###DOS Games###
If you remember DOS or have heard about some of these awesome games then be happy because you can run it on Linux.
There are a number of different DOS emulators but there is only one that dominates games... DOSBOX!

Don't forget that GUI front end:

Some great places to get DOS games:

###Console Games###
If you were a kid once (or probably still are) then you will remember gaming consoles when they were good. I will list some consoles and corresponding emulators. This is not a list of every emulator ever made, just a list of the emulators I thought worked best.

Sega - Genesis

Commodore - Amiga 500

Atari - Atari 2600

Sony - Playstation1

Nintendo - SNES

Nintendo - GameBoy Advance
VisualBoy Advance

Nintendo - N64

Nintendo - Gamecube/Wii

A great place to download roms:

###Tips, Tricks & Tools###
Finally this is the section for all the cool non specific stuff to help you out.

Remember that not all programs come with gui. padsp for example. These must be run from either a script or terminal.

Playing games alone in X:
This has many advantages other than just running games faster.
For this to work you must make startx available to run for all users. Open
and set
then save.
Create personal boot file for startx
nano ~/.xinitrc
add launcher for game and hash out other launchers because startx will only boot one.
#exec /path/to/game
exec path/to/game
#exec /path/to/game
then save it.
Enter root user mode:
sudo telinit 1
(skip next command if your not doing any networking)
/sbin/ifup eth0
replace eth0 with your networking interface
su username
(replace "username" with yours)
when done move .xinitrc
mv ~/.xinitrc ~/xinitrc
and exit until out of root user mode

A tool to help you with your games in wine:

A place to purchase Linux Games:

Winetricks allows you to install windows components that may be required:

Sometimes you will need executable permissions for a file to make it run:
sudo chmod a+rx ./binary

Sometimes root will own game files you need access to:
sudo chown -R user folder
sudo chown user file

Here is a good FAQ for specific games:

Some times an executable requires you to execute from within its current directory:
but using this script will allow you to run your executable from where ever you like
cd $exepath
just save it in the same directory as the executable and give yourself executable permissions to it.

A fantastic client to get games:
Back to top
Display posts from previous:   

All times are GMT - 8 Hours