Вот здесь можно почитать:
http://pmg.org.ru/gamedev/quest.htm,
http://pmg.org.ru/gamedev/rpg.rarЯ не делал квесты, но из прочитаного и виденого кода я понял, что квест, это массив тригеров. В простейшем случае фиксированный, в более современном динамический.
Вот пример, комната, в ней игрок, надо открыть дверь (тригер 1: 0 - закрыта дверь, 1 - открыта). Чтобы открыть дверь, надо найти ключ (тригер 2), надо его отремонтировать (тригер 3), надо его вставить в замок (тригер 4) и почещокать дверь
) (тригер 5). Т.е. пока тригерры с 2 по 5 не в 1, то триггер 1 не сработает.
Логику тригеров как правило делают по скрипту, впрочем, можно и иметь некий упрощенный класс тригера при обработке которого и будет реализована логика.