I had this narrative design problem: how could I define Roller Drama’s “slapstick” scenes that mix movements, actions, barks and dialogues without hard-coding behaviour in something linked but not organic to the narrative content? (Thread.)
I wanted to (1) be able to plug-in a new composite episode any time, without changing “architecture” and (2) have episode configuration *and* contents be somehow “together”, so to make it maintainable and easy to change/evolve.
My little hopefully funny missions in my game in development (Roller Drama) are in the context of a fixed side view of a few houses, a bit like Rear Window, and I mix absurd situations and little puzzles (inspired also by Hap’s cute games https://twitter.com/hap_inc_en/  ).
EXISTING SOLUTIONS

In my previous game, Football Drama, I used the common schema of alternating dialogues, which could make you gain cards, and football matches.
This kept narrative and the game sports mechanics separate but linked via cards; but in Roller Drama I want to mix narrative and missions generating funny situations that are not resolved entirely in terms of dialogues or cards won.
I checked for existing solutions, where narrative design in a way becomes level design (don’t even like the level design term but ok), found these three (super cool) talks:

Level Design Workshop: A Narrative Approach to Level Design
Writing and Narrative Design: A Relationship


The Shapes in Your Story: Narrative Mapping Frameworks
One of the takeaways of these talks is how scripted narrative plot evolution has to be linked with the *certainty of delivery*, otherwise, the player may make little sense of it all.

(Image from Writing and Narrative Design: A Relationship linked above.)
But they point to inaccessible proprietary (and in the case of Telltale, buried https://twitter.com/kessjrause/status/1354863495355850754) tools, and actually give no explanations about how to integrate scene direction, tick and dialogue. But I will try to below!!!
The solution I adopted is to use dialogues and their branching structure for different purposes.

MY SOLUTION - COMPONENTS:
In my dialogue system, which is a set of directed graphs with logic-rich nodes, I use dialogues in two ways:
1. MISSIONS: As a definition for missions, computing (A) conditions for the mission to start, (B) mission scene setup and (C) state change at every mission “tick”.

2. PROPER DIALOGUES: these are just possible components of a mission.
On missions: the same “dialogue” is called many times by the story engine by issuing diverse commands (one for each of the A, B, C cases) or asking the mission to do a “tick”. A tick for a running mission can make it progress from one task to another.
What is nice is that you can end a task from anywhere, in callbacks or even right in the middle of a contents say after a choice, which gives you both flexibility and control.
You see it all in the sample screenshot:
The particular “dialogues” that define missions, when in action (case C) according to the active task can conditionally instruct the story engine to do stuff, and when a task is complete it will move to the next one or end the mission with (eventually partial) success or failure.
What are the possible tasks and components?
Well, I need to say where NPCs should be, where they should go, when, what they and the narrator may say in the meantime, and also whether to open a full “proper” dialogue.
Inside each tick/task, there may be remarks by the Narrator (who is modelled as one of the actors), and by inserting them just in the flow I know when and where they should be presented. With callbacks I can have “certainty of delivery” and trigger the appropriate events. See GIF
Dialogues in the standard sense are just parts of a mission, and I define proper dialogues as flows distinct from those used for defining missions. Again there also for proper dialogues I use different commands to distinguish “setup” and the actual talking, see image:
Also here in the dialogue’s nodes you can put direction indications, like e.g. camera usage or NPC’s animations. They can get complex. 😝
Actually, I will need one more type of dialogue-that-is-not-just-a-dialogue: NPC’s “mind state” dialogues, where I maintain their relationship statuses (which are computed following some logic) and hence their “barks” when they meet you 😂
For those there will be a free mix of logic, state, tasks on tick and mini dialogues.
I developed this solution in @Unity by coding a little ticking story engine on top of a custom dialogue flow plugin (which is the amazing Outspoken by the amazing @demigiant) but the general idea can be used by anyone.
Just call your dialogue’s flow with different “commands”, including one for the scene’s “tick”. I think you could indeed do this even using Ink or Twine.

The main advantage is that I am keeping conditions and logic “local” to contents and in specific, focused containers.
Maintainability means putting conditions, structure and contents in the same container. New missions can be plugged in any time and also changing them is immediate: 🥳😱👺🤖😇🛼
You can follow @ppolsinelli.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.