Как-то раз наткнулся на любопытную статейку Юрия Нестеренко "Что я понял о жизни, играя в квесты" (http://yun.complife.ru/1st.htm). Основная затронутая там проблема в том, что действия с предметами заранее жестко определены, что может приводить порой к разным казусам и истерикам со стороны играющего. Каждый предмет привязан определенным действием к другому определенному предмету (зачастую еще и в определенном месте). Как я уже говорил от этого нужно уходить. А как?
Основная связанная с этим мысль такая: у предмета, помимо основных характеристик: наименования и чего-то там еще, должны быть еще несколько: высота, длина, ширина, вес, материал (все это к примеру!). Далее, для объекта, над которым необходимо произвести некое действие, пишется ряд условий, перечисляющих не конкретные предметы, а перечень характеристик, которыми должен обладать предмет, используемый игроком в этой ситуации.
Так, чтобы устранить охранника помимо некоторых действий ("заколоть мечом", "дать золото"), можно двинуть его по голове предметом, скажем от 10 кг. Что именно окажется в руках у героя игры к этому моменту неважно - было бы потяжелее.
А есть ли еще идеи?
Неактивен
Это действительно очень хорошая идея. Возможно даже концептуальная, поскольку позволит если не радикально, то во всяком случае весьма существенно разнообразить игровой процесс. Вопрос в том насколько это сложно сделать технически?
Неактивен
Обычно поступают проще. На примере Inform и Hydra:
у объекта может быть флажок supporter. Если он стоит, то на этот объект можно положить другие объекты. По аналогии вводятся и другие характеристики.
Хотя вот вес предметов в Inform тоже присутствует, что позволяет программировать ситуации, описанные Olegus'ом.
В Hydra веса как характеристики нет, но его можно ввести вручную.
А описывал я это к тому, что, по моему, не следует вводить такие характеристики, как размер, материал, а стоит вводить более общие: плавает, живой, недвижимый, далекий...
Неактивен
Материал, размер и пр. физические характеристики может пригодиться в случае дальнейшего развития подобной идеи, а именно создания "словаря физических законов", благодаря которому можно будет манипулировать с предметами без рутинного ручного описания некоторых действий (см. пример с охранником). Это добавит интерактивность в игру, да и ее разработку может сделать проще.
Неактивен
Как уже заметили выше, предметы и действия с ними в IF действительно слегка однообразны. Решение простое - универсальная система взаимодействия предметов. Именно так все происходит в реальном мире, и именно так это нужно перенести в IF. Wizard упомянул "флажки" в Inform. Если наделить ВСЕ придметы в игре определенными флажками ("горит", "обладает неприятным запахом" и т п), а также такими параметрами, как "в пределах досягаемости" и "звукопроницаемость и т.п. ; и закодировать их взаимоотношения с использованием этих флажков, можно запрограммировать даже те ситуации, которых автор не планировал, например, что деревянный стол можно втолкнуть в печь и сжечь, но ИГРА распознает это действие и совершит его. Интерактивность повысится в разы. Или я не прав?
Касательно сложности такого программирования, я думаю, это вполне осуществимо.
Неактивен
Есть и минус - силшком много учитывать. Система должна быть достаточно простой, чтобы авторы не упустили что-нибудь или не добавили лишнего. Конечно, простейшие аттрибуты типа flammable, edible - это понятно, но если учитывать все, то могут возникнуть проблемы с нехваткой памяти
Неактивен
Могу точно сказать, что это вроде бы и не сложно, но ООООЧЕНЬ трудоёмко:) Здесь требуется не только две руки и одна голова, а много больше:
Во-первых, нужно начать создавать и со временем дополнять словарь ИМЁН СУЩЕСТВИТЕЛЬНЫХ, где помимо их словарных характеристик будут эти самые различные параметры предмета.
А во-вторых, нужно ВРУЧНУЮ писать подпрограмму на каждый глагол и учитывать все эти параметры:
например, глагол ПОЛОЖИТЬ НА - нужно учитывать вес предмета и прочность объекта на который он кладётся - если больше, то второй объект отправляется в подпрограмму ПОЛОМАТЬ либо СПЛЮЩИТЬСЯ, что опять же зависит от свойств предмета:)
Так что всё просто, но требуется слаженная работа некоего коллектива людей... Я бы с удовольствием занялся такой разработкой, но почему-то она мне напоминает расшифровку генома человека:)
Неактивен
WildWizard написал:
Обычно поступают проще. На примере Inform и Hydra:
у объекта может быть флажок supporter. Если он стоит, то на этот объект можно положить другие объекты. По аналогии вводятся и другие характеристики.
Хотя вот вес предметов в Inform тоже присутствует, что позволяет программировать ситуации, описанные Olegus'ом.
В Hydra веса как характеристики нет, но его можно ввести вручную.
А описывал я это к тому, что, по моему, не следует вводить такие характеристики, как размер, материал, а стоит вводить более общие: плавает, живой, недвижимый, далекий...
На самом деле, такой стандартной характеристики, как "вес", в Информе нет (зато, насколько помню, она есть в ТАДС). Другое дело, что все это нетрудно реализовать самому, если нужно.
А по поводу основной идеи треда: а надо ли это? Всем конечно хочется, чтобы квест был по возможности нелинейным — но, если он будет слишком нелинейным, это будет не квест, а какой-нибудь другой жанр.
Неактивен
Нелинейность использования объектов нужно делать не в сторону увеличения параметров и характеристик объекта, а в сторону локаций и(или) действий(ситуаций) его применения.
Например пластиковая карточка может служить как просто визитка с каким либо телефоном и адресом, ей можно воспользоваться когда необходимо вскрыть дверной замок, в загородной домике где все звкрывается на шеколду.
Ну и умело и вовремя избавиться от улики когда есть возможность повернуть сюжет при наличии этой смой визитки.
И аналогично с путь не каждым но большеноством предметов. В резльтате у вас может получиться не больше 20 предметов но не одноразовго использования.
Но это конечно мое ИМХО...
Неактивен
Так об этом и речь была.
Неактивен
Возобновление дискуссии на форуме QSP…
Неактивен
Скорее всего то, что я выскажу - дилетантская точка зрения, но я решил-таки её озвучить. Суть топика, как я понял, в придании играм чуть большей степени свободы. Думается - это вопрос технически вполне решаемый на определённом этапе разработки игры. А именно - тогда, когда уже готов полный список
Персонажей, которыми рулит игрок,
Объектов, которые будут в игре (ну, там, охранник, замок, озеро),
Предметов, которые можно сунуть в Инвентарь.
Далее открываем редактор таблиц и заполняем верхнюю строчку Предметами и Персонажами. Левый столбец - Обьектами и Персонажами. Ну, а дальше заполняем ячейки действиями.
Если в игре нужна возможность комбинировать предметы друг с другом, то дописываем эти предметы в левый столбец, и опять-таки заполняем ячейки.
Плюс в том, что приращение количества сущностей минимально, наглядно и контролируемо.
Пишу в этой ветке, т.к. здесь более общий форум. Не привязанный к конкретной платформе.
Отредактировано kerber (02.12.2012 23:18)
Неактивен