RSS

In Defense of BASIC

If there’s a programming language that just don’t get no respect, it’s BASIC. One could make a pretty good little bathroom reader from all the snarky comments it’s attracted over the years. My favorite is this gem from Edsger W. Dijkstra: “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC. As potential programmers they are mutilated beyond hope of regeneration.” (I think Dijkstra’s slightly stilted phraseology works better if you imagine it being said with a heavy Dutch accent.) That’s a bit hyperbolic, to be sure, but certainly BASIC has a lot to answer for. When I was a kid trading software on my trusty Commodore 64, saying a program was written in BASIC was as good as saying that it sucked. And things haven’t changed that much today. Has any development environment, ever, produced as much awful software as Visual BASIC? I must admit that learning that a program was written in Visual BASIC is still sufficient reason to make me not even try it.

But despite all that, BASIC’s importance in the history of computing is immense. Before it, there existed two principal computing cultures. First there was the mainframe culture. Centered around IBM and a few other big companies that tried to compete with it, it was marked by what Steven Levy so memorably called the “priesthood” model of computing common to government and big business: a few highly trained, lab-coated elites serving as minions of The Machine, doing everything by (IBM’s) book, with creativity and fun strictly Off Limits. The other culture was the hacker culture that sprung up at MIT and similar technical universities and perhaps the occasional smaller company: a group of generally young savants who were fascinated by the world inside the machine and lived to hack, who scoffed at the conservatism and groupthink of IBM and particularly embraced the smaller machines of the more freewheeling Digital Equipment Corporation (DEC). Different as they were, neither of these cultures cared much about making computers accessible to the everyman. Neither culture had any time for or interest in anyone who did not think in bits and bytes and registers.

When John Kemeny and Thomas Kurtz designed and implemented the Beginner’s All-Purpose Symbolic Instruction Code at Dartmouth University in 1964, they were not trying to please hackers or computer scientists. They were, rather, trying to make it possible for “ordinary” individuals to productively use computers. Today the idea of a programming language for the masses is almost oxymoronic; they simply load up their computers with the latest from Microsoft, Apple, or whomever, and leave the programming to the professionals. Back in 1964, however, and for quite a long time afterward, applications software in the way we know it today did not really exist. Using a computer for any but the most rote of tasks virtually required programming it; certainly, at any rate, using a computer creatively did. In attempting to bring computing to the masses, Kemeny and Kurtz’s goals were not so much technical as sociological, political, even ideological. A third computing culture, one I already began to discuss when mentioning HP Time-Shared BASIC and Creative Computing magazine in the context of The Oregon Trail, began with BASIC at Dartmouth in 1964 and remained associated with the language for many years.

While the priests in their climate-controlled data centers and the hackers sequestered away in their cubbyholes at MIT were oblivious to the changes that were wrenching society in the late 1960s and early 1970s, the BASIC culture was full of counterculture excitement. They were all about bringing these machines out of the banks and the ivory towers and putting them at the disposal of the street. That makes their work as important as that of the hackers who were inventing C and Unix and laying the foundation of the Internet at about the same time. Sometimes, more perhaps than either would first want to admit, the two cultures even intersected, as they did in the case of the game I want to talk about my next historical post, Hunt the Wumpus, which originated in HP Time-Shared BASIC but was novel and appealing enough to be attractive to the traditional hacker mindset as well — appealing enough to influence the first works of true IF.

As for BASIC, let’s remember to give it its historical due. If you’re excited by computers as artistic tools with relevance to the world and the people around them, you should recognize its place in forging those connections. The sniffing condescension of elitists like Dijkstra seems pretty unattractive indeed in this light.

So, yeah, respect is due. Now just don’t ask me to actually use the thing.

 

Tags: ,

Spring Thing 2011: The Lost Islands of Alabaz

