Сайт Anivisual.net закрыт

Он продолжит функционировать в виде архива. Новые материалы добавлять нельзя.

Рассуждаем об инструментариях по созданию визуальных новелл

Рассуждаем об инструментариях по созданию визуальных новелл

Доброго времени суток всем. Всех с наступающим.

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

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

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

Почему было принято решение писать свой движок? Есть же 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, которую автор забросил. Конечно, большинство проблем там - сугубо методологические (т.е. можно сделать лучше, но автор не знает как и делает так, как может). Но мы не обойдём и эту тему стороной.

На сегодня всё. Хороших праздников!
18
Декабрь
16
2.1
12834
Добавлять комментарии могут только зарегистрированные пользователи.

Комментарии к записи: 16

avatar
#1 Lisper
87222
в 23:04 (31/Дек/2018)
0
Писать свой движок--процесс творческий и весьма сложный.
Хотелось бы следить за ходом создания такого продукта.
А насчет некоторых "прелестей" TyranoBuilder я уже писал.
Терпения и энтузиазма разработчикам.
avatar
#2 gardares
8420
в 04:42 (01/Янв/2019)
1
>пробельные отступы
При этом сами отступы, похоже, не смущают. В кинетическом оформлении (без вариативов, без условий) в Ren'Py вообще возможно весь скрипт (текст) держать нетабулированным. На примере же видно, что табуляция и say/think (это "-" и "*") обязательны для каждого персонажа и для каждой строчки (чем не аналог скриптовых кавычек?).

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

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

Из возможных нововведений:
1. Постоянное написание полного имени персонажей - это невозможно. В большинстве движков используются автозамены с уже обозначенными стилями и полными именами, тогда как в самом скрипте указывается только краткое.
2. Ёфикация. Запятая после "Помнится". Запятая между "уважение чтобы". "Вы" в русском языке без использования Pluralis Majestatis (оно не используется, ибо оно должно идти на все обращения) не пишется с большой буквы в середине предложения. Запятая перед "как". "Готов поспорить" обрамляется запятыми, нужна запятая в том же предложении с "потому что". Пропущенная запятая перед последним "мой принц". Запятая перед "если бы они", и перед "чтобы убрать".
avatar
#5 Arhimondus
1439
в 19:20 (01/Янв/2019)
0
По первому пункту. В действительности у меня здесь так же краткие имена персонажей, т.е. имена которые здесь в файле скрипта могут отличаться от тех, что будут по итогам видны, так же как здесь есть персонаж "Игрок", но в самой игре имя подменяется на то, что указал игрок в самом начале. С другой стороны я считаю, что если и использовать краткие имена, то не в таком виде, как например, вместо Julia использовать Jul, или вместо Vivaldi - Viv. Другое дело если само имя сложное или составное, например, Julia von Neumann, то использовать сокращение Julia на мой взгляд вполне уместно.
avatar
#6 Arhimondus
1439
в 19:31 (01/Янв/2019)
0
По второму пункту. Про "Вы" я в курсе. По поводу запятых, поправим, по всеобщей ёфикации - что-нить придумаем, в проекте в самом нужно по всем текстам пройтись и к одному виду привести - с или без. В качестве оправдания скажу, что текст сценария не я писал. Да и для примеров в данном материале это некритично.
avatar
#3 Letter_Juggler
81227
в 14:26 (01/Янв/2019)
0
Если учитывать только те недостатки ренпая, которые описаны в статье, то я бы в первую очередь рассмотрел вариант написать парсер. Который будет переводить текст с разработанного вами синтаксиса в текст ренпая. Такая вот совместимость с ренпаем была бы плюсом, мне кажется.

