Development of Interactive Fiction with TADS3

A brief summary of my speach:


Interactive Fiction (IF) is an incredible and forgotten technology of the past.

The user experience remind the interaction with a computer via a terminal, but instead of navigating the file system, interacting with applications, and manipulating with files, you navigate a fictional world, interact with NPCs, and manipulate with objects via text commands.

IF is typically designed to be used with interpreters, which is somewhat similar to the current trend in retro gaming, but instead of emulators, we have interpreters, and instead of ROMs, there are Storyfiles.

Once, I accidentally created the second most popular web interpreter in the world, supporting most popular Storyfile formats.

When it comes to authoring systems, the most popular one is Inform (Z-code), but I personally prefer the programming language in TADS3 much more. TADS is the second most popular authoring system.

TADS is not so user-friendly, but it is a Turing-complete language specifically designed for creating Interactive Fiction.
The standard library, adv3, covers most of the basic aspects of game development and can be extended, if needed, to handle more specific or rare cases.


Here are some links as a follow up:

Examples I Prepared for TADS Learners

The game we reviewed together during the meeting is available in this repository.
To compile the game, make sure FrobTADS is installed (the package is available on Fedora, Homebrew, and Arch)

Additionally, feel free to check out my previous game. It features a larger set of examples, but with a storyline and bugs included.

Interactive Fiction in General

TADS3

FrobTADS

It’s development tools and text-mode interpreter for TADS.
Due to the lack of maintainers in the distributions, the situation with packages isn’t great, but the packages are still available at least for Fedora, Arch, and Homebrew. Compiling it yourself also isn’t too difficult.

Even though it’s open source and almost abandonware, don’t forget to check the LICENSE for the compiler!


Bonus Link

My favirite part:

So let’s start with the reasons not to write parser IF, and we can come back to the question of how to write it if somehow none of my persuasions work on you.

Should I write parser IF? To which my answer would be almost always no.

2 Likes