Quill [split on request]

Note that Quill was sold in the US as AdventureWriter

Best regards from Italy,
dott. Piergiorgio.

Whoever did the documentation did a great job. You can clearly see the database structures as well as the MATCH-COND-ACTION construct.

Is it Graeme Yeandle who wrote it?

(Graeme wrote the British Quill manual. CodeWriter produced their own version for their US releases.)

It may be worth having a Quill-specific thread if people wanted to discuss that (and other Gilsoft systems) in more detail as we’re really derailing the original topic here.

3 Likes

Probably should be split to a thread specific to Quill, PAW, and the likes. Thanks.

Edit:
I flagged the mods to split these posts to a separate “Quill and Quill like”

1 Like

Concur and agree with both of you.

Best regards from Italy,
dott. Piergiorgio.

2 Likes

Is Quill still a thing? Is it like Inform6/Tads? Or more like interactive cards?

It’s very much a database driven development system. So, I group Quill, PAW, DAAD, and even ScottKit together. I don’t have Quill, but I still use ScottKit from time to time.

ScottKit is used to make Scott Adams style adventures, so it’s very unlike Inform/Tads. :grinning:

1 Like

Does anybody know a good video on YouTube on how to use Quill/Adventure Writer? The editor, I mean. Make a very simple game with it, or just go through the tutorial process.

Edit:
This is about as close as I can get it.

TAB Windows Adventure Creator written in ThinBasic. A spiritual successor of Quill.

1 Like

Quill was the first entry in the larger “Gilsoft family” of adventure writing systems, which are still very much being actively used to day. The Quill itself is not used quite as much, but there still has been some great games produced with it recently.

My favourite of recent years was Resistance by Andy McDermott.

The Quill and the other Gilsoft-derived systems are parser-based text adventure creation systems. They all involve creating an adventure database that runs through a common interpreter program; the technique that was described by Ken Reed in his incredibly influential 1980 Practical Computing article.

I created a wiki page about The Quill here…
https://www.ifwiki.org/The_Quill

All the Gilsoft family of systems use a similar “CondAct” (condition action) matching language. The interpreter scans through the database and if the conditions in an entry match it then carries out the relevant actions.

It’s incredibly easy to understand and use. For example…

PRESS BUTTO AT 6 ZERO 60 MESSAGE 52 SET 60 ANYKEY GOTO 87 DESC

would be…

If the player types press button at location 6, and flag 60 is zero, print message 52 “You push the button and suddenly find yourself teleported to a different planet…”. Set flag 60 to remember the player has pushed the button, then wait for a key to be pressed before moving the player to location 87 and printing the location description.

Quill was the original system, originally published back in 1983. It was followed up by the Professional Adventure Writer (or PAW). There were two specially commissioned commercial derivatives; SWAN and DAAD. DAAD is currently available for anyone to use and is the most advanced of all the systems, allowing you to produce games for a range of 8-bit micros, 16-bit machines, dos, Windows and browser; all from a common source file.

I’ve not got any recommendations for a video of how to use The Quill. It is very easy to use; the two manuals should be enough. Two authors in our community also made their own guide back in the 1990s…

See the IFwiki page linked to earlier for a whole collection of useful links and resources.

4 Likes

I’ll reply on this point in the debate on AGT, suffice to say for now that basically there’s not much conceptual difference between condAct and AGT COMMANDs, only that the use of CR instead of space in separating single instruction improved the readability.

I call Quill &c. “table-driven” creators, re. “IF language” compilers, not because was technically inferior, but because follows a different philosophy, “creating” the story instead of “programming” the story.
Instead of drifting toward adrift :wink: let’s say that IMVHO is currently the major creator system, limited only by a very questionable developer’s choice, whose locked adrift out of the most creative people, whose generally prefer Linux or other *nix-based OS.

Back to Quill… its major issue was the limited portability of its graphic system (initially implemented thru the Illustrator add-on then integrated in GAC), whose depends on the underlying hardware (please don’t start old 8-bit vs. another 8-bit flamefests…) whose was really diverse back then.

but if one thinks laterally a bit, Quill can be considered also the very first IF IDE environment, predating TADS workbench and I7 by a good pair of decades.

I don’t hide that the passage from table-driven, created with a creator text adventures/IF and the compiled story written in a programming language on a side expanded the narrative potentiality, but OTOH paradoxally restricted the creativity, because of the effort of coding, whose IS a form of creativity, whose vie for the author’s mind.

At this point, what allowed exploiting the potentiality of programming languages without restricting creativity is the mind-sharing, that is, the r.a.i-f newsgroup first, then this very forum.

For me the real IF issue lies not in the parser vs. choice, but in how to create the story from the idea. That is, the toolset. As art form, people are diverse, some are ported for writing, other for painting, other for sculpting. (I personally guess that the sheer majority of IF authors are ported for writing), so people are inclined to the pen, the paintbrush and the chisel.

How this diversity can be expressed in IF toolset terms ? with a diversity in toolset, of course. And quill as toolset is more toward the “writing” side than the coding style, and this is reflected in both US (adventurewriter) and UK (Quill) names.

But I’m digressing heavily, giving too many food for thought out of Quill topic, so I give my

Best regards from Italy,
dott. Piergiorgio.

1 Like

This is so simple that you can use any programming language, really. Here’s some pseudocode, assuming you want to check both PRESS BUTTON and HIT BUTTON

If ((V=="PRES" && N=="BUTT") || (V=="HIT" && N=="BUTT"))
If (LOC==6 && FLG[60]==0) {
PRINT MSG[52]; FLG[60]=255; PAUSE(); LOC=87;
PRINT LOCDESC[87]; CONTINUE;
}

SET automatically sets the flag to 255 and DESC displays the current location description then exits the loop.

The pseudocode assumes MSG and LOCDESC are arrays of string. Since LOC is a variable, you can also use PRINT LOCDESC[LOC];

Notice that matching different commands are done with logical OR, while testing conditions are done with logical AND, and that there’s an implicit AND between them.

Edit:
I’ve talked about swapping MATCH-COND-ACTION to COND-MATCH-ACTION. You simply do this way:

If (LOC==6 && FLG[60]==0) 
If ((V=="PRES" && N=="BUTT") || (V=="HIT" && N=="BUTT")) {

since the implicit operator is Logical AND, there’s no problem at all. Then you add word selection like so:

If (V=="") ADDV("PRES");
ELSEIF (N=="") ADDN("BUTT");
ELSE ...