An account of the Storytelling Workshop at the Albuquerque Comic Expo

My wife and I recently visited the Albuquerque Comic Expo and we both had the pleasure to go to a Q&A session featuring Michael Golden, an American comic book artist, and co-creator of the X-men character Rogue.  He has recently stopped doing illustration work and has focused more on other projects, notably a Role-Playing Game, which he did not reveal.  His session was focused on storytelling, a topic that I am passionate about.  Granted, his focus was storytelling in comic books, but I felt most of his commentary could be applied to other mediums as well  (*sigh* I know, I know, the medium has much to do with how the audience perceives the story, but just let me get on with the blog post.  I can talk about why some storytelling principles are not domain-specific later).  Like most “words of wisdom” sessions, he started out with three golden rules of storytelling:

1.  Cover the basic six points of storytelling:  “Who?”, “What?”, “When?”, “Where?”, “Why?” and “How?”
Michael mentioned that he often became upset when people would talk about a (what he felt was a false) dichotomy between “old-school” storytelling and “new-school” storytelling.  To paraphrase,

There is no “old-school” and “new-school”.  There is only one way to tell a story – if you don’t cover those six basic points, then it’s not storytelling.  It may be (at best) story elaboration, but you’re only telling a story if you cover those points.   You don’t have to reveal all the information, but you at least have to set it up.

2.  Audience perception is crucial:  spoon feed them the facts, or risk them not “getting it”

Essentially, it means that you can’t count on the audience to be smart.  (This is one of the times where it became comic book centric: ) highly abstract symbolism is not welcome when the time to deliver the story is constrained to twenty-two pages.

3.  Know the basic story structure:  Have a beginning, a climax, and an end

Michael went over this point briefly, and emphasized to (for goodness’ sake) “end the damn thing.  Don’t tell the never ending story!”  He also revisited point (2) saying that the climax must be led into – everything must be purposeful and plausibly lead into the next event.  He also mentioned that above all, the ending must answer “why?” questions that are left unanswered.

The session then went into a formal Q&A.  I asked the second question, which (for those who know me and my research work) had a thinly veiled purpose.  I will paraphrase his answer from my notes and memory:

Me:  One of the really cool things you can do with storytelling is play with the expectations of the audience.  In your experience, what are some effective and non-effective ways that you can play with expectations?

Michael:  There really is no “slap-your-hand” answer.  Anything goes.  Because the audience can’t be expected to keep up with everything you are throwing at them, it becomes really easy to spoon feed them false information.  That can also be a burden: if you want them to expect that something will happen 3 pages down, you really can’t afford to be subtle.  It’s almost like “journalistic storytelling”: you have to stick to telling the story in a concise way that doesn’t lose the audience.  I will say though, genre has plenty to do with how you play with expectations.  There are certain tropes and devices that are genre-specific and will often distinguish what will happen next.

The fourth question, asked by another audience member, asked him to comment on how storyboard design differed from the comic-book domain to the video game domain (great question!).  He noted that it was like a “tree” of storyboards, but that all branches should coalesce into one ending. I asked a follow up:

Me:  Often, video game story designers will often playfully complain about the player and how he or she is “messing with the story”.  What are your thoughts on players disrupting a story?  Essentially, players can do whatever they want in the context of the game.

Michael:  You know, I often hear that complaint.  My rebuttal to that is always:  “Isn’t the point of RPG’s to mess with the story?”  Allow the player to tell his or her own story, but be sure to have a great resolution to tie it together, or have the player not make it.  Just as a note, I’m not a fan of multiple endings, because they force the player to go back and replay to figure out what happens, and I don’t have the time to do that.  I try to have a solid resolution to which all players lead up to, and let the player mess with the middle.

The remaining questions were more about the editorial process (which he thinks is crucial) and other production issues, which I wasn’t nearly as excited about.  Still, the workshop was very informative and I was happy that he was very straightforward about the process.  The idea of spoon feeding the audience so they can reason about what will happen next resonated with work in cognitive psychology on inferencing during reading (essentially, readers make inferences only when they are necessitated and enabled – go read the paper to figure the details out).  Also, the simplistic account of storytelling is nice, and I wonder how we might approach it from a computational perspective.  However, while the 5W’s and 1H might be the backbone of storytelling, the devil is in the details.  You can easily reduce most stories to The Hero’s Journey, but what distinguishes Mass Effect from Halo?  The Legend of Zelda from Skyrim?

In conclusion, I felt the workshop was a success.  Like most 1 hour talks, I left with more questions than answers.  Although, I suppose that is the hallmark of a good story.

Logic and Meta-Logic? A Puzzling Piece of a Project to Produce a Partial Order Planner in Python

I recently began a GitHub project to demystify Least Commitment Partial Order Planning.  Despite that there exists a great paper on the subject, I have always personally found that I learn better by doing.  This post is part informative and part commitment device to see this project through.

As part of the project, I’ve started working on code for a First Order Predicate Logic, which will serve as the logic engine for the AI planner.  I started with Atoms, Python objects that can be one of several types:  Constants, Predicates, and Variables.  I had the forethought to simplify my design by not allowing unique Variables to refer to the same Constant. That is to say, two distinct Variables must bind to two distinct Constants.  However, the syntax of Python allows me to have two distinct Python variables “bind” to the same Constant.  Consider,

Constant("bob")
Constant("bob")

Does what I expect it to:  it only registers in the logic engine one Constant symbol (“bob”).  Thus, repeated calls will return the same Python object.  However…

a = Constant("bob")
b = Constant("bob")

…blows my mind.  Technically there is only one Constant symbol that has registered in the logic engine (the “bob”),  but two (what I call) meta variables referring to them.  I say meta, because these are not Variable objects, or at least, not in the sense that I had envisioned them.  It seems weird, and I can’t wrap my head around how this would affect the underlying system.  On the surface, it means that to use the system, the programmer would have to follow a convention to not assign variables for fear of it getting really confusing.  I don’t like designing API’s that make the programmer think too much beyond the task at hand, so I will probably re-work the code.  Definitely a brain-teaser.