Old X Games

So I've been recently submitting a variety of old X games to Mobygames, and figured I may as well document them here too, since it is my web site after all. Most of the games I will be posted were discovered when messing around with Caledra OpenLinux 1.3, though others were located through some other browsing and searches.

They even get an entirely new category!

The general scope of the first set of articles is to list games released prior to the year 2000, and written using technology from the 1980s. So, no to Qt, GTK, SDL, SVGAlib, or OpenGL/Vulkan, but yes to Athena, Motif or direct use of the X Toolkit Intrinsics. This scope allows for games that generally originated on Unix first, or used similar technologies or feel.

That said, I will probably post info on SVGAlib games in the future, as they were a fascinating and forgotten stepping stone towards SDL.

I am also going to omit extremely well-known games that are still under active development, such as the Athena version of Nethack and Freeciv (the latter of which now uses GTK anyways). The main (initial) purpose of this category is to highlight games that might have otherwise been forgotten. Most of these early X games have no sound, and have sparse graphics with very few (or no) colours.

The first set of articles will be posted in rough chronological order, based on whatever information I can find on the original release date. The release date is based on the first graphical version for the application, even if that wasn't technically for X windows, so long as it was similar to what was eventually ported. Such pre-X technologies include SunView on SunOS or Display Manager (DM) on Apollo Domain/OS, though there are several others. Going through the history of Unix graphics is quite a rabbit hole, so I suggest instead that you check out the Wikipedia article on the history of the graphical user interface if you are curious on how everything fits together.

Build Information

Most of these early games use the imake build automation system, which may be unfamiliar to most users, even those who are familiar with compiling source releases. These can be recognised by the prescence of an Imakefile in the distribution. The build steps are actually pretty simple, once you have the dependencies though:

$ xmkmf
$ make

Yup, that's all. You can also run make install, but be careful, as these will typically install to /usr/bin by default. You can define DESTDIR and BINDIR variables to redirect this, or use a tool like checkinstall to track what files are installed so they can be easily removed later. Either way, I suggest reading the generated Makefile before doing an automated install so you have an idea of what gets installed where. Or you can install by hand; there's typically only the one output binary and a single manpage for games this old.

On a modern Debian machine, the following dependencies should get you everything you need to build most of them (barring build issues):

Some old games could theoretically also use XView, though none of the set that I am currently writing about. If you find one, you will unfortunately need to use an older distro, as it has been mostly abandonded and was never upgraded to be compatible with 64-bit processors.

If you are downloading older Debian source packages to rebuild, be sure to download the original (orig) source archive, the gzipped diff file, and the description (dsc) file. On a Debian system, these can be automatically extracted and patched using the command dpkg-source -x {package}.dsc, optionally adding --force (prior to -x) if the old build dependencies can no longer be met. You can then attempt to use the Debian package build process to automatically rebuild the package. If it works, you don't even need to deal with the specifics; just type debuild -b -uc -us to try it (potentially with -d to override outdated dependency checks).

If you are on a non-Debian system, or if the above gives you trouble, they can also be extracted and patched fairly easily. To extract manually, simply extract the orig archive into a work folder, uncompress the diff file, change into the application's folder, then apply the diff file using patch, with a command similar to:

$ patch -p1 < $PATCHFILE.diff

Or, to do in one step from a gzip compressed diff file:

$ gunzip < $PATCHFILE.diff.gz | patch -p1

Then refer to the documentation or the scripts in the debian folder for build instructions.

A couple of the games were never packaged for Debian, but a Red Hat source package is available. In that case, the .src.rpm file can be extracted with rpm2cpio as follows:

$ rpm2cpio $PACKAGE.src.rpm | cpio -idmv

Note that this will extract everything into the current directory, so creating a separate work folder before extracting is recommended. The origial source package is one of the extracted files, which will need to be extracted as well. Once fully extracted, I suggest then reading the .spec file, as it will include the patches and build steps for the package.

Some games have additional issues building, but the fix was fairly simple. In these cases, I will also include my own patch to be applied on top of the source package. These can be applied using the patch command as well.


There are no comments yet.

Add a Comment
Comment Atom Feed