Рассуждаем об инструментариях по созданию визуальных новелл
Доброго времени суток всем. Всех с наступающим.

Хотелось бы порассуждать о существующих инструментариях создания визуальных новелл и представить свой вариант движка и сопутствующих программ.

Планируется некоторый цикл подобных материалов, я изначально планировал создать тему на форуме, но подумал, что с учётом очень широкого спектра подтем будет разумнее формат блога и обсуждений в комментариях.

В середине сентября этого года мы с товарищем приступили к разработки визуальной новеллы. Уже прошло несколько ревизий полного переписывания и додумывания нужного функционала и до сих пор ещё некоторые элементы доделываются. Пришлось решать множество неочевидных на первый взгляд проблем .

Почему было принято решение писать свой движок? Есть же RenPy, TyranoBuilder, Unity (со специальными плагинами), японские движки (аля Kirikiri) и гора других очень странных "визуальных" движков в Steam-е по 1k+ рублей и в Android маркете (даже там есть).

Зададимся вопросом, почему не RenPy?

  • Я ненавистник Python как языка программирования, а именно его особенностей -пробельные отступы, сущая дикость в версиях. Да и меня просто он раздражает чисто визуально. А что касается его простоты - крайне спорный момент, но многие почему-то ставят его "субъективную" простоту в плюс. Но чем он проще других языков - не совсем ясно.
  • Код на язык RenPy больше напоминает действительно код, а не текст сценария. Реплики и фразы персонажа оборачиваются в кавычки, тогда как метки и элементы внутреннего синтаксиса остаются без них. Основную часть же новелл всё же представляет собой текст и как-то крайне странно, что для этого здесь нет простого способа это сделать. Плюс к тому же на каждую реплику нужно указывать персонажа, который её произносит.


Почему не TyranoBuilder, Novelty и другие подобные конструкторы/движки?

  • Работал и с первым и со вторым. Насколько мне помнится они чем-то похожи по своей сути. Передвигаешь блоки с действиями в общую ленту. Проблема такого визуального подхода, что он удобен на весьма ограниченных объёмах текста. Когда текста становится много и в случае если, сценарий изначально пишется в другом формате или в другой программе - нужно выполнять много рутиных действий мышкой по перегону оттуда туда. Плюс что там, что там нет нормальной возможности кастомизации интерфейса. Возможно сейчас с этим стало лучше, но когда я знакомился с ними - такого не было. Хорошо что хоть полноэкранный режим доделали в TyranoBuilder.


Почему не Unity?

  • Слишком громоздкий движок, слишком большой рантайм. Большинство дополнений для создания визуальных новелл - платные. А в то, что мне удалось поиграть (пройти, прочесть) большими возможностями не отличались, я не говорю про перемотку назад (которая кстати в том же RenPy не всегда работает), а просто о меню, прокрутке, сохранении/загрузки и прочем.


Что касается самого текста визуальной новеллы (то бишь сценария) мы пока решили пойти по пути RenPy, но с более простым и понятным синтаксисом. На данный момент у нас есть два варианта синтаксиса (старый и новый):

Первый


Второй, так называемый Razor-like (из ASP.NET-а), где команды ничем не обрамляются


В обоих случаях все реплики и фразы начинаются со знака '-' (обычная реплика) или '*' (реплика про себя), а перед ними идёт имя персонажа, который эту реплику произносит, после идёт двоеточие, в таком довольно читаемом формате изначально писался сценарий, мы просто слегка добавили дополнительный функционал сверху в виде команд.

Если совсем коротко, то у нас получается весьма неплохой движок и редактор к нему, в которых мы пытаемся сделать нашу жизнь как разработчиков гораздо проще и легче, минимум ручной работы и рутины. Из языков программирования, которыми можно будет пользоваться и расширять базовые возможности, будут Lua, MoonScript и JavaScript (на выбор).

Собственно у нас уже есть написанная новелла 18+ в раннем доступе, распространяем через Patreon и трекеры. Планирую и публичный релиз инструментария, возможно уже в январе.

В следующих же материалах мы подробно рассмотрим почему у людей возникают проблемы с RenPy, TyranoBuilder и другими движками, конструкторами, возможно на примере существующих игр. На данный момент мы с товарищем параллельно занимаемся портированием одной новеллы 18+, написанной на RenPy, которую автор забросил. Конечно, большинство проблем там - сугубо методологические (т.е. можно сделать лучше, но автор не знает как и делает так, как может). Но мы не обойдём и эту тему стороной.

На сегодня всё. Хороших праздников!


Автор материала: Arhimondus
Материал от пользователя сайта.



Разработка новелл 31 Декабря 2018 758 Arhimondus конструкторы, разработка новелл, движки 2.3/6

Комментарии (12):
0
1 Lisper   (01 Января 2019 00:04)
87222
Писать свой движок--процесс творческий и весьма сложный.
Хотелось бы следить за ходом создания такого продукта.
А насчет некоторых "прелестей" TyranoBuilder я уже писал.
Терпения и энтузиазма разработчикам.

1
2 gardares   (01 Января 2019 05:42)
8420
>пробельные отступы
При этом сами отступы, похоже, не смущают. В кинетическом оформлении (без вариативов, без условий) в Ren'Py вообще возможно весь скрипт (текст) держать нетабулированным. На примере же видно, что табуляция и say/think (это "-" и "*") обязательны для каждого персонажа и для каждой строчки (чем не аналог скриптовых кавычек?).

