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 и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

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

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

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

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

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

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

Неактивен

0    0    #3
03.06.2004 08:50

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

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

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

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

и так до бесконечности.

Караул!! wink

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

Т.е. каждому объекту в игре - отдельный объект, создаваемый программистом (динамически)? У меня тут сомнения: а если ОЧЕНЬ много объектов (тех же денег, допустим, миллионы номиналом в одну "деньгу" smile)? Хватит ли оперативной памяти, чтоб их всех создать?

Неактивен

0    0    #4
03.06.2004 14:11

Korwin
Гоблин, зеленый от недосыпа (+188, -16)
Откуда: Екатеринбург
Зарегистрирован: 27.11.2007
Сообщений: 796
Вебсайт

У трав, растущих на мягкой земле - слабые корни. (с)Korwin

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

Nash написал:


Караул!! wink


Т.е. каждому объекту в игре - отдельный объект, создаваемый программистом (динамически)? У меня тут сомнения: а если ОЧЕНЬ много объектов (тех же денег, допустим, миллионы номиналом в одну "деньгу" smile)? Хватит ли оперативной памяти, чтоб их всех создать?

Точно, проблема. Находится герой на морском берегу, а там песка - видимо-невидимо (квинтиллион, допустим) А взять ему надо одну розовую песчинку...  :oКараул! ;D

Nash, мне кажется это надуманная проблема.  wink
Ну сделайте объект песок, сделайте объект песчинка и чтобы пока песок есть этих песчинок можно было взять бесконечно, а в свойствах песчинки(денег, патронов) поставьте "количество". Или я чего-то не понимаю?

Неактивен

0    0    #5
03.06.2004 22:13

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

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

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

AlsoKorwin

Nash, мне кажется это надуманная проблема. 
Ну сделайте объект песок, сделайте объект песчинка и чтобы пока песок есть этих песчинок можно было взять бесконечно, а в свойствах песчинки(денег, патронов) поставьте "количество". Или я чего-то не понимаю?

Хе-хе! Проблема не надумана. Просто все подразумевают под IF именно квесты, а там вообще нет смысла использовать клоны. И с ними никто конкретно не сталкивался.
Ладно: создаю объекты "песок" и "песчинка". Песчинок, допустим, 1000. Подхожу я, беру 332е. И что дальше? Песчинка по ходу дела и в локации осталась, и у меня wink
Опять же, приходится динамически генерить еще одну песчинку, в которой задавать кол-во 332, а в "старой" менять кол-во на 668. А еще нужно как-то определять, сколько я хочу взять и могу ли я столько взять и т.п.
Но почему это должен делать я?

Неактивен

0    0    #6
03.06.2004 22:27

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

меньше слов

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

Nash написал:

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

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

Неактивен

0    0    #7
03.06.2004 23:04

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

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

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

Очень смешно, Гранд! sad
У тебя сегодня просто хорошее настроение или ты признаешь, что в RTADS проблема клонов (впрочем, называйте их как хотите) не решена, не решается и никогда не будет решена?

Неактивен

0    0    #8
05.06.2004 12:03

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

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

Когда я близко работал с этой темой, всё упиралось в обработку числительных, а именно их влияние на падеж существительных. В остальном всё было просто: в рюкзаке и в локациях хранились не сами предметы, а лишь некие записи, ссылающееся на предметы из базы данных, плюс количество этих предметов. Ну а манипулировать этим количеством уже было легко (на программном уровне). Всё упиралось в числительные.

Неактивен

0    0    #9
05.06.2004 22:54

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

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

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

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

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

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

Неактивен

0    0    #10
06.06.2004 08:48

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

меньше слов

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

Nash написал:

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

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

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

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

Неактивен

0    0    #11
06.06.2004 12:26

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

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

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

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

Неактивен

0    0    #12
06.06.2004 14:05

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

меньше слов

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

Nash написал:

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

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

Неактивен

0    0    #13
06.06.2004 17:13

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

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

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

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

Неактивен

0    0    #14
06.06.2004 18:24

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

меньше слов

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

Nash написал:

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

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

Неактивен

0    0    #15
06.06.2004 23:01

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

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

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

Можно просто:
>положить нож в ящик
Если будет неясно какой ящик, придется уточнить

Конечно, в таком случае придется уточнять, ведь мы говорим о клонах-контейнерах. Имелось в виду, что есть стол, на нем подставка, и есть 3 ящика: на полу, на столе и на подставке. Т.е. просто указанием "положить в ящик" мы ничего не добьемся, так как решили раньше, что можно брать все, что доступно, а в данном случае все три ящика равноодинаково доступны.
Извини, я непоследователен. Это надо было указать раньше wink

Неактивен

0    0    #16
08.06.2004 01:45

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

меньше слов

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

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

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

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

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

Неактивен

0    0    #17
16.10.2004 15:03

psycho
Участник
Зарегистрирован: 24.12.2002
Сообщений: 14

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

Да чё за бред?

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



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

Неактивен

0    0    #18
16.10.2004 16:21

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

меньше слов

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

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

Да чё за бред?

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


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

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

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

Неактивен

0    0    #19
16.10.2004 23:43

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

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

GrAndrey написал:

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

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

Неактивен

0    0    #20
17.10.2004 00:51

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

меньше слов

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

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


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

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


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

лучше чем:


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

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

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

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

Неактивен

0    0    #21
17.10.2004 09:37

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

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

А что, кто-то отрицает пользу наводящих вопросов в системе? Это плюс и большой. Тем более, что это облегчает жизнь не только игроку, но и автору.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru