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.
Участник (+1049, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2866
Вебсайт

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

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

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

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

Неактивен

0    1    #2
16.03.2011 17:04

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

---

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

Неактивен

0    1    #3
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    1    #4
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    #5
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. написал:

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

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

Неактивен

Powered by PunBB
© copyright 2001–2022 iFiction.Ru