Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
16.03.2011 15:11

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

Диалоги игрока с персонажем с выбором варианта из перечня фраз

А вот интересно — кто-нибудь занимался формализацией процесса создания диалога с выбором варианта из предложенного перечня фраз? Можно ли его разбить на какие-либо функциональные блоки/стадии/эпизоды?

И какие "типы" диалога могут встретится? Например, диалог может быть линейным и циклическим. Под циклическим я имею в виду ситуацию, когда игроку есть много о чём поговорить с персонажем — он выбирает из перечня какую-либо одну тему, получает ответ, после чего возвращается обратно к перечню тем (в котором уже обсуждённая тема может и отсутствовать). Вариант — расспросы об окружающем мире, о другом персонаже и т.п. С линейным всё проще — игрок двигается по руслу диалога от начала к концу, возможно через какие-либо ответвления.

На какие формальные блоки можно разбить данные типы диалогов? А может есть подходящие инструменты для работы с подобным функционалом (типа блок-схем и т.п.)?

Неактивен

0    1    #2
16.03.2011 17:04

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Неактивен

0    0    #3
16.03.2011 17:19

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Nex, если ты постишь ссылки, то хоть давай описание того, что там можно найти (например "создание диалогов в QSP"), и на какую часть вопроса ты этой ссылкой хочешь ответить. И это не просьба.

Модуль, который можно найти по приведённой тобой ссылке демонстрирует лишь способ реализации (кстати кошмарный) нескольких видов диалога — без какой-либо формализации самого процесса его (диалога) создания.

Неактивен

1    0    #4
16.03.2011 20:33

Cheshire
Участник (+127, -23)
Зарегистрирован: 01.07.2009
Сообщений: 331
Вебсайт

«Ловко орудуя топором, вы разрубили все ваши монеты пополам. Теперь у вас в два раза больше золота».
Морыч

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Можно посмотреть Alabaster от Эмили Шорт и Ко, если еще не.
На страничке http://www.inform-fiction.org/I7Downloa … index.html можно найти много интересного материала в том числе и разговорную диаграмму. Монументальное, скажу вам, зрелище.

Неактивен

0    0    #5
16.08.2011 09:55

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Важный вопрос — как лучше производить группировку фраз игрока, чтобы избежать ручного прописывания очередного перечня фраз для выбора (типа как здесь)?

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

Неактивен

0    1    #6
16.08.2011 10:05

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Код:

IF topic='Вася' OR topic='работа':
  ACT 'Кем ты работаешь?':
    ...
  END
END
IF topic='работа':
  ACT 'А как здесь с работой?':
    ...
  END
END

Неактивен

0    0    #7
16.08.2011 13:26

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

М-да… Вчера набросал схему простейшего диалога:
https://ifiction.ru/i/scr/ddiagram_sm.png
Простейший  — потому что все фразы игрока собраны в один перечень, и многоуровневых тем тут по сути нет. То есть те или иные фразы по мере развития ситуации просто либо исчезают, либо появляются. Надо подумать, как хотя бы подобное можно свернуть в одну "тему" (или разделить на несколько) и увязать в какую-нибудь структуру, а также как лучше расширять подобную структуру дополнительными темами…

Неактивен

0    1    #8
16.08.2011 16:32

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Точно так же, как я и писал выше:

Код:

#диалог
$topic = $ARGS[0]

IF $topic = 'прежний':
    'Да милостью барина живы да сыты. Барин у нас щедрый, не то что прежний.'
ELSEIF $topic = 'добраться':
    'Да вот по этой дороге и беги, только на развилке держись прямо<, а то налево псарни - тебе там будут не рады.>'
ELSEIF $topic = 'меняется':
    'Как часто здесь меняется - не знаем, мы сами не местные. Батрачим то тут, то там по сезонам. А в этих местах впервые.'
END

IF $topic = '':
    ACT 'Эй, косари! До барина-то вашего добраться как?':
        $SELACT
        'Здорово, котище. А ты по этой дорожке беги, только на развилке налево прими - так короче будет.'
        CLA
        ACT 'Последовать совету': GOTO 'псарни'
    END
    ACT 'Косари, а косари, как сами-то? Живы-здоровы?':
        $SELACT
        XGOTO $CURLOC, 'прежний'
    END
END
IF $topic = 'псарни':
    ACT 'Плохие вы путникам советы даете...':
        $SELACT
        'Ну если путники к нам без уважения, то и нам резона нет. А дорога до замка там и вправду короче.'
        XGOTO $CURLOC, 'груб'
    END
