510 likes | 748 Views
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?.
E N D
Aarf! Arf arf arf: Talking to the player with barks Patrick ReddingUbisoft Montreal
INT. DAY. Room 269, Moscone Center PATRICK (staring out into crowded room) Hello, and welcome! (after a beat) Who am I? 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.
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
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 Script Event Trigger/ Player Receiver Speaker Considerations Dialogue Manager Db Playback
Systemic vs Scripted Stimulus Event Source Receiver Speaker Receiver Interlocutor SourceStates Considerations Dialogue Manager Recv’r States Db Playback
Systemic:Sensory vs Dispatcher Deep generalized behavior Or Broad case-based behavior Considerations
Systemic:Sensory vs Dispatcher Source(player, gunshot, grenade, corpse, etc.) Receiver Event Considerations Damage NoiseInterestFear… States (e.g.): Status (alert, idle) Task (sleeping, paperwork) Threat (under fire, safe) … Any (generic) States (e.g.): Day/night/weather Location (terrain, building) Metric (faction strength, kills) … Any (generic)
Systemic:Sensory vs Dispatcher Receiver(s) Source(dispatcher) Event Update threat mapLast man standingEnemy on mounted weaponCall reinforcementsLast known positionSearch patternMove to action stations… Considerations States (e.g.): Status (alert, idle) Task (sleeping, desk) Threat (under fire, safe) … Any (generic) Game space
Systemic:Contextual/Affordant Task parameters (e.g.): Duration Interrupt Reset intervalTopology (point/area/path) Exit conditions …Associated event (DrinkWater) Needs (e.g.): Social + Rest ++ Duty + Tactical -… Considerations Attractor parameters (e.g.): Associated need (Rest) Broadcast radius Weighting coefficient …
Systemic:Contextual/Affordant Task parameters: Duration (00:20) Interrupt (True) Reset interval (02:00)Topology (point) Exit conditions (end dialogue) …Associated event (Convo) Needs: Social ++ Rest + Duty + Tactical -… Considerations Attractor parameters (e.g.): Need (Social) Broadcast radius Weighting coefficient … Condition (Occupied)
Systemic:Contextual/Affordant Considerations
Scripted:Chapter or Location –specific Receiver Mission Script Event Chapter States (e.g.): Mission sequence (8/12) Active mission (A1SM01) Last outcome (faction++) … Considerations Dialogue Manager Location States (e.g.): Location/zone Environment/terrain type Nearest game objective Nearest game ingredient … Db Playback
Scripted:Chapter or Location –specific Considerations
Generic Vocalizations “ARRGHH!”“@*%$^#!”“Look out--!” terrible to writeterrible to directterrible to perform… Bark Strategies
Generic Vocalizations … and they add a lot of redundant audio data to the game: Bark Strategies
Generic Vocalizations DialogueDb GenericVocalizationDb Bark Strategies CLP1 : PHYSICAL COLLAPSE 1 VO_ST_GVF_ONO_EXER_CLP1_01_001_GAA_DRY AGENT A 21: $NullSound$ 2 VO_ST_GVF_ONO_EXER_CLP1_02_001_GAA_DRY AGENT A 22: $NullSound$ 3 VO_ST_GVF_ONO_EXER_CLP1_03_001_GAA_DRY AGENT A 23: $NullSound$ Profanity Onomatopoeia Exclamations Singing … (anything repetitious)
State: Threat Level 0 Receiver + + ++ + 0 0 ++ 0 Bark Strategies States (e.g.): Threat Level (+1) Squad Cohesion (-2) … Any (generic) Source(player, enemy, etc.)
State: Threat Level Bark Strategies
State: Persistent metrics Receiver Source(player, principal cast NPC) Event Bark Strategies States (e.g.): Status (alert, idle) Task (sleeping, paperwork) Threat (under fire, safe) … Any (generic) States (e.g.): Reputation/Influence XP Stats/Skills/Perks* Faction affinity (+/-) …
State: Persistent metrics Bark Strategies
Solo vs Chained Receiver (Team) Receiver (Solo) Bark Strategies Source(player, enemy, etc.)
Solo vs Chained Bark Strategies
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 AI Tools
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 events Tools
Questions? patrick.redding@ubisoft.com www.wemakeholesinteeth.com
Aarf! Arf arf arf: Talking to the player with barks Patrick ReddingUbisoft Montreal