Overview:

"Pills here!" "There's a zombie behind you, Bill!" Characters that understand and remark on their circumstances add a lot to a game, but as state and dialog possibilities grow numerous, selecting one line out of thousands with an immense if/else script becomes daunting. This talk details Valve's system for using hundreds of facts about the world in a fuzzy pattern match against a database of thousands of possible lines to create responsive, dynamic dialog in Left4Dead and other titles. We'll show a simple, uniform mechanism for tracking thousands of facts and possibilities, allowing intelligent characters to remember history, cascade from special to general cases, and select the optimal dialog, script, behavior, or animation for every situation. Most importantly, a friendly interface provides writers creative freedom to make special cases, running gags, and track additional facts without forcing programmers to change thousands of lines of code.