
Ceptre: A Language for Modeling Generative Interactive Systems [pdf] - mindcrime
http://www.cs.cmu.edu/~cmartens/ceptre.pdf
======
smosher_
I'm a big fan of this work. For the PDF-shy, there's some excerpted text on
LtU: [http://lambda-the-ultimate.org/node/5216](http://lambda-the-
ultimate.org/node/5216) but you'll miss some of the goodies, like the graph of
a scenario from _Romeo and Juliet_ , showing the actors act concurrently at
different locations.

See also the github repo: [https://github.com/chrisamaphone/interactive-
lp/](https://github.com/chrisamaphone/interactive-lp/)

There is an emphasis on using Ceptre for developing interactive fiction¹ (text
adventures/parser games.) From my perspective, a pain point in developing
truly creative interactive fiction is the tools available tend to impose a
world model on your work. I'm excited for Ceptre because it lets you write
causal relationships directly and that makes starting from scratch a more
realistic proposition.

1\. With some work I think it could be (and should be) used in other kinds of
games, such as sandbox games or anything that would benefit from a living
world, even if only in part if the main story must be nailed down and
deterministic.

------
maxwelljoslyn
As a linguistics student and amateur programmer I find linear logic to be very
interesting since it gets used both in linguistics (associated with lexical-
functional grammar) and, of course, math and computing.

I think it would be cool to parse the output tree of a Ceptre program and
produce some kind of display (other than a visual tree, of course.) Maybe set
the stages to auto, run it a a bunch of times, then produce some statistical
analysis from the results - number of deaths per character, average speed at
which a given character dies, and so on.

Anyone know if a Ceptre parser available? They must have written one for this
article.

~~~
smosher_
I posted this in another comment, but her github repo has a Ceptre
implementation: [https://github.com/chrisamaphone/interactive-
lp/](https://github.com/chrisamaphone/interactive-lp/)

There are details on getting the trace graphed in the tutorial. (If you want
more detail in the trace you can uncomment the code on this line:
[https://github.com/chrisamaphone/interactive-
lp/blob/master/...](https://github.com/chrisamaphone/interactive-
lp/blob/master/src/traces.sml#L50) )

~~~
maxwelljoslyn
Thanks!

