Sunday, April 28, 2019

Game 60: Rogue

Download any number of Rogue versions here (I will be using Roguelike Restoration Project 3.6.3 DOS DJGPP):
http://coredumpcentral.org/download.html

Games that originated on mainframes have always proven philosophically troublesome for a retrospective approach. What do we count as the original release? They underwent continuous development, and though they lacked discrete “releases” in the sense that all commercial games were at some point considered done and distributed to consumers, these mainframe games were played by somebody at most stages of their development.

Often, the choice of which version should represent the game is limited by what’s available. Zork is listed on Mobygames as a 1977 release, but there are no binary copies out there, and the only extant copy of the source code is from 1979.

In the case of Rogue, one of very few mainframe-born games to achieve whale status, we have many different versions floating around, but the genealogy remains unclear. Rogue is listed on Wikipedia as a 1980 Unix release, with Glenn Wichman and Michael Toy as its original authors. There are three different “Rogue 1.0” versions released for DOS, all mysteriously credited to “Jon Lane” and “Mr. Mctesq was here.” The oldest files inside any of the archives are dated to 1983.

Then there are a few “Rogue 1.1” releases by Lane and Mctesq including source code, and some “.1” releases by Lane again.

The Rogue 1.0 versions have this title screen:



Ingame, it looks like this:



Another page lists various “Rogue 3.6.x” releases and is more consistent in its versioning. The page claims this was the first version ever widely released, in 1981. The earliest version in the list is two source code archives for 3.6, and the earliest binary is a DOS port of 3.6.1.

The 3.6.1 version looks like this:



Between version 1.0’s color graphics, the IBM-ASCII graphics, more extensive ingame help files, more DOS-friendly keyboard commands (such as support for arrow keys), and the 1983 copyright date and credit to Jon Lane, I must conclude that version 1.0 is actually more recent than 3.6.1.

But if this is the case, why is the “new” one designated version 1.0? And why is the filesize of the “old” 3.6.1 five times larger than 1.0, and the file itself much newer, dating to 2000? My guess is that 3.6.1 was compiled for DOS in 2000 using a then-modern compiler which added some bloat to the file, but the source code was relatively unchanged from its state in 1981, except for what was needed to make it work in DOS. And I would guess that the “version 1.0” is merely the first version distributed by Artificial Intelligence Design, and was based on whatever the mainline Rogue branch was like in 1983, but adapted to DOS and built with a more efficient compiler than the 2000 source port of 3.6.1.

Having spent some time with various versions, I’m most satisfied with “Roguelike Restoration Project 3.6.3,” which I think offers the best balance between authenticity to the 1980 original, stability, and convenience. It was built in 2006, but I can’t find anything anachronistic about it (except for support for arrow keys instead of vi-style hjkl, but you can use those too).

There is a big difference between the Windows and DOS versions; the Windows version defaults to a 120x30 character display mode while the DOS version is 80x25, resulting in the Windows version having larger dungeons.

Win32 Rogue and its extra wide dungeons


I don't know which one is more authentic, but I'm sticking with DOS since Rogue is hard enough without having bigger dungeons. I suppose I could get even closer to Rogue’ing like it’s 1980 by getting the 3.6 source code and building/playing in a Unix or BSD environment, but the work/reward ratio seems unworth it.

Incidentally, there's even a z-machine version of Rogue. The fact that it even works is both a testament to the genius of Infocom's coders and to the madness of Roguelike fans.

For my playthrough, there’s the issue of how to deal with Rogue’s permadeath. My policy, which I formulated with Rogue in mind, has always been that savescumming is permissible, but to limit potential abuse, I limit myself to saving only after 30 minutes of earnest, uninterrupted play since my last restore or restart. Rogue, of course, lends its namesake to the category of Roguelikes and more recently Roguelites, games with the distinguishing feature that they do not permit you to restore games in order to undo your mistakes or misfortunes. Rogue wouldn’t be Rogue if you could just rewind the clock after every bad outcome until you finished the game with a series of perfect decisions and dice rolls from start to finish!

I have beaten pedit5 and dnd without any sort of savescumming, but I had to. Those games, as with all PLATO games, can only be played online, with your save files hosted remotely, making it impossible to cheat the system by backing up your saves yourself. Beating them fairly was reasonable because pedit5 is short, and dnd is forgiving of cautious play. DND likewise is designed to remove your save file when you die, but I beat it within my own savescumming allowance, not having the patience to walk on eggshells through yet another early CRPG, not to mention having to deal with all of those horrible teleporters.

