Keeb's Quest - 003 Primitive scripting for a larger test

Is this actually fun?
Created: 2019-11-05
colorful keeb’s quest logo

Now it was time to test if the "core mechanic" was any fun! My family enjoyed the previous tiny example and the idea of typing branching text to choose a path in the "adventure" seemed pretty solid.

But would it hold up in a larger narrative?

This next demo uses a nearly identical "engine" - it’s actually a little shorter at 140 lines instead of 150. :-)

But I certainly wasn’t going to type out a large example with the hard-coded indexes I’d used before!

So I created an extremely simple "game script" format to author the content. Using indentation plus an "arrow" () syntax to represent branching made it pretty easy to write and read the game script.

Here’s an excerpt taken from the top of the whole game.script file:

;; start
    i was in the forest
        and i wandered to a
            waterfall -> waterfall
            cave -> cave

;; waterfall
    the cool water thundered down
        and i was
            brave -> behind_falls
            frightened -> field

;; behind_falls
    so i stepped closer
        and saw that there was a
            space behind the falls
                so i
                    searched it -> search
                    ran away -> field

A 78-line AWK script called script2json.awk converted the game.script to a JSON data structure called game.json.

Here’s a tiny portion of the JSON data (you can see that the AWK script doesn’t bother to indent or otherwise pretty-print the JSON output):

{
"start":{
"paths": [
{"str":"i was in the forest"
, "paths": [
{"str":"and i wandered to a"
, "paths": [
{"str":"waterfall"
,"sect":"waterfall"
},
{"str":"cave"
,"sect":"cave"
}]
}]
}]
},

A little SVG sketch provides the tiniest bit of atmosphere:

screenshot of the scripted branching typing demo

Click on the screenshot above or this link to try it out: 003/index.html

The whole thing was pretty much stream-of-conciousness and it makes for a pretty crummy game and a pretty crummy story. But I think it answers the basic question:

Q: "Is this a fun way to play a game?"

A: "No."

I’m a normal 60+ WPM typist and I found it to be a total pain to get through even a small portion of the script. Especially navigating back to areas and chosing a different path.

It’s not fun to type an area the first time, and it’s awful to type something twice.

So no, this wasn’t going to work in its current form. I would need to refine the idea.