Тёмный

AI-driven Dynamic Dialog through Fuzzy Pattern Matching 

GDC
Подписаться 524 тыс.
Просмотров 52 тыс.
50% 1

Опубликовано:

 

5 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 56   
@npatch
@npatch 8 месяцев назад
Despite this being an amazing talk, I'd like to say how much I adore this man as a speaker. He has the greatest talks. He clearly shows he knows what he's talking about, doesn't appear nervous, has comedic elements and generally knows how to structure and present a talk. Btw coming here from Firewatch and Jason Gregory's TLOU talks, kinda going back in time. All of them great talks, highly recommended, as is anything this man presents.
@stealcase
@stealcase 3 года назад
I've watched this talk more than 10 times by now. Excellent talk.
@Bluequaz
@Bluequaz 4 года назад
I actually love this talk. Will be implementing a lot of the concepts in a current project
@matthewtimmermans2610
@matthewtimmermans2610 3 года назад
One of my favorite talks ever! I implemented my own dialog system based on the bark system and extended it as a complete behaviour system, I did simplify it slightly. I am having trouble identifying the pattern tho.. In the talk they call it a self branching tree, but I think it may be a Fuzzy State Machine (FuSM).
@jeremiahlampkey3137
@jeremiahlampkey3137 4 года назад
This is pure gold and should be adapted for many more different types of games. I want a JRPG that uses this system.
@vrcenter3340
@vrcenter3340 3 года назад
Excellent talk! Surprised no one spotted him getting stage left and right confused during questioning.
@mmuekk
@mmuekk 6 лет назад
6 years to publish a talk!!
@Vasharan
@Vasharan 6 лет назад
Valve time.
@victordrouinviallard1700
@victordrouinviallard1700 5 лет назад
they were private before that I believe. They probably changed business model.
@rmt3589
@rmt3589 Год назад
And 4 years for me to watch it!
@cycomiles4225
@cycomiles4225 2 года назад
"You should leave writers to do the writing not programmers" Meanwhile at Bethseda - "our quest designers are writers" + E. Pagluirlo
@xanaguythelegend7770
@xanaguythelegend7770 Год назад
This is quite fascinating to see. I'm very glad to have worked with this system.
@magonus195
@magonus195 2 года назад
One of the best GDCs I've seen.
@dachshund_gaming
@dachshund_gaming 3 года назад
Aww he was getting visibly anxious after the PowerPoint failed. It’s good he was making some attempts to alleviate the awkwardness
@Mittzys
@Mittzys 9 месяцев назад
This is a genius method in how unobviously obvious it is! I will be rewatching this at least a few times...
@_equalo
@_equalo 4 года назад
This is very interesting. I’m trying to formulate a way to create procedural dialogue based on a procedurally generated NPC personality in a world as believable as possible, and it is very formidable
@quatricise
@quatricise 2 года назад
That sounds crazy, given you want it all to be procedural. Now I know that nowadays GPT-3 is getting dangerously close to writing good dialogue, it's still like, a daunting task to even begin designing a system like that since implementing actual neural networks is not really convenient yet.
@MasthaX
@MasthaX 2 года назад
When I saw this technique I instantly recognized it from L4D2 it's very reliant and robust.
@arcannar
@arcannar 6 лет назад
Why wasn't this published sooner, This is amazing
@Lofwyr
@Lofwyr 6 лет назад
Really nice. Damn how I miss Valve making games...😔
@Sarrixx
@Sarrixx Год назад
Big ups to the Firewatch devs for sending me here!
@dreamingacacia
@dreamingacacia 6 лет назад
more ideas pile up for me since I don't have require skills yet, great. thanks for the simplified version here so I could further simplified this idea more.
@DukeJon1969
@DukeJon1969 4 года назад
Outstanding presentation
@leonardoraele
@leonardoraele 6 лет назад
Great talk! This approach really helps to make the characters alive and aware of the world. Awesome. Also, I like this part 57:45 ^_^
@joewilliams8286
@joewilliams8286 Год назад
Brilliant talk thanks for the information!
@johnx140
@johnx140 5 лет назад
2018, and powerpoint is a piece of trash. So relatable!
@Bredmirror
@Bredmirror 4 года назад
This presentation was from 2012 tho.
@NextLevelCode
@NextLevelCode 3 года назад
@@Bredmirror but power point was introduced in 1987. So they had 25 years to get it right and still failed.
@KillerBearsaw
@KillerBearsaw 3 года назад
@@NextLevelCode But it worked on the "backup laptop" so...
@NextLevelCode
@NextLevelCode 3 года назад
@@KillerBearsaw so 25 years for 50%
@ultimaxkom8728
@ultimaxkom8728 3 года назад
@@NextLevelCode *_Or..._* the first laptop simply has a problem, seeing how smooth it is on the backup one.
@pikmin4000
@pikmin4000 6 лет назад
This is case-based reasoning!
@happytree7033
@happytree7033 4 года назад
I believe it's actually a rule-based system as new data isn't created based on the "cases". In a rule-based system, the mentioned parts in the video translate as: The facts are facts, the rules are rules, the selector is the arbiter, and the "any" is a wild card. Although, I agree with you for mentioning that it doesn't seem to be a fuzzy system as the title says. Side note: Fantastic video! Definitely going to implement this.
@ERINDIGR
@ERINDIGR 6 лет назад
What cryengine did now valve did 6 years ago
@crashmancer
@crashmancer 6 лет назад
Maybe they saw the talk.
@dciug
@dciug 5 лет назад
Technically, it's 8 years, since this is a system from Left 4 Dead 2.
@matthewtimmermans2610
@matthewtimmermans2610 3 года назад
I love this talk, I'd like some help correctly identifying the pattern tho.. I'm thinking Fuzzy State Machine, but I'm not really sure.. They call it self branching tree in the talk but seems to have more incommon with utility function.. I'd love some experts to shed some light on this.
@HueyTheDoctor
@HueyTheDoctor 6 лет назад
You can't put up a talk with a title like that and not expect me to watch the living shit out of it. Bonus that it's a Valve engineer doing the word-making.
@johnrussell6971
@johnrussell6971 3 года назад
22:28 - General idea for intelligent dialog system
@r1pfake521
@r1pfake521 3 года назад
I have a question, with these query parameter like "who", "health", "hitBy" etc. how is the designer kept up to date which parameter they can use and with parameter like "hitBy" the designer must not only know that "hitBy" can be used but they must also know all the names of the enmies that can be used for the paramter. On one hand you have to implement them in the game/engine, so they can be used by the dialog system, but then you also need them outside the engine, so that the designer knows they exist etc. a naive way would be that the programmers writes down a "list" or "manual" and gives it to the designers, but the list can change over time so im wondering how professionals handle this case to keep the "list" in synch for the programmer and designer. Even if you implement it in your designer tool and give them a drop down of all names, they still need a way to know who "bob" or "zombie03" is like a screenshot or even more information, at least the first few times until they remember the names. Im currently a solo dev so it's easy for me, I add a new enemy to the game, I add the enemy ID to my tool. I can open the engine at anytime and look how the enemy model looks ingame, but I assume that people who work in big teams have better workflows and I would like to learn.
@DriftJunkie
@DriftJunkie 2 года назад
Probably the "large database" he mentions, is not confined to information relevant to the system, but also, the creators. If you rename a character, you rename the character in the database and mark all the dialog lines as "require revision".
@DriftJunkie
@DriftJunkie 2 года назад
At 37:00 he mentions they let writers create rules in "Inform 7", then update databases in "FoxPro" with new data and transform it into text parsable by compiler.
@DriftJunkie
@DriftJunkie 2 года назад
47:30 also relates to your question
@DimitriosDenton
@DimitriosDenton 10 месяцев назад
That's great. How would I start doing something like that using Unreal Blueprints?
@Mittzys
@Mittzys 9 месяцев назад
Hi Dimitrios. I plan on doing the same thing - If I figure anything out I'll try to remember to tell you! Likewise, it would be lovely if you could share any discoveries
@guys-in9vd
@guys-in9vd 4 года назад
no one : blocky bot : URINE
@Inkulabi
@Inkulabi 5 месяцев назад
11:05 🖖🏾
@DefinitelyNotAMachineCultist
🎯 Key Takeaways for quick navigation: 00:30 🎮 Introduction to Dialogue in Games - Outlines the talk's focus on a simple way to handle dialogue in games. - Emphasizes empowering writers, not just about code. 01:31 💾 System for Tracking Game World Facts - Explains a system for tracking multiple facts in the game world. - The system has been used in multiple Valve games like Half-Life 2, Left 4 Dead, Portal 2, and Dota 2. 02:28 🗨️ The Importance of Dialogue in Games - Discusses how modern games have evolved to include intricate dialogues and state tracking. - Highlights the need for a robust system to handle these complexities. 03:34 🕹️ Role of AI in Dialogue - Focuses on how AI in stealth games uses dialogue to announce states. - AI dialogue serves as an important part of the game mechanics. 05:21 🌎 Dynamic Situations in Sports Games - Explains the challenges of tracking an absurd amount of state in modern RPGs and sports games. - The need for a system that adapts to highly dynamic situations. 06:17 🛠️ Design Philosophy - Talks about the design philosophy behind their system. - Aims to be simple, uniform, and writer-friendly. 07:25 🌐 International Play and Localization - Discusses the importance of localization for international play. - How the dialogue system helps in breaking language barriers. 09:22 🤖 Experimenting with Companion Characters - Discusses an experimental project aimed at making companion characters seem more real and aware. - Introduces "Two Bots One Wrench" as a proof-of-concept. 12:10 💬 Implementing Conversations - Details the simplest way to implement conversations between characters. - Demonstrates how lines can be triggered and responded to in a dialogue. 14:23 🔄 Building Character Memory - Discusses how they implemented character memory for running gags. - Explains how characters can remember past interactions. 16:21 🎭 Implementing in Left 4 Dead - Talks about applying the dialogue system to Left 4 Dead. - Highlights the challenges of dynamic playthroughs and how their system adapts. 19:24 🗣️ Auto-Generated Character Comments - Discusses how AI characters can automatically call out things they see. - Helps in role-playing and player immersion. 21:59 📝 Empowering Writers - Stresses the importance of empowering writers to drive when lines get said. - Talks about the simplicity of the system and how it evolved. 23:07 📚 Glossary and Query Formation - Provides a glossary of terms used in the dialogue system. - Discusses how queries are formed to decide which line should be triggered. 23:35 📝 Querying for Game Behavior - Introduction to how the system uses queries to pick game behaviors. - A query is a flat list of facts, making it easier to understand and more discoverable. 24:59 🌐 How Queries Work in Detail - A query is a dictionary containing hundreds of key-value pairs representing the game state. - Allows for greater flexibility when writing lines for characters. 27:07 🛠 Rule Matching Mechanism - Rules in the system are represented as criteria. - All criteria in a rule must match for the rule to be considered a match. 28:56 🎯 Rule Scoring and Priority - The more specific a rule is, the higher it scores. - The system selects the rule with the highest score for the given query. 30:07 🗨 Dynamic Dialogs and Conversations - Describes how the system handles back-and-forth conversations between characters. - Allows for branching dialogues with minimal effort. 32:12 🎭 Character-Specific and General Replies - Explains how the system can have both specific and general lines for characters. - Allows for flexibility and adaptability in conversations. 34:04 🔄 Dynamic Updates in Dialog - Queries are updated dynamically based on the game state. - Allows for real-time changes in dialogue based on events. 35:22 ✍ Writer Interface and Tools - Discusses the need for tools to help writers interact with the system. - Mentions different ways to write and input rules into the system. 38:08 💾 Database for Dialogue Management - Importance of designing systems for specific needs. - Examples of using Excel and other tools for database management. 40:32 🏗 Technical Optimization - Talks about the performance aspects of the dialogue system. - Discusses techniques for optimizing the query and rule-matching mechanisms. 43:30 🌍 Regional Database Optimization - Dialogue is divided into databases by region to optimize memory and query speed. - No need to query or load dialogue pertinent only to other regions. 44:11 ⚙️ Rule Sorting for Speed - Sort rules by decreasing number of criteria to find the "winner" quickly. - Helps in speeding up the query significantly. 44:53 📊 Numeric Intervals for Comparison - Almost every criterion can be represented as an interval on a number line. - Using numeric intervals allows for faster comparison and reduces branching penalties. 46:26 🧪 Avoid Complex Math Structures - Hierarchical partitioning is better than complex data structures like BSP trees for searching in n-dimensional space. - Complex structures blow the cache and are not faster. 47:35 ✨ Additive System for Modding - The system allows for adding new content or rules without changing old code. - Makes it easier for modders to add new features. 48:03 📝 Writer-Friendly System - The system aims to be convenient for writers to use. - The more state you can throw at the system, the more specific your rules can be. 49:36 🖊️ Writers' Tools and Needs - Writers want tools to visualize how dialogue flows. - SQL queries were the preferred tool for the project's writers. 51:00 🎧 Audio Middleware and Implementation - Audio files are simple WAV or MP3 formats glued together with animations. - No special middleware needed for audio. 55:01 🎮 Multiplayer Dialogue Logic - The system is client-server, with the server doing all the logic. - Peer-to-peer implementation is possible but not used. 56:43 📊 Data Metrics for Dialogue - There is a database that tracks how often each line gets said. - The data is collected but not actively reviewed. 57:11 🤝 Collaboration Between Writers and Programmers - Writers can make programmers' jobs easier by thinking in terms of rules matching states. - Encourages a collaborative approach between writers and programmers. Made with HARPA AI
@carinmarielundgren
@carinmarielundgren Год назад
Exiting
Далее
Less is More: Designing Awesome AI for Games
24:56
Просмотров 108 тыс.
skibidi toilet multiverse 042 Trailer
01:57
Просмотров 3,1 млн
Do You Copy? Dialog System and Tools in Firewatch
58:22
Practical Creativity
1:04:25
Просмотров 309 тыс.
Ten Principles for Good Level Design
1:00:47
Просмотров 482 тыс.
Development of Left 4 Dead by Mike Booth GDC Lecture
1:00:54
What Makes Good AI?
15:42
Просмотров 3 млн
skibidi toilet multiverse 042 Trailer
01:57
Просмотров 3,1 млн