Как-то раз наткнулся на любопытную статейку Юрия Нестеренко "Что я понял о жизни, играя в квесты" (http://yun.complife.ru/1st.htm). Основная затронутая там проблема в том, что действия с предметами заранее жестко определены, что может приводить порой к разным казусам и истерикам со стороны играющего. Каждый предмет привязан определенным действием к другому определенному предмету (зачастую еще и в определенном месте). Как я уже говорил от этого нужно уходить. А как?
Основная связанная с этим мысль такая: у предмета, помимо основных характеристик: наименования и чего-то там еще, должны быть еще несколько: высота, длина, ширина, вес, материал (все это к примеру!). Далее, для объекта, над которым необходимо произвести некое действие, пишется ряд условий, перечисляющих не конкретные предметы, а перечень характеристик, которыми должен обладать предмет, используемый игроком в этой ситуации.
Так, чтобы устранить охранника помимо некоторых действий ("заколоть мечом", "дать золото"), можно двинуть его по голове предметом, скажем от 10 кг. Что именно окажется в руках у героя игры к этому моменту неважно - было бы потяжелее.
А есть ли еще идеи?
Неактивен
Могу точно сказать, что это вроде бы и не сложно, но ООООЧЕНЬ трудоёмко:) Здесь требуется не только две руки и одна голова, а много больше:
Во-первых, нужно начать создавать и со временем дополнять словарь ИМЁН СУЩЕСТВИТЕЛЬНЫХ, где помимо их словарных характеристик будут эти самые различные параметры предмета.
А во-вторых, нужно ВРУЧНУЮ писать подпрограмму на каждый глагол и учитывать все эти параметры:
например, глагол ПОЛОЖИТЬ НА - нужно учитывать вес предмета и прочность объекта на который он кладётся - если больше, то второй объект отправляется в подпрограмму ПОЛОМАТЬ либо СПЛЮЩИТЬСЯ, что опять же зависит от свойств предмета:)
Так что всё просто, но требуется слаженная работа некоего коллектива людей... Я бы с удовольствием занялся такой разработкой, но почему-то она мне напоминает расшифровку генома человека:)
Неактивен