Archive for the ‘pawsy’ Tag

towards popular Python interactive fiction (#1)

I’ve sort of touched on this topic in previous posts, but I’m trying to crystallize my thoughts here.

In my opinion there currently are three viable options for creating IF with Python: PAWS, PyF, or a custom system. An alternative form of IF can be made with Ren’Py, a visual novel system. Finally, there are two possibilities in the future: Curveship, and another I learned of recently, Prosemonger.

Two other ‘less possible’ possibilities are PUB, and any one of a number of Python mud engines (particularly those with Twisted, a lib originally built for mud IF).

But let’s talk about making a game, using Python, in prose-based, command-line IF (you know, what most people call, ‘IF”). That rules out Ren’Py, PUB (too old), and Python mud engines (too incomplete, or conversely, too complicated I think).

Curveship and Prosemonger are out too of course, as they’re not yet released. As an aside, while I’m eager to write with Curveship, from what I know I don’t think it will be much like IF as it’s played and written today. I think it will be more akin to an academic, generative narrative system, but only time will tell.

At this point a digression is in order (well, with me digressions always are in order, but I…OK, I won’t go there). When I say ‘towards popular Python IF’, what does that mean anyway? And why would you want to write IF with Python in the first place when there are at least five major IF systems that would fit the task very nicely — TADS 3, Inform 7, Inform 6, Hugo, and Adrift?

Continue reading


One thing I’ve been going back and forth about is the virtue of trying to write IF with Python. On one hand Python is a great language for writing games; on the other hand I much prefer the Inform 7 syntax for a simple reason — in IF you write a lot of prose, and anything that makes that process both simpler and nicer to look at is a huge win. However that very same syntax becomes something of a stumbling block for me (well, to be honest — a tortuous maze) when you start doing anything complex. In this respect I like Python’s syntax much more.

Python already has a well developed IF system in PAWS. However as you can see in the Cloak of Darkness implementation the source itself reads much more like a TADS 3 file than Inform 7. I’m not saying that doesn’t make sense, only it’s not how I’d like to write ideally.

This got me to wonder — how would I like to write IF ideally? So here is a hacked up version of the Cloak of Darkness source above. Let’s see how the WP sourcecode markup works with this — after the cut:

Continue reading