[ Originally from: http://people.qualcomm.com/ntenny/larn.html ]
  [ Corrected links: November 27th 2018 ]

Nathan Tenny's Variant ULarn

Back in the long ago, there was a "roguelike" dungeon-crawl game called Larn that came with a lot of UN*X installations. It was a small, fairly easy, weirdly addictive game that apparently owed more to some Commodore 64 games than to the other early roguelikes. It also had some spectacular (and kind of endearing) bugs, like the signed/unsigned confusion that allowed you to create money by effectively dropping a negative amount. The biggest bugs were fixed, and the game made much harder, in ULarn.

I learned C largely by fooling around with Larn, and when Mac OS X came out and was UN*X underneath, I had an attack of nostalgia and grabbed the ULarn source code to see if I could get it to build on the Mac. It worked with minor changes, and I inevitably found myself tinkering with the code and adding some features. (A lot of them are copped either from the Angband/Moria family or from the magnificent and little-remembered Mac game Dungeon of Doom, and in at least one place I inadvertently reinvented something from NetHack.)

I don't have the time or inclination to become a Real Game Maintainer, but a snapshot of what I've done with ULarn is available for download, in case anyone feels like playing with it.

A brief summary of the substantial changes:

About the multiple-attacks-per-round feature: The problem with Larn has always been that, once you get a lance of death (or Slayer in ULarn), the game becomes sort of munchkinish. Without one of those weapons, though, the jump in difficulty when you start encountering demon lords is almost insurmountable. I'm trying to fix that balance problem and remove the need for instakill weapons by allowing the player to have several attacks per round (dependent on level, strength, dexterity, weapon weight, and difficulty). I haven't (yet) actually deleted the instakills, but I think I've got the attacks tuned to where the game is decently playable if you pretend they don't exist. (I haven't really experimented too much with the endgame, though.)

The binary I've included was built under Jaguar on a blue-and-white G3, and I've verified that the game builds and runs under Panther on a G4; please let me know if you have any difficulties on other platforms. (I already know it doesn't work with earlier versions of OS X, and some people have been unable to run the binary---something to do with the location of shared libraries. It works if you rebuild it.) It's a terminal-mode app, but it should magically open its own terminal if you double-click on the application's icon.

Known bugs:

As an historical note: I've never really known anything about Noah Morgan, the author of the original Larn and hence, in some sense, the guy from whom I learned C. In looking for the source code, I learned that he died in the late 1990s. My inner Real Programmer feels sort of orphaned. If you enjoy the game, spare a thought for the author's memory.