Кто какие варианты встречал? И как они были реализованы?
Если ты про саму систему болтовни, то имхо самая лучшая, что я видел - в Morrowind.
samrrr
> Кто какие варианты встречал? И как они были реализованы?
А зачем диалоги? Ради диалогов?
Как закодить, графоний то я прикрутить смогу.
nes
> самая лучшая, что я видел - в Morrowind.
И что там?
samrrr
Удобный интерфейс + удобно выпытывать инфу и неписей.
samrrr
не так давно уже была подобная тема:
https://gamedev.ru/flame/forum/?id=271985
для рпг того масштаба, который вытянет индюк - достаточно просто
DialogueOption {
text
onclick (лямбда или шаблон ecs-ивента)
required_condition (лямбда-предикат или набор требуемых флагов)
}
в случае скриптовых языков и нормальных нескриптовых типа раста - прямо в виде кода задавать. но удобно и в формате YAML (там есть адекватный мультилайн в отличие от json)
kkolyan
> для рпг того масштаба, который вытянет индюк - достаточно просто
Для инди есть аддоны для всех популярных движков.
С таймлайнами, деревьями, событиями, и даже редакторами всего этого добра.
И да, темка повторяется в смысле неопределенности задачи.
Der FlugSimulator
> Для инди есть аддоны для всех популярных движков.
> С таймлайнами, деревьями, событиями, и даже редакторами всего этого добра.
фильтрация маркетплейса - то еще удовольствие. плюс, это добро стараются делать удобным для среднего человека. а хардкорные прогеры по майндсету часто отличаются от среднего человека. а ты уверен что автор темы вообще человек?)
Der FlugSimulator
> в смысле неопределенности задачи.
+многа.
впрочем, возможности автора темы достаточно ограничены, что сильно сужает выбор
При выборе вариантов диалога могут кпчаться навыки, меняться атрибуты, выдаваться и приобретаться предметы, нпс может стать враждебно настроенным, диалоги логируются. вернуться к ним чаще всего будет невозможно.
мне нравятся диалоги в играх на Инфинити движке - это Плейнскейп Тормент, Айсвинд Дейл, Балдурс Гейт
{
id1 = char1
id2 = char2
speaches =
{
id1 = "...", callback = function
id2 = "...", callback = function
id1 = "...", callback = function
}
}
как-то так, не?
Можно тупо
draw_dialog("hi")
yield wait dialog_write_complete
draw_dialog("how you do?")
yield wait dialog_write_complete
dialog_close()
FlyOfFly
Ну так это ужо корутины. И в движке. А автору нужен слой данных, логики и уже потом слой движка.
Вообще было бы прикольно реализовать возможность задавать неписям произвольные вопросы,
но тогда придется не слабо так помудохаться с интэллижэнсом.
lookid
FlyOfFly
годится для игр где диалогов чуть более чем пальцев на руках. Во всех остальных случаях кто такое в здравом уме будет писать для тысяч диалогов?
Тема в архиве.