>Плюс к тому же на каждую реплику нужно указывать персонажа, который её произносит.
"""Нет, не совсем.
Для нарратора можно использовать три кавычки, обозначающие начало текста.
А также конец текста.

Единственное но, пустые строчки такой метод пропускает, в отличие от \"\" кода.
И по стандарту такое для персонажей не работает."""

Из возможных нововведений:
1. Постоянное написание полного имени персонажей - это невозможно. В большинстве движков используются автозамены с уже обозначенными стилями и полными именами, тогда как в самом скрипте указывается только краткое.
2. Ёфикация. Запятая после "Помнится". Запятая между "уважение чтобы". "Вы" в русском языке без использования Pluralis Majestatis (оно не используется, ибо оно должно идти на все обращения) не пишется с большой буквы в середине предложения. Запятая перед "как". "Готов поспорить" обрамляется запятыми, нужна запятая в том же предложении с "потому что". Пропущенная запятая перед последним "мой принц". Запятая перед "если бы они", и перед "чтобы убрать".

0
5 Arhimondus   (01 Января 2019 20:20)
1439
По первому пункту. В действительности у меня здесь так же краткие имена персонажей, т.е. имена которые здесь в файле скрипта могут отличаться от тех, что будут по итогам видны, так же как здесь есть персонаж "Игрок", но в самой игре имя подменяется на то, что указал игрок в самом начале. С другой стороны я считаю, что если и использовать краткие имена, то не в таком виде, как например, вместо Julia использовать Jul, или вместо Vivaldi - Viv. Другое дело если само имя сложное или составное, например, Julia von Neumann, то использовать сокращение Julia на мой взгляд вполне уместно.

0
6 Arhimondus   (01 Января 2019 20:31)
1439
По второму пункту. Про "Вы" я в курсе. По поводу запятых, поправим, по всеобщей ёфикации - что-нить придумаем, в проекте в самом нужно по всем текстам пройтись и к одному виду привести - с или без. В качестве оправдания скажу, что текст сценария не я писал. Да и для примеров в данном материале это некритично.

0
3 Letter_Juggler   (01 Января 2019 15:26)
81227
Если учитывать только те недостатки ренпая, которые описаны в статье, то я бы в первую очередь рассмотрел вариант написать парсер. Который будет переводить текст с разработанного вами синтаксиса в текст ренпая. Такая вот совместимость с ренпаем была бы плюсом, мне кажется.

Не рассматривали такой вариант?

1
4 Arhimondus   (01 Января 2019 20:07)
1439
Вариант может и неплохой. И, возможно, я даже что-то подобное позднее напишу, чтобы до кучи была возможность подобные файлы скриптов запускать не только через Love2D - это основной фреймворк сейчас у меня (помимо Pixi), но и через RenPy. В любом случае - это не единственный недостаток. И это, безусловно, меньшая из проблем в RenPy.

0
7 Dasgun   (07 Января 2019 18:09)
37873
wow

-3
8 JohnDoe   (11 Января 2019 07:57)
62234
Автор не неси бреда..позязя cry
Unity сейчас мастхев движок, простой до одури, с живым комьюнити и возможностями которые можно реализовать в своем проекте.
Как например взаимодействие с популярными программами по типу Spine.
_
Чет проорал с "Большинство дополнений для создания визуальных новелл - платные." - Если ты делаешь продукт то будь готовь вложиться в него, ну на крайняк, все эти дополнения можно найти на торрентах в бесплатном доступе..
Я уже молчу о возможности создания облачной базы данных и подгрузки даже мельчайших исправлений в гугл таблице без скачивания патча обновления.
Например пользователи нашли косяк в тексте, вмнесто пересборки билда и выпуска патча, ты просто правишь тот самый текст в гугл таблице ииии бабах, он исправился при первом подключении игры к интернету без скачивания всяких там патчей.
Это лишь парочка функций из тысяч возможных.
+работа на этом движке даст хороший пласт для дальнейшей работе в гейм-деве..ибо сейчас разрабы Unity как нарасхват..

2
10 SludgeAcolyte   (14 Января 2019 10:40)
27750
Ага, настолько простой, что вам аж пришлось тратить 30 тысяч на тестирование, при том что подавляющее большинство новелл на ренпае тратят примерно 0 и выпускают новеллы без багов.

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

Ну и вообще, вкладываться в свой проект или нет - личное дело автора.

0
9 moonfork   (13 Января 2019 22:55)
5668
Подпишусь. Очень странное отношение к ренпаю)

0
11 Lisper   (18 Января 2019 23:13)
87222
Просто некоторым людишкам кажется, что Ren'Py для быдла, а тру разработчики пишут на yu-ris, kiri-kiri, трали-вали...
Но круче всего--написать свой движок и создать к нему авторские типы файлов (привет студии Minori).
Наверное причина такому отношению--большое количество всяческого трешака на старом добром Ренпае. Но тут дело не в инструменте, а в кривых руках.

0
12 moonfork   (19 Января 2019 03:50)
5668
У Ренпая есть объективный минус - он тормозит на некоторых машинах. Но автор этот минус не рассмотрел. Ему не нравятся пробелы, видите ли)
А в итоге написал свой ренпай.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]