Rogue is a dungeon crawling video game by Michael Toy and Glenn Wichman with later contributions by Ken Arnold. Rogue was originally developed around 1980 for Unix-based minicomputer systems as a freely distributed executable. 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.
In Rogue, players control a character as they explore several levels of a dungeon seeking an artifact called 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, players 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 set, 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 meaningfulshould the player-character lose all their health via combat or other means, that player character is dead. Upon death, since the character cannot respawn, the player must restart with a fresh character or be brought back by reloading from a saved state. Moreover, no game is the same as any previous one, as the dungeon levels, monster encounters, and treasures are procedurally generated for each playthrough.
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 into 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.
Rogue became popular in the 1980s among college students and other computer-savvy users in part due to its inclusion in the fourth release of the Berkeley Software Distribution. It inspired programmers to develop a number of similar titles such as Hack (1982/1984) 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 and permadeath features, it led to the naming of the roguelike genre.
Gameplay
The player character is an adventurer. The game starts at the uppermost level of an unmapped dungeon with myriad monsters and treasures. The goal is to fight a 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.
User interface
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.
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 MS-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, T-forks, or bending passageways sometimes appear where rooms would be expected. Lower levels can include a maze in 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.
Development At UC Santa Cruz 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, his father's workplace allowed employees' families 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 started to learn how to program and recreate this game on other computer systems that he could access, including the Processor Technology Sol-20 and the Atari 400.
Toy 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 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 had chosen UCSC specifically to study game design 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, the Unix operating system included in the Berkeley Software Distribution (BSD) had 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 (a renowned wizard in the game whose name is derived from "Rodney" spelled backwards). 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 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 the game. The first two major aspects of the game that they developed were the method of displaying the dungeon on-screen to the player, and how to generate the dungeon in a random manner. Limited by choices of what a terminal could display, they stuck to ASCII characters, such as . for empty floor space, + for doors, and | and - for walls of the dungeon. They also used 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 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 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 deeper in 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 the game, which was usual in 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.
At UC Berkeley