Dirk Gently’s Holistic Detective Agency (2016), Season 1

I watched this on the recommendation of a colleague. It consists of eight 45-minute episodes, for a total of six hours, and tells a interestingly convoluted story involving time travel, body-swapping, a hippie cult and the FBI.

I thought it was sort of OK. I suspect I would have liked it rather more if it wasn’t called Dirk Gently, because it has very nearly nothing at all to do with the Douglas Adams books that it is supposedly based on.

Continue reading


Darkness and light in ScottKit

Last time out, we learned how to have things happen to the player in ScottKit; that was the natural complement of the player doing things, which we covered the time before. Today, we’ll use that knowledge to deal with darkness, light, light sources, and their expiry and refilling. Here’s the expanded map:

Continue reading


In a project we’re working on, a Java source file is auto-generated: method names on the interface that is generated (ready for implementing) are based on the HTTP method and URL in the RAML.

The result is this:


What we have here is a single identifier that, at 83 characters in length, is too wide to fit in standard 80-character-wide terminal.

File under “Why Java Is Not My Favourite Programming Language”.

(No, there is no reason why a similar identifier could not in principle be generated in some other programming language. But no other language has the programming culture that make such things possible.)

Occurrences (or daemons) in ScottKit

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:

Continue reading

Actions in ScottKit

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.

Continue reading

Rooms and items in ScottKit

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.

Continue reading

Building adventure games with ScottKit

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.
Continue reading