Переплетное дело

аватар mihara

Каждой книжке с картинками нужен переплет, точно так же, как каждому диафильму нужен проектор.

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

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

OnScripter и родственники

Давным-давно, жил да был NScripter, движок разработанный Naoki Takahashi (高橋直樹) и опубликованный с очень либеральной лицензией, позволявшей коммерческое его применение без лицензионных выплат. Движок был богат возможностями, и написан с традиционной японской оптимальностью и неприхотливостью, что снискало ему немалую популярность и в немалой степени ответственно за бум додзин-реная и восход TYPE-MOON к вершинам славы.

Во времена своего расцвета, это был самый популярный переплет для реная в природе, с которым мог сравниться только AVG32/RealLive фирмы Key. Именно на нем сделаны были Tsukihime и Kagetsu Tohya, и список коммерческих и додзин-изданий использующих NScripter считается на многие десятки.

Основными его недостатками были работа только под Windows и только со шрифтами фиксированной ширины в кодировке Shift-JIS — что для японцев, как вы понимаете, недостатком не было, поскольку у них все шрифты такие.

Тем не менее, вопрос портирования вставал по мере все более широкого распространения невиндовых платформ, и на свет появился OnScripter, опенсурсный клон NScripter, с лицензией GPL, поддерживающий без изменений его форматы хранения данных и скрипта. Начал его тоже японец, некто Ogapee, в основном с намерением портировать ренай использующий OnScripter на Linux.

Этой работой воспользовались широко известные переводчики додзин-ренаев Insani.org, и сделали слегка поправленную его версию, владеющую английским языком. Путем относительно небольшого хирургического вмешательства, из нее можно сделать версию, поддерживающую кириллицу в кодировке Win-1251. 1

Это сделало возможным разработку нового оригинального реная с применением NScripter, но это все еще было неудобно делать на русском языке. К счастью, проект на этом не остановился, и его развитие продолжается — POnScripter, активно разрабатываемая в данный момент версия, сделанная для перевода бесконечного сериала Higurashi no Naku Koro Ni, владеет кодировкой UTF-8 и пропорциональными шрифтами, что значительно облегчает жизнь.

OnScripter разрабатывался как средство запустить NScripter на Linux, и благодаря этому, существуют его версии под все основные платформы, под которые можно что-то писать, начиная от Windows и заканчивая Dreamcast.

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

Рекомендовать его как средство разработки я сейчас не стал бы, но тем не менее, сейчас он представляет собой минимальный золотой стандарт для ренайного движка. Больше уметь можно, меньше — уже несерьезно.

RenPy

RenPy — попытка сделать новый, “правильный” движок для реная на современном уровне технологии, не имеющая японских корней. За последние несколько лет, вокруг него образовалось большое и развесистое сообщество англоязычных авторов реная, наклепавшее уже более 180 изданий различного качества, в том числе несколько коммерческих проектов. Это обусловлено наличием подробной, внятной документации на английском языке, очень хорошей поддержкой сообщества пользователей, и либеральной лицензией, (MIT) позволяющей публиковать коммерческие игры с измененным кодом движка без ограничений.

Основное преимущество RenPy — это то, что он сделан как надстройка поверх скриптового языка Python, и благодаря этому, он работает везде где работает комбинация Python+SDL+Pygame, т.е. на любом настоящем компьютере и на многих игрушечных. Благодаря этому, он легко расширяется и может быть использован для гибридизации реная с любым подвидом собственно игр, что в случае OnScripter и компании требует достаточно сложных манипуляций. Это же является основным его недостатком, поскольку повышает минимальные системные требования — далеко не всякому смартфону такой коктейль по зубам.

RenPy идет в комплекте с готовой системой разработки — редактор с подсветкой синтаксиса, система сборки, которая дает на выходе по одному пакету на каждую поддерживаемую платформу или один универсальный, и многое другое. Пакеты полностью самодостаточны и годны к упаковке на диск — или для скачивания — немедленно. В настоящий момент, готовится система ускорения его работы посредством OpenGL 2 и новые версии выходят с периодичностью около раза в месяц.

Движок не имеет никаких проблем с русским — или любым другим — языком, изначально рассчитан на кодировку UTF-8 и поддерживает перевод интерфейса. Часть документации даже переведена на русский язык. Уже одного этого достаточно, чтобы рекомендовать его как основной вариант для русскоговорящих авторов.

Blade Engine

Blade Engine — странное чучело на постном масле, тем не менее, это, пожалуй, самый простой движок классического типа из доступных ныне владеющим английским языком и английской документацией.

Самый простой и самый примитивный, он тем не менее поддерживает некоторый необходимый минимум возможностей, что, пожалуй, является его единственным преимуществом. Хотя, если вас интересует изготовление реная, но тошнит от программирования, сейчас вас гораздо больше устроит Novelty, описанный ниже — в отличие от всех остальных упомянутых здесь движков, Blade Engine не поддерживает ничего кроме кодировки ISO-8859-1, т.е. кириллицей не владеет. Хотя в FAQ написано, что в будущем они планируют поддержку UTF-8, это обещание датировано 2006 годом, и с тех пор воз и ныне там. Коммерческая лицензия и необходимость платить деньги чтобы получить полную версию снижает его привлекательность ниже плинтуса.

Novelty

Novelty — единственный движок для реная, в котором автор попытался отойти от понятия скрипта как такового. Вместо этого, программирование на нем представляет собой нечто вроде работы в PowerPoint или Flash, где автор видит результат своей работы немедленно, и не столько пишет текст, сколько конструирует слайды. Это как преимущество так и недостаток — значительно упрощая процесс создания готового реная, он сильно теряет в гибкости. Тем не менее, кому-то он может показаться наиболее привлекательным вариантом.

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

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

Заключение

Несмотря на то, что выбор невелик, потребности заниматься программированием у автора реная на русском языке нет уже давно.

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


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

  2. Я пытался уговорить автора сделать поддержку SVG, что сделало бы возможными многие интересные фокусы, но он пока упрямится. Тем не менее, думаю что это еще впереди. 

Комментарии

аватар brannt

Надо бы, наверное, еще про KiriKiri написать, это сейчас один из основных движков у додзинщиков, да и среди профессионалов популярен: на нём сделан Fate/stay night, к примеру. Формат хранения данных его давно известен, у insani на сайте лежат тулзы для распаковки, в скриптах поддержка Unicode. Для создателей самобытных новелл Ren’Py, скорее всего, интереснее, но тем, кто планирует переводить что-то японское, знать про KiriKiri просто необходимо.

аватар mihara

@brannt: Ну, эту статью я в основном писал для самобытных, а потому оставил KiriKiri за бортом — к нему документации на не-японском нет, так что писать на нем что-то новое — не для слабонервных занятие…