RU

NPC TALK'S - простой модуль диалогов

Svartberg #1555 15.11.2015 12:06 5 comments 6017 views

NPC TALK’S


version 0.1aЖанр: Любой

Доброго денечка, сегодня хотел бы вам представить небольшой модуль диалогов, который я разрабатываю параллельно с модулем рандомных предметов.
NPC TALK’S - простая и удобная система для реализации диалогов в игре.
Она занимает совсем немного места и позволяет очень расширить и преобразить игру.
Если вы давно мечтали реализовать качественный и продвинутый древовидный диалог, однако не можете реализовать его сами, то могу вам предложить данный модуль. Так-же модуль предлагает простое, быстрое и легкое решение для реализации самих NPC персонажей в игре, а так же создание фракций в игре.
Он будет со временем обновляться и расширять свои возможности. Сейчас он может реализовывать довольно простые и примитивные функции.
Инструкция по интеграции в свой проект, приложена.
Из особенностей модуля:

  • Создание продвинутых диалогов;
  • Реализация NPC персонажей;
  • Реализация фракций.

Последняя версия модуля: NPC TALK’S 0.1a.zip (10,8 кб)
В архиве:

  • папки: ‘data’->’img’ - spriteLine01.png
  • INFO.txt
  • NPCTalk’s.qsp
Edited at 15.11.2015 12:12 (10 years ago)
Aleks Versus Moderator 15.11.2015 12:46 (10 years ago)

Слишком сложно.

А что сложного?
Я даже написал подробную инструкцию.

Aleks Versus Moderator 15.11.2015 13:22 (10 years ago)

Я предвидел твой вопрос, поэтому подготовился.)
Очень тяжело запоминать, например, в какой ячейке массива, какие данные хранятся. Всё время обращаться к инструкции? Если бы велась хотя бы текстовая индексация:

$script.ID00DG0000['имя'] = 'Торвальд Йоргенсон' & $script.ID00DG0000['раса'] = 'Человек' & $script.ID00DG0000['пол'] = 'муж' & т.д...

уже на порядок проще было бы ориентироваться. Сложные имена переменных типа $script.ID00DG0000 очень неудобны при написании сторонним человеком кода на основе этих переменных, к тому же запоминать значение массива, название которого состоит из отвлечённых буквоцифр - занятие чертовски тяжёлое, как зубрёжка инструкции об использовании инструкции по написанию инструкций.
Я понимаю, что вся эта сложность связана с какой-то чрезвычайной необходимостью при работе с движком твоей игры, но боюсь мало кто возьмётся разбираться.
И потом механизм создания диалога совсем не очевиден. Если предположить, что он должен быть вообще скрыт от того, кто его применяет, то как объяснить то, что фразы создаются всё теми же командами act. Не проще в данном случае написать ветвистый диалог используя обычную схему действий по условию (вообще, именно это ты и сделал)? А фракции и прочее (это конечно здорово, что ты так подробно продумываешь) но когда человеку они просто не нужны, - а тут на тебе! - он просто не поймёт будет ли диалог (простой ветвистый диалог) работать без заполнения всей этой уймы переменных, в которых и не разберёшься-то с первого раза.

Aleks Versus:

Очень тяжело запоминать, например, в какой ячейке массива, какие данные хранятся. Всё время обращаться к инструкции? Если бы велась хотя бы текстовая индексация:

$script.ID00DG0000['имя'] = 'Торвальд Йоргенсон' & $script.ID00DG0000['раса'] = 'Человек' & $script.ID00DG0000['пол'] = 'муж' & т.д...

Да, по этой теме я действительно сглупил, не переделал. Почему-то в этот момент забыл о том, что возможна текстовая индексация. Я переносил это с другого движка, поэтому такая несуразица, я переделаю это в следующем обновлении)

Aleks Versus:

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

Ну, тут ты действительно прав. Была чертовская необходимость в таком структурировании из-за весьма больших количеств переменных. Чтобы в них не запутаться, я сделал такую систематизацию. Да, минус в том, что приходится обращаться к напоминалкам. Однако, на деле, это весьма помогает и избавляет от ряда проблем.

Aleks Versus:

И потом механизм создания диалога совсем не очевиден. Если предположить, что он должен быть вообще скрыт от того, кто его применяет, то как объяснить то, что фразы создаются всё теми же командами act.

Ну, act мне пришлось использовать в экстренном порядке, для хоть какого-то обозначения действий. (Опять-же из-за переноса с другого движка.)

Aleks Versus:

А фракции и прочее (это конечно здорово, что ты так подробно продумываешь) но когда человеку они просто не нужны, - а тут на тебе!

Их можно спокойно удалить) Надо будет подправить этот момент.

Спасибо за критику, я немедленно займусь обновлением!=D

Aleks Versus Moderator 15.11.2015 14:21 (10 years ago)

Обрати внимание на эти темы, вдруг почерпнёшь из них что-то полезное.
Реализация непростого ветвистого диалога с выбором из вариантов фраз
Модуль для написания диалогов

Log in or Register to post comments.