Welcome!

Linux Authors: Michael Sheehan, Lavenya Dilip, Ian Thain, Bruce Armstrong, Ellen Rubin

Related Topics: Linux

Linux: Article

The Further Adventures of HLA

A work in progress

In April of 2003, I stumbled upon Randy Hyde's Web site for HLA (High Level Assembly). I was originally sent to the Web site via Google, a popular search engine. I wasn't searching for Assembly Language; rather, I had been searching for a freeware BASIC interpreter. Although I found "HLA Basic" (Randy's BASIC interpreter written in HLA), I was suddenly interested in learning more about HLA itself.

Within a few weeks, I had learned just enough of HLA to write a typical "hello world" program. I was quite surprised at the robustness of HLA; indeed, it was far more flexible than the BASIC interpreters I had been familiar with.

Thanks to veteran assembly programmers such as Frank Kotler, Randy Hyde, and Sevag Krikorian, I was able to complete a small adventure game shell within a month. Without their help, it's highly doubtful that HLA Adventure would have been completed.

By June of 2004, HLA Adventure reached version 2.08, and development was halted for over five months. As I anxiously awaited the release of Fedora Core 3 (having previously installed both Fedora Core 1 and 2), I began envisaging an even better adventure game than previously imagined. With an improved Fedora Core and HLA v1.72, I set about completing the next several versions of HLA Adventure.

I installed Fedora Core 3 over the Thanksgiving weekend, but ran into a small snafu when my CD-ROM forgot it was a 48x device and reverted back to 1994 speeds. I still have no idea why installation took so long. I believe my CD-ROM drive had been inadvertently dropped while I was installing it several months before.

Nevertheless, 3,600 calories and two days later, I installed Fedora Core 3 with minimal difficulty. Once running, I re-installed HLA into "/usr/hla." I made a quick configuration file in "/bin" and gave "bash" the permissions to run the Elf file HLA from the "usr/hla" location.

An arduous task lay ahead: finding out what to add to HLA Adventure. From my memories of Scott Adams and Adventureland, I thought about including a small underground cavern. This tried-but-true amalgamation of adventures past remains a staple of many present-day interactive fiction games.

In addition to an underground cavern, I included an additional bodyguard ("Tursk," an adventurer) and "a fiery hellhound" (guarding the cavern entrance). I also coded a flute into the game that when played put the hellhound to sleep. Finally, I rounded out the game map with an apple orchard and a tree overlooking the area (from memories of David Malmberg adventure games).

HLA Adventure runs on both Windows and Linux and is open source. To compile HLA Adventure (or make additions to it), Randy Hyde's HLA is required. The game includes assembly source (HLAADV.ASM), as well as HLA-compliant source code (HLAADV.HLA). HLA Adventure is listed on Sourceforce and has a project page there as well.

I welcome all additions and enhancements to HLA Adventure. The game already includes well over 220 rooms and several items, but can easily be expanded into a game rivaling modern day MUDs. If you'd like to contribute to future editions of the game, please e-mail me at dunric@yahoo.com.

More Stories By Paul Panks

Paul Panks is the author of "HLA Adventure," an adventure game written in Randall Hyde's HLA (High Level Assembly) language. His ultimate intention was for others to eventually contribute to this project, so in May 2003 he released it into public domain, including the source
code, so others could add to the game over time. Paul is a native of Phoenix, Arizona, an avid fan of pro football and creative writing, and became
interested in Linux programming through Red Hat Linux and Fedora Core.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.