-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathintro.tex
49 lines (44 loc) · 2.82 KB
/
intro.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Interactive fiction (hereafter IF) is a genre of game in which players
interact in a text loop not unlike a
REPL~\cite{Montfort:2004:TLP:940352}. The game provides a prompt, the
player enters a command, and the game responds with the next prompt,
possibly changing some internal state.
Typically, the game's state includes a map of a physical space that the
player navigates with directional commands. The space consists of connected
rooms, and within the rooms are objects and characters that the player can
interact with, e.g. by {\em looking} around, {\em examining} something,
{\em taking} something, or {\em talking} to someone. The player also
typically has an inventory to store taken objects, which can be used in
various ways.
The author of a piece of interactive fiction is tasked with describing a
rich setting and anticipating the player's actions. With each new
interactable object introduced, the space of game play explodes
combinatorially. Of course, in order for the game to feel interactive, we
cannot anticipate and script a response to every action; we need to set up
simple rules that {\em emergently generate} game content. (In the game
design world, this notion of generativity is referred to as {\em
procedural}.) Most frameworks for writing interactive fiction deal with this
combinatorial explosion by establishing broad defaults for every command;
the IF author needs only to override default game responses to selected
actions upon a new object she introduces.
A key challenge in language design for any kind of game programming is
enabling such a rich space of possible games that feel generative and
interactive rather than canned. IF in particular is a ripe domain for
programming languages research because it introduces the richness of game
design without the extra cruft of rendering. Everything is a turn-based,
discrete state transition. We can imagine turning this crank on an
extralinguistic interpreter; the language, then, need only be for {\em
specifying game logic}. A programming language for interactive fiction could
easily extend to prototyping games with fancier rendering systems, and
indeed some like-minded game programmers have done
this~\cite{smith-mine-ore-2009}.
The majority of IF has been developed in the systems
Inform~\cite{Nelson2005}, TADS, and ADRIFT. The authors of this work are
primarily familiar with Inform, specifically Inform7. In Inform7, the author
specifies game behavior by matching on a player action (possibly guarded by
some condition) and specifying a state change. We hope to base our design on
this idea but using concepts from logic programming and substructural logics
to make games easier to specify and reason about.
What follows is a sketch of ideas for describing pieces of interactive
fiction as sets of rules and some speculation towards using such
descriptions as a programming language.