Since it has come up already it is time I properly introduced the General Graphics Interface, a since abandoned effort to create a unified graphics library that aimed to be portable across all platforms. Rather than having games and applications display to say X11 or SVGAlib directly, GGI would streamline that process by allowing developers to target just the one interface. Adoption was limited largely due to the success of SDL, but one game which did rely on it was U.R.B.A.N The Cyborg Project.
The RPM package for U.R.B.A.N created by Karol Pietrzak has a typo making it depend on "libmikmo" as opposed to MikMod, but you can work around this by passing the the --nodeps flag while installing the package. You will also need to download the sound.tar.gz archive and extract it to the /usr/share/urban directory, as the sound effects were kept apart from the main game due to them being a whopping 8.6 megabytes in size. Now that was a sign of the times.
An action platformer first released in 1999, you play as Urban Gutter, a man taken by an evil scientist to a secret military base and changed into a cyborg against his will. The acronym in the title then is a bit odd, but your one goal is to escape and enact as bloody a revenge on the world as possible. In this regard U.R.B.A.N strikes me as being the free software Postal, if arguably even less artful in its presentation. Any hope for true catharsis here often gets lost in frustration however.
U.R.B.A.N allows you to move one tile into the foreground and one into the background, but the dead on perspective gives you very little feel for this. To be most effective the game either needed to be seen from an angled view, or have shading to show a visual difference between the varied levels. As it stands you can just about navigate, but you will still find yourself often missing jumps and shots because of it, with some mandatory platforming only possible through keysmashing.
Combat is also imbalanced, with you taking too little damage from bullets and way too much from explosives; the only effective strategy I found for taking out the grenadiers for most of the game was by backing away and shooting at them blindly using my starting rifle from off screen. Worse still are the land mines, which are represented by just a few red pixels flashing in and out on the ground, and are used for some real mean traps designed to burn through all your lives.
Your arsenal will expand to include flame and freeze throwers, and in the late game a rocket launcher and minigun, but most of these still force you to stand in the line of fire to use. There are also some other novelties in the form of futuristic tech weapons that bafflingly do not seem to inflict any damage to the final boss; instead, I had to use the rocket launcher, minigun, and then my starting rifle to take the tank down in that order, all while treating my lives as a consumable resource.
This all feeds into my grievances with the save system, with it being checkpoint based with you only allowed to save your total progress at the end of each level. Quicksaving can absolve a great many sins, and U.R.B.A.N was committing plenty, with your lives needing to be cherished for use on the minefields rather than as a cushion for any other mistakes. You cannot even pause as escaping to the menu ends your session, and it also started to lock up when reloading the last two levels.
In spite of my complaints there is still a strong game buried underneath all these vexations, with U.R.B.A.N sporting high quality pixel art and an impressive tracker music score. The sound effects can be a bit sparse at times though, and many of those that are there are lifted from other media; a complete audit would be needed to determine which assets are free content and which infringe copyright, a major hurdle to anyone hoping to craft an updated and fixed up version of the game.
If ported to a modern SDL version and given some retooling this could become something a of a free software classic, but as it stands it is now just seen as an old freeware oddity, far easier to play from DOSBox on a modern computer than with the native Linux binaries thanks to the deprecation of GGI. NetBSD does still package the game, and I even tried to install that package through pkgsrc on Arch Linux, but the build failed due to LibGGI refusing to compile.
This is unfortunate, as the cheat codes "LINUSISGOD" and "LINUXRULES" clearly show that the Swedish developers were indeed friends of the penguin. In fact, typing in "MICROSOFT" will kill the player instantly. All that being said, U.R.B.A.N The Cyborg Project was not alone in being a freeware action platformer from the turn of the millennium to later have its source code released, and the next one will allow me to highlight the Allegro game library instead.
Hamish Paul Wilson is a free software developer, game critic, amateur writer, cattle rancher, shepherd, and beekeeper living in rural Alberta, Canada. He is an advocate of both DRM free native Linux gaming and the free software movement alongside his other causes, and further information can be found at his icculus.org homepage where he lists everything he is currently involved in.
You can use your Fediverse (including Mastodon, among many others) account to reply to this post. You can also follow my Mastodon to be notified when new parts of this series are released.
The website for U.R.B.A.N The Cyborg Project is archived here:
http://urban.bengburken.netThe RPM package for U.R.B.A.N The Cyborg Project can be downloaded here:
http://urban.bengburken.net/files/linux/rpm/urban-1.5.3-2.i386.rpmRPM packages for GGI for can also be downloaded here:
http://urban.bengburken.net/files/linux/rpmThe sound effects tarball for U.R.B.A.N The Cyborg Project is archived here:
http://urban.bengburken.net/files/linux/sound.tar.gzThe raw source code archive for U.R.B.A.N The Cyborg Project is archived here:
http://urban.bengburken.net/files/linux/urban-1.5.3.tar.gzAnd the NetBSD package for U.R.B.A.N The Cyborg Project can be found here:
https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/games/urban/index.html
Licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)