Interactive Fiction?

Hi, Racket Discourse.

I have been playing around with bags (or multisets) for a while now, and thinking of ways to employ them, I have time and again come back to interactive fiction.

There is this really neat project, Ceptre, which I stumbled across maybe 6 years ago? lurking on lambda-the-ultimate.

See the rope example, for an idea of the novelty.

Has anyone else built, or known of, similar interactive fiction projects in Racket? I feel like this would be (is) fertile ground for PL design.

1 Like

It has been a fertile ground for PL design. See Muddle and Zork:

1 Like

Inform is a more modern PL design for IF. https://ganelson.github.io/inform-website/

1 Like

That's wild. I had no idea about the Zork Implementation Language (or MDL), although I've played Zork on an emulator before.

You might find Creating Languages in Racket ( alt: [Queue] )
It covers creating a text adventure game as a language creation tutorial.

There is also conference presentation but I can’t find it right now.

1 Like

Eitsa, and the document is so pretty :eyes:.

See also the work of lft (Linus
Åkesson)
, who created a
virtual machine
and programming
language
for creating
and running IF.

2 Likes

That's åwesome, thanks. More of what I was looking for :partying_face:

Will be interesting to see where he diverges from Inform, which he states is a big influence. The fact that it's based on Prolog is great, too, because I am quite interested in applying "logic programming" to the domain, à la *kanren.

I had no idea lft had made a VM for text adventures.

His youtube channel is a gold mine - and so is his web-site.

1 Like

I used Racket to create an interactive fiction story for this year's Spring Lisp Game Jam.

Play: SLUDGE FICTION by Cadence
Code: GitHub - cloudrac3r/sludge: Interactive fiction for Spring Lisp Game Jam 2024

I'm not saying this is a good way of doing interactive fiction. It's just the way I did it. Let me know if you'd like more information on how it works technically.

2 Likes

OT: it is heartbreaking to see a user in the comments provide a video of spending 45 minutes installing Racket.

2 Likes

What a horrible situation for OpenBSD users:https://openports.pl/path/lang/racket-minimal

I don't claim to understand the decisions or the constraints that led to them - nor do I blame the maintainer.

I do believe things would have gone a lot quicker if they had used https://download.racket-lang.org/installers/8.15/racket-8.15-src-builtpkgs.tgz

s.

i like the OpenBSD screenshot with the virtual desktop manager in the right bottom corner :heart_eyes_cat:
sort of things are now impossible with Gnome

1 Like

Thank you, @cadence. I am busy browsing through your wonderful vignette; it reminds me somewhat of the feeling I had reading the odd little stories in the interludes when playing Atom Zombie Smasher.

As someone who mostly thinks but rarely does, this is peak.

I've had a couple of hiccups with:

sequence-contract-violation: negative: method set-max-width cannot be called, except in states (unlocked write-lock), args 415

during interactions at the next place (without wanting to give anything away), which seems to depend on my window's dimensions.

I hope to play some of your other games, too :sunny:.

Yes, a very annoying bug. I wasn't able to figure out what causes it or any ways to prevent it. If you know anything about Racket's editor% and snip%s, I encourage you to take a look at the code.

1 Like