Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
02.06.2004 22:54

Nash
Участник
Зарегистрирован: 22.04.2003
Сообщений: 44
Вебсайт

Придумать, начать и дожить до релиза...

Предметы-клоны

Тут в соседней теме зашел разговор о клонах, и я решил вынести отдельное обсуждение по ним.
Суть вопроса вот в чем. Клоном будем считать предмет, который описан единожды (описан, значит, получил конкретный набор свойств), но как объект в игре встречается минимум дважды. Тривиальный пример: монета/банкнота, совокупность которых образует деньги.

Так вот, хотелось бы знать ваше мнение: нужны ли в IF предметы-клоны?
А если нужны, то как вы видите их реализацию со стороны программиста?
И самое интересное (конкретная ситуация): на столе и на полу лежат два экземпляра объекта "нож". Как следует реагировать на команду
>взять нож

Неактивен

0    0    #2
03.06.2004 08:20

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

То что ты называешь клонами, просто обыкновенные объекты-наследники, которые не обладают ещё отличительными свойствами. Используются, в основном, с опцией неразличимости. В этом случае программа будет писать: Ты видишь здесь 386 ножей. Это лучше чем: Ты видишь здесь нож, нож, ... (383 раза) и нож.

Пусть их только два:

>взять нож
Который нож вы имеете в виду: нож или нож?
>нож
Который нож вы имеете в виду: нож или нож?

и так до бесконечности.
Здесь поможет только (о чем далеко не все знают) такая фраза:
>взять любой нож

Так что, при динамическом создании таких объектов, им лучше всего давать уникальные описания (длинный нож, кривой нож) или делать их неразличимыми(чтобы они "складывались в кучку").

Неактивен

0    0    #3
03.06.2004 22:27

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

Nash написал:

Проблема не надумана. ... Песчинок, допустим, 1000. Подхожу я, беру 332е. 

Я представляю, сейчас наступило лето, ты поедешь к морю, придешь на пляж и, несколько раз пересчитав, подберешь ровно 332 песчинки. После этого тебя, по рекомендации окружающих, отвозят в больницу с подозрением на солнечный удар. Там ты объясняешь, что ты пытаешься решить проблему объектов-клонов, и проблема эта весьма актуальна и важна для игровой деятельности.
Тут-то и начинается квест: выбраться из психиатрической лечебницы smile

Неактивен

0    0    #4
06.06.2004 08:48

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

Nash написал:

Но, собственно, проблема клонов на этом не заканчивается wink
Есть еще клоны-контейнеры.
Пример:
В кладовке вы видите 2 ящика.
>положить нож на ящик
>осмотреть ящик

Что скажете по этому поводу? Особенно по второй команде?

А еще меня интересует вопрос вложенности предмета в предмет. Если я хочу положить нож в ящик, обязательно ли ящик должен находиться непосредственно в локации или, допустим, он может лежать в открытом контейнере (который находится в локации). Это, скорее, не к проблеме реализации (хотя и к ней тоже: нужно правильно определять, открыт ли путь доступа к указанному предмету), а просто к теории IF.

Это все, кстати, легко проверяется.  Возьми любую обучалку RTADS, создай в ней пару ножей и контейнеров. И экспериментируй на здоровье. Клади ножи в контейнеры, контейнеры в контейнеры, а если хочешь, то можешь нож тоже сделать контейнером и в него что-нибудь положить.

Неактивен

0    0    #5
06.06.2004 14:05

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

Nash написал:

Э..Я имел в виду ваше личное мнение, а не как оно реализовано в TADS smile Т.е. стоит ли позволять игроку ложить нож в ящик, который непосредственно в локации не находится (т.е. находится, но внутри другого контейнера. Или вообще на третьем и более уровне вложенности).

Зачем вообще такие ограничения? Должны быть функции, которые определяют, какие из объектов являются доступными для действующего лица. Можно сделать чтобы все содержимое доступных объектов было доступным, а можно запретить даже отображение содержимого (закрытая шкатулка). Как настроишь, так и будет. Все зависит от твоего усердия и внимания.

Неактивен

0    0    #6
06.06.2004 18:24

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

Nash написал:

Никаких ограничений.  big_smile Я ожидал услышать только твое мнение. Просто тогда полная фраза для парсера будет выглядеть так:
>положить нож в ящик на подставке на столе
Или нет?

Можно просто:
>положить нож в ящик
Если будет неясно какой ящик, придется уточнить. Не знаю как насчет нескольких слоев, но фраза "взять нож со стола", и даже "взять нож на столе" работает великолепно. И вообще, зачем такие большие нагромаждения? Игрок им не обрадуется.  big_smile
Кстати, у меня принимаются такие фразы: "положить петушка на палочке на полку". Правда, иногда этот прикрученный мной механизм портит правильные фразы, но это было всего два раза и я уже не помню какие именно. Кто найдет, буду благодарен smile

Неактивен

0    0    #7
08.06.2004 01:45

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

Провел указанный эксперимент для RTADS
Результаты:
> взять ящик на подставке
Взят.

> взять ящик на столе
Который "ящик" Вы имеете в виду: ящик или ящик?

> взять ящик
Который "ящик" Вы имеете в виду: ящик, ящик или ящик?

Нужны комментарии?

Неактивен

0    0    #8
16.10.2004 16:21

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

ПсихЪ написал:

Да чё за бред?

-На столе вы видите 2 ножа
>взять нож
*Вы взяли нож
>инвентарь
*Содержимое инвентаря
1. Нож
<поскипал>
>взять 2 ножа
*Вы взяли 2 ножа
>инвентарь
*Содержимое инвентаря
1. 2 ножа


В чём проблема-то? Увидели, что есть хоть 1 нож - взяли. Если их несколько, то взяли первый попавшийся.

Это частный случай - совершенно неразличимые предметы.
А так?

Вы в кузнице.
Вы видете металлический прут на столе. Вы видите металлический прут в печи.
>взять прут
*Вы взяли металлический прут из печи и обожгли себе руки. Тперь Вы не сможете принимать участие в созтязании лучников.
*Вы проиграли!*

Неактивен

0    0    #9
17.10.2004 00:51

GrAndrey
папа RTADS и Бяка (+48, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1201
Вебсайт

меньше слов

Re: Предметы-клоны

Olegus t.Gl. написал:


Ну что же, в следующий раз игрок наберёт "взять прут со стола"...

"Автор думает о Вас! Его решение - попробуйте снова! "
А серьёзно, без уточнения в случаях двусмысленности возникает *очень назойливая* проблема выбора предмета. Вы просто не представляете сколько есть таких предметов, которые могут путаться, если делать игру качественно и прописывать большое число синонимов. При большой игре это обязательно проявится, и горе игроку, если два таких предмета окажутся в его инвентаре!
Нечасто, но порой будут возникать моменты, типа приведенной выше, угрожающие жизни персонажа из-за такой "самостоятельности" игры.
И всё потому, что автор считает что незачем усложнять систему.
Просто согласитесь, что:


>взять нож
Какой вы хотите взять нож: длинный или короткий?
>короткий
Вы взяли короткий нож.

лучше чем:


>взять нож
Вы взяли длинный нож.
>взять нож
Вы перегружены!
>положить нож
Вы бросили нож.
>взять нож
Вы взяли длинный нож.

Вы пошли на север
>положить нож
Вы бросили нож.

Вы пошли на юг
>взять нож
Вы взяли короткий нож.

Это конечно, худший случай, но где гарантия, что игра даже со второго раза угадает правильно? Каждый раз подробно расписывать что хочешь взять?

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru