Last time we looked at how ScottKit games handle the player’s actions. But sometimes you need actions to happen independently of what the user does. If you’re in a frozen wilderness, maybe there’s ten percent chance each turn of freezing to death; or if there’s a thief here and you’re carrying a crown, he might steal it.
That’s what we’re going to look at this time. Here’s the map for today’s version of the game we’re working on:
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.