The Dungeons of ROG Willard Goosey Presented by the FSLF And The Secret Society of BASIC Hackers 2k2-2k13 The Tandy Warlock lives somewhere in the Dungeons of ROG. This evil wizard is responsible for many evils. Remember when Tandy quit selling Model 102s? CoCos? Model IVs? It's HIS fault. He stole the CoCo 4 prototype, and the Model V. He removed the Model III ROM from the 4P. He was the one who demanded that XENIX for the Tandy 6000 be sold only on single-sided disks. He is the reason the Tandy 1000 didn't have a DMA controller and the reason nothing else in the universe can read TPDD disks. The Tandy Warlock is EVIL! He is the cause of all brain-damage in Tandy computers! And now, you get to hunt him down. But, you have to get to him, first. ROG traces its concept and "look" to Rogue, one of the first great computer D&D type games. It is a baby brother to giants like Angband, Nethack, Moria, Larn, Omega, and ADOM. Those games run on real computers. Now, the Model 100 has ROG. The central idea of ROG is that the player is wandering around in an underground cave system or dungeon. It is full of monsters and treasure. The goal is to survive to Level 26, kill the Tandy Warlock, and make it out alive. The Player is represented by a human-looking text character (M100 augmented ASCII). Walls are block graphic characters, and monsters are regular letters a-z. The Warlock is represented by W. The game provides a top-down map of the level. Action is turn-based -- when it is your turn to go the game waits for your command. All creatures (the Player and the monsters) have three stats: Mind, Body, and Soul. If any stat goes negative, the creature dies. The higher the stats are, the stronger the creature. The Player's starting stats are in the range of 4 to 18. The Body stat covers all things physical. How hard you hit, how often you hit, and how well you avoid being hit in return are resolved with the body stat. Body attacks do body damage. The Player does up to half of his current body points in damage, plus a "strength bonus" of one point damage per 10 body points. The player can meditate on the frailties of existence, burning 4 body points to heal his mind. The Mind stat reflects how intelligent the creature is. Monster visual range is calculated from its mind stat. Magic damage is done by and against the mind stat. Mentally attacking a monster causes the loss of 4 mind points from the player -- in this case the mind stat serves as a mana point pool. The player can rationalize his actions, using 4 mind points to heal his soul. The Soul stat represents the non-intellectual aspects of the mind -- it is your cool, your holiness factor, and your musical tastes :-). Praying uses 4 soul points, and causes soul damage to any monsters standing next to the player. The player can cast a divine aura, using 4 soul points to heal his body. The Player regenerates mind, body, and soul points at the rate of one per round. Let us consider a sample screen. Pretend the "@" is the Tandy "human" graphic, and the "#"s are solid blocks. ---------------------------------------- |You find 10 gold! | |Body: 10/ 10 *< ## ##! # #$ | |Mind: 14/ 14 *@# $ f# # ### | |Soul: 11/ 11 * # # # # | |XP: 0 * # # # # $ ! # # | |Level: 1 * # # # # # ## # | |Dungeon: 1 * #$ # # $# # | |Gold: 10 * > | ---------------------------------------- The top line of the screen is reserved for messages from the game. Messages that are too long to fit on one line are broken up. If the line end with "-more" press the space-bar to see the rest of the message. On the left side of the screen, we have the player's stats. The first number is the current number of points, the second is the current maximum. For instance, the player currently has ten out of ten body points. (wimp!) XP is the number of experience points the player has. Level is the character's level. For each level of experience, the XP requirement goes up by a factor of 1.2. 10 points are required to make level 2. Each time the character levels, 1-6 points are added to each of his stats. Dungeon: is the level of the dungeon the player is on. Gold: is how much money the player has. On the other side of the screen is the dungeon map. The @ is actually a Tandy-specific ASCII character. The #s are also Tandy extended-ASCII characters. The < is an up staircase. As this is level 1, going up the staircase will end the game. The > is the down staircase, leading deeper into the dungeon. Dollar signs are piles of money sitting on the floor. Exclamation marks ! are potatoes. Magic potatoes grow in the dungeon. Some are beneficial, some are harmful. The f is a monster, XP on the hoof. If you get it before it gets you! ROG is written in BASIC, and has some serious issues. First, it's big. It's too big to download with TELCOM and then load into BASIC. Second, it's slow. There's enough going on each turn that it takes a noticeable amount of time for the player's turn to come around again. When you start ROG, it sets up some variables, then asks for your name. Then it asks if you wish to load a saved game. "y" will load a saved game. otherwise it will ask if you want to use the autoroller to generate your character. Answer "y" or "n". If you answer "y" to the autoroller, you are then asked for the minimum stats you want. No beginning stat can exceed 18. This rule is silently enforced -- if you ask for a higher stat, it will roll stats forever. After a set of stats have been generated, ROG asks you if you wish to re-roll the stats. A "y" will go back to beginning, anything else indicates acceptance. When the player has accepted a set of stats, the first floor of the dungeon is generated and the screen is set up. Movement is controlled by the arrow keys and the classic "roguelike" keys. The full list of keys are: h, left arrow = move left one space l, right arrow = move right one space j, down arrow = move down one space k, up arrow = move up one space y = up & left u = up & right b = down & left n = down & right < = go up a staircase > = go down a staircase z = zap with mind magic (takes a direction key) S = stop the game s = save and quit r = rationalize. Use mind points to heal soul p = pray. Use soul for area soul attack a = aura. Use soul to heal body damage m = meditate. Use body to heal mind damage P = power off. When machine is turned on, game continues. (Does not work with REX.) . = rest. Do nothing this turn The direction keys move the character one step in the indicated direction. To attack a monster physically, move into its space with a direction key. < and > go up and down staircases. You can only go up an up staircase and can only go down a down staircase. If the character is not standing on the appropriate staircase, the screen redraws. z (zap) uses Mind magic to attack the mind of a monster. When the player presses "z" ROG asks for a direction. Any of the regular direction keys works. Mind attacks move in straight lines along the 8 possible directions. Using a mind attack costs the player 4 current mind points. If it hits a monster, it does half the player's level, rounded up, in mind damage. S executes a BASIC stop command. This is a debugging command -- please don't cheat too much. s Saves the game and quits to the MENU. A new level is generated when the game is reloaded. Unless you're on level 1 it is not guaranteed to be a solvable level, therefore you're placed on the up staircase. The name of the save file is the first 6 letters of the name you entered at the beginning of the game... Existing files will be clobbered silently. p (pray) uses the characters soul points to damage the monster's soul. When the character prays, he is surrounded by a glowing aura that damages any monsters caught in the aura. The aura extends for one step all around the character. Praying uses 4 soul points and does half the player's level in soul damage, rounded up. (Secret Hint! The Prayer ALWAYS causes a 3x3 aura... Even when the aura would extend off the screen...) r (rationalize) use mind points to heal soul damage. It takes 4 mind points and heals 1d6/level soul points, up to your normal maximum. a (aura) uses soul points to heal body points. It takes 4 soul points and heals the player's level * d6 body points, up to the player's maximum body points. m (meditate) uses body points to heal mind damage. It takes 4 body points and restores 1d6/level mind points, up to your normal maximum. P (power) causes the game to execute a POWER OFF:RESUME statement. In other words, it turns off the Model 100. When you turn it on, the game will continue. Unfortunately this feature does not work with REX. . causes your character to rest that round. The character recovers stat points at the rate of 1 per round. Additionally, a space will clear the message line. Any combat, be it physical, mental, or spiritual, is a chancy proposition. Physical attacks may hit or miss, and the character's ability to hit and do damage is reduced as his body stat is reduced. Mind and soul attacks have associated saving throws. If any stat is reduced below zero, the character is dead. Compared even to the original Rogue, there are many features missing from ROG. There are no items besides gold. The character is effectively a multiclass fighter/mage/cleric. There is only one mind spell and one prayer. Initiative is fixed in ROG. The order of events for each round are: Player recovers 1 stat point in each stat that is below maximum. Player moves. Monster #1 moves. [..] Monster #10 moves. Monsters are numbered according to the order they were generated in. There is a maximum of ten monsters on a level. The number of monsters generated on a level (and the level of monsters generated) depends on the character's Effective Level. This is simply the maximum of the character's level and the dungeon level. Thus, on the first level, 1 first-level monster is generated. A fifth level character on the fourth floor will face 5 level 5 monsters, but a fifth level character on the sixth floor will face 6 level 6 monsters! There are 26 species of regular monsters (a-z) and 1 unique monster (W). They are: a Ant - A giant red ant. b Boomer - Blue, apelike robot c Chimp - a small ape, crackling with power. d Dog - a mean, hungry looking canine. e Esper - a man, black of hair and red of cloak. f Flyer - a purple manta ray, swimming in the air. This is _SO_ wrong. g Ghost - ya, he ist das dead d00d. h Horner - a rhinoceros like beast i Inteller - a man with a huge, pulsing brain j Jello - a quivering, colored blob. k Kilrathi - the fierce tigerlion. l Lemming - a small rodent with a mean bite. m Moose - it stares at you with big brown eyes. n Nihilist. A pale people in black. He doesn't believe in you, either. o Octopus - clever and hungry, with too many tentacles. p Puritan - he's afraid that someone, somewhere, is having fun. q Quark - a dangerous subatomic particle. r Rattlesnake - a large snake, its fangs dripping poison s Spaceball - he's good at being bad t Teamster - You should have joined the union when you had the chance. u Uruk-hai - Like an orc, but stronger, faster, and deadlier. v Valkyrie - She's a Chooser of the Slain. And she chooses you. w Wight - a powerful ghostly undead x Xlarmada - the bloodthirtiest, most vicious creature on Hark. y Yak - big, woolly, and smelly. z Zulu - A powerful warrior from a race of warriors. He has a mean spear. W Tandy Warlock - Master of the dungeons of Rog. He will show you why he is the Warlock. This version is too big to download via the 'TELCOM' program in ROM. The easy way to load it is to use a PDD DOS like TS-DOS or TEENY. Otherwise you have to download it directly into BASIC. To download the BASIC source, tell BASIC to: load"com:rwpbs" where: r= rate 1= 75 bps 2= 110 3= 300 4= 600 5= 1200 6= 2400 7= 4800 8= 9600 9= 19200 w= bits/word 6= 6bit 7= 7bit 8= 8bit p=parity Even Odd Ignore None b= stop bits 1 or 2 s= Xon/Xoff status E= enable D= disable like: load"com:98n1d" (BTW these com: specs work everywhere it expects com parameters). Credits: Jon & Ian Raloff, who let me steal their broken m100 with the line "I fixed it so it's mine now." Ben Sittler, who inspired me to try my hand at writing games. Eugene Aalto, who challenged me to write a Rogue-like game on the Model 100. Joe Kozak, for suggesting the Nihilist, one of the most dangerous creatures in the game, and for playtesting. Jim Brown, for playtesting. Even if he doesn't remember the roguelike keys. Elya, for suggesting monsters. Phred, for suggesting monsters, and playtesting. Lex, for confirming that ROG doesn't work on a Model 200 (it should now!) Club 100, for providing support for the M100 Ron Wiesen for new randomize() systems. Steve Adolph for creating REX. Los Alamos National Labs, for buying and the then surplusing my m100. The mad "Model T" nuts on bitchin100.com. All the authors of all the various roguelike games, for inspiration. All the sources monsters were pulled from, for all the enjoyment I've had from them.