Визуальные новеллы: спортивная разработка велосипедов

Создание визуальной новеллы – это не так просто, как кажется. Прототип на два диалога можно собрать на коленке, используя какие-нибудь инструменты. Но как только проект обрастает командой, а то и механиками на стыке жанров – каких-нибудь инструментов становится недостаточно. Но я пошел в этом рассуждении дальше: 4 года назад я подумал, что всех сущ…

Визуальные новеллы: спортивная разработка велосипедов
3333

И никаких комментариев. Обидно... Статья то в общем-то нужная и интересная.
Я сам пытался писать диалоговые окна в Unity на визуальных нодах - и упёрся именно в формат хранения в гите...
Пробовал разные библиотеки и фреймворки вроде xNode и Graph Node Processor, но их сериализация тянет за собой гору нечитаемого мусора в метафайлах и для удобного редактирования требует работы внутри юнити. А хочется, чтобы при необходимости можно было поправить одно число в конфиге - и строку в локализации - и всё работало. Т.е. хранить диалоги в чём-то напоминающем вот такой JSON:

{ dialog_id: 10, text_key: camp_breakfast_130, dialog_options: [ {text_key: camp_breakfast_answer_130, next_node_id: 11},{...}], }

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

Ответить

О, сразу видно опыт и боль.

Вот собственно эту проблему я в итоге и решил, и сериализация у Loki как раз в JSON. Там правда выглядит пострашнее, потому что много мета-данных тянется.

Тут статья больше про стратегию и подход. Я хочу в этом году выпустить отдельную про детали технической реализации.
В идеале это делать под релиз в Asset Store, но для этого нужно еще туда пройти: он из рук вон плохо поддерживает зависимости.

Ответить