MazePart of a series of games in which you navigate a 3D maze with a joystick. The art is as simple as it 3D gets, with fixed screen coordinates for drawing a wireframe room and optionally doors on each side of the room. No actual 3D projection or rotation, of course. Internally, the shape of the maze is directly represented in the program structure; rooms are blocks of code that draw doors, poll the joystick for input, then jump to the appropriate room code. I remember Alan suggesting I use an array to represent the maze data, and although I also remember implementing a sequel using that technique, I didn't find it on this disk.
"Apartment" and "Theif"Two text adventures with similar code bases. The writing in both games is definitely mine, and the puzzle design seems like mine, but I'm unclear on how much of the code is original and how much I typed in from code listings -- I know I read at least one book that had a BASIC code listing for a text adventure in it. Hell, who didn't, back then?
Space PatrolFirst thing you see after running this is a password prompt. I was obsessed with hacking and security back in the day, despite knowing nothing about it except what I'd read in Clifford Stoll's "The Cuckoo's Egg," and this was as secure as I could make it, the password being stored in a text file rather than in the program source. (It was "quark," by the way.)
The meat of the program is a turn-based combat game with the theme of fighting an alien invasion hand-to-hand, one alien at a time. I was clearly trying for a relatively complex set of mechanics, but the choices are largely meaningless and the result comes down to luck in the end. If you win, you're presented with a newspaper clipping about investigation turning up thermonuclear warheads on their spaceship. I'm pretty sure this game directly precipitated the 2003 invasion of Iraq.
"CS"This program rolls D&D stats and prints suggested classes. I was obsessed with D&D as a kid and had a bunch of the books, but never had enough interested friends to actually play a campaign.
QuestI was trying to make a dungeon crawl. I remember being very disappointed in the results, but not knowing why it was failing to be fun. I so wish I could go back in time and give myself some game design pointers, because the mistakes are blindingly obvious now: no actual game choices! The "exploration" is obviously false, the result you get being purely a dice roll. Same deal with the combat mechanics. The sad thing is, while I hadn't played much actual D&D, I totally had the books, and I could've lifted some solid combat mechanics out of them as a starting point rather than failing repeatedly to build my own from scratch.
GunnerA two-player game of the Artillery lineage, the kind in which you enter an angle and power to fire at your target. The only feedback you get is whether your shot went too far or not far enough -- and in the test game I played, it was always "not far enough," even at maximum power. There's a weird time limit mechanic going on as well: each player has a limited number of shells, and sometimes one of your shells explodes spontaneously. Not sure what my intent was there other. It does serve the purpose of preventing ties, but I don't think I was a sophisticated enough designer back then to have that as a goal.
GunsThis might be the most entertaining game on the disk. It's a one-player simplification of the Gunner idea, giving you a series of targets and a limited number of shells to hit them with. This one only asks for an angle, not a power, and tells you how far off your shot was. It doesn't tell you whether you shot too near or too far, but that actually makes the puzzle more interesting, because it means the gameplay isn't a simple binary search.
Bean Game, Pool, ElectricianThese were all basically re-themes of Three-Card Monte. Sample output, from "Pool":
My guess is that the way these came about was that I sat down one afternoon after school, decided I wanted to write a game, couldn't think of a decent theme, hit on the idea of being a lifeguard, couldn't come up with a decent mechanic, shat out another guessing game, and never loaded the file again until twenty years later. It's interactive, what more do you want?'HELP! HELP! IM DROWNING!' WHICH NUMBER DO YOU THROW THE LIFE RING TO? (1-5) ? 3 GLUB! GLUB! YOU MISSED! TRY AGAIN? Y/N? Y WHICH NUMBER DO YOU THROW THE LIFE RING TO? (1-5) ? 1 GLUB! GLUB! YOU MISSED! TRY AGAIN? Y/N? Y WHICH NUMBER DO YOU THROW THE LIFE RING TO? (1-5) ? 2 GLUB! GLUB! SOMEBODY ELSE HELPS THE DROWNING PERSON AND YOU GET FIRED
HeistAnother guessing game, this one themed as an elaborate multi-stage heist. The best part is the "you lose" message:
HONK! HONK! HONK! YOU BLEW IT MUGSY!
"Obstc"This is the same game as "Heist," except instead of being about a Heist, it's about an Obstc. I mean, an obstacle course. Its "you lose" message is just "you lose."
Interstellar WarA two-player game where each player places a ship on an infinite grid, and then they take turns guessing what grid coordinates the opponent's ship is on. I should remake this and call it Futility Battleship.
Russian RouletteWith multiplayer! The game continues until all players but one are dead. Who is the winner even going to gloat to? Grim.
ReverseThis is a satisfying little puzzle with about the same amount of replay value as Tower of Hanoi. Sample output:
I'm not sure where I got this mechanic; it seems a little too elegant for Jim-1991 to have just come up with it.3 1 4 5 2 HOW MANY DIGITS DO YOU REVERSE? 4 5 4 1 3 2 HOW MANY DIGITS DO YOU REVERSE? 5 2 3 1 4 5 HOW MANY DIGITS DO YOU REVERSE? 2 3 2 1 4 5 HOW MANY DIGITS DO YOU REVERSE? 3 YOU GOT IT! WITH ONLY 4 TURNS!
Scrambled WordsI clearly made the fancy title screen and instructions for this game before making the game itself. The game asks the player to unscramble a sequence of letters into words. Looking at the code, I had a small dictionary of possible words to present the player with -- including "FEATHET" -- but I'm sure with them fresh in my mind, it wasn't very fun for me to play. Also, every difficulty except "7-letter words" is broken.
ScramblerThis is a multiplayer version of Scrambled Words. A more sustainable idea from a game design standpoint, but I don't know who I was going to play this with, since I was spending all my time coding rather than making friends.
ZooThis program plays twenty questions with you, building a binary tree describing the animal kingdom based on information you give it. This was Alan's idea and he may have written the code as well, although it at least looks like my style. This game was password-protected as well. ("Quark" again. I think it was the name of a pet cat?) And I added some code to lock up the computer if you tried to hit RUN/STOP to break out to the BASIC prompt.
Star TrekLoading this, I assumed I must've typed in the old Star Trek game from a book of code listings, but it actually seems like a half-assed clone of that game. It's interesting to me that I decided to do this, since I'd never watched Star Trek as a kid; the only Star Trek themed thing I'd ever paid attention to was the game. I guess it's probably similar to how, a few years later, I wanted to make a pirate-themed adventure game when the only pirate-themed thing I'd ever paid attention to was The Secret of Monkey Island.
TMNTI was obsessed with the Teenage Mutant Ninja Turtles, and clearly wanted to make a game. I got as far as the title screen, theme music, and character selection interface before petering out, presumably because I couldn't think of any actual game mechanics.
"Mar"This seems to be the start of a Mario Bros-themed CYOA. Apparently I ran out of ideas after the second scene, but there is a neat little bit of world building where I describe how Mario and Luigi made piles of grass below the pipes they jumped into, to cushion landings.
"BA"This program appears to simulate a conversation with a hyperactive child, randomly choosing from fixed responses no matter what the player types. Sample output:
HELLO! WE'RE GOING ON VACATION! ? GOOD FOR YOU HOW OLD ARE YOU? ? OLD ENOUGH TO REACH THE GROUND CAN YOU GO TO THE ZOO? ? YES BYE! IT'S LUNCHTIME! ? OK, HAVE FUN ?EXTRA IGNORED CAN YOU PLAY WITH ME? ? I SUPPOSE WILL YOU BE MY FRIEND? ? NO CAN YOU TELL TIME? ? YES WHEN IS YOUR BIRTHDAY?
BachI typed in a code listing from a BASIC manual that played Bach's Invention No. 13. I loved it, not realizing I'd gotten the 14th measure horribly wrong.
MusicThis program plays notes based on keyboard input, also drawing boxes of varying heights. Multimedia! I don't know why I thought arranging musical notes in alphabetical order was a good idea. Also, judging by the the formula for calculating the frequency of each note, I thought there were 13 semitones in an octave.
The Dictionary of Video GamesSample output:
If you enter the name of one of the NES games I owned at the time, it prints a one- or two-sentence summary of the game. About 30% of this program is about Mike Tyson's Punch-Out!!!, because it has duplicate entries for "Punch-Out," "Punch-Out!!!," "Mike Tyson's Punch-Out," etc.THE DICTIONARY OF VIDEO GAMES! WORD? CHESS SEARCHING... I DON'T KNOW THAT GAME. IT MUST BE NEW. WORD? GLOBAL THERMONUCLEAR WAR SEARCHING... ?OUT OF DATA ERROR IN 120 READY.
The first sentence in the Contra definition is "A GAME IN WHICH YOU PLAY BILL OR LANCE." Yes, Jim-1991, that is the most salient feature of Contra. This actually fits right in with a recurring motif in these programs, that they were obviously written theme-first, with game mechanics coming later if at all. This isn't a bad design strategy per se -- Shigeru Miyamoto and Will Wright both work that way, for two very significant examples -- but it is a hard thing to pull off well.
DictionaryThis uses the Dictionary of Video Games engine, except I fixed the out-of-data error. According to this program: Floppy Disk: "TINY MAGNETIC STORAGE AREA" High: "HOMONYM OF LOW" Music: "A NICE SERIES OF SOUNDS" Shiny: "AN ADJECTIVE THAT MEANS 'THE FOLLOWING NOUN REFLECTS LIGHT.'"
TagThe player runs around a mostly-empty playfield using joystick input, chased by an octothorpe. Since the player and the octothorpe move at the same speed, and since the goal is on the opposite side of the octothorpe, it seems to be literally impossible win.
Catch the Mountain ClimberThe player uses the joystick to maneuver your underscore to catch a falling exclamation point. I remember being quite proud of this at the time.
Cosmic GarbageHey look, I invented Space Invaders, but with only one invader that doesn't shoot back. The common theme for all these arcade-style games: I didn't really understand arrays, so I couldn't easily have more than one of any given thing moving around.
Cat & MouseSample output:
The mechanic here seems to be based around the player's ability to count seconds, since success or failure appears to be based on timing of the slap. Note that in this universe, mice aren't edible and are deliberately set loose by cat owners as a challenge.YOU ARE 12 FEET FROM THE WALL THE MOUSE IS 13 FEET FROM THE WALL YOU'RE MOVING... PRESS 'S' TO SLAP THE MOUSE YOU GOT IT! YOUR OWNER REWARDS YOU WITH A PIECE OF FISH, AND GIVES YOU ANOTHER MOUSE TO CATCH YOU'VE ALREADY CAUGHT 1 YOU ARE 1 FEET FROM THE WALL THE MOUSE IS 4 FEET FROM THE WALL YOU'RE MOVING... PRESS 'S' TO SLAP THE MOUSE YOU MISSED IT! YOU ARE 3 FEET FROM THE WALL THE MOUSE IS 4 FEET FROM THE WALL YOU'RE MOVING... PRESS 'S' TO SLAP THE MOUSE
"Chal"8-digit Mastermind. This game works fine except for an unfortunate interface issue: you have to press enter between each digit.
BlackjackI don't remember exactly how Blackjack works, but I'm pretty sure the dealer doesn't just say "KEEP" over and over again, filling the screen in an infinite loop.
CardsI'd seen people "playing cards" in movies but I didn't know how card games actually worked. I was aware that you chose your bet based on the hand you were dealt, and that your hand had a value relative to other hands, but that's pretty much all I had figured out. My hand scoring mechanism was to sum up the face value of each card.
CodesThis program enciphers text entered. At first I was sure that the progress bar was artificially slowed because Jim-1991 thought progress bars were awesome, but no, the code actually does run that slowly, looping over a string containing the alphabet and comparing it to every character in the plaintext to determine each letter's index into the alphabet. Also: I totally used a semicolon correctly in the instructions!
CrackerI was obsessed with the two Terminator movies as a kid and I believe I wrote this program to recreate the visual effect of a young John Connor breaking into a bank account: flashing sequences of characters at the user and eventually settling down on one particular sequence. Your password, sir. Have a nice day!
Elena's GameI guess I wrote this to teach my sister to enter digits? Because that's what the game asks you to do. She would've been I guess three years old at the time. This is also another game I wrote title-screen first, and I clearly put a lot more work into the fancy animated title screen than the game itself.
ZapA typing practice game, displaying a random sequence of letters to type and giving you a limited amount of time to hit each one. Either I didn't worry much about balance, or I'm a much better typist now than I was back then, because this game is super easy for me even after having switched to Dvorak over a decade ago.
Math ClassThis is an evolved version of the very first program I wrote, which I had in my head long before I ever touched a computer, a very simple arithmetic quiz program. This version randomizes the problems and insults the user when he or she gets the answer wrong.
"Chan"This draws a series of vertical lines in text mode, taking about ten seconds to cover the screen, then pokes holes in each line. I think it was generating the playfield for a game that I never got around to making.
NovaWhen I ran this program I assumed it was me experimenting with the SIN and COS functions, but actually it uses the Commodore 128's "BOX" draw function, which takes a rotation parameter, to draw lines crossing the center of the screen at different angles.
Sound Effects MachineCopyright Crawford Games, 1991! A soundboard. I remember putting on little radio plays, recorded on tape, and using this sort of program to provide sound effects. The sounds available were: "Alien," a siren thing, "Machine Gun," a low-pitched square wave where each zero crossing I guess represents a gunshot? "Hand Grenade," which crashes the program, "Siren," which might be exactly the same sound as "Alien," and "Laser," a noisy repeating descending thing.
GuessThe tables are turned this time: the computer does the guessing here. This is a gussied up a binary search routine. I'm sure it was Alan's idea for me to write this. Honestly, looking at the code style it might've been his code too, with me contributing the snarky print statements.
"Roma"This program prints random robots using the Commodore line drawing character set. I'd paste some examples here but I don't think there's a good mapping from the Commodore character set to Unicode.
SentencesA sentence generator. Adjective noun adverb verb. E.g.:
And that's all of the interesting programs. I wish I had some conclusion here other than that I was a terrible game designer when I was 12.STRONG FIRES BRIEFLY SWELLED NEW CROOKS HAPPILY WALKED FAST WOMEN BRIEFLY MARCHED SMALL FEATHERS QUICKLY SUNK SLOW BOOKS TENDERLY LAUGHED STRANGE CARDS COOLLY MOVED INTERESTING STARS WISELY FEARED COLD TOILETS ANGRILY SWELLED SOFT STARS STUPIDLY LAUGHED