Even if we leave aside those folks who would say it’s all kid’s stuff, IF has had a long and fruitful relationship with children’s literature, stretching back from Seastalker and the old Windham Classics line right up to Textfyre’s recent efforts. Virtually all of that legacy has, however, been aimed toward children a bit older than Michael Gentry is targeting with The Lost Islands of Alabaz. In pitching his game at five to seven year-olds, Gentry is likely to turn away a fair number of judges, a fact that, judging from his slightly defensive ABOUT text, he well realizes. Indeed, at first I wasn’t at all certain this game was for me. As I played on, though, the diction level seemed to rise somewhat (perhaps in parallel with the diction level of Gentry’s children as he was creating the game), and it turned into quite a passable, if never quite outstanding, adventure. And then, alas, it all came crashing to earth again.

Gentry has obviously devoted considerable time and energy to his world-building. If the Alabaz Archipelago never quite feels believable, it does offer heaps of opportunity for adventure, what with each island having a unique, archetypical environment and culture. As a young knight just out of “Knight School,” you’ve been tasked by your king with traveling to the other islands to discover the source of a mysterious mist which has suddenly come upon the archipelago, isolating all of the islands from one another. Your ship can travel over the mist-shrouded seas only through the offices of magical pearls. Each pearl guides you to exactly one of the other islands. Everyone who’s ever played an adventure game knows where this is going: you travel from island to island, solving puzzles and acquiring pearls in the process, which in turn open ever more locations to visit.

Indeed — and in spite of a pile of convenience features such as a hint system implemented through your traveling companion Trig and a journal which keeps track of puzzles solved and pending — Alabaz has quite an old-school feel. There’s a lot of toing and froing, and even a maze, although not an egregiously cruel one. While Alabaz doesn’t hate its player like Zork does, Gentry’s claim that it includes “everything I fell in love with when I first discovered Zork” certainly rings true enough. For many modern IF players perhaps not quite so in love with Zorkian designs, it’s likely that it contains lots of stuff they’d just as soon do without.

But I didn’t really have a problem with the game for a long time. In fact, I rather enjoyed myself for what must have been four or five hours. Even the maze, while it didn’t exactly warm my heart, wasn’t enough to put me off the game. Then, perhaps 80% done, I was really stumped for the first time by a puzzle. When I checked the walkthrough, I found a reference to an “icefruit seed” I knew nothing about. It seems that I should have received this near the beginning of the game, but did not due to a bug. While I had enjoyed the game, I hadn’t quite enjoyed it enough to start all over again. So that was that.

But bugs aside:

As anyone who played Anchorhead knows, Gentry is a fine writer, with a particular gift for description and atmosphere (ideal qualities for an IF author, I’d say). Despite that, the Alabaz Archipelago never really came alive for me. This is obviously just a personal impression, but I was consistently missing a certain spark. From the Wall E-esque junk-collecting robot to the chariot race that reminded me of a similar sequence in Rogue of the Multiverse, I felt like I had seen too much of this before. Every writer cribs, of course, but the best know how to rise above their inspirations, as Gentry himself did with Anchorhead.

Another thing that bothered me was a certain moral dissonance that I can’t imagine was intentional. At one point I had to steal a poor bird’s egg from her; at another I nearly asphyxiated a sort of intelligent squid by pumping all of the water from the chamber in which she lived. Granted, the squid did find an escape route, but I had no way of knowing she would do so when I started the process. And once she was gone I promptly stole the fruits of her underwater garden. These are typical adventure game puzzles, but they feel clunky and ill-considered here.

Still, its size and the general sense of craftmanship that accompanies it would have likely rated Alabaz a pretty good score from me — perhaps a 7 or even 8. Yet, and while I understand only too well that bugs happen, the bug that bit me was fairly unforgivable really, especially given the game’s purpose as a general introduction to IF. I can’t imagine a better way to make sure a child never tries this adventure-game thing again than cheating her of victory through no fault of her own hours into her grand adventure. So, reluctantly…

Score: 5

 
3 Comments

Posted by on April 29, 2011 in Interactive Fiction, Modern Times

 

Tags:

On the Trail of the Oregon Trail, Part 5

The Oregon Trail is all about resource management. You start the game with $700, which will have to serve as your non-renewable bankroll for the entire trip. From this you must buy your oxen team as well as food, ammunition, clothing, and “miscellaneous supplies” (which basically comes down to medical supplies). Play then proceeds through a series of up to 18 turns, each representing two weeks on the trail. At the beginning of each you can choose whether to hunt or simply press onward. In addition, you pass by a fort every other turn, where you can purchase additional supplies if you like. And you have to decide if you want to eat poorly, moderately, or well during that period, balancing your food supplies with the risk of illness that comes from a poor diet and hard work. During the body of each turn, you are usually subjected to a randomly chosen event of some kind. Most of these are of the unfavorable variety. This serious of misfortunes and disasters is what most people remember best about the game:

“WAGON BREAKS DOWN — LOSE TIME AND SUPPLIES FIXING IT.”
“OX INJURES LEG — SLOWS YOU DOWN REST OF TRIP.”
“BAD LUCK — YOUR DAUGHTER BROKE HER ARM. YOU HAD TO STOP AND USE SUPPLIES TO MAKE A SLING.”
“WILD ANIMALS ATTACK!”

According to the City Pages article, these last were hostile Indians in the original version, which would certainly have been more exciting to imagine if less politically correct. Telltale signs of code modifications around line 2885 bear this out. (Interestingly, the immortal “YOUR WAGON BROKE AN AXLE!,” source of a long-running Internet meme, is not yet in this version.) This tragic litany is occasionally broken by “HELPFUL INDIANS SHOW YOU WHERE TO FIND MORE FOOD,” but most of the time it’s a hard life indeed on the trail — which I suppose is accurate enough.

Rawitsch strove mightily to make the program accurate in its simulation of the trip, even constrained as he was by the limitations of his computing hardware and HP BASIC. The likelihood of the various randomized events are based as much as possible upon historical reality. The terrain changes; the going gets slower and harder later in the trip, when you begin to pass through the Rocky Mountains. Even the weather changes, requiring more clothing. In fact, there is more going on below the surface than you might realize. A peculiarity that The Oregon Trail shares with many other BASIC games of this era is that it seems to expect — even to depend upon — the player having a look at the code in order to fully understand what’s going on in the game. For instance, I didn’t realize that stopping at a fort for supplies dramatically reduces the miles you can cover in a single turn until I read that in the code. Likewise, it is easy to miss the terrain changes and the effect they have on the game if you haven’t at least skimmed through the code.

As a narrative experience, The Oregon Trail is more compelling than it perhaps has any right to be. Its communications are terse indeed, but one really does get the sense of embarking upon a long and dangerous journey. As I limped ever close to my destination of Oregon City, with one of my oxen injured, low on food and supplies, with winter fast closing in, I felt real tension and concern for my little family. The “you are there” feeling is further enhanced by the occasional “action” sequences in which you are given a limited amount of time to type the word “BANG” in the hopes of success at hunting or at defending yourself from bandits or animals. The game is relentlessly unforgiving; failing to stockpile enough food for the coming turn, or enough medicine or bullets, leads to instant death. Unlike in more typical early adventures games, where instadeaths are rather comical in their unexpectedness and cruelty, these feel believable. It was a hardscrabble existence indeed on the trail, and I’m sure plenty of real would-be settlers died for exactly these reasons. There’s actually a consonance between gameplay and narrative that’s rather rare to find even in modern storygames.

My personal strategy is to buy little if any food, reserving my precious money for other things. I then hunt about every other turn, taking advantage of the fact that I know my way around a keyboard pretty well. I also try very hard not to carry too much stuff at any time, as I always seem to end up losing it for nothing in some disaster or other. Traveling light, however, means more stops at forts; my biggest problem is usually running out of time, being trapped on a mountain trail when winter arrives. If you develop a favorite strategy of your own, maybe one that works better than mine, feel free to tell about it in the comments.

The Oregon Trail story after 1978 has been much better documented than has its early years, so I won’t devote much space to that. By 1980 MECC had purchased 500 Apple IIs and installed them in classrooms all over Minnesota, where children used them to (among other things) play the freshly ported Apple II version of The Oregon Trail. There followed a version with accompanying full-color illustrations (1985), a CD-ROM extravaganza version (1996), and, eventually, that Facebook version (2011), just to hit some of the highlights. When you strip away all of the multimedia that encrusts them, it’s really quite surprising how closely these later versions hew to the model that Rawitsch designed back in 1971. It’s not the most sophisticated storygame in the world, but it really is better than it ought to be. I’m glad I took the time to get to know it better, and, again, happy to be able to offer the code to anyone else who’d like to dive in. I’d go so far as to place it alongside Eliza and Hunt the Wumpus as one of the three pre-Adventure computer games that anyone interested in the history of interactive narrative really ought to know.

 
 

Tags: ,

On the Trail of the Oregon Trail, Part 4

It’s been a while since I’ve written on this subject. That hasn’t been because I’ve lost interest; rather the contrary actually. I’ve been doing some digital archeology with my new friends Michael Gemeny and Bob Brown of the HP 2000 Yahoo Group, and we’ve been able to turn up something very cool indeed.

On an old tape image from school district of York County, Pennsylvania, Michael found a program with the very promising name of “Oregon.” Sure enough, when we loaded it onto the system we found a version of The Oregon Trail dated March 27, 1975, more than three years older than the earliest previously known version. I’ve uploaded the program listing to this site, if you’d like to have a look. Looking at said listing has already proven to be very interesting for us.

First of all, it appears that the little history lesson I gave in part 3 of this series was not entirely correct. When Rawitsch came to MECC in 1974, he evidently did not port the game — or at least not immediately — to run on MECC’s centralized UNIVAC mainframe. He rather typed it out once again on another HP-2100 system. That makes a great deal of sense when one considers that these little systems were quite common in Minnesota schools and, indeed, in schools all over the country. By early 1975 MECC was obviously already giving the program away to school districts in other states.

It’s also evident that Rawitsch, or MECC, or at any rate someone, continued to improve and refine the game for years before it made its way to the Apple II. The 1978 version found in Creative Computing has some features not present in the 1975 version. In both versions, the player must enter a word quickly into the terminal and certain points: when hunting, when attacked by bandits, etc. The 1978 version, however, has a difficulty setting; when the program starts, the player is asked how good a shot she is, from “ace marksman” through to “shaky knees.” This determines how much time the player is given to type the word. And unlike in the 1975 version, in 1978 that word is chosen randomly from four possibilities — “BANG,” “BLAM,” “POW,” and “WHAM” to be specific. In 1975 it’s just good old “BANG” all the time. For those interested in looking at the differences, you can also download the 1978 version. This one isn’t quite as authentic as the 1975 one. I spent quite a lot of time fixing problems in the code that resulted from the OCR, and in the process also ported it back to HP-BASIC from CDC Cyber BASIC. I believe the problems have all been sorted out, however, and it should look and play just as it would have on an HP system back in 1978.

So, if we take the liberty of call these major version numbers 2 and 3, it sure would be nice to have version 1, wouldn’t it? Unfortunately, that doesn’t look likely to happen. Since this version apparently never made it beyond the system on which Rawitsch, Heinemann, and Dillenberger wrote it, and since Rawitsch deleted it off of that system in 1972, the only hope seemed to lie with that famous yellowing printout Rawitsch carried over to MECC. This picture from an Oregon Trail anniversary event at the Mall of America gave us hope, as Rawitsch is holding something that looks suspiciously like exactly what we were seeking.

I was able to contact Rawitsch about that, but the news was disappointing: he no longer has the printout. Barring a miraculous find, it appears that the 1975 version is the best we’re likely to do. Still, that’s a heck of a lot better than 1978. I feel lucky indeed to have found it.

Looking at the code of the 1975 version does tell some very interesting stories in itself. Michael knows much more about HP BASIC than I do, so I’m going to quote him here:

“The line numbers of this code tell an important part of the story which matches the historical accounts. From the looks of it, I would have said that it was being maintained by an accomplished programmer with a sense of pride and dedication. Then it seems to have been maintained by a less experienced programmer, or a programmer lacking the sense of pride, or the time, or perhaps the skill to maintain the appearance of the code.”

This latter programmer would of course be Rawitsch, who re-keyed and modified the program at MECC, initially at least on his own, and who, unlike Heinemann and Dillenberger, was not a trained programmer.

While most of the program is numbered in steps of 5, this pattern is occasionally broken. This is somewhat odd, as Michael informs me that HP-BASIC has a very powerful renumbering facility that Rawitsch perhaps didn’t know to take advantage of. Michael has assembled a list of lines which break the numbering pattern, and which therefore probably indicate places where Rawitsch made changes or additions at MECC. At the risk of belaboring the point, I’ll just paste that in here for the passionately interested.

Line 8- 11 Added MECC name, maintainer, and version
Line 262-263 Caution user against using a dollar sign
Line xx99 added section names in remarks
Line 1332 require user answer to be an integer
Line 1537 added caution about spending
Line 1752 discovered that ‘7 was a bell, added note to that
effect
Line 1902 made question two lines
Line 2392 fixed bug when riders don’t attack
Line 2672 added ammunition losses to heavy rains losses
Line 2792 added ammunition losses to fire losses
Line 2891 may have changed Indians to wolves and cause death
Line 3147 added ammunition losses to wagon damage
Line 3317 added ammunition losses to blizzard damage
Line 3650-3658 added next of kin and aunt Nellie
Line 4012 added another note about ‘7 bells
Line 4279 changed congratulatory message

Working from these clues and the historical record, it might be possible to reconstruct an “original” Oregon Trail. I’ve thought about it quite a lot, but I’m not really certain if it’s a good idea. The end result would inevitably be the product of a lot of conjecture. And, while we can learn much from the line numbers, we can’t know what modifications Rawitsch might have made within certain lines.

But perhaps you’d like to play this thing? If so, here’s how you can experience it in all its 1975 glory in HP Time-Shared BASIC.

1. Telnet to mickey.publicvm.com. (Telnet, mind you. None of that newfangled SSH!)
2. Slowly alternate CTL-J and CTL-M until you see a “PLEASE LOG IN” message.
3. Enter “HEL-T001,HP2000,1”. Without the quotes, of course — and note that those are zeroes. Oh, and the system isn’t case-sensitive, but for the authentic experience you might want to have your caps lock on.
4. Enter “GET-OREGON” to load the 1975 version, “GET-ORE2” to load the 1978 version.
5. “LIST” the program if you like, or just “RUN” it.

Bob Brown has graciously made this system available for all of us interested in this corner of computer history. Poke around as you like — there’s a lot of other interesting programs on there in addition to The Oregon Trail. But do please be polite and respectful if you decide to rummage.

As for our subject today… damned if the thing isn’t kind of fun. More on that when I wrap all of this up very soon now.

 
 

Tags: ,

Spring Thing 2011: Hallow Eve

This is the kind of game that is always a bit difficult for me to review. It actually represents a success story of sorts for IF outreach: its author, Michael Wayne Phipps Jr., tells us that he just recently learned about the IF community, and now he’s had the opportunity to make a game he’s been “wanting to create for over a decade.” There’s certainly a lot of enthusiasm on display here, and there’s also quite a lot of ambition; Phipps claims there to be nine different endings. I just wish the game was, well, a little bit better.

