Как-то раз наткнулся на любопытную статейку Юрия Нестеренко "Что я понял о жизни, играя в квесты" (http://yun.complife.ru/1st.htm). Основная затронутая там проблема в том, что действия с предметами заранее жестко определены, что может приводить порой к разным казусам и истерикам со стороны играющего. Каждый предмет привязан определенным действием к другому определенному предмету (зачастую еще и в определенном месте). Как я уже говорил от этого нужно уходить. А как?
Основная связанная с этим мысль такая: у предмета, помимо основных характеристик: наименования и чего-то там еще, должны быть еще несколько: высота, длина, ширина, вес, материал (все это к примеру!). Далее, для объекта, над которым необходимо произвести некое действие, пишется ряд условий, перечисляющих не конкретные предметы, а перечень характеристик, которыми должен обладать предмет, используемый игроком в этой ситуации.
Так, чтобы устранить охранника помимо некоторых действий ("заколоть мечом", "дать золото"), можно двинуть его по голове предметом, скажем от 10 кг. Что именно окажется в руках у героя игры к этому моменту неважно - было бы потяжелее.
А есть ли еще идеи?
Неактивен
Как уже заметили выше, предметы и действия с ними в IF действительно слегка однообразны. Решение простое - универсальная система взаимодействия предметов. Именно так все происходит в реальном мире, и именно так это нужно перенести в IF. Wizard упомянул "флажки" в Inform. Если наделить ВСЕ придметы в игре определенными флажками ("горит", "обладает неприятным запахом" и т п), а также такими параметрами, как "в пределах досягаемости" и "звукопроницаемость и т.п. ; и закодировать их взаимоотношения с использованием этих флажков, можно запрограммировать даже те ситуации, которых автор не планировал, например, что деревянный стол можно втолкнуть в печь и сжечь, но ИГРА распознает это действие и совершит его. Интерактивность повысится в разы. Или я не прав?
Касательно сложности такого программирования, я думаю, это вполне осуществимо.
Неактивен