GDIM 55: Storytelling for Interactive Media

Winter 2021

Professor
Theresa Jean Tanenbaum (Tess)

ttanen@uci.edu

TAs

Mikael Sebag

(msebag@uci.edu)

Minnie Wu

(minniew@uci.edu)

Time
Tuesdays & Thursdays
3:30-4:50pm PST

Location:
ICS 174

Catalog Description

This course introduces students to theory, and practice of interactive storytelling for games and other interactive media. Students will explore the poetics of this emerging form through a combination of theory, play, and design.

Course Overview & Goals

Humans use narrative as a fundamental sense-making strategy to understand the world and communicate that understanding to others. As new media technologies emerge they are inevitably put to narrative uses by people, expanding on existing strategies for storytelling and innovating new poetics for narrative. This course will focus on the relatively recent emergence of technologically mediated interactive and participatory narrative experiences. This course will focus on building skills and techniques to create engaging digital narratives through a combination of play, discussion, and design.

LEARNING OUTCOMES

  • Students will develop a diverse set of digital narrative literacies through direct play experiences of significant milestones in digital storytelling.
  • Students will be able to differentiate between key concepts in digital narratology, including (but not limited to) diegesis, mimesis, agency, immersion, transformation, interactivity, ergodic, and ludic.
  • Students will develop an understanding of the central challenges faced by interactive storytellers over the last 30 years, including increased authorial load due to branching designs, distribution of authorship and agency between players and designers, issues of cognitive overload in readers, and difficulties designing meaningful verbs outside of the dominant gamic paradigm of actions.
  • Students will be able to implement their own digital narrative experiences using Twine incorporating audio/visual assets, text styles, conditional statements, and variables.

Course Structure

This class will be a mixture of discussion of readings, and hands-on project work. Tuesdays will be lecture/discussion days while Thursdays will be reserved for playing games and working on projects. The final deliverable for this course will be an interactive story, created with Twine.

Grading and Deliverables

Your grade in this class will be determined by three things: you performance on the five in-class Twine Sketches, your performance on the final project, and your participation in the class, as measured by your attendance.

 

 

I will be using a form of Specifications Grading (or “spec grading”) primarily adapted from here. Spec Grading has some distinct advantages over more traditional percentage-based letter grades. Rather than assigning a numerical score to assignments, they are instead assessed on whether they satisfactorily meet a set of clearly specified criteria or not. The final grade assigned at the end of the course will be assessed based on “bundles” of completed assignments. This removes much of the guesswork from the grading process. Students may choose how much time and energy to invest in the course, with the higher graded bundles requiring more work than the lower graded bundles. The assignments themselves are designed to reflect the intended learning outcomes for the course, and require that students demonstrate mastery of the skills and concepts being taught in order to meet the bar for a Satisfactory mark. In this class the in-class Twine Sketches will be assessed on a satisfactory/unsatisfactory scale, and the final project will have some more granularity in how it is assessed.

 

 

Possible Final Project marks:

  • Highly Satisfactory
  • Satisfactory
  • Passing
  • Unsatisfactory
  •  

The only letter grade that will be given in the course will be your final grade, and it will reflect the “bundles” of assignments and requirements you have satisfactorily accomplished in the class. Note that each individual student, and each group of students gets several tokens which can be exchanged for some flexibility around the deadline for an assignment, or to excuse and absence, or to resubmit an assignment.

Students who complete the following will pass the course with a grade of C:

  • Actively attend all course meetings, with up to five absences, per the attendance policy below
  • Complete at least 3 Twine Sketches to a Satisfactory level
  • Complete the final project to at least a Passing level

Students who complete the following will pass the course with a grade of B:

  • Actively attend all course meetings, with up to three absences, per the attendance policy below
  • Complete at least 4 Twine Sketches to a Satisfactory level
  • Complete the final project to at least a Satisfactory level

Students who complete the following will pass the course with a grade of A:

  • Actively attend all course meetings, with up to two absences, per the attendance policy below
  • Complete all 5 Twine Sketches to Satisfactory level
  • Complete the final project to at least a Satisfactory level

A “highly satisfactory” final project will bump a grade up half a grade, so an A bundle would become an A+ and a B bundle would become a B+, etc. Anything below the C bundle will not pass the course, although there may be a few cases where the bundle merits a D grade, at my discretion. It is impossible to pass the course with an unsatisfactory final project mark.

Tokens and Flexibility

