[In the latest in a
series of Gamasutra-exclusive bonus material originally to be included in Bill
Loguidice and Matt Barton's new book Vintage Games: An Insider Look at the
History of Grand Theft Auto, Super Mario, and the Most Influential Games of All
Time, the authors investigate the origins, permutations, and legacy of Rogue,
one of the most quietly influential and
long-lived games ever created. Previously in this 'bonus material' series: Elite, Tony Hawk's Pro Skater, Pinball Construction Set and Pong.]
Rogue: Exploring the Dungeons of Doom (aka Rogue), created in the early 1980s[1]
by Michael Toy and Glenn Wichman, is an intriguing game for many reasons. For
one, it's still being actively played, ported, enhanced, and forked[2]
two decades later -- a fact that challenges its description as just a "vintage"
or "retro" game.
It's also among a scant handful of games that have
achieved worldwide recognition despite originating on UNIX[3],
a platform better suited for science and industry than computer games.
Indeed,
many UNIX terminals lack all but the most basic audiovisuals, so Rogue and
the majority of other games for the platform have to rely on text or "character-set
graphics," which is to say pictures made up of characters like = and [][4].
It's also important to consider the community in which Rogue
originated. Programmers like Toy and Wichman had a different background
than most developers of commercial games, who were (and are) primarily
concerned with making profit.
Whereas developers like Richard Garriott (see
book Chapter 23, "Ultima (1980):
The Immaculate Conception of the Computer Role-Playing Game") and Roberta
Williams (see book Chapter 11, "King's
Quest: Quest for the Crown (1984): Perilous Puzzles, Thorny Thrones")
would have thought it crazy to share the source code of their bestselling games
with their competitors, many UNIX developers (especially those in academic
settings) tended to freely share their programs and their code.
Rogue and many of its derivatives rely
entirely on character-set graphics to depict dungeons and monsters. Shown here
is a battle between the player's character (the "@" symbol) and a
kobold (represented by the "K").
The money was assumed to be in the hardware, not the
software. Hardware companies modified UNIX as they saw fit, but it soon became
apparent that an industry-wide standard was needed to ensure compatibility.
AT&T and Bell Labs, who owned UNIX, began to license closed-source versions
of UNIX for commercial use, but other companies banded together to create
open-source alternatives. One of these was BSD UNIX, developed at the University
of California at Berkeley, where Michael Toy was a student.
One important feature of BSD UNIX was Ken Arnold's curses,
a library of functions for drawing pictures on the screen using a terminal's
character set. Although there were certainly serious uses for curses, it
was also a great tool for making games.
Toy and Wichman, who were schoolmates
at the time, had already dabbled in game development before, creating text
adventures[5],
among other small projects. Curses inspired them to create a "graphical"
role-playing game, which would depict dungeons from a top-down perspective.
The
monsters, treasures, traps, and other objects would be represented by certain
symbols; Z for zombie, for instance. The player's character was an @
-- perhaps a play on "where you're at." However, the graphics
routines, while certainly innovative, weren't the game's most distinguishing
feature; procedurally generated -- or created on the fly -- dungeons were.
Shown
here is Rogue Clone IV, which shows
what the game could look like using the IBM PC's character set and basic color.
[1] The BSD
UNIX distribution 4.2 in 1980 included a binary version of Rogue, allowing for wide distribution, which is the pivotal release
event we'll use for initial dating. See http://users.tkk.fi/~eye/roguelike/rogue.html.
[2] A "fork"
occurs when a programming project splits off into separate projects, usually
controlled by different groups of programmers.
[3] Also
written "Unix".
[4] A
similar scenario played out for many home users who utilized the popular CP/M
operating system standard of the late 1970s and early 1980s, which had few, if
any, graphical features in its myriad implementations. Naturally, CP/M was a
target for many roguelike developments, including the commercial Nemesis from SuperSoft (1981).
[5] See book
Chapter 25, "Zork: Text Imps
versus Graphics Grues" for more on text adventures.
|
Gameplay should always come first..
And since most have limited equipment, you must use items at the very exact moment. Sometimes you may want to drink a potion in the move, but you risk having to battle with hurt characters.
I thank Shiren the Wanderer for taking away the "item collection" from Final Fantasy. In Square Enix games you usually don't use the most powerful items (like megalixirs) because they are limited. You keep them as if they were collectible cards. However, in rogue-like games you get used to use them even if they are unique, because it is either using it and stay alive or die.
Someone invited me to the 7-day Roguelike competence (http://roguebasin.roguelikedevelopment.org/index.php?title=7DRL), but I didn't have time to spare. However, it is always good to try those games, since the concept is always the same, but the enemies, items and stages are completely different.
I don't remember the details, but I'm near certain that the original code was copyright UC Regents and so could not be used w/out license, let alone resold. I think also that the BSD Unix source code had a license fee associated with it, though it was much less than the SVR4 UNIX code from ATT.
I still have a copy of the original rogue source. Printed on a line printer :) The SCCS comments simply say "3.13 (Berkeley) 6/15/81" but I have no way of knowing if the copyright was removed, or if it was never there. The UNIX man page for the game which I have a hard copy of was most definately copyrighted.
A couple interesting points about the game implementation for history: the wizards password was encrypted using the old DES algorithm and the encrypted form was stored in the source code. The "salt" for the encrypted password was "mT" for Michael Toy. Also, though I don't remember all the details, the order of linking the .o files in the Makefile was critical, as the game stored the scores for the Top Ten in the binary for the game. It relied on there being space in the .exe at a certain point which could be overwritten. When the game source was leaked, some Makefiles got modified and the order was not maintained, which resulted in a a "low lovel rune [or room?] bug" where you'd get very deep in the dungeon and the game would crash. Even back then people hacked the game to try and put themselves on the Top Ten w/out actually working for it.
In the 80's the BSD licence was widely interpreted (by geeks and hippies, no one else cared) as "you can do what you like with the code, including, but not limited to, killing time and making babies (or vice versa), so long as the Regents of Berkeley get the credit for it".
BSD and LSD both came from Berkeley (allegedly).
Although your article focuses on individual gameplay, it's interesting you don't mention rogue-o-matic. It also did the rounds of universities a couple of years later. As the player aquired skills in Rogue, your character's attributes impacted how you did against different monsters. Rogue-o-matic ran the game automatically, aquiring skills and points until, the character died. The "-o-matic" part blended the genes/attributes of past "players" to hopefully build better ones the next time round. Hell of a way to use up spare VAX cycles at night, and have blagging rights with other universities half the way around the world.
Of course these days "scripting" of WoW or EVE Online is seen as a Very Bad Thing(TM). Twenty odd years ago this was bleading edge stuff, and secretly had the AI researchers working on it too.
There used to be a way to hit I think it was ctr-z or some secret combination and it would ask for Wizards password. But I would dig through the code and try to find what it might be and I have never found an answer to it.
Also I assume there is no end? It always felt like they had meant for one but it just never got finished.
When Michael transfered to UC Berkeley, I got sucked in to rogue development as well, so let me clarify about the license terms. (By the way, Michael and Glenn weren't worried that text-based games became boring to the *player* after they were finished. They wanted to write a game that wouldn't become boring to *themselves*, as the authors.)
At the time we were unaware of licensing issues and what they meant. Believe it or not, licensing was not a major issue for most folks writing software, especially at academic institutions, and even more especially for folks writing something on their own time like we were. From the start, Michael and Glenn had stamped a U.C. Regents copyright notice on the code and mostly left it at that.
But it's true that we tried to keep the source tightly controlled. The primary reason was that we were trying to keep the playing field (as it were) level between people who could read and understand the source and those who did not. Later, when we added the "save" feature, we also didn't want people to have the clues to the file format to see how we secured it. To respect this, the source to rogue was left off the BSD tapes, shipping only a binary copy.
To be honest, near the end, when commercialization occurred to us, we held it tightly for that reason as well. In those days that seemed reasonable, but it's not something I would do now. In fact, now I would publish the thing anyway, as the gameplay isn't compromised and it's clearer that this is the real value.
But primarily we controlled the source for (perceived) gameplay issues. The Regents license at the time made source available to academic institutions for basically free, and to commercial licensees for a non-trivial chunk of change. That isn't like open source at all. But the control was primarily (for us) not a licensing issue until very near the end. I think it's most reasonable to say that it was at a time where at Berkeley the licensing issue had not come in to focus for any but a very few running the BSD project. The GNU project hadn't yet started, so it was a question that as yet had no center, although a few battles were underway that were important to changing that. So to me it's a bit anachronistic to apply terms like "open source licensing" to a world in which the issues it addresses were for the most part unformulated. It's a bit like applying the term "constitutional rights" to a time before people conceptualized constitutional government -- you can make logically correct statements, but it implies a thought process that wasn't underway.
People did grab sources, and some of them did get sent around. So there are some actual versions floating around, and some re-writes as well. The latest version of the source I have is up on sourceforge.net : https://sourceforge.net/projects/rogue/ To the best of my knowledge, neither Michael nor Glenn have more recent versions.
On some other posts:
(*) rogue-o-matic was way, way cool. Once it came out, I made sure that every subsequent version of rogue had a new feature in it that broke rogue-o-matic, just to see what they'd do to respond.
(*) That people tried to hack the top score file was one of the main reasons we tried to hide the source. We didn't want to help them out, and wanted people to earn the scores they posted to be fair to those who couldn't hack.
(*) LSD was discovered by a Swiss scientist. It can be said, however, that Berkeley figured out what to do with it. ;-)
(*) The wizard's password for most of its life at Berkeley (post-Santa Cruz) was "cute,huh". Now that I've let that out, the black helicopters will be coming for me...
If you guys are into this stuff, don't forget the earlier Gamasutra article:
http://www.gamasutra.com/features/20070223a/barton_01.shtml
Tons of stuff there, and I believe the author even has a book out on the topic. ;)
I well remember heading back up, ebullient, only to run into the shop keepers I'd ripped off on the way down who blocked me or killed me :)
Now if I only had a non-64 bit OS to play the game to try out that password. I guess asking the guy who designed it when I was a kid was probably out of the question. But 25 years later getting the answer is still pretty cool.
I think you're confusing rogue with nethack. No version of rogue I remember had corpses, shops or fake amulets. Nethack had/has all of those things.
I found your comment about an unknown person posting the source on forum very interesting. Did that happen after I left? I don't remember hearing anything about it before this. I have my suspicions about who it was and how they got it, though.
Perhaps I'm mis-remembering some of that between Nethack and rogue, but I thought it at least had corpses and you could get the special abilities by eating them? I'll have to go back and read some source....
The appearance of the source code happened some time after Jordan was manager of the games shell. Rumor was that he left something readable accidentally, someone copied the files, and they definately later posted the files one file at a time over several hours or days.
Word then leaked that the admins were looking for the rogue, er, Rogue games. So filenames were changed to something like 30.c, 31.c etc. Still later word was that accounts with excessive disk usage were being checked. Until someone figured out that only files owned by user were counted, and that core files were owned by some other group and were not counted...so naturally the core files were used to contain the renamed rogue files.
Shane, the source code could be ported. It's well written and you'd just have to redo (icky...) the TTY handling codes, and replace old UNIX calls like creat() with th modern version using open(). I think I still have my 1/2" tape lying around :)
And yes, rogue is totally playable!
That's possible, but probably would have been noticed unless the targeted terminal was left logged in and unattended at the time. I was thinking of something much more straightforward. At one time another student asked to borrow my terminal while I was using the games account. When he returned it, I checked the history and saw that it had been cleared. I asked him what he had been doing, but he wouldn't tell me. At the time, I thought he had probably squirrelled away a copy of a game somewhere so that he could play it at times when gsh wouldn't let him, but now I wonder.
I'll add my perspective on the whole rights issue. We never gave it any thought, at least I didn't. Rogue was not done for course credit, and we didn't ask anyone's permission to do it. And I certainly didn't put the copyright notices in the source files. I just (inappropriately) considered Rogue to be our property because it was our creation written on our own initiative on our own time. It belonged to the regents by virtue of having been written using their equipment. I assume the copyright notices got added once development moved to Berkeley, probably a policy for any source code that was included in BSD.
I stand by my conviction that piracy was an enormous impediment to Rogue's commercial success, although obviously there is never one single reason. Much of the target audience was already used to playing Rogue "for free" (really part of their tuition, actually) at college, and I think the idea of paying for the game seemed odd. I can hardly complain about this since we also got to develop the original version "for free" on UC's equipment.