Rogue is neither short nor forgiving. Unlike dnd and DND, there is little opportunity to grind for better levels or gear, and doing so can even be hazardous to your health. I played Rogue long ago on my black & white Macintosh, and never came close to finishing it then, but I remember well enough that starving to death was a serious threat.

I don’t know if I can finish this game completely fairly, but I will try. Chester at CRPG Addict beat it fairly as his second RPG, but it took him 90 hours of play over four months. I can’t imagine devoting that kind of time to a game with less content than Baldur's Gate. I will play fairly for a minimum of 6 hours, and then if I’m not bored yet, continue playing fair until then. I expect I’ll be tired of replaying Rogue before beating it, in which case I’ll switch to my standard savescumming rules. I’d rather cheat in this manner than abandon the game unfinished.

5 comments:

  1. I played Rogue a bit growing up... but I spent hours on Hack back in the mid-80s on my old Tandy 1000...

    Save scum at will or you'll have no hair!


    ReplyDelete
  2. Rogue blew me away when I first encountered it. 1991? 1992? I spent hours playing Rogue and Civilization.

    ReplyDelete
  3. You know that "Rogue" as a character class didn't come about until *decades* after Rogue was released? You seem very stuck in modern thinking. There's no contradiction being an apprentice in the fighter's guild and the game being called Rogue.

    ReplyDelete
  4. "Incidentally, there's even a z-machine version of Rogue. The fact that it even works is both a testament to the genius of Infocom's coders and to the madness of Roguelike fans."

    Most Z-machine abuses were made by home programmers, not Infocom imps, but the point is well taken. (Or do the Infocom props simply point to the robustness of the text adventure language they invented to allow such abuses to be possible?)

    "Chester at CRPG Addict beat it fairly as his second RPG"

    Posting the Rogue completion screen on Reddit was actually the seed that prompted his project, so in a sense, his completion of Rogue predated his blog.

    ReplyDelete
  5. Know what, Rogue may be my favourite game of all times :) To write a game that is infinitely replayable and immersive despite the crude "graphics" even today is a feat, and once you get used and accept the incredibly difficulty, I find the design to be pure genius.

    I have tried and failed a thousand times to win it, but I always love the thrill of encountering a capital "T", and to hone my strategy even further (I would need several pages to write it down) -- only to always lose because I just didn't stop to think in the excitement and made a stupid move. And it's absolutely amazing how immersed I am in this game, all due to the permadeath feature which really, really gives a sense of danger with every step you take.

    (I will always remember that one game where I was really, really lucky. I had a two-handed sword +2 or more, great armor, a selection of great identified scroll and potions and whatnot... and then, instead of attacking some monster on level 20, I inadvertedly THREW my sword at it...)

    Regarding your confusion about the versioning, the DOS versions started a new version numbering, starting at 1.0, which is completely independent of the Unix Rogues. I have done quite a lot of research about its genealogy about 10-15 years ago. IIRC, the DOS version seems to be based on UNIX Rogue 5.3 (like Rogue Clone and Linux Rogue), which unfortunately seems to be lost (or was back then), but it has a few unique additions, my favourite being the slimes. Both DOS Rogue 1.0 (published by AI Design, not Epyx yet) and UNIX Rogue 5.3 came out in 1983, the Epyx versions came out a little later, 1984 at the latest. (Dating Rogue and early roguelikes is a nightmare of conflicting information :)

    My favourite version is the Epyx DOS 1.48 version, it looks and plays best and has a nice balance. (By the way, in the source code, the function displaying the CGA title screen is called "epyx_yuck()" -- I just love to picture Jon Lane being ordered to include that picture, totally going against the UNIX purist in him :)

    Oh and "Mr. Mctesq" is very probably just the guy who cracked the copy protection. (On illegal copies, monsters made much more damage, and the gravestone on the death screen reads "Rest In Peace, Software Pirate, killed by Copy Protection Mafia".) (All this from the top of my head, I added that info to Mobygames back then, before I got fed up by battling with approvers on silly details and 100% accuracy.)

    ReplyDelete