A representative ASCII-based screenshot of Rogue running on a UNIX platform
|Developer(s)||A.I. Design (Non-unix versions)|
|Publisher(s)||Epyx (Non-unix versions)|
|Platform(s)||Amiga, Amstrad CPC, Atari 8-bit, Atari ST, Commodore 64, DOS, Macintosh, TOPS-20, TRS-80 CoCo, Unix, ZX Spectrum|
Rogue (also known as Rogue: Exploring the Dungeons of Doom) is a dungeon crawling video game by Michael Toy and Glenn Wichman and later contributions by Ken Arnold. Rogue was originally developed around 1980 for Unix-based mainframe systems as a freely-distributed executable (public domain software).It was later included in the official Berkeley Software Distribution 4.2 operating system (4.2BSD). Commercial ports of the game for a range of personal computers were made by Toy, Wichman, and Jon Lane under the company A.I. Design and financially supported by the Epyx software publishers. Additional ports to modern systems have been made since by other parties using the game's now-open source code.
A dungeon crawl is a type of scenario in fantasy role-playing games in which heroes navigate a labyrinthine environment, battling various monsters, avoiding traps, solving puzzles, and looting any treasure they may find. Because of its simplicity, a dungeon crawl can be easier for a gamemaster to run than more complex adventures, and the "hack and slash" style of play is appreciated by players who focus on action and combat. However dungeon crawls often lack meaningful plot or logical consistency.
A video game is an electronic game that involves interaction with a user interface to generate visual feedback on a two- or three-dimensional video display device such as a TV screen, virtual reality headset or computer monitor. Since the 1980s, video games have become an increasingly important part of the entertainment industry, and whether they are also a form of art is a matter of dispute.
Glenn R. Wichman is a software developer who is best known as one of the original authors of the computer game Rogue, along with Michael Toy, Ken Arnold and Jon Lane. Wichman has also contributed to many other commercial software programs, including Microsoft Bookshelf, Mavis Beacon Teaches Typing and Quicken. He is the creator of the Macintosh shareware games Toxic Ravine and Mombasa.
In Rogue, players control a character as they explore several levels of a dungeon as they seek the Amulet of Yendor located in the dungeon's lowest level. The player-character must fend off an array of monsters that roam the dungeons. Along the way, they can collect treasures that can help them offensively or defensively, such as weapons, armor, potions, scrolls, and other magical items. Rogue is turn-based; taking place on a square grid represented in ASCII or other fixed character sets, allowing players to have time to determine the best move to survive. Rogue implements permadeath as a design choice to make each action by the player meaningful: should the player-character lose all their health from combat or other means, the character is dead, and the player must restart a brand new character and cannot reload from a saved state. The dungeon levels, monster encounters, and treasures are procedurally generated on each playthrough, so that no game is the same as a previous one.
ASCII, abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Most modern character-encoding schemes are based on ASCII, although they support many additional characters.
Permadeath or permanent death is a game mechanic in both tabletop games and video games in which player characters who lose all of their health are considered dead and cannot be used anymore. Depending on the situation, this could require the player to create a wholly new character to continue, or completely restart the game losing nearly all progress towards completion. Other terms include persona death and player death. Some video games offer a hardcore mode that features this mechanic, rather than making it part of the core game.
In computing, procedural generation is a method of creating data algorithmically as opposed to manually. In computer graphics, it is also called random generation and is commonly used to create textures and 3D models. In video games, it is used to automatically create large amounts of content in a game. Advantages of procedural generation include smaller file sizes, larger amounts of content, and randomness for less predictable gameplay.
Rogue was inspired by text-based computer games such as the 1971 Star Trek game and Colossal Cave Adventure released in 1976, along with the high fantasy setting from Dungeons & Dragons . Toy and Wichman, both students at University of California Santa Cruz, worked together to create their own text-based game but looked to incorporate elements of procedural generation to create a new experience each time the user played the game. Toy later worked at University of California Berkeley where he met Arnold, the lead developer of the curses programming library that Rogue was dependent on to mimic a graphical display. Arnold helped Toy to optimize the code and incorporate additional features to the game. The commercial ports were inspired when Toy met Lane while working for the Olivetti company, and Toy engaged with Wichman again to help with designing graphics and various ports.
Colossal Cave Adventure is a text adventure game, developed between 1975-1977, by Will Crowther for the PDP-10 mainframe. The game was expanded upon in 1977, with help from Don Woods, and other programmers created variations on the game and ports to other systems in the following years.
High fantasy or epic fantasy is a subgenre of fantasy, defined either by the epic nature of its setting or by the epic stature of its characters, themes, or plot. The term "high fantasy" was coined by Lloyd Alexander in a 1971 essay, "High Fantasy and Heroic Romance".
Dungeons & Dragons is a fantasy tabletop role-playing game (RPG) originally designed by Gary Gygax and Dave Arneson. It was first published in 1974 by Tactical Studies Rules, Inc. (TSR). The game has been published by Wizards of the Coast since 1997. It was derived from miniature wargames, with a variation of the 1971 game Chainmail serving as the initial rule system. D&D's publication is commonly recognized as the beginning of modern role-playing games and the role-playing game industry.
Rogue became popular in the 1980s among college students and other computer-savvy users in part due to its inclusion in 4.2BSD. It inspired programmers to develop a number of similar titles such as Hack (1982) and Moria (1983), though as Toy, Wichman, and Arnold had not released the source code at this time, these new games introduced different variations atop Rogue. A long lineage of games grew out from these titles. While Rogue was not the first dungeon-crawling game with procedural generation features, it introduced the subgenre of roguelike RPG procedurally generated dungeon crawlers with Dungeons-and-Dragons-like items (armor, weapons, potions, and magic scrolls) that also had permadeath (permanent death) and an overhead graphical view; albeit via ASCII drawings, as opposed to text descriptions in natural language of Adventure/Colossal Cave and the original Zork games.
The Dungeons of Moria, or just Moria, is a roguelike computer game inspired by J. R. R. Tolkien's novel The Lord of the Rings. The game's objective is to kill a Balrog, presumably Durin's Bane, deep within the Mines of Moria. A later port of Moria called Umoria inspired the Angband roguelike game. This game influenced the preliminary design of Blizzard Entertainment's Diablo.
In computing, source code is any collection of code, possibly with comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code. The source code is often transformed by an assembler or compiler into binary machine code understood by the computer. The machine code might then be stored for execution at a later time. Alternatively, source code may be interpreted and thus immediately executed.
Roguelike is a subgenre of role-playing video game characterized by a dungeon crawl through procedurally generated levels, turn-based gameplay, tile-based graphics, and permanent death of the player character. Most roguelikes are based on a high fantasy narrative, reflecting their influence from tabletop role playing games such as Dungeons & Dragons.
In Rogue, the player assumes the typical role of an adventurer of early fantasy role-playing games. The game starts at the uppermost level of an unmapped dungeon with myriad monsters and treasures. The goal is to fight one's way to the bottom level, retrieve the Amulet of Yendor ("Rodney" spelled backwards), then ascend to the surface.Monsters in the levels become progressively more difficult to defeat. Until the Amulet is retrieved, the player cannot return to earlier levels.
A player character is a fictional character in a role-playing game or video game whose actions are directly controlled by a player of the game rather than the rules of the game. The characters that are not controlled by a player are called non-player characters (NPCs). The actions of non-player characters are typically handled by the game itself in video games, or according to rules followed by a gamemaster refereeing tabletop role-playing games. The player character functions as a fictional, alternate body for the player controlling the character.
Fantasy is a genre of speculative fiction set in a fictional universe, often inspired by real world myth and folklore. Its roots are in oral traditions, which then became literature and drama. From the twentieth century it has expanded further into various media, including film, television, graphic novels, manga and video games.
A role-playing game is a game in which players assume the roles of characters in a fictional setting. Players take responsibility for acting out these roles within a narrative, either through literal acting, or through a process of structured decision-making regarding character development. Actions taken within many games succeed or fail according to a formal system of rules and guidelines.
In the original text-based versions, all aspects of the game, including the dungeon, the player character, and monsters, are represented by letters and symbols within the ASCII character set. Monsters are represented by capital letters (such as
Z, for zombie), and accordingly there are twenty-six varieties. This type of display makes it appropriate for a non-graphical terminal. Later ports of Rogue apply extended character sets to the text user interface or replace it with graphical tiles.
A computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying or printing data from, a computer or a computing system. The teletype was an example of an early day hardcopy terminal, and predated the use of a computer screen by decades.
In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program was originally designed for. The term is also used when software/hardware is changed to make them usable in different environments.
Extended ASCII character encodings are eight-bit or larger encodings that include the standard seven-bit ASCII characters, plus additional characters. Using the term "extended ASCII" on its own is sometimes criticized, because it can be mistakenly interpreted to mean that the ASCII standard has been updated to include more than 128 characters or that the term unambiguously identifies a single encoding, neither of which is the case.
The basic movement keys (h, left; j, down; k, up; and l, right) are the same as the cursor control keys in the vi editor. Other game actions also use single keystrokes—q to quaff a potion, w to wield a weapon, e to eat some food, etc. In the DOS version, the cursor keys specify movement, and the fast-move keys (H, J, K, and L) are supplanted by use of the scroll lock key.
Each dungeon level consists of a grid of three rooms by three rooms (potentially); dead end hallways sometimes appear where rooms would be expected. Lower levels can also include a maze in the place of a room. Unlike most adventure games of the time of the original design, the dungeon layout and the placement of objects within are randomly generated.
The concept of Rogue originated with Michael Toy and Glenn Wichman.Toy grew up in Livermore, California, where his father was a nuclear scientist. Once a year, the father's workplace allowed their employees family to visit, which included allowing them to use the facility's mainframe system to play games. Toy took interest in the text-based Star Trek game (1971), which represented space combat through characters on screen, and required players to make strategic decisions each turn. Toy took to learn programming and recreate this game on other computer systems that he could access, including the Processor Technology Sol-20 and the Atari 400.
Toy subsequently enrolled in computer science at the University of California, Santa Cruz (UCSC) in the late 1970s. Working first on UCSC's PDP-11 and then its VAX-11, Toy began exploring what games were available over ARPANET, the predecessor of the current Internet. One game that intrigued him was Colossal Cave Adventure (also known as Adventure) (1976) by William Crowther and Don Woods. Adventure, considered the first text-based adventure game, challenged the player to explore a cave system through descriptions given by the computer and commands issued by the player. Toy was impressed by the game and started writing his own.
Toy soon met Wichman, another student at UCSC who was also writing his own adventure game. Wichman had created his own variations on traditional role-playing games such as Dungeons & Dragons while growing up. Wichman chose UCSC specifically to study on game design as to become a board game developer, and this led him into the computer sciences to get the opportunity to play and develop games. The two became friends, shared an apartment, and challenged each other with their own adventure game creations. Of the two, Toy was more proficient at coding, while Wichman had a better sense of the design of these games. Toy and Wichman soon found that most adventure games suffered from a lack of replayability, in that the game did not change on separate playthroughs.
Around this time, ca. 1980, BSD Unix has started to gain a foothold as the operating system for many of the University of California's campuses. One element of the BSD distribution at this point included the curses programming library by Ken Arnold. curses enabled a programmer to place characters at any point on a terminal, effectively allowing for "graphical" interfaces.When Toy saw this library, he and Wichman quickly realized the potential for it. After crafting a few games using curses to learn the library, they came up with the idea of an adventure game in the flavor of Dungeons & Dragons but to address their concerns with the static nature of adventure games, wanted to include elements that would change every time the game was played. The two came up with a narrative, that of an adventurer setting out to explore and find treasures in the Dungeons of Doom, specifically the Amulet of Yendor (the name "Rodney" spelled backwards, which they envisioned as renowned wizard in the games narration). Wichman came up with the name Rogue, based on the idea that unlike the party-based systems of Dungeons & Dragons, the player's character was going at this alone. They also wanted to make sure the name was short to make it simple to type out on command lines.
As Toy was more proficient at programming, he led the development of the game in the C language which generally produced fast effective code. Wichman learned the language from Toy as they went along while providing significant input on the design of game.
. for empty floor space,
+ for doors, and
- for walls of the dungeon. They also opted to use the "at" symbol (
@) to represent the player, considering this showed the player "where they're at". For the dungeon, they found initial attempts at purely random generation to be weak, in some cases having a stairway ending up in a room inaccessible to players. They found a solution through procedural generation, where each level would start on the idea of a 3x3 tic tac toe grid, with each room of various size occupying one space in this grid, and then creating the hallways to connect the rooms. Once they could have their character move about these randomly created dungeons, they then added equipment, magic items, and monsters. With magic items, they wanted the effects of these items to be a mystery on each run through, and thus would initially present the items to the player only by a descriptor such as by color, and only later in the game give the true name of the item once the player experimented or used another means to identify the item. For monsters, they wanted to have more advanced intelligence routines as the player got to deeper depths of the dungeons, but had started running into memory limits on the VAX-11, and simply made the monsters stronger with more health to pose more of a challenge.
The two started testing the game with other students at UCSC, finding that despite the limited graphics, players were filling the gaps with their own imagination. Playtester feedback helped them to improve the procedural generation routines to balance the game's challenge.One element that fell out from playtesting was the use of permadeath. Toy wanted to move away from the notion of simply learning the right sequence of steps to complete within adventure games, and instead make the player focus on finding the right moves to avoid the character's death at that moment; Wichman later called this idea "consequence persistence". Initially, a Rogue game had to be completed in one sitting, but by demand of playtesters, Toy and Wichman added the ability to save the state of the game, so that players could continue a game across sessions. They soon found players were "save scumming", reloading the game from the save file, an approach counter to their design goals. They changed this so that the save file was erased upon reloading the game, thus making a character's death effectively permanent. They subsequently added a scoreboard feature that let players rank their progress with others, rewarding players with more points for surviving as deep as possible into the dungeons and making the Amulet of Yendor a lucrative goal.
Around 1982, Toy's attention to Rogue and computer games caused him to suffer poor academic performance, and he was kicked out of the school, shortly finding employment at University of California, Berkeley (UCB) in their computer lab. Toy took the Rogue code with him to continue its development.Wichman, still enrolled at UCSC, continued to help develop Rogue for a time, such as adding armor elements, but the logistics of working over the distance made it difficult for him to keep up, and he let Toy fully take over development.
Prior to Toy's arrival at UCB, Ken Arnold had gotten to play Rogue, which had been distributed as an executable across many of the UC campuses. Though impressed with the game, he expressed frustration at the inefficient means the game updated the screen via his curses library over a modem line.He had ideas for how to fix it, but at this point Toy and Wichman had opted not to release the code.
When Toy arrived at UCB in 1982, he sought out Arnold to get insight into the nature of how the curses library worked. After the two got to know each other, Toy allowed him access to Rogue's source code. In addition to helping to improve the interface and rendering of the game, Arnold helped to improve the procedural generation aspects of the game.
With its popularity on the UCB servers, Rogue was selected as one of the game titles included in the 1983 distribution of 4.2 BSD, which spread across ARPANET and quickly gained popularity among colleges and facilities with access to this hardware. Among its fans included UNIX's co-developer Ken Thompson working at Bell Labs; Dennis Ritchie had joked at the time that Rogue was "the biggest waste of CPU cycles in history". 's distribution in 4.2 BSD did not include its source code, so after Toy and Arnold separately left UCB, they took the code with them, making it difficult for anyone to build off it. Rogue' source was eventually added under a BSD software license within 4.3 BSD in 1986, putting it into the open source.Rogue
Toy left UCB sometime before 1984 and took a consulting position with Olivetti, an Italian typewriter company that at the time were starting development of their own computer based on the IBM Personal Computer (IBM PC) operating system.
☺ for the player-character. They also took steps to avoid potential copyright issues with TSR, the company that owned Dungeons & Dragons at that time, by changing the names of monsters like kobolds that were unique to that game.
Toy and Lane initially funded the publishing, distribution, and promotion of the IBM PC version themselves, and though they continued to gain sales, they were only able to break even as they lacked the power of a larger distributor. Around 1984, Robert Borch, the vice president of publishing at Epyx discovered that Rogue had become popular by several of Epyx's employees and that they suggested that Epyx should help fund ports to other systems. Though Borch felt there was niche appeal to the game, he followed this advice and contracted A.I. Design to port the game to the Apple Macintosh and Commodore Amiga upon which Epyx would take over distribution and marketing.
Toy obtained a Macintosh and took the lead in marketing the game to that system. Both Toy and Lane recognized that they could implement improved graphics with the Macintosh version, but neither had art skills to make the icons. Toy reached out to Wichman to help with these graphics. Wichman was initially cautious due to the fact that his credit for Rogue in the PC version had been cast as a "contribution" equal to the UCSC playtesters rather than as equal to Toy, Arnold, or Lane.However, he agreed to help and joined A.I. Design. Much of the Macintosh version was developed in concert by Toy, Wichman, and Lane in a cabin at the Squaw Valley Ski Resort. Following this, Epyx requested that Wichman lead the development of the Atari ST version, with the company providing Wichman a system to work on. This work occurred alongside Toy's work on the Amiga version. Wichman enlisted help from an Epyx in-house artist, Michael Kosaka, to create the art on the Atari ST version. Epyx would also fund A.I. Design to port the game to other systems including the TRS-80 Color.
Borch recognized the difficulty in marketing Rogue through traditional methods compared to other games on the market at that time, and opted to push the title through software catalogs rather than retail channels. Though it sold well initially, Rogue's sales quickly declined and was considered a commercial flop. Besides the competition from more graphically-interesting games, Wichman attributed the failure to the fact that the commercial version of Rogue was essentially the same game previously offered for free via BSD and did not pose a new challenge. Epyx eventually went bankrupt in 1989, and A.I. Design disbanded. None of Toy, Wichman, Arnold, or Lane profited greatly from Rogue though became renowned in the industry for their participation on the game.
In 1988, the budget software publisher Mastertronic released a commercial port of Rogue for the Amstrad CPC, Commodore 64, Atari 8-bit,and ZX Spectrum computers.
Numerous clones exist for modern operating systems such as Microsoft Windows,Mac OS X, Palm OS, Linux, BSD OSs, and iOS. It is even included in the base distribution of NetBSD and DragonflyBSD.
Because the input and output of the original game is over a terminal interface, it is relatively easy in Unix to redirect output to another program. One such program, Rog-O-Matic, was developed in 1981 to play and win the game, by four graduate students in the Computer Science Department at Carnegie-Mellon University in Pittsburgh: Andrew Appel, Leonard Harney, Guy Jacobson and Michael Loren Mauldin.
|“||In a test during a three-week period in 1983, Rog-O-Matic had a higher median score than any of the 15 top Rogue players at the Carnegie-Mellon University and, at the University of Texas at Austin, found the Amulet of Yendor in a passageway on the 26th level, continued on to the surface and emerged into the light of day.||”|
Ken Arnold said that he liked to make "sure that every subsequent version of rogue had a new feature in it that broke Rogue-O-Matic."Nevertheless, it remains a noted study in expert system design and led to the development of other game-playing programs, typically called "bots". Some of these bots target other roguelikes, in particular Angband .
In March 1984, Jerry Pournelle named the version of Rogue for the IBM PC as his "game of the month", describing it as "a real time trap. I found myself thinking 'just one more try' far too often".The game was reviewed in 1986 in Dragon #112 by Hartley and Pattie Lesser in the "Role of Computers" column. In a subsequent column, the reviewers gave the IBM and Mac versions of the game 3½ out of 5 stars. Compute! favorably reviewed Epyx's Amiga version as improving on the text-based original, stating that "the game will give you many hours of gaming fun". In 2009, Rogue was named #6 on the "Ten Greatest PC Games Ever" list by PC World .
Because of Rogue's popularity at colleges in the early 1980s, other users sought to expand or create similar games to Rogue. However, as neither Toy, Wichman, nor Arnold released the source code of the game, these efforts generally required the programmers to craft the core game elements from scratch to mimic Rogue. Though there were multiple titles that tried this, the two most significant ones were Moria (1983) and Hack (1982). Both games spawned a family of improved versions and clones over the next several years, leading to a wide number of games in a similar flavor. These games, which generally feature turn-based exploration and combat in a high fantasy setting in a procedurally-generated dungeon and employing permadeath, are named roguelike games in honor of Rogue's impact. Most of the graphical interface conventions used in Rogue were reused within these other roguelikes, such as the use of
@ to represent the player-character.
Toy, Wichman, and Arnold reunited onstage for the first time in 30 years in an event called "Roguelike Celebration" at San Francisco in 2016.
NetHack is a single-player roguelike video game originally released in 1987 with ASCII graphics. It is a descendant of an earlier game called Hack (1982), which is a clone of Rogue (1980). Comparing it with Rogue, Engadget's Justin Olivetti wrote that it took its exploration aspect and "made it far richer with an encyclopedia of objects, a larger vocabulary, a wealth of pop culture mentions, and a puzzler's attitude." In 2000, Salon described it as "one of the finest gaming experiences the computing world has to offer".
Ancient Domains of Mystery (ADOM) is a roguelike video game, designed and developed by Thomas Biskup, which was first released in 1994. The player's goal is to stop the forces of Chaos that invade the world of Ancardia.
Hack is a 1982 roguelike video game that introduced shops as gameplay elements and expanded available monsters, items, and spells. It later became the basis for NetHack.
Angband is a dungeon-crawling roguelike computer game derived from Umoria. It is based on the writings of J. R. R. Tolkien, in which Angband is the fortress of Morgoth. The current version of Angband is available for all major operating systems, including Unix, Windows, Mac OS X, and Android.
Sword of Fargoal is a 1982 video game by Jeff McCord, published by Epyx.
Temple of Apshai is a dungeon crawl role-playing video game developed and published by Automated Simulations in 1979. Originating on the TRS-80 and Commodore PET, it was followed by several updated versions for other computers between 1980 and 1986.
Dungeon Hack is a role-playing video game developed by DreamForge Intertainment and published by Strategic Simulations for MS-DOS and NEC PC-9801 in 1993. The game is based in the Advanced Dungeons and Dragons world of Forgotten Realms.
Larn is a roguelike computer game written by Noah Morgan in 1986 for the UNIX operating system. Morgan's original version of Larn remains part of the NetBSD games collection.
A text game or text-based game is an electronic game that uses a text-based user interface, that is, the user interface employs a set of encodable characters such as ASCII instead of bitmap or vector graphics.
A random dungeon is a dungeon in a role-playing video game which is procedurally generated by the computer using an algorithm, such that the dungeon is laid out differently every time the player enters it, and a player often never plays through quite the same dungeon twice, as there are innumerable possibilities for how they generate.
Kenneth Cutts Richard Cabot Arnold is an American computer programmer well known as one of the developers of the 1980s dungeon-crawling video game Rogue, for his contributions to the original Berkeley (BSD) distribution of Unix, for his books and articles about C and C++, and his high-profile work on the Java platform.
Dungeon Crawl Stone Soup is a free and open source roguelike computer game, which is the actively community-developed successor of the 1997 roguelike game Linley's Dungeon Crawl, originally programmed by Linley Henzell.
Brogue is a free roguelike computer video game created by Brian Walker. As in its predecessor Rogue, the goal of Brogue is for the player to descend to the 26th floor of the Dungeons of Doom, retrieve the Amulet of Yendor, and return to the surface. Players also have the option of delving deeper into the dungeon to obtain a higher score. This task is complicated by the presence of monsters and traps in a procedurally generated dungeon.