END
IF $topic = 'груб':
    ACT 'Эх, косари! Поколотил бы я вас, да времени нет!':
        GOTO 'конец'
    END
    ACT 'Ну простите, если груб был. Как сами-то? Как живется, как работается?':
        $SELACT
        XGOTO $CURLOC, 'прежний'
    END
END
IF $topic = 'прежний' OR $topic = 'меняется':
    ACT 'А как добраться до барина вашего?':
        $SELACT
        XGOTO $CURLOC, 'добраться'
    END
END
IF $topic = 'прежний':
    ACT '<Прежний?> И часто у вас здесь барин меняется?':
        $SELACT
        XGOTO $CURLOC, 'меняется'
    END
END
IF $topic = 'добраться':
    ACT 'А из местных тут живет кто-нибудь?':
        $SELACT
        'Ну... у леса можно встретить полоумную старуху - вот она вроде из местных.'
        CLA
        ACT 'Ок': GOTO 'конец'
    END
END
ACT 'Побегу-ка я дальше...':
    GOTO 'конец'
END
----
#псарни
'Псарни.'
ACT 'Еле унести ноги': GOTO 'диалог', 'псарни'
----
#конец
'конец'
----

Неактивен

0    1    #9
16.08.2011 17:03

bergano
Участник (+1, -4)
Зарегистрирован: 09.10.2009
Сообщений: 38
Вебсайт

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

А VoiceXML не хорош для этого?

Неактивен

0    0    #10
16.08.2011 17:09

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Некс, описанная тобой реализация в контексте данного обсуждения в общем-то бессмысленна — поскольку ну ни разу не облегчает задачу. Проблемы запрограммировать конкретную ситуацию лично у меня нет, а для других ты уже ссылку на примеры реализации диалогов на Куспе приводил чуть выше. Твоё решение — это решение конкретной ситуации, которое уже выглядит путано с точки зрения последовательности блоков диалога, а добавление хотя бы одной ветки в эту "систему" приведёт к тому, что код придётся основательно переписывать.

Пока проработка вопроса находится в теоретической стадии — как формализовать процесс описания (не написания или программирования, а именно описания) диалога, чтобы это было удобно переносить в код или библиотеку. Хочешь участвовать в этой дискуссии — подумай в этом ключе.

Неактивен

0    0    #11
16.08.2011 17:15

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

bergano написал:

А VoiceXML не хорош для этого?

Я бы попросил всё же давать какие-либо пояснения к вводимой в дискуссию терминологии. Я вот не знаю, что такое "VoiceXML", поэтому сходу понять, для чего именно он хорош, сложно.

Лезу в Википедию:

VoiceXML имеет теги, которые являются командами для голосового браузера (voice browser), который: синтезирует, распознает речь, предоставляет диалоговое управление.

и, честно говоря, не понимаю, каким боком VoiceXML относится к поднятой здесь теме.

Неактивен

0    1    #12
16.08.2011 17:46

bergano
Участник (+1, -4)
Зарегистрирован: 09.10.2009
Сообщений: 38
Вебсайт

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

VoiceXML - Это язык описания диалогов. Именно "описания". Может, авторы плтформ поддержат в платформах его интерпретацию? Или конвертацию на язык платформы файла в формате  VoiceXML.

Отредактировано bergano (16.08.2011 18:01)

Неактивен

0    0    #13
16.08.2011 18:30

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

bergano написал:

VoiceXML - Это язык описания диалогов. Именно "описания". Может, авторы плтформ поддержат в платформах его интерпретацию? Или конвертацию на язык платформы файла в формате  VoiceXML.

Полагаю, вас ввело в заблуждение словосочетание "описание диалогов". Так вот здесь хотелось бы порассуждать на тему "сесть и на бумажке нарисовать диалог", а не "сесть и с бумажки зачитать диалог". Может к этому обсуждению ("Игры для незрячих") тема VoiceXML подойдёт больше? Всё же желательно не засорять тематические ветки отвлечёнными вставками.

Неактивен

0    1    #14
16.08.2011 18:47

bergano
Участник (+1, -4)
Зарегистрирован: 09.10.2009
Сообщений: 38
Вебсайт

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

На VoiceXML можно  в файле описать сценарий диалога. Запрос, варианты ответов, ветвления. Это формат, язык описания диалогов. Язык, а не программа. Потом можно транслировать его (VoiceXML  файл) например в QSP. Написать утилиту, например на xsl.

Неактивен

0    0    #15
16.08.2011 19:10

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

bergano написал:

На VoiceXML можно  в файле описать сценарий диалога. Запрос, варианты ответов, ветвления. Это формат, язык описания диалогов. Язык, а не программа. Потом можно транслировать его (VoiceXML  файл) например в QSP. Написать утилиту, например на xsl.

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

Неактивен

0    1    #16
16.08.2011 23:17

Nex
Участник (+120, -130)
Зарегистрирован: 11.06.2007
Сообщений: 2053

---

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

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

описанная тобой реализация ... ну ни разу не облегчает задачу

Разве был вопрос, "как облегчить задачу"? Я думал, что был вопрос - как проще всего ее решить. Приведенное мной решение, я считаю самым простым. Сможешь проще?

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

Твоё решение ... уже выглядит путано

Кому как, я вот смотрю и не путаюсь. Сможешь проще?

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

добавление хотя бы одной ветки в эту "систему" приведёт к тому, что код придётся основательно переписывать.

Неправда.

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

как формализовать процесс описания (не написания или программирования, а именно описания) диалога, чтобы это было удобно переносить в код или библиотеку.

В общем случае - никак. Потому что диалоги, как правило, слишком разнообразны для полной формализации - придется либо писать без формализации, полностью "кодом", как я привел выше, либо сочинить очередные неуниверсальные правила поведения диалогов, и подгонять диалоги под них.

Неактивен

0    0    #17
16.08.2011 23:55

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Nex написал:

Разве был вопрос, "как облегчить задачу"? Я думал, что был вопрос - как проще всего ее решить. Приведенное мной решение, я считаю самым простым. Сможешь проще?

Некс, вопрос был именно в облегчении задачи в части предварительной формализации процесса создания диалога. Всё это написано выше.

Nex написал:

Кому как, я вот смотрю и не путаюсь. Сможешь проще?

Ты смотришь на код. А сюжетная часть, заложенная в этом коде, через некоторое время начнёт ускользать — с помощью "понятного" кода ты разнёс её по разным местам, и последовательность чтения ни в малейшей степени не соответствует последовательности вывода.

Пытаться "делать проще" в части программирования на данном этапе я не собираюсь — я не для соревнования эту тему поднял.

Nex написал:

диалоги, как правило, слишком разнообразны для полной формализации - придется либо писать без формализации, полностью "кодом", как я привел выше, либо сочинить очередные неуниверсальные правила поведения диалогов, и подгонять диалоги под них.

Ну так и игра подразумевает действия игрока в рамках "неуниверсальных" правил, так что лучше всё же иметь какие-нибудь правила, которые пусть и не охватывают всё и вся, зато позволяют достаточно эффективно использовать ряд приёмов.

К тому же, я полагаю, что при создании диалога автор будет указывать не просто фиксированные фразы, но и некие программные модули, этими фразами управляющие.

Главная цель — чтобы автору было легко понимать переложенный в код диалог и при необходимости включать в него новые ветки и блоки.

Неактивен

0    1    #18
17.08.2011 17:39

Logger
Участник (+1, -1)
Зарегистрирован: 24.11.2009
Сообщений: 92

Редактор книг-игр "Я - Мастер Книг"

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

IMHO - все автоматические диалоги, автоматические описания и т.п. - это подсознательная попытка автора НЕ писать IF-произведение (как литературное произведение), а просто расставить декорации и предложить Игроку/программе придумать к ним текст. Лучше уж написать 2 варианта диалога, но нормальным литературным языком, чем 10 вариантов "смеси паскаля и русского". Немного утрирую, конечно, но мне это кажется так.

Будет у игрок 2 или 20 вариантов выбора - не важно, ему все равно может захотеться задать вопрос, которого в списке нет.

Неактивен

0    0    #19
17.08.2011 19:02

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Logger написал:

IMHO - все автоматические диалоги, автоматические описания и т.п. - это подсознательная попытка автора НЕ писать IF-произведение (как литературное произведение), а просто расставить декорации и предложить Игроку/программе придумать к ним текст. Лучше уж написать 2 варианта диалога, но нормальным литературным языком, чем 10 вариантов "смеси паскаля и русского". Немного утрирую, конечно, но мне это кажется так.
Будет у игрок 2 или 20 вариантов выбора - не важно, ему все равно может захотеться задать вопрос, которого в списке нет.

