Advent of Computing - Episode 22 - Going Rogue

Episode Date: January 26, 2020

Many video games today make use of randomized content, some more than others. It may seem like an obvious feature, but it turns out that procedural generation didn't really catch on in video games unt...il the 1980 release of Rogue. The game itself never saw much commercial success, but was wildly popular among UNIX users. In this episode we look at Rogue, how it was created, and the legacy that we still see today. Like the show? Then why not head over and support me on Patreon. Perks include early access to future episodes, and stickers: https://www.patreon.com/adventofcomputing Important dates in this episode: 1980: Rogue Written for PDP/11 1984: Rogue Ported to PC, Macintosh, Atari ST

Transcript
Discussion (0)
Starting point is 00:00:00 Who doesn't love a nice game of Dungeons and Dragons? But, then again, there's always the time commitment involved. Getting enough people together to play can be hard. And then getting everyone's schedules to match up for a regular game quickly becomes a nightmare. There has to be a better way. Well, dear listener, you may just be in luck. That is, if you can handle adventuring solo. You may just be in luck.
Starting point is 00:00:24 That is, if you can handle adventuring solo. In high school, I played a lot of Dungeons and Dragons. That should come as no surprise. Even with a weekly game going on, I still wanted to delve into a fantasy world more often. And, well, there was one thing for that. Over the course of time, there have been countless fantasy role-playing games written for countless different computers and video game consoles. My game of choice during high school was called Slashem, but the game came by many different names. You may have played it as Darkest Dungeon, Faster Than Light, NetHack, or Diablo, or Risk of Rain, or even Pokemon Mystery Dungeon.
Starting point is 00:01:07 or Diablo, or Risk of Rain, or even Pokemon Mystery Dungeon. All of these games, and many, many more, are based heavily upon a much earlier video game. That game was called Rogue, and it was originally written all the way back in 1980 by a small group of programmers that happened to have access to a mainframe. But the game wouldn't stay in computer labs for long. So how did such a small production escape into the wild? And how did it go on to establish one of the more enduring genres of video games? And hey, how fun is Rogue anyway? Welcome back to Advent of Computing. I'm your host, Sean Haas, and this is episode 22, Going Rogue.
Starting point is 00:01:58 Today, we're going to be looking at one of my favorite types of video games. That's the roguelike. Specifically, we'll be diving into the origin of that genre, Rogue. So, what is Rogue anyway? In simple terms, it's a randomly generated dungeon crawl. Each game, the levels, and a lot of the items in the game are procedurally generated. That makes no two sessions of Rogue the same. That, combined with its depth and difficulty, make it a very repeatable and addictive game. It really cracked the code for this type of gameplay, establishing a pattern that would become
Starting point is 00:02:31 ingrained in many games to follow. Another key factor to Rogue's success and spread, outside of the randomness that is, comes down to the context that it was developed in. For 1980, there really weren't that many options for video games. You gotta keep in mind that the Atari 2600 wouldn't be released for another two years. At this time, arcades existed, but they were built for a very different type of gameplay, something more fast-paced and at least somewhat sociable. There were examples of complicated RPGs like Play-Doh's Moria, but those were being played on isolated systems that didn't spread outside of their
Starting point is 00:03:11 intended platform. By contrast, Rogue itself would end up having a wide reach even before imitations appeared. And a big part of that spread was thanks to the ARPANET and UNIX. And a big part of that spread was thanks to the ARPANET and UNIX. So let's dive into Rogue. How did the game come to be, how did it spread, and just why has it created such an enduring legacy? To get down to the root of how Rogue became so popular, I think that we should first look at the state of computing in 1980, or more specifically, the state of computing in academia.
Starting point is 00:03:49 ARPANET, the government-funded predecessor to the internet, was already 11 years old. In that time, it had gone from a small collection of mainframes to a large and relatively robust network that connected most of the US. But even with its large reach, most installations were either military, government, or university-run. It wasn't yet the open network that we enjoy today, but it was open enough to allow for a little bit of fun. Strictly speaking, fun was prohibited on ARPANET by national law. Rather, it was only supposed to be used for research. But it seems like that rule was pretty rarely enforced, or at least enforced
Starting point is 00:04:26 selectively. The network had been designed to quickly and efficiently transfer data around the country. Ideally, that'd make it a great aid for researchers, especially computer scientists, since it opened up your resource pool significantly. Instead of having a single mainframe, you could access computers across the nation. However, things rarely work out as intended, especially when computers are involved. When you get down to it, ARPANET really excelled at connecting together people. In fact, in the early era, most traffic on the network was from email. In the early era, most traffic on the network was from email. Amongst all that chatter, something fun would occasionally come through.
Starting point is 00:05:11 And those were early computer video games. This is how a lot of early computer games would end up spreading. Someone at a university or research center would write up a video game in some stolen computer time, and then it would get out and be passed around on the ARPANET. In a lot of ways, this was the first time something could really go viral, so to speak. One such game that made the rounds in those days, those days being around 1976, was called Colossal Cave Adventure. This was one of the first fantasy adventure games to get really much traction, and it became a perennial favorite in computer labs across the country. It's still played today. Colossal Cave Adventure, or just Adventure for
Starting point is 00:05:51 short, is a text-based adventure game. The entire game is played through text alone, with the program explaining just what's going on around you as you type back what you want to do. Through this interface, you travel into a cavern, solve puzzles, fight monsters, and eventually collect treasure and escape. Adventure spread very quickly thanks to ARPANET. Once it was discovered, it was only a matter of weeks before it had spread from university to university over the network. Students and faculty alike became obsessed with the game just as quickly. They'd spend hours trying to find every secret that the colossal cave had to offer. Two of the game's victims were named Michael Toy and Glenn Wichman, both students at the University of California at Santa Cruz.
Starting point is 00:06:44 A few years after its initial release, the two would come into contact with adventure on a university mainframe. Both were impressed and instantly enamored with the game. Toy was a computer science major, so he did what came naturally. In his spare time, he started writing his own text-based adventure games in the mold of adventure. Witchman, however, was on a slightly different track. He wasn't primarily a programmer. Instead, he wanted to become a board and card game designer. Witchman was a huge fan of Dungeons and Dragons, but once he saw Adventure, his plans started to change. He realized that computer games were the future, not pen and paper or any physical games. The pair would meet shortly after in the UC Santa Cruz computer lab. Both were using the university's PDP-11 mainframe to write their own adventure games,
Starting point is 00:07:31 and it wouldn't be long before they were collaborating on larger games together. This new team made a few games, mainly more clones of adventure, but early on they identified a few major problems with the state of games in the 1970s. The first was the issue of replayability, or rather, lack thereof. The way a toy saw it, there wasn't much reason to play a game a second time after you beat it. Adventure was a really fun game to play, but once you find every treasure and defeat every monster, the excitement's gone. You've seen everything the game can throw at you. Sure, there was still an element of uncertainty, but that did little to add replay value. There was only so much fun you could have with adventure. There was a market cap, so to speak.
Starting point is 00:08:23 Toy and Witchman also saw this problem in their own games. They noticed that programming a new adventure game meant that you could never really enjoy it. You already knew how it ends. You know everything along the way, and you know everything that can possibly happen. It saps the fun out of things. In Toy's words, quote, the ideal would be to write a computer game that was fun for me to play, and that was the problem In Toy's words, The second issue came down to the technology of the era. By the time Toy and Witchman found Adventure, text-based games were already becoming somewhat obsolete. Let me explain. Colossal Cave Adventure had been designed to run on a mainframe and be controlled over
Starting point is 00:09:08 a teletype. This is an archaic form of a computer terminal that displayed messages by printing them onto a paper feed. As such, Adventure was built to be playable one line at a time, that's where the text interface comes in. As the 70s wore on, the teletype went more and more out of fashion, replaced with CRT terminals. These new terminals offered a host of advantages, but one was that instead of paper, everything was printed on a glass screen. A program was
Starting point is 00:09:39 no longer restricted to line-by-line operation. And, with some careful code, it was now possible to move a cursor around on the screen or control where something was placed on screen. To be fair, this kind of display technology had existed previously. There were already early microcomputers coming to market that had video displays, and there were already mainframe computers with their own video displays also. But in the late 70s, these quote-unquote glass teletypes, as they were called, were becoming more accessible. The issue here, as Toy and Witchman saw it, was that the newly in-vogue terminal displays weren't being used to their full potential. Terminals of the era didn't really do graphics
Starting point is 00:10:23 in the sense that we would think of today. But it was possible to use text characters to build up something resembling graphics. Think of something like ASCII art, where special characters are put together to make a picture, and you have a pretty good idea of what this could look like. There were already some programs and games that took advantage of these rudimentary graphics. One example was a game called, in a burst of creativity, Star Trek. Players took control of the USS Enterprise to hunt and destroy enemy Klingon ships. The playing field was displayed as a grid of dots with a capital E marking the player's ship,
Starting point is 00:11:01 and other symbols marking enemies and hazards. Typing out commands would move your ship and advance to the next turn. It was simple, but it was using the display better than text-only games. There were also much more mundane uses for a movable cursor, such as full screen text editors. With these two perceived issues in mind, Toy and Witchman started to put together an idea for a new game. The duo wanted this game to be an adventure that could be played over and over without feeling boring. It would also need to be graphically impressive, at least for the hardware they had access to. This game would come to be known as Rogue.
Starting point is 00:11:42 So how did the team go about planning an infinitely replayable game? Toy figured that the best way to accomplish this would be to lean very heavily on randomness. Now, most programming languages have a function to generate a random number. Think of it as a computerized roll of the dice. It's a feature that gets used occasionally by programmers, but Toy decided to use it much more extensively in Rogue. Everything from items to monsters to combat to the design of the dungeons itself would be dictated, in large part, by randomness. This would solve the replayability problem by making no two sessions of Rogue the same. But, as with anything on a
Starting point is 00:12:25 computer, the specifics of how that came to be were dictated by some major limitations. The PDP-11 mainframe that Toy and Witchman had access to at UCSC ran an operating system called Unix. Now, there's a whole lot to be said about Unix. In fact, I have two episodes on the matter in the back catalog. But for now, just know that it was a popular software package for mainframes of the time, and it came in a few different varieties from a few different vendors. For the time, the UCSC computer lab was a pretty reasonable setup. There were even a handful of CRT terminals connected up to their shared mainframe. However, when it came to the actual specs of the computer, Toyin Witchman would run into a pretty big wall. The PDP-11 that they were using only had 128 kilobytes of
Starting point is 00:13:17 memory. And that's for the whole system. Keep in mind that memory, storage, and even CPU power had to be shared between users. That meant that by the time you actually log in, you would have access to radically less resources. In practice, that meant that whatever program Toy and Witchman would write had to be relatively small. That includes the code itself and all the data that it would need to keep track of. There was one saving grace, however, and this is where Unix comes into play. Any good operating system should do two main things, manage the computer's hardware and provide a useful programming environment. Unix does the latter through what are called libraries. These are essentially chunks of reusable code that make a programmer's life a little bit
Starting point is 00:14:08 easier. These range from drivers for hardware to network interfaces or even math packages. The particular version of Unix that was used at UCSC was called Berkeley Standard Distribution, better known as BSD. For our purposes today, the only two things that really matter about BSD are, one, it was developed at UC Berkeley, and two, it had a library called Curses. Fun fact one will matter later on, so just keep that in your back pocket for now. Fun fact two is a little bit more obtuse. Amongst computer geeks, there's a tradition of naming things very poorly.
Starting point is 00:14:48 This is the case with Curses. It stands for, somehow, Cursor Optimization. The library first showed up in BSD sometime around 1979, and it was written by the then-undergrad Ken Arnold. The package made it easy to control where a cursor was on the screen, and it provided functions for rudimentary character-based graphics. It turned out that it was also a perfect tool for toy and witchmen. It gave them a quick and easy way to start rendering graphics, or something near graphics, on a terminal using only text characters.
Starting point is 00:15:26 Curses would prove to be invaluable, but even with the library, there were still issues with memory use. It was decided that the best way to present the game with these limitations would be to show a top-down view, where each screen would represent a single floor of the game's dungeon. If you went up or down a floor, that would get kicked out of memory, thus saving a little space. The top line of the terminal's display was used for messages, with the bottom line showing the player's status. The rest of the screen was used to display the dungeon map itself. All of this was rendered using characters like equals, underscore, minus, plus, and the number sign.
Starting point is 00:16:07 And this is where the randomness would come back into the foreground. Each dungeon level was procedurally generated. The actual level layout was based on just a handful of random numbers. Each new level looks distinct, or at least distinct enough. They're complex without being overly maze-like, just enough to be fun to explore. As you wander through a level, the map fills itself out, going from a black screen to a full floor map. But there is a trick at play here that you probably won't notice if you're playing the game. It's tricky to write a program that can create new
Starting point is 00:16:43 levels all by itself, especially if you want those levels to be playable and somehow traversable. This is further hamstrung by the limited resources that Toy and Witchman had to work with. The solution that Toy came up with is rather elegant. In Rogue, each level is broken up into a 3x3 grid, making 9 total cells. To generate a new level, you go through each cell and randomly decide which adjacent cells it will be connected to. For cells that end up being connected to at least one other cell, the program then decides on the random dimensions and placement within that cell for the room's walls. So you get the height, width,
Starting point is 00:17:23 and offset within the cell all randomized. Then everything's finished up by plotting hallways between each room and placing a stairway down to the next level. This means that each level of the Dungeon of Doom is relatively simple, but it's still fun and engaging to navigate. A level can have at most nine rooms, sometimes less, all arranged in a rough grid. But thanks to the randomized size and offset of each room, you'd be hard pressed to notice the underlying grid unless you're specifically looking for it. Since Rogue makes levels on the fly, it never needs to store very much map data and memory, just enough for a single
Starting point is 00:18:01 screen. And that saves room for more code. But the map is just one aspect of the game. It wouldn't really be that much fun if you were only moving around in an empty dungeon. Michael Toy did a good deal of the initial work. He was the partner that had more experience programming. But it wasn't long until Witchman was up to speed. There isn't really a line-by-line account of what each of them contributed to the game. Rather, Toi would characterize it as a full and total collaboration. That being said, you can see a lot of Witchman's influence in how combat was designed specifically. He was a huge fan of Dungeons and Dragons, as I've said before, even going so far as
Starting point is 00:18:40 to create his own variations on the game. In D&D, combat depends heavily on dice rolls and modifiers. To calculate damage done by an attack, you roll a die dependent on the weapon your character is using and then you add any relevant modifiers. For instance, attacking with a dagger, you use a six-sided die plus some extra bonus for your character's strength. Rogue works in a very similar way. Your character, called Rodney, is represented by an at sign on the screen, the joke being that it shows where you're at. Rodney has a strength stat that modifies how much damage you deal to monsters
Starting point is 00:19:18 in combat. He has health points that dictate how much damage you can take, an armor class that determines how hard you are to hit in combat, and a player level. Killing monsters gains experience points. Once you earn enough, you level up and that increases your maximum health. Compared to Dungeons & Dragons, the stats and leveling system in Rogue is very simplistic, but it's about all you need because you're basically going to be spelunking and doing a little bit of combat. Here, combat is similarly simplified. Everything in Rogue is turn-based.
Starting point is 00:19:51 On each of your turns, you can move, attack a monster, or use an item. To attack a monster, you just bump into them. You don't have to hit any special keys. It's simple and effective. But under the hood, Rogue takes care of a lot of calculations to manage these simple encounters. Each monster has a similar set of statistics to Rodney. They have an armor class, attack damage, and health. If you hit or not is determined by the monster's armor class and how much damage you do is determined by the weapon you're wielding and your strength stat. But monsters aren't just static targets. They can
Starting point is 00:20:25 move and attack, just like you. Each monster is represented by a letter, like Z for zombies or I for ice monsters. To further complicate things, different monsters act in different ways. Some will attack you without provocation, running straight at you. Others are more passive. They're waiting for you to make the first move. Some monsters, such as the bat, fly around in a random zigzag pattern. Still others have special attacks, such as the wraith, which can drain player experience points and even knock you down a few levels. There are a little over 20 or so monsters, but the overall diversity keeps things interesting and really gives a feeling
Starting point is 00:21:05 of danger, with more powerful enemies appearing as you delve deeper into the Dungeon of Doom. If you aren't careful or pretty well equipped, then your adventure may come to an end before you know it. Luckily, there is some help for you on your quest. In addition to randomly placed monsters, there are also randomly dropped weapons, armor, wands, potions, food, and scrolls. Weapons are pretty self-explanatory. There's about nine different types, and they each do a different amount of damage. Some are ranged like a bow and arrow, some can be thrown like a
Starting point is 00:21:37 shuriken, and some are melee weapons like an axe. Armor also comes in a few varieties, each granting you a different armor class. Interestingly, armor is one of the few features that has a traceable attribution. Witchman suggested the addition. Food is another simple mechanic. As Rodney explores the dungeon, he gets hungry, so he has to eat something. Failing to do so may result in premature death and an end to your adventuring session. So far, all of those mechanics are a little complex, but pretty graspable. It changes for magic items.
Starting point is 00:22:14 Potions, scrolls, rings, and wands are a little more complicated. This is how Rogue implements the magic that has to be in any RPG for it to be very fantasy flavored. But it does so in an interesting way. Like everything in Rogue, these items are randomly dispersed in the dungeon. But they also have random names. Other items like weapons for instance all have set names. A spear is a spear and it has a set amount of damage it can do. A food ration is just some food. But magical items are less predictable. To quote Witchman, we wanted to be able to be surprised by our own game. That's why, for example, when you find a scroll or potion, it's got a random flavor and name. The correlation of the name to the flavor is hidden from the player.
Starting point is 00:23:06 When you pick up a potion, you're only given a rough description. In the original game, it would be flavor. Later versions used color. Scrolls are initially named something unintelligible, just a string of letters and characters. Rings and wands are described by their material, something like a zinc wand or a ruby ring. You can only tell what a magic item does by using it, and even then, it may not be apparent right away. A potion might heal your wounds, increase your strength, or render you blind. Every game, the name of these items are randomized, so you never know what you're in store for.
Starting point is 00:23:51 This adds another very deep layer of risk-reward to the game. Sure, you found a magical staff, but will it kill a monster, or will it transform it into a dragon that will kill you? All this together, the procedural levels, the complex monsters, random items, and a deceptively complex combat system makes up Rogue. The details sound really complicated, and they are, but it's surprisingly easy to sit down and pick up. There's a lot more going on under the hood than you see in a game. All actions are bound to the keyboard. Originally, Rodney was moved with the HJKL control scheme, but most versions of Rogue quickly dropped that in favor of arrow keys. In practice, combat is as simple as running into a monster to attack it, or running away to flee. And that's all you need to start. Most of the game is spent moving around.
Starting point is 00:24:42 But you can go a little deeper and use more features of the game is spent moving around, but you can go a little deeper and use more features of the game if you want. Other actions are all tied to their own key. Drinking a potion is Q for Quoth, changing weapons is W for Wield, and so on. It may sound cumbersome, but it's surprisingly easy to get used to, and you can always hit the question mark key to get an on-screen help menu. The final key piece of Rogue is a mechanic called Permadeath. There are no checkpoints in Rogue. If you die, the game exits you back to Unix. Later versions let you save your
Starting point is 00:25:17 game, but when you die, the save file is deleted. This, once again, escalates the stakes, since reading the wrong scroll or not being able to find food fast enough can kick you right out of Rogue. Then you have to start all over again from level 1. Toy and Witchmen would finish the first version of Rogue in 1980. The two had been showing off the game since early in development, but 80 is usually the agreed upon date for when it was written. The game would start circulating around the UCSC campus that year, and it would spread like wildfire. Much to the surprise of its creators, people quickly became engrossed with the game. It was just the right mix of simple gameplay with a lot of hidden depth,
Starting point is 00:26:01 and a lot of players got really deep into Rogue. To quote Toy once again, they would place themselves in this situation and their creativity would express itself. They made the world more interesting and beautiful. So even though the thing I created wasn't beautiful, people would color it with their own imagination, in the same way you would do when playing a text adventure game. I'd listen to someone explain how to play the game to someone else, and they'd start talking about something that was completely ridiculous and made up." In a lot of ways, Rogue would take on a life of its own. Even though it was created using just text characters, people really felt like it was a fully realized adventure.
Starting point is 00:26:43 And yes, it did live up to its creator's hopes. Toy and Witchman loved the game, and they were surprised by every session. But despite its popularity at UCSC, it may have stopped at the university. That is, if Toy had been better at, well, school. It Turns out that while developing Rogue, Toy had sort of disregarded all of his university classes. As a result, he flunked out of college. But he wouldn't stay away from computers for long. In 1982, Toy would move to UC Berkeley, not as a student, but as a programmer in their computer labs.
Starting point is 00:27:21 And he brought some new and exciting code along with him. In 1980, in the world of computers, Berkeley was known for one thing, BSD Unix. Toy was already well-versed in BSD, since it was the flavor of Unix that was used at UC Santa Cruz, and it was the development environment that he wrote Rogue in. No doubt it would have been exciting and tantalizing to get a chance to work on the BSD project personally, something like a pilgrimage that had no expiration date. He would have already known a lot of the programmers on the project by reputation, by using their software, so the experience must have been pretty exciting. And of all his new co-workers, there was one that Toy was especially excited to get to know. That would be one Ken Arnold, the author of Curses,
Starting point is 00:28:11 the library that made Rogue possible. Arnold may have been just as excited to meet Toy. As luck would have it, Arnold himself was a huge fan of Rogue. The game had preceded Toy through the ARPANET onto Berkeley's campus. But he had some issue with Toy and Witchman's program. Rogue worked, broadly speaking, but some technical aspects could be made a whole lot better. Specifically, it wasn't using curses to its full potential. Toy knew this too. He may have been a good programmer, but the best person to get Rogue running better and to use curses better had to be Arnold. With both Toy and the code now at Berkeley, it was only a matter of time before Arnold would join up to help polish the game. Improvements to the codebase of Rogue were important, but it's one of those boring
Starting point is 00:29:02 operational things. As any programmer will tell you, this kind of stuff is really at the core of software development. But it's not very flashy. With Arnold's help, Rogue started to run faster, maps would draw more quickly, and with a little tweaking, menus were operating a lot more smoothly. But there was a more flashy side to Rogue's tenure at Berkeley. You see, a big part of the BSD project came down to picking and choosing software. The operating system, like any other, came with a pre-selected package of programs and libraries. You get things like the Curses library, fancy text editors, programming utilities, all the stuff you need to get a computer up and off the ground and make it useful.
Starting point is 00:29:49 Which software is included in an operating system is an important decision. The minutiae of which version of text editor you should ship with may seem boring, but it could have major implications for your user down the line. You need to be able to provide what users want. While TOY was at Berkeley, Rogue only became more popular on campus. The program's arrival had preceded him, but his arrival on campus and the subsequent improvements that he and Arnold implemented made the game even more popular. So when programs were being selected for the next release of BSD,
Starting point is 00:30:26 So when programs were being selected for the next release of BSD, Rogue was widely requested. In 1984, BSD version 4.2 would be released, complete with a copy of Rogue. The humble game had already been spreading quite a bit, but once it was part of a standard BSD installation, it really picked up steam. This was the most popular version of Unix at the time that was being used on large computers. What's more, a huge amount of the mainframes on ARPANET were running BSD. So as those mainframes were upgraded to the newest release, Rogue came along for the ride. However big Rogue got at Berkeley, the university would ultimately just be a stopover for Michael Toy. After a few years working at the campus computer lab, he moved on to another job, one a little further away. The new job would be
Starting point is 00:31:12 in Italy, working as a consultant for Olivetti. Originally a typewriter company, Olivetti had been working on breaking into the computer market for quite a while with some success. It should go without saying that Toy was working at the computer branch of the company. Just like any respectable computer lab, Olivetti was outfitted with a mainframe running BSD Unix, so once again, Rogue preceded Toy's arrival. Toy's actual job at Olivetti isn't that important to our story. Rather, it's simply the setting for him to meet the next player. One of Olivetti's systems administrators at the time was a programmer named John Lane. Rogue was already well known to him. In fact, it was one of the most used programs
Starting point is 00:31:57 on the mainframes that he managed for the company. Lane himself worked out of the US office, but he made the occasional trips to the home office in Italy. And on one of those trips, as fate would have it, he met Toy. In Lane's words, Michael and I became fast friends. I said, hey, your game is unbelievable. We should get that running on the new PC that just came out. End quote. The PC that he was referring to was, of course, the IBM PC. It had only been unveiled a few years before, but had already become the next big thing in computers. The PC was primarily a business machine, but games like Colossal Cave Adventure had already made the jump from mainframes to this new platform. There was a small but growing market
Starting point is 00:32:43 for more games on the fledgling computer. It was a chance to get Rogue out into the larger world. The game had already become a mainstay on mainframes, so why not take it to the next level and bring it into the home market? Even better, they may be able to make a little bit of money off the whole affair. Following that line of thinking, Toy and Lane left Olivetti and founded Artificial Intelligent Design. The name doesn't really matter that much, it may as well have been called Rogue Incorporated, since the company would spend its life bringing the game to new platforms. And the first would be the IBM PC. Lane would head up this version, partly since he had some
Starting point is 00:33:23 experience with programming for the IBM machine already. But it wouldn't be a trivial process. Rogue was written for Unix mainframes, and the PC was a totally different computer. There was no Curses library for the new computer. But in exchange for that, Lane got access to color graphics. There was also more memory to play with. A well-appointed PC could have up to 256 kilobytes of RAM.
Starting point is 00:33:51 And you didn't need to share that between users. And the character set was different. IBM implemented all the standard letters and symbols that we see on a keyboard, but it also included an extended set of characters, such as smiley faces, some foreign language characters, and even some characters specifically for drawing rudimentary graphics. PC Rogue ended up being a total rewrite under the hood, but it kept the same gameplay, albeit with some more colorful and improved graphics.
Starting point is 00:34:20 Rodney was now replaced with a smiley face. Walls were now more solid than the earlier dashes. Toy and Lane would try to sell copies of the game themselves, but they'd meet with mixed success. It's important to note here that the spread of the game, from Toy leaving UCSC, to BSD shipping with Rogue, to Toy leaving Olivetti to make a PC part of the game, took place in the span of just two years, from 1982 to 1984. To paraphrase Witchman, during that time, quote, Rogue was my resume. It spread was so fast among the burgeoning computer scene that a lot of doors were open for everyone involved with the game, and a lot of opportunities showed up without prompting. One of those came from the company Epix, a game developer
Starting point is 00:35:13 and publisher. One with a lot more experience than the very new Rogue Incorporated. So to the list of fans of Rogue, we can now add all of UCSC, UC Berkeley, almost anyone on ARPANET, Olivetti in both America and Italy, and, it turns out, the employees at Epyx. Rogue had become somewhat of a favorite game around the office, so much so that there started to be internal pressure to help fund AI Design's work to port Rogue to new computers. So in 1984, Epyx got in touch and struck up a formal contract with AI Design. The details worked out something like this. Epyx would pay the Rogue team to produce more ports of the game to other computers, starting with a new version to the Macintosh computer.
Starting point is 00:36:04 Epyx would also publish, advertise, and distribute the game. It was just the kind of opportunity that Toy and Lane were looking for, so they took the deal. The newest versions of Rogue in the works were going to be a pretty big jump from the Unix original. Up to this point, each version had used text characters to draw its quote-unquote graphics, but the new Apple Macintosh offered a chance for a really big upgrade. Apple's machine was all about graphics, so the rogue crew was excited to make use of the Mac's shiny new black and white graphics. The thing was that neither Toy nor Lane knew how to program the thing.
Starting point is 00:36:44 The thing was that neither Toy nor Lane knew how to program the thing. It was going to be a pretty big undertaking to get the game off the ground on the young system. Not to mention that neither of them had much experience with graphics. So, they reached out to someone that they knew could help them. Someone who was already intimately familiar with Rogue. That would be Glenn Witchman.ichman himself had been estranged from Rogue for a number of years. Major development on the game seemed to follow Toy as he moved from place to place. But starting with the Macintosh version, he joined back into the fold. While Toy
Starting point is 00:37:19 and Lane worked on the code for the game, Wichman handled drawing all the graphics. the code for the game, Witchman handled drawing all the graphics. The flashy new version would use sprites and tiles to render a 2D world in a pixelated black and white. Compared to today, it's rudimentary, but it was a huge jump from the Unix and PC days. Rodney was now a little knight, complete with armor and even a hat with a feather in it. As legend has it, the Macintosh version of the game was built by the new team of three while snowed in at a cabin near Lake Tahoe. I really like the idea of a bunch of programmers stuck in a cabin for days on end, but with the state of evidence, that's something that I can't really confirm or deny. After the PC and Macintosh versions were completed and starting to sell, the team worked
Starting point is 00:38:06 on various ports. There were versions written for the Amiga, the Atari ST, and the TRS-80. All would have varying levels of graphics, but the same gameplay. Rogue was already a huge success amongst computer nerds, and rightly so. Even its earliest versions with black and white Texmo graphics were fun and addictive. Later iterations, the graphical versions especially, must have been huge hits, right? Well, not so much. There was modest success, the team made some good money, but Rogue didn't catch on fire in the home market. some good money, but Rogue didn't catch on fire in the home market. Even with the backing of Epix, the game just didn't take off. Now, there's a lot of factors behind that, and I've seen a lot of competing theories as to the poor sales. I've heard it blamed on piracy, or poor marketing,
Starting point is 00:38:59 or gamers just expecting better graphics out of their games. But I think it comes down to Rogue failing to make the transition at the right time and place. The gameplay of Rogue is all about discovery. You can spend hours upon hours trying to find new secrets in an ever-shifting and changing dungeon. You couldn't find a better analogy for the environment that it was developed in. The inspiration for the Dungeon of Doom came from games that spread over the ARPANET. In that early era of the internet, you didn't have search engines. To find something, you had limited options. You'd either find out via word of mouth, or you'd spend hours spelunking around the network seeing what you could find.
Starting point is 00:39:44 Once finished, Rogue itself would become part of that network of word of mouth and hard-fought discovery. The people who found and fell in love with Rogue were already used to that game from their time on ARPANET or in computer labs. Something that wasn't as prevalent on home computers at all. There isn't the same sense of a discovery when you walk into a computer shop and buy a small cardboard box full of floppy disks. The other problem came down to timing. Rogue had become wildly popular with programmers very very quickly. The same type of people who made Rogue in the first place were the same type of people who loved it. The PC version would
Starting point is 00:40:26 be completed in 1984, with the Epyx release coming sometime around 1985. But even by then, there were already Rogue-inspired games floating around. There were games like Hack, first written in 1982 and later rewritten for PC in 1985, or Moria, which first appeared in 1981. These games are now called roguelikes, and they would copy and expand on the original gameplay of Rogue. This tradition continues on into the modern day, but it started very early on in Rogue's history. The distinction between the AI-designed versions of Rogue was that these roguelikes were
Starting point is 00:41:06 all free. Instead of buying a commercial version of Rogue, you could just play a free roguelike, often with much more features than the original game that you'd have to pay for. Outside of the roguelike flood, there were also just improvements being made to more standard RPGs. Remember that part of the reason Rogue was developed was to fix the problem of running out of adventure games to play. But with more adventure games being produced and new games being longer, it would take more time to run into the replayability issue that Rogue was so good at addressing. Many of the gamers that may have loved Rogue were simply busy with newer adventure titles. But even if Rogue never made Toy, Witchman, Arnold, or Lane millionaires, it may have done something better.
Starting point is 00:41:53 The Rogue formula can still be seen in games today. It set up a genre for later success. Even after all the advancements in graphics and gameplay improvements made over the decade, Rogue is still a fun game. It's still something good to come back to again and again, and again, and again, and every time, it'll feel just as new as the first time you played. So that does it for today's episode and for our discussion of Rogue. The game went from a hobby project at UC Santa Cruz to a standard part of BSD to a commercial project. It eventually flopped in the market, but at every step of the way it gained fans and
Starting point is 00:42:38 massive acclaim. Rogue grew out of a very specific set of circumstances. Toy and Witchman wanted a way to keep playing adventures in cyberspace despite the limitations of other games. But it turned out that the same feeling was shared by many in the computer scene at that one time. Despite Rogue itself never becoming a household name, it inspired games that would go on to become much more popular outside of computer labs. So how should we make sense of Rogue's legacy? Personally, I like Witchman's take on the game. Quote, I think Rogue's biggest contribution, and one that still stands out to this day, is that the computer itself
Starting point is 00:43:18 generated the adventure in Rogue. Every time you played the game, you got a new adventure. in Rogue. Every time you played the game, you got a new adventure. End quote. That was the biggest single contribution that Rogue made to video games that would follow. The idea that a game could go on forever and still be fresh and new. Many later games that aren't explicitly roguelikes make heavy use of this idea. You have things as simple as randomized quests that show up in a lot of modern RPGs to fully procedurally generated games like No Man's Sky. Rogue unleashed something new and exciting that we still benefit from today. If you want to learn more about Rogue and its descendants, then you're in luck. There are a lot of resources within easy reach. I would suggest you start by playing the game. There's many versions to choose from. The Internet Archive is a great way to get the
Starting point is 00:44:09 game from the comfort of your web browser, but you can also track down later updates to the original. Many roguelikes are free and open source and easy to find, with Slashim or NetHack probably being my personal favorites. If you want to learn more about the history of Rogue and its derivatives, then I'd highly recommend tracking it down a copy of Dungeon Hacks, How NetHack, Angbang, and Other Roguelikes Changed the Course of Video Games by David L. Craddock. The book has some great original interviews with the creators of Rogue, and it proved an invaluable resource for me in preparing this episode. Thanks for listening to Advent of Computing. I'll be back in two weeks
Starting point is 00:44:51 time with another episode exploring the strange path to the modern world. Until then, if you like the show, why not take a minute to share it with a friend? You can also rate and review me on Apple Podcasts. If you have any comments or suggestions for a future episode, go ahead and shoot me a tweet. I'm at Advent of Comp on Twitter. And as always, have a great rest of your day.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.