Tutorial materials for Ceptre. You will need: a unix-based command line (e.g. Terminal on Mac OS X or Cygwin on Windows), libgmp on Linux or OS X, basic command line knowledge (tar, cp, mv, etc.), and a text editor for code.
- Clone this repository:
$ git clone https://github.com/chrisamaphone/ceptre-tutorial.git
Or download as zip file and unzip.
- Get the binary file appropriate for your system from Google Drive, then un-tar it:
$ tar -xzvf ceptre-(SYSTEM).tar.gz
If that doesn't work, follow instructions at https://github.com/chrisamaphone/interactive-lp to download and install.
- Test:
./ceptre sol/otp.cep
- Optionally, download GraphViz: http://www.graphviz.org/
Ceptre can be used to prototype or implement autonomous behavior for interactive stories or games. That autonomous behavior could be used for procedural content generation or for controlling non-player characters that the player interacts with.
Ceptre aims to hit a sweet spot between tools for generalized agent autonomy, such as planners, which have little support for designing interaction models; and interactive story authoring tools, such as Inform, which have little support for autonomy.
File: otp.cep.
Key idea: writing rules with multiset rewriting notation.
RANDOM FANDOM! Generate OTPs from a cast of characters.
pair : available C1 * available C2 -o paired C1 C2.
File: quest.cep
Key idea: interacting with rules.
Exercises:
- Add a rule for opening something (e.g. the chest).
- Add a rule for taking something out of something (e.g. the map out of the chest) and moving it to the surrounding room.
File: quest-sim.cep
Key idea: using stages to separate interactive and autonomous behavior.
Exercise:
- Add a character-to-character interaction of your choosing.
File: quest-social.cep (or build on quest-sim.cep)
Key idea: writing backward-chaining rules and using predicates defined by them to check conditions, e.g. "Does C1 like C2 enough to give them an item that they want?"