Context-aware dialog system prototype

preview_player
Показать описание
#unity

It's generic fuzzy matching event / response system in Unity.

It uses SID concept similar to UE FName for identifying events & facts and partitioning, so it should be very fast compared to Firewatch's implementation.

System primitives (eventID, factID, rule, response) based on ScriptableObjects (contains unique int id) and code generation to access events, facts from code.

Anyway, SO is internal representation of system primites and it's possible to create working rules with it, but it's not scalable at all. Firewatch's solution is to create ugliest ever editor window for managing this horror. But I think it's leads only to pain and sufferings.

Better way is to use text files and custom DSL like Valve does in their games. Maybe ANTLR will help me to achieve that in future.

Inspired by:
- AI-driven Dynamic Dialog through Fuzzy Pattern Matching
- Programming Context-Aware Dialogue in The Last of Us
- Do You Copy? Dialog System and Tools in 'Firewatch'
Рекомендации по теме