Every student starts the course with 2 virtual “attendance” tokens that can be “exchanged” to eliminate an absence from their record.

 

Additionally, each team will have 2 virtual “extra life” tokens that can be exchanged for either of the following

  • Revise and resubmit one of the Twine Sketches
  • Submit any assignment up to 48 hours late

Attendance Policy

You are expected to attend all class meetings on time, having done the readings/viewings, thought about the material, and prepared to engage in discussion and in-class activities. This is not solely a lecture course, so active participation and engagement is required. Attendance will be taken regularly, via colored index cards.

Late Assignment Policy

Assignment due dates are listed in this syllabus, and on each assignment when given. The Twine sketches are due on the day that we work on them in class (before midnight), although you are allowed and encouraged to complete them sooner. The Final Project is due on the Tuesday of Finals Week before midnight. You may spend a token to extend the deadline for any assignment by 48 hours, and you may spend a token for me to consider a revised/resubmitted  version of any assignment that has already been submitted once. Any assignment that is submitted late will be automatically marked unsatisfactory.

Assignments and Deliverables

Twine Sketches

Over the first weeks of the class we will be doing these “mini-twine” design sketches on Thursdays. The point of these is to acquaint you with the fundamentals of the tool that you will be using for your final project in the class.

Please note that you do not have to wait until class to begin these. If you want to work ahead, you may do so at your own pace. This will allow you to use class time to work on your final project instead, which you may find beneficial. That said, these are meant to be sketches and not finished pieces and it is possible to complete them entirely within class time. These are all meant to be done in small groups of 4-5 people.

 

When you complete any of your Twine sketches, please post it on the Discord in the #mini-twines channel so that your colleagues may see your work.

 

IMPORTANT NOTE: I’m approaching this class with a “real world” attitude towards code reuse. In the real world, many developers find and reuse code snippets from examples and open-source projects online. We will be approaching our projects with a similar ethos, as long as everyone follows the same rules.

 

  1. You MAY reuse any code or html that another student or team has posted on the Discord.
  2. You MUST credit that student or team in a comment in your code, and use the appropriate react emoji on the Discord post for the student whose code you are using.
  3. You MAY NOT reuse any content that another student or team has posted. “Content” here refers to text or prose that is part of their interactive story, or any original media that they might have embedded in their project. Keep your copying to functions, not contents.
  4. Students or teams whose code is reused frequently will earn tokens which allow for additional flexibility around assignment deadlines, excused absences, and re-submissions of unsatisfactory work.
  5. It is each team’s responsibility to track and document how people have used their code, and to request tokens from the teaching staff.

 

This means that there is a reward to be earned for people who solve problems first and share their solutions with their peers. This is a big departure from traditional approaches to plagiarism and cheating. I’m doing this because I’m more interested in seeing you all make interesting and compelling interactive stories. Here’s how I think about this: if I was teaching you how to paint a landscape I wouldn’t start you out with a unit on formulating your own pigments and paints, creating your own brushes, and stretching canvas: I’d give you those tools as early as possible in the year, so you could begin practicing making art with them.  These exercises are meant to do that for you.

 

APIs/References

We will be using class time this week to get the basics of twine under out belts. We will each be creating short interactive introductions for each of the people on the team. You may be as creative as you like with this, as long as your introduction includes the following information:

 

  • The names of the group members.
  • Their pronouns (optional but encouraged)
  • Each person’s dreams for their future
  • Something that each of you is anxious/worried about that ISN’T related to school.
  • Each person’s hopes/expectations/goals for this class.
  • The best game/TV show/ film/music/other media that each of you encountered in 2022 and why you liked it.

 

Required elements for a satisfactory mark:

 

  • Navigation between multiple lexia/passages
  • No dead-ends or dangling threads
  • Playable without game-breaking errors or bugs
  • Writing should be clear, easily understood, and accessible.
  • All of the required information should be easily found.
  • Assignment is submitted on or before the deadline.

 

Resources:
You may use either Harlow or SugarCube.

 

 

To Submit: Post the .HTML for your game to the discord channel #mini-twines before the end of the day on Thursday (before 11:59 pm). Make certain to include the words “Twine Sketch #1” in the post, and the names of each team member.

In class this week you will be taking a movie, book, tv show, comic, anime, or other static piece of media and recreating a scene from it in Twine. You may choose to interpret this however you like, however it should have more than one ending. This means that it will likely depart from the canonical material at some point. It should also include multiple Text Styles that enhance the narrative in some way, as well as different colors that are used meaningfully.

 

