Computational approaches to narrative (Schedule)
Readings available in accessible format are included as hyperlinks below. Alternate methods of obtaining the readings will be discussed in class. Some required games and other playable media must be purchased; these are noted with a “$” symbol. (Total cost of materials for the class is not expected to exceed US$20.)
Session 01: Introduction and narrative structure
- Introduction and syllabus
- Narrative structure
- Tracery for generating stories
To be discussed in session 02. In these works, characterize the relationship between “story” and “discourse.” What is the story and how is it presented? How does the story dictate the presentation, and vice-versa?
Sketch #1 assigned
Due at the beginning of session 02. Find a story that you like and try to identify the elements of its plot and its storyworld. Use Tracery to make a random story generator based on the story that you chose. Make a duplicate of this p5js editor project and replace the grammar in the template with your own. In your grammar, attempt to separate “story” (structure) from “discourse” (the way the story is told). To what extent is this possible? Can you make variants of the “discourse” in order to tell the story in different ways?
Resources to consult:
- Computer-readable Plotto
- Propp’s narrative functions
- Multilingual folktale database
- Kate Compton’s Tracery tutorial
- My basic Tracery tutorial
- Propp-inspired Tracery story generation
- Barthes, Roland, and Lionel Duisit. “An Introduction to the Structural Analysis of Narrative.” New Literary History, vol. 6, no. 2, 1975, p. 237. Crossref, doi:10.2307/468419.
Session 02: Branching narratives and hypertext
- Branching narratives and hypertext
- My Twine tutorial
To be discussed in session 03. Characterize how these works make use of the affordances of hypertext. How are they different, how are they similar?
- My Body by Shelley Jackson
- Depression Quest by Zoe Quinn, Patrick Lindsey, and Isaac Shankler (name your price)
Sketch #2 assigned
Due at the beginning of session 03. Use Twine to make something. A few ideas:
- Tell a personal story or anecdote.
- Adapt an existing game (video game, board game, card game, sport?) to Twine.
- Adapt a traditionally “linear” story (like a fairy tale or classic novel) to Twine.
Optional reading and play
- Ashwell, Sam Kabo. “Standard Patterns in Choice-Based Games.” These Heterogenous Tasks, 27 Jan. 2015.
- Green, Max. “How the Brain Reacts to Scrambled Stories.” The Atlantic, Jan. 2016.
- To browse: Transverse Reading Gallery
- Wolf, Gary. “The Curse of Xanadu.” Wired, June 1995. www.wired.com.
- Daly, Liza. “Interactive Marginalia.” Liza Daly, 17 Nov. 2017.
Here are some good and helpful Twines. Think about how each works (structurally) as a hypertext, and how each makes use of Twine’s capabilities.
Session 03: Setting, space, props
- Interactive fiction and world models
- My Inform 7 tutorial
To be discussed in session 04. These works simulate space and objects in space in different ways. Characterize the benefits and shortcomings of their approaches.
- Adventure by William Crowther and Donald Woods (You don’t need to complete this, but spend some time with it. Use the walkthrough if you need to.)
- The Fire Tower by Jacqueline A. Lott
- The Graveyard by Tale of Tales ($) (Optional: read the fascinating and detailed post-mortem)
Sketch #3 assigned
Due at the beginning of session 04. Pick a location or scene from an existing story (say, any variant of Cinderella) and “implement” it in Inform 7 by e.g. creating rooms with descriptions, objects to populate the rooms, and/or characters to talk to. Bonus: Implement a custom command/action in your story. Bonus 2: Make it possible to “win” your game (by, e.g., solving a puzzle, gaining a certain number of points, etc.).
- Evans, Claire Lisa. Broad Band : The Untold Story of the Women Who Made the Internet. Penguin, 2018. (Just the chapter about Adventure. No online version that I know of, sorry, but I can lend you my copy, lmk.)
- Jerz, Dennis G. “Somewhere Nearby Is Colossal Cave: Examining Will Crowther’s Original Adventure in Code and in Kentucky.” Digital Humanities Quarterly, vol. 001, no. 2, Sept. 2007.
- Montfort, Nick. Toward a Theory of Interactive Fiction. Accessed 4 Sept. 2018.
- Montfort, Nick. Twisty Little Passages: An Approach to Interactive Fiction. Mit Press, 2005. (Especially chapter 2, “Riddles.” Again, no online version unfortunately, but I can lend you my copy, or Bobst has a copy too.)
- Sample, Mark. “The Maze and the Other in Interactive Fiction.” @samplereality, accessed 23 July 2018.
Session 04: Dialogue and character
- Computational approaches to dialogue and character
- Quick introduction to Ren’Py
To be discussed in session 05.
Sketch #4 assigned
Due at the beginning of session 05. Make something with Ren’Py. In particular, make a dialogue tree that involves one or more characters. For extra credit, make the dialogue tree keep track of responses over time, so that certain dialogue options or results are available only if previous conditions obtain.
Optional reading and resources
- Gray, Kate. “This VR Girlfriend Simulator Is About More Than Cybersex. Kotaku, 27 Feb. 2018.
- Douglas, Dante. “Mass Effect, Dialogue Trees, and Romance.” Dante Douglas, 18 Mar. 2015.
- Newton, Casey. “When Her Best Friend Died, She Used Artificial Intelligence to Keep Talking to Him.” TheVerge.Com, 6 Oct. 2016.
- Emily Short on conversation games
Session 05: Generating narrative events from simulation
- Simulations and events
- Tutorial: Sea Duck. Examples in p5js web editor (feel free to duplicate these):
Play (reading) assigned
To be discussed in session 06. These works make use of simulation to generate narrative events, which are then rendered as language. Compare and contrast their approaches.
- Teens Wander Around A House by Darius Kazemi (NaNoGenMo thread here)
- Epitaph by Max Kreminski
- Episode 1 of Sheldon County by James Ryan
Optional readings and resources
- McCoy, Josh, et al. “Prom Week: Social Physics as Gameplay.” Proceedings of the 6th International Conference on Foundations of Digital Games, ACM, 2011, pp. 319–321.
- Wardrip-Fruin, Noah. “The Tale-Spin Effect.” Expressive Processing: Digital Fictions, Computer Games, and Software Studies, MITP, 2009.
- Rafael Pérez y Pérez’s research page, including this wonderful slide deck about how MÉXICA works and links to video explanations.
- Riedl, Mark. “Computational Narrative Intelligence: Past, Present, and Future.” Medium, 25 Oct. 2017.
- Grinblat, Jason, and C. Brian Bucklew. “Subverting Historical Cause & Effect: Generation of Mythic Biographies in Caves of Qud.” Proceedings of the International Conference on the Foundations of Digital Games - FDG ’17, ACM Press, 2017, pp. 1–7. Crossref, doi:10.1145/3102071.3110574.
- “Procedural narrative” tag on Emily Short’s blog
Session 06: Statistics-based and corpus-driven approaches
- Final project proposals
- Statistical and corpus-driven techniques
- Tutorial: A few simple corpus-driven approaches to narrative analysis and generation
The tutorial this week takes the form of a Jupyter Notebook, written in Python. See this tutorial on how to use Jupyter Notebook for a bit of orientation.
You don’t need to know Python to use the notebook. You can just hit shift+enter to run through the cells, and make changes to the parts where I show you that changes are possible.
The tutorial is running on Binder, which provides a temporary cloud-based server for you without any setup! The downside of this situation is that your session will disappear if you close the browser window (or put your laptop to sleep). So make sure to copy/paste or download any output that your notebook produces that you want to keep! (I’m happy to help you set up Jupyter Notebook on your own computer, in which case you won’t have this problem.)
Optional readings and resources
- My Reading and Writing Electronic Text class goes into more detail as well (in Python)
- Many NaNoGenMo entries make use of similar techniques
- Much of the recent research from Mark Riedl’s Entertainment Intelligence Lab makes use of Wikiplots and corpus-driven techniques.
- Final project presentations.