?

Log in

No account? Create an account
29 май, 2008 @ 13:15 Ищу систему диалогов на C++

Всем привет,
не подскажет ли кто хорошую готовую диалоговую систему для RPG. То есть что б были даны законченные и связанные между собой классы. Легкии в использовании но и мощные. Только я имею ввиду лишь логику, без графики. Если точнее, то:

Диалоговая система которую я хотел бы должна:

  • Хранить содержимое диалогов в файлах
  • Иметь условные и вероятностные переходы(ответы).
  • Легко расширяться(добавление аватарок, озвучки...)

Вот. Задача же очень старая и уже раз 100 по разному решена. Может где есть уже готовые классы?
Также было бы неплохо, еслиб в так же к ней предлогались инвентарь, характеристики персонжа, квестовая система итп, написанные в том же духе. Вот, вобщем такой вопрос. 



Если кто что похожое встречал, подскажите плиз)))

P.S. Коонечно ничего особо сложного и самому написать, но типичные задачи часто имеют красивые готовые решения(:

 

Slon
pink_master:
[User Picture Icon]
From:barabanus
Date:Май, 29, 2008 18:16 (UTC)
(Ссылка)
Я как раз разрабатываю такую штуку на Луа для интересного коммерческого проекта, в определенной мере готов и движок, и редактор. Подключить Луа к проекту на С++ не представляет сложности. Если интересно, то пиши.
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:pink_master
Date:Май, 30, 2008 14:54 (UTC)
(Ссылка)
спасибо(:
Но я уже нашел нечто подобное на TorqueScript (для движка TGE). Но то что я нашел лишино многих возможностей. Например с условных переходов там нет. То есть нельзя сильно не добывляя функциональности чтоб варианты диалогов зависили от инвентаря или характеристик. Или чтоб шанс на "успешную" реакцию на ответ зависил от харизмы, к примеру.
А такой вопрос: как ты считаешь, хорошая идея реализовывать диалоги как конечный автомат?
И еще - почему на LUA как часть скриптовой сисетмы а не как часть движка?
P.S. интересно конечно^^
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:barabanus
Date:Май, 30, 2008 16:20 (UTC)
(Ссылка)
>Например с условных переходов там нет. То есть нельзя сильно не добывляя
> функциональности чтоб варианты диалогов зависили от инвентаря или
> характеристик.

Если тебя устраивает такая функциональность, то почему бы и нет.

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

> почему на LUA как часть скриптовой сисетмы а не как часть движка?
Скриптовая подсистема - это часть движка, следовательно части скриптовой подсистемы - это части движка =)
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:pink_master
Date:Май, 30, 2008 16:36 (UTC)
(Ссылка)
1) в том то и дело что не устраивает=)

2) А как переходы запрограммировать? (Особенно условные). Я таблицей(просто массив int 2х2) попытался. Ну работать - работает. Но с условными (или вероятностными) переходами уже беда: В детерменированном КА переход либо есть либо нет. А если есть какое-то условие то просто можно добавить сосояние. Но так что-то некрасиво получается. Вот я и решил велосипед не изобретать, а поспрашивать/поискать)))
Ну а как ты в общих чертах переходы сделал?

3) Ну решать конечно каждому, но ИМХО если делать rpg/action-rpg или еще какой смешанный жанр, то на C++ с STL красивей и понятней получится. Да и за производительность можно вроде особо не переживать, так как это вроде сам по себе не "смертельный" участок кода. Но замечаю что часто это реализованно именно в скриптах.
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Июнь, 1, 2008 15:00 (UTC)
(Ссылка)
При использовании скриптового движка, Вы отделяете реализацию игровой логики от реализации самого движка. Это позволяет Вам создать редактор диалогов, карт, событий, для сценаристов и даже игроков. Они смогут самостоятельно сочинять скрипты, при этом не затрагивая ядро программы, системный уровень, написанный на C++. Выгоды очевидны: независимость сценаристов от программистов и ускорение разработки, привлечение комьюнити креативных игроков, обогащение контента игры. Даже если Вы не планируете это в текущем проекте, то сможете использовать это в следующих проектах.

http://topright.livejournal.com/20903.html
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:topright
Date:Июнь, 1, 2008 14:48 (UTC)
(Ссылка)
Интересно! У меня была идея разработать специализированный язык для описания диалогов, последовательностей реплик, событий при выборе реплики и т.д. Интересно, как же это выглядит на языке общего назначения Lua?
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:barabanus
Date:Июнь, 2, 2008 11:30 (UTC)
(Ссылка)
Ничего необычного - свой формат, создаваемый с помощью своего редактора и проигрываемый прилагаемым раннером.
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:iridix
Date:Май, 29, 2008 20:47 (UTC)
(Ссылка)
Я на твоем месте заинтересовался одним словом.
SCUMM

http://en.wikipedia.org/wiki/SCUMM
читать внимательно. она пересоздана.
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:pink_master
Date:Май, 30, 2008 15:01 (UTC)
(Ссылка)
languageя все же ищу скорей просто библиотеку, а тут:
"It is somewhere between a game engine and a programming language"
да еще со своей вирт-машиной.
Ho спасибо=)
(Ответить) (Уровень выше) (Ветвь дискуссии)