Required elements:

 

  • Navigation between multiple lexia/passages
  • Playable without game-breaking errors or bugs
  • Writing should be clear, easily understood, and accessible.
  • Multiple text styles should be used.
  • Multiple colors should be used.
  • Endings should be clearly indicated, and the reader should be given a path back to the start.
  • Assignment is submitted on or before the deadline.

 

Resources:

 

This is easiest in Harlowe, although Sugar Cube has some functionality for this as well.

 

 

To Submit: Post the .HTML for your game to the discord channel #mini-twines before the end of the day on Thursday (before 11:59 pm). Make certain to include the words “Twine Sketch #2” in the post, and the names of each team member.

In class this week you will be creating some simple game elements, similar to what you might find in a CRPG game. You will be working with conditional statements, variables, and text entry for the first time in this assignment. Specifically, you will be making a character creation sequence for an interactive story. Once the character is created, you need to show how it works with a simple test scene in which the player can make choices that increment or decrement that character’s stats, which in turn impact what the player can and can’t do in a second scene. In both of these scenes, the game should incorporate the name and pronouns that the player provided at the start.

 

NOTE: Things might get a bit tricky here since we’re introducing programming concepts. I recognize that this is a big leap forward from the previous sketches. Learning how to use these techniques will give you many more options as a storyteller.

 

Required elements:

 

  • Player customizable name [Text Entry]
  • Player customizable pronouns [Text Entry or Multiple Choice]
  • At least two “character stats” that are visible to the player and change in response to changes in the game state. [Variables, Conditional Statements]
  • A scene where choices the player makes change their character’s stats. [Variables, Conditional Statements]
  • A second scene where the changed stats impact the available choices, or the outcomes of the action. [Variables, Conditional Statements]
  • In both of these scenes, the content should reflect the name and pronouns entered by the player.
  • Playable without game-breaking errors or bugs
  • Writing should be clear, easily understood, and accessible.
  • Assignment is submitted on or before the deadline.

 

Resources:

 

 

To Submit: Post the .HTML for your game to the discord channel #mini-twines before the end of the day on Thursday (before 11:59 pm). Make certain to include the words “Twine Sketch #3” in the post, and the names of each team member.

This week’s sketch is focused on enriching your Twine narratives with audio/visual elements by creating an “interactive music video” in Twine. Pick a song to embed in your Twine and illustrate it using a combination of text effects and images.

 

Required elements:

 

  • At least one working audio element
  • At least one working image
  • Assets cannot be “local” to your computer for the purposes of this sketch: I need to be able to see and hear them.
  • Playable without game-breaking errors or bugs
  • Writing should be clear, easily understood, and accessible, and the names of each team member.
  • Assignment is submitted on or before the deadline.

 

Resources:

 

 

To Submit: Post the .HTML for your game to the discord channel #mini-twines before the end of the day on Thursday (before 11:59 pm). Make certain to include the words “Twine Sketch #4” in the post, and the names of each team member.

For this week’s design sketch you need to create a short twine that uses dialogue as the central element. Specifically, I want you to make a conversation between a PC and at least one NPC, where the player is trying to persuade the NPC to do something. It should be possible to fail.

 

The Twist: you need to include some kind of random, probabilistic, or stochastic element in this! This could be a dice roll, or passages that randomly pick certain words from a list, or some other source of variability. You could also create dialogue where different options change variables which then alter how the conversation proceeds (like a moral choice engine or similar mechanic).

 

Required elements:

 

  • Dialogue should be at the heart of the interaction.
  • There needs to be at least one random, probabilistic, or unpredictable element in the game.
  • There should be multiple outcomes possible to the dialogue.
  • Endings should be clearly indicated, and the reader should be given a path back to the start.
  • Playable without game-breaking errors or bugs
  • Writing should be clear, easily understood, and accessible.
  • Assignment is submitted on or before the deadline.

 

Resources:

 

 

To Submit: Post the .HTML for your game to the discord channel #mini-twines before the end of the day on Thursday (before 11:59 pm). Make certain to include the words “Twine Sketch #5” in the post, and the names of each team member.

Final Project

The final project for this class is an interactive story in Twine. Unlike the Twine sketches that we do in class, this project is intended to be a complete narrative that incorporates all of the lessons from the class, both theoretical and practical. This is also the only assignment that will be graded on a scale, rather than simply satisfactory/unsatisfactory.  I’ve broken the required elements down into two categories: Basic and Advanced.

Basic

  1. Complete narrative arc that includes (at the minimum) a beginning, middle, and conclusion. I don’t necessarily need you to follow the Hero’s Journey or Save The Cat or Harmon’s Story Circle to the letter, but there should be a fully self-contained story in your final project that reaches a decisive conclusion (or multiple decisive conclusions if you are creating multiple endings.)
  2. Thoughtful use of branching and nonlinear elements that enhance the experience of the story. When choices appear, do the enhance the story? Are they meaningful to the reader?
  3. Appropriate prose style for the story that is grammatically correct, clearly written, and that effectively conveys the aesthetic of the story to the reader. This doesn’t necessarily mean large blocks of text – and in fact large blocks of text are seldom the best stylistic choice for Twine stories – but the prose should fit with the genre and style of the story being told.
  4. Intentional use of color, text styles, and/or fonts to enhance the story in some way.
  5. Intentional use of imagesanimations, and/or other visual elements to enhance the story in some way.
  6. Intentional use of sound and/or music to enhance the story in some way.

Advanced

  1. Effective use of variables and other changes to the underling state machine of the story. This might mean tracking some aspect of the reader’s choices or actions in order to unlock different paths, or it could mean establishing an inventory system, or an in-game economy.
  2. Some elements of reader customization or input, such as a text entry field, radio-button choice, or other reader-configurable element that changes how the story is presented, or how it unfolds.
  3. Appropriate use of signposting and navigational aids to help the reader understand their place within the story. This could take the form of chapter markers, status read-outs, “you are here” style maps of the environment, progress bars, or other forms of UI feedback. It could also be diegetic and incorporated more subtly into the text of the story. By “appropriate use” I mean that there may be sections of the story when you want the reader to not know where they are, and so these maps and support systems may not always be available to the reader.
  4. Effective use of conditional statements or randomness within code that enhances the experience of the story. This could take many different forms, including mad-libs-style word replacements, puzzles that need to be solved for the reader to progress, or more sophisticated implementations. These should be in service to the narrative and shouldn’t distract from the experience of the story.

Here is what you need to do to achieve each mark for the final project:

 

Highly Satisfactory:
A Highly Satisfactory final project will incorporate at least 5 basic elements, and any combination of 2 advanced elements.

 

Satisfactory:
A Satisfactory final project will incorporate at least 4 basic elements, and any 1 advanced element.

 

Passing
A Passing final project will incorporate at least 4 basic elements, and none of the advanced elements.

 

Projects that fall below this bar will be marked as Unsatisfactory. 

Weekly Schedule and Materials

Week #1: Introductions to the course, Twine, and each other

Lecture: Introduction to the course

Activity: Form Groups

Activity: Join Discord

Activity: Twine Sketch #1: Introduce each other in Twine

Week 2: A compressed history of interactive digital narrative

Lecture: IDN History

Discuss Readings:

Activity: Twine Sketch #2: An interactive scene

Week 3: Narrative structure and narratology

Activity: Twine Sketch #3: A deceptively simple character record

Week 4: You Awaken in a Strange Place #1

Lecture: Game overview and setup

Discuss Readings/Viewings:

Activity: Play YAIASP Act 1

Activity: Play YAIASP Act 2 or YAIASP Game 2

Discuss Readings/Viewings:

(optional)You Awaken In A Strange Place video

Week 5: Games and Narrative

Lecture: Games and Narrative

Discuss Readings/Viewings:

Activity: Twine Sketch #4: Adding Images and sound

Week 6: Understanding Players

Activity: Twine Game Play-a-thon

 

We will play through as many of the games in the Twine Games List as we can and discuss them.

Week 7: Key Concept - Agency

Activity: Collective close reading of narrative games off of the Narrative Games List

Week 8: Dialogue and Conversations as Gameplay

Lecture: Dialogue Driven Gameplay

Discuss Readings/Viewings:

Activity: Twine Sketch #5: Dialogue (with a twist)

Week 9: Navigation and Maps

Guest Speaker: Catherine Blackard, Omniverse Media

Week 10: You Awaken in a Strange Place #2

Activity: Play YAIASP Act 1

Readings/Viewings

Activity: Play YAIASP Act 2 or YAIASP Game 2

Finals Week

No Class: Final Projects due before midnight

INTERACTIVE STORIES, PLAYABLE MEDIA, AND GAMES

Additional Important Course Policies and Resources