aarf! arf arf arf: talking to the player with barks patrick redding ubisoft montreal
DESCRIPTION
Aarf! Arf arf arf: Talking to the player with barks Patrick Redding Ubisoft Montreal. INT. DAY. Room 269, Moscone Center. PATRICK (staring out into crowded room) Hello, and welcome! (after a beat) Who am I?. - PowerPoint PPT PresentationTRANSCRIPT
Aarf! Arf arf arf: Talking to the player with barks
Patrick ReddingUbisoft Montreal
PATRICK
(staring out into crowded room)
Hello, and welcome!
(after a beat)
Who am I?
INT. DAY. Room 269, Moscone Center
On the stage is PATRICK REDDING, 39, a game designer at Ubisoft Montreal. The grey in his hair is proof that he worked on FAR CRY 2, designing narrative systems.
“barks”
(AI dialogue)
Not conversational mechanics
Not scripted events dialogue
Not cinematics dialogue
Not MP taunts
Bring the world to life
Function
Make the AI seem smart(er)
Function
Update the player on status
Function
Support the game’s themes
Function
Idle/Ambience
Context
Reaction
Context
Combat
Context
Social/Interaction
Context
Narrative
Context
Halo (series)
Fallout 3
GTA IV
Far Cry 2
F.E.A.R.
Fable 2
Assassin’s Creed
Systemic vs Scripted
Primary function of AI in support of gameplay?
Does the AI have a life when the player’s not around?
How dynamic is combat and other action?
How open is the level design?
Considerations
Systemic vs Scripted
Considerations
EventReceiver Speaker
Trigger/ Player
Script
Dialogue Manager
Db
Playback
Systemic vs Scripted
Considerations
EventReceiver Speaker
Source
Dialogue Manager
Db
Receiver InterlocutorSource
States
Recv’r States
Stimulus
Playback
Systemic:Sensory vs Dispatcher
Deep generalized behavior
Or
Broad case-based behaviorConsiderations
Systemic:Sensory vs Dispatcher
Considerations
Damage Noise
InterestFear…
Event
Receiver
Source (player, gunshot, grenade,
corpse, etc.)
States (e.g.):
Status (alert, idle)Task (sleeping, paperwork)Threat (under fire, safe)…Any (generic)
States (e.g.):
Day/night/weatherLocation (terrain, building)Metric (faction strength, kills)…Any (generic)
Systemic:Sensory vs Dispatcher
Considerations
Update threat mapLast man standingEnemy on mounted weaponCall reinforcementsLast known positionSearch patternMove to action stations…
Event
Receiver(s)
Source(dispatcher)
States (e.g.):
Status (alert, idle)Task (sleeping, desk)Threat (under fire, safe)…Any (generic) Game space
Systemic:Contextual/Affordant
Considerations
Task parameters (e.g.):
DurationInterruptReset intervalTopology (point/area/path)Exit conditions…Associated event (DrinkWater)
Attractor parameters (e.g.):
Associated need (Rest)Broadcast radiusWeighting coefficient…
Needs (e.g.):
Social +Rest ++Duty +Tactical -…
Systemic:Contextual/Affordant
Considerations
Needs:
Social ++Rest +Duty +Tactical -…
Task parameters:
Duration (00:20)Interrupt (True)Reset interval (02:00)Topology (point)Exit conditions (end dialogue)…Associated event (Convo)
Attractor parameters (e.g.):
Need (Social)Broadcast radiusWeighting coefficient…Condition (Occupied)
Systemic:Contextual/Affordant
Considerations
Smart-Object Event (e.g.)‘DrinkWater’
Chapter (e.g.)‘Convo_Act2Gossip’
Agent A(gurgling noises)
+ 10 seconds
Agent AAhh… I didn’t realize how thirsty I was…
+ 10 seconds
Agent AHey… Come on…! Who hogged all the cold water?! Bastards.
Agent AHey brother. Been awhile.
Agent BYeah, I think it was before Alexi, you know…
Agent AShhh. Keep it down.
Agent BOh, what? Like everybody doesn’t know why he ate a bullet? Please.
Scripted:Chapter or Location –specific
Considerations
Receiver
Chapter States (e.g.):
Mission sequence (8/12)Active mission (A1SM01)Last outcome (faction++)…
Location States (e.g.):
Location/zoneEnvironment/terrain typeNearest game objectiveNearest game ingredient…
Mission Script
Event
Dialogue Manager
Db
Playback
Scripted:Chapter or Location –specific
Considerations
event Chapter (e.g.)‘AssassinateVIP’
Location (e.g.)‘NaturalGasRefinery’
Sensory (e.g.):Bullet impacts
Agent A(yelling into radio)I’ve got contact on my station… security breach with small arms fire…
Agent A (yelling into radio) Watch your fire! Check your shots or we’re all going to burn…
Dispatcher (e.g.):Fall back to rally point
Agent A (yelling into radio) All stations! Form up on the client and hold!
Agent A (yelling into radio) Can’t risk a firefight… Regroup at the safe zone!
Generic Vocalizations
“ARRGHH!”“@*%$^#!”“Look out--!”
terrible to writeterrible to direct
terrible to perform…
Bark Strategies
Generic Vocalizations
… and they add a lot of redundant audio data to the game:
Bark Strategies
Generic Vocalizations
Bark Strategies
DialogueDb
GenericVocalizatio
nDb
ProfanityOnomatopoeiaExclamationsSinging…(anything repetitious)
Severe 1 $ONO_INJR_SVR1$
Fatal 1 $ONO_INJR_FTL1$
Physical Collapse $ONO_EXER_CLP1$
Prolonged Exertion $ONO_EXER_PRL1$
Fast Exertion $ONO_EXER_FST1$
CLP1 : PHYSICAL COLLAPSE1VO_ST_GVF_ONO_EXER_CLP1_01_001_GAA_DRYAGENT A21: $NullSound$2VO_ST_GVF_ONO_EXER_CLP1_02_001_GAA_DRYAGENT A22: $NullSound$3VO_ST_GVF_ONO_EXER_CLP1_03_001_GAA_DRYAGENT A23: $NullSound$
State: Threat Level
Bark Strategies
Source(player, enemy, etc.)
0
0
0
0
+
+
+
++
++
Receiver
States (e.g.):
Threat Level (+1)Squad Cohesion (-2)…Any (generic)
State: Threat Level
Bark Strategies
event Threat Level (e.g.)+1 (exposed to fire)
Threat Level (e.g.)+2 (under direct fire)
Dispatcher (e.g.):Reload, CheckCover
Agent AI’m dry… Cover me!
Agent AOh NO…! No no no no no…
State: Persistent metrics
Bark Strategies
Event
Receiver Source
(player, principal cast NPC)
States (e.g.):
Status (alert, idle)Task (sleeping, paperwork)Threat (under fire, safe)…Any (generic)
States (e.g.):
Reputation/InfluenceXPStats/Skills/Perks*Faction affinity (+/-)…
STR
AGL
INT
State: Persistent metrics
Bark Strategies
event Influence (e.g.)-1 (bad)
Influence (e.g.)+1 (good)
Social (e.g.):Greet
Agent AOh look, my favorite parasite. What do you want?
Agent AAh, my friend! How may I be of service today?
Solo vs Chained
Bark Strategies
Source(player, enemy, etc.)
Receiver (Team)
Receiver (Solo)
Solo vs Chained
Bark Strategies
event Chained (e.g.) Solo (e.g.)
Dispatcher (e.g.):Reload, CheckCover
Agent AI’m out…!
Agent BI got your corner… Make it quick…
Agent AStandby…
Agent U(in Russian)Damnation…! This cheap Tajik ammunition was a rip-off…
Using layers
Layering some or all of the above response types
Queuing within an aggressive censor system allows designer to tweak signal-to-noise
Bark Strategies
Content management pipeline
Spreadsheets are an ugly compromise
Need dedicated tool for entire pipeline
‘Content manager’ might be a full-time job
Tools
Playback rules
Meta-data attached to individual lines of dialogue
Mark-up used by animation, audio systems at run-time
Some hard-coding of rules into other AITools
Managing variations
Variation banks used to exploit streaming and avoid bottlenecks
Banks differentiated by global AI conditions (alert, combat, etc.)
Individual banks can be swapped out
Gaps during streaming can be filled with generic vocalizations
Tools
Censor systems
Controls flow of bark outputs
Regulates the mix of generic vs special-case barks (to conserve content)
Assigning different classes of dialogues to ‘censor groups’
Tools
Frequency stats
Gather data on playback frequency from playtesters
Bot/plug-in running in background aggregates stats over the local network
Good for identifying “dead” lines, or over-exposed reaction eventsTools
Questions? [email protected]
www.wemakeholesinteeth.com
Aarf! Arf arf arf: Talking to the player with barks
Patrick ReddingUbisoft Montreal