Полагаю, что утрирование здесь используется для того, чтобы подчеркнуть красоту своего ответа. В данной теме речи про автоматические диалоги и описания не ведётся — лишь о том, можно ли как-то помочь автору проектировать диалоги, чтобы после переложения в код это оставалось понятным, а в самой игре — пристойным.

Неактивен

0    0    #20
17.08.2011 19:30

Pirate
Участник (+2)
Зарегистрирован: 30.04.2011
Сообщений: 26

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Думаю, с точки зрения писателя, нет ничего удобнее, чем создавать диалог аналогично тому, как создаётся меню в какой-нибудь визуальной Борландовской среде разработки: Delphi или Builder. В случае необходимости редактирования это "меню" редактируется легко. Причём, желательно сделать не аналог тому, как сделал Борланд, а то, что будет заточено именно под диалоги.

Если нужно вставить диалог- для программиста не должно быть сложно выдать структуру диалога в любом виде. А потом сконвертить её в диалог для игры на конкретном языке, который можно будет скопипастить в тело текстовой игры.

Если нужно изменить диалог, уже вставленный в игру: редактируем его в нашем редакторе диалогов; стираем диалог в игре; вставляем отредактированный.

Другими словами, у создателя игры всегда будут под рукой написанные им диалоги в удобном для изучения и редактирования виде. В теле самой игры они будут не удобочитаемы, но тут уж, видимо, ничего не поделаешь.

Отредактировано Pirate (17.08.2011 19:32)

Неактивен

0    0    #21
17.08.2011 19:37

Pirate
Участник (+2)
Зарегистрирован: 30.04.2011
Сообщений: 26

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Logger написал:

Будет у игрок 2 или 20 вариантов выбора - не важно, ему все равно может захотеться задать вопрос, которого в списке нет.

с такой логикой можно и один пункт диалога оставить. Неужели не понятно, что автору может быть для его задумки важно где-то сделать не просто вопрос-ответ, а какой-то диалог. В диалоге, приведённом на картинке, совсем не много вариантов выбора одновременно бывает. И уж точно не 20. А проблема с представлением и редактированием уже есть.

Неактивен

0    0    #22
19.08.2011 11:38

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Бегло просматривая некоторые материалы по теме, наткнулся на некоторые схожести прорабатываемых мной идей с изложенными в этих статьях (например "Defining Dialogue Systems" от Brent Ellison). Полагаю, я сэкономлю массу времени, если поработаю с этими материалами плотнее…

Неактивен

0    0    #23
19.08.2011 16:02

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

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

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

Полагаю, я сэкономлю массу времени, если поработаю с этими материалами плотнее…

Походу вряд ли. Надо всё же довести до ума одну идею хотя бы на примере "диалога с косарями".

Неактивен

1    0    #24
19.08.2011 21:18

fireton
некто с бородой (+285, -78)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1078
Вебсайт

Тон

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Вот такое нашёл: Chat Mapper. Бесплатен для некоммерческого использования. Выглядит очень достойно.

Кроме всего прочего (а там много) позволяет экспортировать диалог в XML. Останется только написать конвертор из XML в кусп, урку, инстед и куда там ещё.

UPD: Хы. Посмотрел, там даже API есть, можно свой экспортёр написать и получать уркин/куспин/инстед код прямо из редактора. Супер-тулза.

UPD2: Плак. Все вкусности - только в платной версии. В том числе и XML. Жаль.

Отредактировано fireton (19.08.2011 21:24)

Неактивен

1    0    #25
29.08.2011 17:19

WladySpb
Участник (+2)
Зарегистрирован: 21.12.2008
Сообщений: 33

Re: Диалоги игрока с персонажем с выбором варианта из перечня фраз

Достаточно интересно это было реализовано в редакторе Never Winter Nights, там отдельный редактор диалогов, с кучей возможностей.
Сам редактор древовидный, с возможностью зацикливания диалогов и установки условий для появления вариантов ответа как игрока, так и NPC, таких как параметры персонажа, его уровень, выполнение какого-либо квеста, наличие предмета и т.д. Так же для веток диалога можно проставить появления - как однократное, так и многократное, например, чтобы игрок не задавал пять раз вопрос "как тебя зовут?" неигровому персонажу. Примерно ознакомиться с видом можно тут: http://www.remmgen.narod.ru/treddialog.html хотя в идеале чтобы оценить все возможности нужно скачать редактор модулей для NWN.

Неактивен

Powered by PunBB
© copyright 2001–2020 iFiction.Ru