Войти
ПрограммированиеФорумИгровая логика и ИИ

Как можно реализовать диалоги с неписями в рпг? (3 стр)

Страницы: 1 2 3 4 532 Следующая »
#30
16:59, 11 ноя 2022

FlyOfFly
> В Rpg maker'e только редактор карты нормальный(может ещё бд, ну это под
> вопросом), а остальное все через одно место. Даже редактор пути нормальный не
> могут запилить
Зато RPG maker продается, а движок панзершрека в столе лежит.

#31
(Правка: 17:06) 17:03, 11 ноя 2022

Super_inoy
Монополист на рынке JRPG конструкторов, где можно за 2 дня запилить свою эро-финалку и причем 1 день потратить на статьи yanfly.moe
Проблемы начинаются когда  делаешь что-то типо более масштабное

#32
17:11, 11 ноя 2022

FlyOfFly
> где можно за 2 дня запилить свою эро-финалку

+ Показать
#33
(Правка: 17:15) 17:15, 11 ноя 2022

Super_inoy
>
> кто-то может за 2 дня, а кто-то 5 лет пилит с патреоном на 4к бакса в месяц и
> выпиливает по 1 локации в пол года.
Если ты про summertime, то она на RenPy

#34
17:22, 11 ноя 2022

FlyOfFly
> Если ты про summertime, то она на RenPy
Не, я не про саммертайм. :) как в такое вообще можно играть, это же не аниме, фу.

#35
20:35, 11 ноя 2022

FlyOfFly
> Разве он есть? Там же только редактор логики
это он и есть отчасти, ведь именно в нем ты их и прописываешь.

#36
20:46, 11 ноя 2022

nes
> Дык ты можешь не хардкодить, а заскриптовать.
Скриптов нет, рефлексии нет. Да и наличие скриптов не особо что-то поменяет.

Aroch
> И если ему лень говнокодить, путь возьмет opensource решения уже готовых тулз.
Каких например? Я непрочь взять готовую туулу или написать простенькую свою.

FourGen
> Условия показа того или иного вам в любом случае придется задавать.
FourGen
> Кому принадлежит диалог так же придется назначить. Оно же само не сделается?
Вот каким образом это сделать можно? Я могу придумать с десяток способов, но хотелосьбы сразу хороший взять.

FlyOfFly
> Тебя роронико не покусал?
Этого перца я уже давно не читаю, он только непойми что пишет.

kkolyan
> не хардкодить, а конфигурировать. это компактнее, проще и читаемее, чем что-то
> там что-то особенное делать с полиморфизом
Ммм? Как ты предлагаешь такое конфигурировать? И чем будет отличаться от страниц-полиморфных классов?

#37
20:59, 11 ноя 2022

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

FourGen
> Может я не понял опять, как всегда, но диалоги то за вас не напишутся сами,
> тексты в любом случае писать.
не понял. Суть не в том, чтоб диалоги писать, а в том, чтоб ими можно было удобно пользоваться. И прилепить к нужному персонажу, в данный момент диалога... из выборки всех диалогов... где надо выбрать отношение персонажа к персонажу... где может подойти третий, четвёртый, десятый персонаж... аааааааааа.....

#38
(Правка: 21:12) 21:12, 11 ноя 2022

samrrr

Вот каким образом это сделать можно?

Что именно? Кому назначить диалог? Открываешь окно диалога по клику на неписи или двери дома, или ещё какому объекту. При клике берёшь у кликнутого объекта id и передаёшь экземпляру класса диалога.

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

Хороший тот, которым ты сможешь пользоваться. Всё остальное — вкусовщина.
Берёшь в качестве структуры lua-таблицу, xml, yaml, json.

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

  npc_number_one = {
    {
      question = nil,
      answer = "Привет!",
    },
    {
      question = "Э, а ты кто такой?",
      answer = "Непись я местный!",
    },
  };

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

И постарайся не повторять ошибок любителей ретро-индюшатины: если текста много, то не надо его дробить на сто частей с бесконечными «далее — далее — далее», отображая по две строчки в узкой амбразуре в самом низу экрана стилизованным под DOS-овские письмена микрошрифтом.

#39
21:21, 11 ноя 2022

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

+ Показать

Видео старое, там многое доработал, кроме диалогов.
Там у меня есть событие это что вроде приветствия знакомства. Это некий шаблон с развилками иф елси, и есть зависимость кто говорит и с кем говорит, плюс  у меня в сюжете есть гендерная интрига, в русском языке я это везде учитываю(из-за этого журнал боя у меня усложнён). У всех персонажей уникальные реплики. Если у персонажей между собой нет истории то подставляются стандартные реплики, иначе другие. Пока это всё что я сделал в плане диалогов. Там всё очень просто без всяких лямбд, патернов, ассетов и прочей чепухи.
Когда будет другое событие контрол ц контрол в и доработка— если нужно добавление новых строк, поставление туда других реплик и картинок.

#40
21:26, 11 ноя 2022

samrrr
а какую игру вы делаете?

#41
21:31, 11 ноя 2022

samrrr
>
> Вот каким образом это сделать можно? Я могу придумать с десяток способов, но
> хотелосьбы сразу хороший взять.
Хранить ид диалога в нпс?

#42
(Правка: 21:38) 21:37, 11 ноя 2022

samrrr
> Как закодить, графоний то я прикрутить смогу.
case Выражение of
значение1 : оператор (группа операторов);сила=+3
значение2 : оператор (группа операторов);интеллект=-6
. . . . . . . . . . . . . . . . . . . . . .
значениеN : оператор (группа операторов) ловкость=+3
else оператор (группа операторов);интеллект=-6
/* if force=true then IQ=falce cila est uma ne nado
end;

#43
21:38, 11 ноя 2022

alexyecu_wox2team
>
> npc_number_one = {
> {
> question = nil,
> answer = "Привет!",
> },
> {
> question = "Э, а ты кто такой?",
> answer = "Непись я местный!",
> },
> };
А если одновременно несколько персонажей вмешиваются в диалог, допустим как в DQ3 где подходишь к старику и он начинает с тобой говорить, но резко переключается на пару других нпс? лучше
npc_number_one={
{
text="Yo, Nigga",
char=MIKLE_JACKSON,
},
{
text="Fuck you, white fagot"
char=PLAYER
}
}

#44
(Правка: 21:55) 21:49, 11 ноя 2022

FlyOfFly

А если одновременно несколько персонажей вмешиваются в диалог

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

Добавлю, что при всей любви к рпг, сам я вот такое не люблю. Игровые беседы, как правило, заметно уступают не только книжным, но и киношным, отчего особого интереса не представляют. Основное их назначение — почесать чсв разработчиков и их графоманские устремления. Несколько информационных строк с хорошей стилизацией — нормально; три десятка абзацев с распредлением по ролям — бессмысленная фигня, которую большинство игроков просто прокликает.

Страницы: 1 2 3 4 532 Следующая »
ПрограммированиеФорумИгровая логика и ИИ