Не рассматривали такой вариант?
avatar
#4 Arhimondus
1439
в 19:07 (01/Янв/2019)
1
Вариант может и неплохой. И, возможно, я даже что-то подобное позднее напишу, чтобы до кучи была возможность подобные файлы скриптов запускать не только через Love2D - это основной фреймворк сейчас у меня (помимо Pixi), но и через RenPy. В любом случае - это не единственный недостаток. И это, безусловно, меньшая из проблем в RenPy.
avatar
#7 JohnDoe
62234
в 06:57 (11/Янв/2019)
-4
Автор не неси бреда..позязя cry
Unity сейчас мастхев движок, простой до одури, с живым комьюнити и возможностями которые можно реализовать в своем проекте.
Как например взаимодействие с популярными программами по типу Spine.
_
Чет проорал с "Большинство дополнений для создания визуальных новелл - платные." - Если ты делаешь продукт то будь готовь вложиться в него, ну на крайняк, все эти дополнения можно найти на торрентах в бесплатном доступе..
Я уже молчу о возможности создания облачной базы данных и подгрузки даже мельчайших исправлений в гугл таблице без скачивания патча обновления.
Например пользователи нашли косяк в тексте, вмнесто пересборки билда и выпуска патча, ты просто правишь тот самый текст в гугл таблице ииии бабах, он исправился при первом подключении игры к интернету без скачивания всяких там патчей.
Это лишь парочка функций из тысяч возможных.
+работа на этом движке даст хороший пласт для дальнейшей работе в гейм-деве..ибо сейчас разрабы Unity как нарасхват..
avatar
#9 SludgeAcolyte
27750
в 09:40 (14/Янв/2019)
3
Ага, настолько простой, что вам аж пришлось тратить 30 тысяч на тестирование, при том что подавляющее большинство новелл на ренпае тратят примерно 0 и выпускают новеллы без багов.

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

Ну и вообще, вкладываться в свой проект или нет - личное дело автора.
avatar
#8 orikanekoi
5668
в 21:55 (13/Янв/2019)
1
Подпишусь. Очень странное отношение к ренпаю)
avatar
#10 Lisper
87222
в 22:13 (18/Янв/2019)
0
Просто некоторым людишкам кажется, что Ren'Py для быдла, а тру разработчики пишут на yu-ris, kiri-kiri, трали-вали...
Но круче всего--написать свой движок и создать к нему авторские типы файлов (привет студии Minori).
Наверное причина такому отношению--большое количество всяческого трешака на старом добром Ренпае. Но тут дело не в инструменте, а в кривых руках.
avatar
#11 orikanekoi
5668
в 02:50 (19/Янв/2019)
0
У Ренпая есть объективный минус - он тормозит на некоторых машинах. Но автор этот минус не рассмотрел. Ему не нравятся пробелы, видите ли)
А в итоге написал свой ренпай.
avatar
#12 РайДа
66394
в 21:08 (31/Янв/2020)
0
Какую программу посоветуете дилетанту, не умеющему работать с кодами и не хотящему бесконечно тоскать спрайты из папки в папку ? Оформление не важно.
avatar
#13 Хемуль
87473
в 21:31 (31/Янв/2020)
-1
Это лучше хотя бы на форуме спросить, мне кажется. Вряд ли много людей увидит ваш комментарий к старому блогу.
avatar
#14 Lisper
87222
в 21:54 (31/Янв/2020)
2
Ну, например, не браться за вёрстку ВН.
То не умею, сё не хочу, это не важно, но чтоб всё работало... С таким подходом ничего толкового не выйдет.
Всё равно придётся корпеть над кодом, всё равно придётся таскать спрайты, всё равно придётся многому учиться.
Вот если бы вопрос был из серии "Собираюсь сделать новеллу с таким-то функционалом для такой-то платформы. Какой движок подходит лучше?", то можно было бы чего-то посоветовать.
Уж простите за грубость.
avatar
#16 РайДа
66394
в 14:09 (17/Мар/2020)
1
Справедливо bad  попробую себя в другой стезе...
avatar
#15 СОНЦЕ
93
в 00:44 (01/Фев/2020)
2
MS PowerPoint