noname написал:
Oreolek написал:
У меня в одной из игр логировались все запросы.
Вы не представляете, КАК изобретательны игроки. Например, они могут попросить парсер засунуть себе что угодно в.. во что угодно.и? какой из этого следует вывод? т е- в каком направлении тебя подталкивает знание этого факта?
В том направлении, что хочешь или нет — к тебе будут приходить совершенно левые люди и писать совершенно безумные фразы. И твоя игра совершенно не обязана на них осмысленно отвечать. Что важнее, так это то, что она не должна допускать ложных тревог (когда какая-то белиберда реально понимается как одна из команд — игра выполняет команду — возможно, это нужная команда, игрок якобы угадал глагол) и предусматривать хотя бы очевидные решения проблем и действия над предметами.
Платформа мечты — это хорошо, но в любом случае основная часть работы лежит на авторе игры.
Неактивен
Для "дальше" и "вперед" можно ввести специальные свойства-направления для локации.
Либо, как вариант, продолжать двигаться по этим командам в том направлении, в котором до этого шел игрок.
Впрочем, в данном случае ИМХО нет однозначно правильного решения, все будет зависеть от конкретной игры.
Неактивен
uux написал:
можно ввести специальные свойства-направления для локации.
Да это понятно что очень многое можно сделать прописав специальнае свойства и запрограммировав их обработку, только вся эта рутина опять навалится на автора, а ему и так не сладко.
Хотелось бы чтобы такие действия обрабатывались на уровне платформы/ст.библиотеки.
Неактивен
ASBer написал:
uux написал:
можно ввести специальные свойства-направления для локации.
Да это понятно что очень многое можно сделать прописав специальнае свойства и запрограммировав их обработку, только вся эта рутина опять навалится на автора, а ему и так не сладко.
Хотелось бы чтобы такие действия обрабатывались на уровне платформы/ст.библиотеки.
Главное, чтобы это не выродилось в борьбу автора со стандартными действиями всех этих библиотек.
Неактивен
ASBer написал:
uux написал:
можно ввести специальные свойства-направления для локации.
Да это понятно что очень многое можно сделать прописав специальнае свойства и запрограммировав их обработку, только вся эта рутина опять навалится на автора, а ему и так не сладко.
Хотелось бы чтобы такие действия обрабатывались на уровне платформы/ст.библиотеки.
Хех, это ты загнул однако. У меня в платформе с этим могли бы быть трудности при интернационализации самой платформы. Все, в основном, упирается в разработку стандарта низкоуровневого парсера, с разумным распределением, чего на уровне платформы сделать, а что должно быть в виде стандартной библиотеки.
В простых проигрывателях с этим возни быть не должно, т.к. они реализуют один язык. Каким его зададите, такую поддержку на уровне проигрывателя и обеспечиваете.
Отредактировано Eten (07.12.2010 12:07)
Неактивен
uux написал:
Для "дальше" и "вперед" можно ввести специальные свойства-направления для локации.
Либо, как вариант, продолжать двигаться по этим командам в том направлении, в котором до этого шел игрок.
Очень грамотное решение.
Стандартные отеты:
- Ты не знаешь какое направление в данном случае соответстует движению вперед.
- Ты попытался продолжить идти на север, и обнаружил, что дальше пройти нельзя.
Неактивен
ASBer написал:
Да это понятно что очень многое можно сделать прописав специальнае свойства и запрограммировав их обработку, только вся эта рутина опять навалится на автора, а ему и так не сладко.
Хотелось бы чтобы такие действия обрабатывались на уровне платформы/ст.библиотеки.
Это работа, которую по идее достаточно сделать один раз, а потом использовать везде.
Кстати, пришла свежая мысль про "вперед": тут не все так гладко. Как только игра начнет понимать "вперед", игрок начнет вводить "назад", "вправо" и "влево". Правда, на этот случай можно ввести такой ответ:
> вправо
Шаг вправо-влево считается побегом.
Отредактировано uux (07.12.2010 20:54)
Неактивен
uux написал:
Как только игра начнет понимать "вперед", игрок начнет вводить "назад", "вправо" и "влево"
Ну да, про "вправо" "влево" много уже копий сломано, хотя я не понимаю почему.
Если игра будет помнить направление движения ГГ, вперед/назад/вправо/влево элементарно вычисляется из ю-в-с-з
Неактивен
ASBer написал:
uux написал:
Как только игра начнет понимать "вперед", игрок начнет вводить "назад", "вправо" и "влево"
Ну да, про "вправо" "влево" много уже копий сломано, хотя я не понимаю почему.
Если игра будет помнить направление движения ГГ, вперед/назад/вправо/влево элементарно вычисляется из ю-в-с-з
А если мы летим в открытом космосе? Добавить "вверх" и "вниз" ?)
Неактивен
"Вверх" и "вниз" это стандартные команды перемещения, они заложены в любую уважающую себя платформу. Летим ли мы в открытом космосе или ходим между этажами (например в игре "Башня между мирами"), они должны работать. Разумеется, если ландшафт локации предусматривает такие плоскости.
Неактивен
ASBer написал:
Если игра будет помнить направление движения ГГ, вперед/назад/вправо/влево элементарно вычисляется из ю-в-с-з
В том-то и проблема. Представляешь, какой это гемор для автора 9игры или платформы - неважно)? Хорошо, если игрок просто перемещается, а если он еще и поворачивается, стоя в локации?
Отредактировано uux (09.12.2010 00:11)
Неактивен
uux написал:
В том-то и проблема.
Проблема в ТОМ, что естественный язык содержит в себе массу понятий (можно сказать переменных), значение которых меняется в зависимости от ситуации. Причём каждое по своим правилам...
"Парсер мечты" должен знать все эти понятия и постоянно отслеживать их значения.
Вот например команда:
>осмотри собеседника
Неактивен
Nex написал:
>согласиться
>отказаться
Синонимично "да" и "нет", что уже реализовано сто лет как.
Неактивен
ASBer написал:
>осмотри собеседника
Надо просто давать всем персонажам в игре, с кем можно поговорить, очень короткие имена, чтобы игроку не взбрело в голову такое набирать;).
И еще одна мысль: самые отпетые извращенцы могут додуматься в момент диалога с кем-нибудь набрать "осм собеседника собеседника" вместо "осм себя".
Отредактировано uux (10.12.2010 00:44)
Неактивен
uux написал:
"осм собеседника собеседника" вместо "осм себя".
Если уж говорить про действительно усложненный парсер, то возможен вариант, когда ваш собеседник в процессе диалога отвлёкся на другого собеседника, не прервав текущий диалог с вами.
Тогда "осм собеседника собеседника" вполне осмысленное действие.
Неактивен
> вспомнить шутку
Неактивен
ASBer написал:
uux написал:
"осм собеседника собеседника" вместо "осм себя".
Если уж говорить про действительно усложненный парсер, то возможен вариант, когда ваш собеседник в процессе диалога отвлёкся на другого собеседника, не прервав текущий диалог с вами.
Тогда "осм собеседника собеседника" вполне осмысленное действие.
Сомневаюсь, что в англоязычных платформах разработчики заморачивались поддержкой фраз типа "Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo" (википедия), однако под эти платформы пишутся отличные игры (и в них даже упешно играют).
Неактивен