This is a horror story in the Wes Craven mold: hot chicks, beer, campfires, the obligatory Baddies from Beyond, that sort of thing. It seems like we’ve been getting quite a lot of titles in this genre recently, a genre that I have to admit is not really my favorite. Yet I can only wish the problems I had with this one were down to personal preferences. I’m afraid this game fails on just about every level. To wit:

I had problems with the writing. While Phipps does show a certain eye for detail in places, the writing in general is unpolished and amateurish. The dialog is often painfully stilted and confused. Why for instance does Lola suddenly start to call Steve, a guy she just started to get friendly with, “baby?” I haven’t been a teenager for a while, but is it really normal for 16-year old girl to use that term on the guy she just started to flirt with? Phipps spends a lot of words describing the physical attributes of the three girls, which is par for the course with this genre, so fair enough — but do his descriptions have to read like an exercise in taxidermy?

I had problems with the parser. Oh, boy, did I have problems with the parser. Here’s a typically fun exchange:

>open window
It’s stuck!

>open window with knife
That doesn’t seem to be something you can unlock.

>x window
You see nothing special about the window.

>break window
You have to specify what you want to hit it with.

>hit window with knife
You can’t see any such thing.

>i
You are carrying:
a butcher knife
a lighter
a sharp tent stake
a bottle
a battery-powered lantern (providing light)
a can of WD-50
a wristwatch (being worn)
clothes (being worn)
a blue key

>hit window with stake
You can’t see any such thing.

>break window with stake
You can’t see any such thing.

>break window
You have to specify what you want to hit it with.

>knife
That’s not a verb I recognise.

>use knife on window
That’s not a verb I recognise.

>open window with stake
That doesn’t seem to be something you can unlock.

>break window with knife
You can’t see any such thing.

>put wd-50 on window
Putting things on the window would achieve nothing.

>spray wd-50 on window
I didn’t understand that sentence.

>spray wd-50
What do you want to spray the can of WD-50 with?

>spray window with wd-50
You spray the cracks of the window with WD-50 liberally. You’ve used up the last of the WD-50, so you toss the can into the woods.

I had problems with the overall design. The game features a maze, or at least something perilously close to one. There are objects and puzzles scattered willy-nilly all over the landscape without much rhyme or reason, and just to add that final touch of aggravation there’s a time limit. Solving this one would require lots of planning, mapping, dying, and note-taking. That’s okay in one sense; there’s certainly still a place for puzzly old-school IF. (As a matter of fact, I’d love to see a little more of it.) But the old-school approach feels at odds with the heavily story-driven piece that the game also seems to want to be, with the multiple endings and all, while the general shoddiness of the whole structure made me reluctant to approach it as a serious puzzle-solving exercise. I’m just not willing to invest a lot of effort into a puzzle game if I don’t have faith that every problem I encounter is indeed a puzzle and not a bug, nor if I’m not sure whether I actually hit upon the correct solution to this or that conundrum hours ago and just didn’t phrase it in the One True Way that the parser requires.

I could go on to talk about things like the nonexistent conversation options that you leave hovering about your companions like a ghost rather than interacting with them, or the zombie that doesn’t actually chase you unless you go in one specific direction, but I’ve probably already said too much. I don’t doubt that Mr. Phipps thought he was submitting a really great game, and this review and the many others like it must feel like a slap indeed. Still, IF, like any creative endeavor, requires craft as well as enthusiasm. Maybe this babe in the woods can learn from this experience and come back with something more worthwhile soon. Indeed, from its over-ambition to its lack of testing this is a veritable catalog of first-timer mistakes. As Sam Kabo Ashwell noted, “everyone writes My First Crappy Game; the fortunate never release them.” Well, Mr. Phipps, at least now you have an idea where the bar is.

I give it half a point for enthusiasm and ambition, and half a point because my buddy Fred’s identifying a bra he found as “probably about her size” (referring to Brenda, one of the girls who had just gone missing at that point) I found pretty hilarious. That makes…

Score: 2

 
3 Comments

Posted by on April 20, 2011 in Interactive Fiction, Modern Times

 

Tags: