Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> #3 — Разветвлённая диалоговая система на Inkle/Ink
Ozzy Osbourne
сообщение 21.10.2018, 23:27
Сообщение #1


*********

Grandmaster
Сообщений: 2.067
Регистрация: 5.8.2003
Группа: Пользователи
Наличность: 0
Пользователь №: 810
Возраст: 32



Ссылка на Medium (там лучше оформление)

В прошлой статье (“Восемь идей по проекту”) мы немного прошлись по целям на проект и совсем капельку коснулись новой диалоговой системы. Сегодня я хочу показать прогресс в данном направлении и рассказать про инструменты которые я буду интегрировать в игровой клиент.

[+]

(Простенькая демо)

Для меня хорошая игра в жанре RPG/MMORPG обязательно должна иметь качественную сюжетную линию и мощную цепочку побочных альтернативных заданий. Без разветвленной диалоговой системы создать полное погружение не получится, но в UO по природе своей это отсутствует (и отсутствовало всегда). Да, мы знаем про Лорда Бритиша и какие то задания (если играли на официальном сервере), но полноценной сюжетной линией и древовидными диалогами эта игра нас не баловала.

Дело в том что это не просто тяжело реализовать технически, но даже в случае успеха — поддерживать этого “динозавра” без подключения сторонних разработок было бы очень сложно. Сначала я хотел создать “с нуля”, но после того как прикинул объем связей и цепочек даже для первых пяти квестов — понял что поддерживать это не выйдет. Я очень благодарен за статью “Создание разветвлённой диалоговой системы” (Gamasutra) которую мне подкинули в личку, она открыла глаза на сложные моменты и подсказала популярные инструменты которые используют другие студии.

(IMG:https://c2n.me/3XrD18T.jpg)
(Для легкой отладки окно inklecate выводится в момент старта диалога. Отлично видно как работает парсер выдачи на плюсах для подгонки в окошке клиента)

На арену выходит “Inky”

После нескольких попыток я добрался до Inky (https://www.inklestudios.com/ink/) который представляет из себя мощный интерпретатор для диалоговой системы от создателей “80 Days” (я не играл, но отзывы хорошие). Начал копать, сравнивать с конкурентами и понял что буду использовать именно inkle.

(IMG:https://c2n.me/3XrD35l.png)

1 Это opensource, все исходники открыты и я могу ковырять их совершенно бесплатно

2 Знакомый язык исходников (C#), что упрощает работу и возможные фиксы

3 Достаточно подробная документация (https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md) по возможностям, большая гибкость и кол-во возможностей

4 Ink файлы диалогов представляют из себя не сложные текстовые файлы со своим синтаксисом, которые легко передать переводчикам и сценаристам. Человек “не в теме” — легко поймет что надо менять и как всё устроено без изучение документации

5 С ходу мне хватило возможностей языка после прочтения документации + наличие возможности запустить интерпритатор через консоль напрямую упрощало интеграцию в клиент

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

(IMG:https://c2n.me/3XrD5mo.jpg)

Впереди много работы по “допиливанию” того что получилось, но я рад что получилось сделать интеграцию и побороть самые сложные моменты подключения. Теперь мой игровой клиент WisQuas содержит в себе действительно мощную систему разветвленных диалогов и будущая сюжетная линия должна будет получить именно такой, которую я задумал.

Что впереди?

Вот списочек дел в направлении диалогов, которые еще предстоит побороть (и на это уйдет наверняка еще куча времени):

1 Научить ответы в диалогах реагировать на характеристики чара: какие то ветки общения должны будут “открываться” только в случае если навыка (харизма, атлетика, сила, умения, устрашения) достаточно.

2 Менять аватарки в зависимости от квестолога, с которым происходит общение

3 Добавить возможность прокручивать диалог назад (что бы посмотреть историю наших ответов)

4 Сохранять этап диалога на каждом ответе пользователя, что бы исключить сброс результатов в случае перезахода в игру

5 Подсвечивать над головой чаром и нпс иконку, что активна диалоговая система

6 Написать первый квест для “обкатки” системы

Я целюсь на реализацию как в Divinity 2, Pillars of Eternity, Pathfinder Kingmaker и очень надеюсь что этот момент у меня получится. Впереди еще очень много работы, но я рад что появляются результаты, которыми я могу с вами поделиться.

Возможно демка получилась “простоватой”, но так оно и есть. Основная красота появится когда диалоги начнут реагировать на характеристики, будут наполнены красивыми текстами и сюжетом)

Тимур

Ссылка на Medium (там лучше оформление)


--------------------
Forest Wars
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Narayan
сообщение 31.10.2018, 16:55
Сообщение #2


**********

Гарант UoKit
Сообщений: 2.847
Регистрация: 28.3.2007
Группа: Супермодераторы
Наличность: 15545
Пользователь №: 9.591



Нормально ты замахнулся, главное не забросить и довести до игроков в юзабельном виде)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Ozzy Osbourne
сообщение 4.11.2018, 1:28
Сообщение #3


*********

Grandmaster
Сообщений: 2.067
Регистрация: 5.8.2003
Группа: Пользователи
Наличность: 0
Пользователь №: 810
Возраст: 32



Это да, не легко, но я попробую)


--------------------
Forest Wars
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 22:46
Designed by Nickostyle