Browsed by
Category: Programming Languages

Where I’m Wandering

Where I’m Wandering

Well, dang.  It’s been over a week since my last post.  The thing is, I wanted to make another post about Wander, the text adventure system from 1974, since after all the focus of this blog was initially supposed to be on old game creation systems, and… I didn’t think I had anything to say about it.

As far as the game goes that I’m writing in Wander, well, I’ve basically got all the puzzles planned; I just have to finalize the map.  And I’ve got a good start on coding it—the initial rooms, anyway, and some bits I don’t need the map finalized for.  But I don’t really have anything I can easily show for it here on the blog.

I was also working on implementing an online version of the Wander interpreter in Javascript, and… well, that’s where things got bogged down a bit.  See, I figured that’s one thing I could post about here, when I got that done, and that’s something I’d want to have done before I finished the game anyway.  (Otherwise there’d be no easy way for anyone to play the game when I did finish it.)

The problem was, I was going about implementing the interpreter in just about the stupidest way possible.

Read More Read More

Wander: A Little Research

Wander: A Little Research

Okay, this is another post about the process of my creating a game with Wander that’s not really about Wander itself, so much as it is about an aspect of game creation independent of the system.  Honestly, I don’t know how much more I’ll have to say about Wander until I finish my game with it.  If I run into any other interesting aspects of the system that weren’t evident on first examination, I’ll certainly bring them up; otherwise I may just find other things to blog about as I continue working on the game.  I’d go ahead and mix in some posts on the next game in the list, except that I want to finish up with a year at a time, and Wander is the only game for its year.  I’ll certainly be mixing in some more posts on current game creation systems, including probably Super Tony Land—it turns out the editor will still sometimes load large levels; it’s just not reliable; and once it’s loaded I can keep editing it, so I may try to finish up the levels I was working on anyway.

Hm.  At this point I’m worried the preamble may end up being longer than the main topic the post was supposed to be about, so I’d better get to it.

Read More Read More

Pondering Puzzles

Pondering Puzzles

Okay, while in this post I’ll be talking about the games I’ve been creating in Wander, this post isn’t really about Wander specifically, but about text adventure games in general.  And more specifically, about puzzle design.

While planning out one of the games I was going to create with Wander, “The Eye in the Forest”, I kind of stumbled into a stupid trap of game design.  Fortunately, I think I stumbled back out of it.  I’d come up with a particular puzzle I was fond of, involving the player’s reaching a certain platform, but then later on it occurred to me that, given some of the available objects in the game and their possible interactions, there was another course of action that logically should also allow the player to get to the platform.  Of course, I already had a solution in mind for the puzzle, so I wrestled for some time with the question of how to rule out that unintended alternate solution. It wasn’t until the next day that the answer finally occurred to me, and when it did it was obvious:

Don’t.

Read More Read More

Many Unhappy Returns

Many Unhappy Returns

So, once I started reimplementing the Wander interpreter in Javascript, it quickly became obvious where that limitation on synonyms comes from that I mentioned in the post on the limits of the Wander language.  Basically, the interpreter stores each word as a structure (that in, in the C code, a struct) with four fields: one holding the word itself as a string, one holding an index to the “root word” of which it’s a synonym (or 0, if the word is a root word), one holding the flags described in the Wander language overview post, and one holding the location of the object referenced by that word.  (Naturally, these last two fields don’t apply to verbs.)  The problem is that in the C code the index to the root is of type char… which means it can only hold values from -128 to 127, which means, since the index is never negative, that only the first 128 words in the word definition list can have synonyms.  (In practice, that means the number of words that can have synonyms is a lot less than 128, because for all but the last the synonyms themselves also have to be among those first 128 words.)

Read More Read More

The Limits of Wandering

The Limits of Wandering

All right, so, I’ve come up with an idea for the game I want to write in Wander, and I’ve started coding it. (I don’t have the entire game and all its puzzles planned, but I have enough to get started.) Working title: “The Eye in the Forest”. I’m… actually afraid some of the puzzles might be a little too tough. There’s one especially near the endgame that requires some use of different mathematical bases… then again, while they may be difficult, I don’t think any of the puzzles are actually unfair, and I like the way they fit together enough to go with it… what the hey.

So now that I’m working with the language, what do I think of it so far? Well, like I said in the last post, I actually kind of like the quirky syntax of the fields. It takes a little getting used to, but once I got the hang of it it’s kind of fun. That’s not to say this would be my first choice of a language to write a text adventure in, of course, because it has some pretty significant limitations. So let’s talk about that a little.

Read More Read More

Wander: Language Overview

Wander: Language Overview

So, now that we’ve looked at the surviving Wander games, let’s take a glance at the Wander language. (I’m not sure “language” is entirely the right word… data file format? But I’ll call it a “language” for purposes of brevity.) I’m sure I’ll have more to say about it as I actually start using it to make a game, but for now let’s just see what we can get from the documentation.

Read More Read More

Wander: The Surviving Games

Wander: The Surviving Games

So, last time I discussed Wander as a whole; this time I’m going to talk about the surviving Wander games. (And then next time I’ll go into the Wander language itself.) I’m not going to do a play-by-play of the games; if you want that you can go to Renga in Blue or CRPG Adventures, where Jason Dyer and Nathan P. Mahney, respectively, provide playthroughs. I’m just going to briefly summarize the games to provide a frame of reference in case I want to refer to them later.

Read More Read More

Wander (1974)

Wander (1974)

Every text adventure fan knows the name of Adventure—a.k.a. Colossal Cave. Created by Will Crowther in 1976 and expanded the next year by Don Woods, Adventure gave its name to the genre class, and was the first adventure game of all.

Except that it turns out it wasn’t.

Oh, adventure games do take their name from Adventure; that much is true. (And if you insist on calling them “interactive fiction”, you’re dead to me.) But it seems that Adventure wasn’t really first after all.

Read More Read More