DISE Annual Research Conference 2009

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 33

Annual Research Conference 2009 Presentation

by Simon Cooper
Overview

Introduction to Design &


Research
Interactive Implementation Future Work
Background
Storytelling of DISE
Introduction to
Interactive Storytelling
What is Interactive Storytelling?
 “A form of interactive entertainment in which the
player plays the role of the protagonist in a
dramatically rich environment.” (Crawford, 2004)
 It aims to give players more freedom to explore
and develop relationships with the game
characters and world through their choices.
 “In computer games characters aren‟t presented,
they are experienced.” (Noyle, 2006)
Or to be Exact…
 “a game world in which the user-controlled
character(s) can physically and mentally interact with
(perceived) total freedom while experiencing a
dramatically interesting story which is fundamentally
different on every play – dependent on the user‟s
actions.
 The user will be able to act as and when they desire,
in ways which will have a perceivable long and short
term effect on the story.
 They will be emotionally involved in this world, and will
thus greater appreciate the compelling storyline which
results.”

Barber (2008).
In the Past…
Many systems based on rules and
planning have been proposed in related
literature, but these have some limitations
and drawbacks:
 How much choice does the user have?
 How does the user affect the story world?
 How many different story threads/play-throughs are
possible?
 Is it emotionally engaging?
The Ongoing Battle

Story vs. Game


Our Goal?
 To specify, design, implement
and evaluate an interactive
storytelling engine, with an
accessible story model
structure and editor for easier
Story Editor
creation of new story content.

Storytelling
Engine

Game Engine
Research
Background
Literature Review of Interactive
Storytelling Techniques
 Game Master
 Directors
 Fuzzy Cognitive Maps & Goal Net
 Goal-Inference & Planning
 Dilemma Based
 Hierarchical Task Network Planning
 Genetic Algorithms
 Story Beats
 A Behaviour Language (ABL)
 Siftables - Object Based User Interface
Design &
Implementation of DISE
Design &
Implementation
•Overview
•ActionEngine
•Character Engine
•NPCs
•Constraints Satisfaction
Problems
•Rule Based Systems
•Homura Game Engine
A High Level Overview of the
DISE Architecture

DISE Overview
What Can I Do?

Action Engine
 To interact with the story a player needs to be able
to describe the actions that they wish to carry out.
 Players are given a choice of words that link
together to form coherent sentences.
 There are a limited number of words, which are
made available depending on the particular scene
and context of the story at a given time.
 The story developer can choose these verbs/actions
by listing them in the scene verb XML file, which
allows them to control to some extent the direction
of the story.
When an Object is Clicked
Possible Actions are Displayed

DISE – In Game Action Menu


The Contents of the Character
Engine

Character Engine Expanded


The Contents of the NPC Class

NPC Class Expanded


How an Agent Dynamically
Reacts to its Environment
Atmaram (2006)

Simple Reflex Agent


NPCs Make Decisions Based on
Their Personality and Audience

NPC Actions
Flowchart
Limiting Actions and Adding
Context

Constraints Satisfaction Problems


 Constraint Satisfaction Problems (CSPs) are used to solve many
computer & mathematical problems.
 They could be implemented in our engine to more efficiently filter out
verbs in real time based on context and to check the choice formulae for
the correct verb choices, forming the backbone of our AI and story
engine.
 The CCP (Clips Constraints Programming) module by Futtersack & Labat
allows Jess to solve CSPs and uses The Seat Problem as an example.
 Dynamic CSPs need a combination of heuristics and combinatorial
search methods to be solved quickly.
 CCP is composed of three modules:

The SEARCH The


The MAIN module
module implements PROPAGATION
contains the top
a classical module implements
level loop including
Chronological the Forward
the I/O rules.
Backtrack algorithm. Checking algorithm.
What happens When I Act?

Rules, Rules, Rules


 The choice formulae for each verb are stored inside
their verb definition in the verb dictionary and are
different for each verb and each character role.
 This difference allows a clear separation of roles
meaning that a mother, for example, may act
differently to a child in a given situation.
 The choice formulae result in a Boolean flag or
probability percentage value, depending on the type of
options and rules.
 The variables in the formulae are substituted with the
numbers taken from an element in the personality
model.
How It Works

Rules Example
 For example if player2 wanted to lend a bike from
player1 to ride to the shop, their decision to say
„yes‟ could be represented by the formulae:
If (Trust [Player1, Player2] > 0.8f)
If player2’s role was girlfriend to player1 the formula
may be changed to represent this relationship:
If (Trust [Player1, Player2] > 0.8f or Affection
[Player1, Player2] > 0.8f)
A large number of different roles can be stored in
each verb and it‟s up to the story developer to
choose which will be suitable for their story and to
add simple new rules for any new roles or verbs.
The DISE Visualisation and Game Engine is Built Up
From Homura‟s Key Libraries and Scenegraph Engine,
Which We Have Also Been Working On.

The Homura Game Engine


Stack Based GameState System
Allows Easy Switching Between
Game Screens.

The Homura Game Engine


Art/Assets Pipeline & Tools

The Homura Game Engine


Toon Race Game
Sunny Suzie Puzzle Game
3D Editor Allows Story Designers to Drop and
Move Objects in The Scene
Future Work
Future Work:
 We have reviewed some techniques that have been
used previously to create stories with greater
interactivity and provide players with a more
immersive experience, where their actions cause real
changes to themselves and the world around them.
 Using a combination of rule based languages,
heuristic search methods and verb based actions;
alongside a powerful multiplatform 3D games engine,
we intend to create a game with a dynamic character
driven storyline that doesn‟t bind players to a linear
path and a reusable middleware codebase for story
game developers.
What’s Next?
 Create SWT Editor Pane
 Finish Scene Editor Save/Load Files
 Finish/Refractor Physics Object Generics
 Build Up Starter Dictionary
 Finish Generic Base Objects
 Finalise Personality Model
 Implement Test Planners & Rules Loader
 A* Type Path Finding and Character Animation
 And Most Importantly…
Make A Story
Any Questions?

You might also like