pLast time, we saw how to make rooms and items in ScottKit. We used these to build a small but not completely trivial game with three rooms, in which you can move through from the start room to where a coin is found, and bring it back to where you started.
Now we’re going to see how to use actions to code up puzzles. Here’s how the map of the game is going to look when we’ve finished with it today:
As you can see, the rooms and exits are basically the same as the map for the previous iteration, But we’ve added a couple of items and — crucially — the first puzzle.
Last time, we learned how to write, build and play games with ScottKit. But the game we made was absolutely trivial: two rooms, connected. The only thing you could do in the game was to move back and forth between the two rooms — and even that only worked because GO (and the six directions acting as verbs) are built-in commands. This time, we’ll expand the game: here’s a map of the expanded version.
Compared with last time, we’ve added one more room (the cell) and our first two items. One of the items is a treasure, as indicated by its name starting with an asterisk.
So, I finally published ScottKit. Now what? What can you do with it?
You can build your own games, that’s what! Adventure games of the GO NORTH, GET LAMP, KILL TROLL variety. If that seems limited to you, consider that the same mechanisms can easily underlie games in any setting, and with any theme. It’s a style of gaming that gets you a lot of game for relatively little work: for example, the source code for Scott Adams’s own classic Adventureland, as decompiled with scottkit -d, comes to only 22 Kb.
The original late-1970s artwork for Adventureland. In those days, any kind of cover art was unusual: quality was not always assured.
I’ll write more about the charms of this kind of game creation in a subsequent post, but today I want to get you started in creating games.
Those of you who have been reading this blog since 2nd March 2010 — just three days after the blog was born — might remember the fourth post I ever made here: Learning a language vs. learning a culture, on my switching from Perl to Ruby. Way back then, I wrote about “ScottKit — my first non-trivial Ruby program”. Here it is!
This just in:
Failed context type: Invalid context `paneset` of type `Paneset` supplied to `Paneset`, expected instance of `Paneset`.
Oh, the joys of front-end development!
(My best guess: I have two slightly different version of stripes-components library that provides the <Paneset> component in my application, and somehow I’ve got hold of one from the wrong instance.)
The opening and title track of Thin Lizzy’s enjoyable 1976 album Jailbreak begins:
Tonight there’s gonna be a jailbreak
Somewhere in this town
I’m going to go out on a limb and guess it;’s going to be at the jail.
They just didn’t think it through.
I’ve been aware in a backgroundy kind of way of IFComp for a long time. It’s an annual competition for Interactive Fiction (IF), a genre of computer games that are based on text — though, within that rubric, many forms are included: not just traditional text adventures, but hypertext “games” and choose-your-own-adventure branching paths.
This year, inspired by the efforts of Jason Dyer on his excellent IF blog Renga in Blue, I am playing and judging some of the entries myself. (Anyone is allowed to judge: there are no qualifications and only a few rules.)