Tuesday, November 14, 2006

Linux, Games, and Techno Babble

I discovered a significant limitation to binary releases last night: they don't really stand the test of time. What is a binary release, you ask? Well, when a software developer writes a program s/he does so in source code format. That source code is then compiled into object code, also know as a binary ('cause it's all, like, ones and zeros). Almost every bit of code you Windows and Mac users download come in the form of binary releases. Linux, however, is different... the source is available (hence, "open source").

But not everything for Linux is available that way. Last night I decided to bust out the one and only commercial Linux game I own: Sid Meier's Alpha Centauri (affectionately know as SMAC). The company who ported the game, Loki, went out of business years ago; as did its support network. This wouldn't be a problem, except that many of the libraries that the game relies on have changed significantly since then.

If the game were released in source form, the problem could be resolved by a simple recompile. But the source is gone... probably held by whoever gobbled up the assets of the now defunct Loki.

So, what's a gamer to do? Turns out the fine folks over the Gentoo Wiki have already resolved this dilemma. They have unearthed the original libraries designed to run with SMAC and provided the necessary voodoo command to get everything working.

So, to all those folks looking to resolve this needle in a hay stack problem, here are the libraries in question and the magic incantation is as follows:
LD_LIBRARY_PATH=/path/Loki_Compat/ /path/Loki_Compat/ld-linux.so.2 /path/AlphaCentauri/smacx.dynamic
Of course, you will also need the latest patch, which was none-to-easy to find. And applying said patch also required some magic, since it also relies on a broken binary releases. However, you can just unpackage the archive with the --keep flag, edit out the patch verification code (which is what breaks the patch), and then run it just fine.

Public service announcement over.

No comments: