Renpy приложение не установлено
Данная статья была написана мной более года назад в качестве отчёта о практике для универа. В кои-то веки я решил её опубликовать. Надеюсь, ещё не совсем потеряла актуальности :/
В связи со спецификой появления, думаю, во избежание лишних вопросов мне стоит пояснить, что САФУ/NArFU — это название университета, а ИСМАРТ — конкретный институт в его составе, где я учусь. Стиль изложения также может несколько отличаться от моих обычных публикаций, так как подразумевалось, что читать текст будут люди совсем далёкие от игр и современной сетевой культуры.
Также для основной версии сайта я прикрутил подсветку синтаксиса (на lite- и pda-версиях не работает), но Ren'Py — довольно специфичный язык, поэтому используется подсветка от Python'а. В итоге подсвечены будут, по сути, только строки и некоторые совпадающие ключевые слова.
Если при чтении возникнут какие-то проблемы или вопросы по коду, то можно скачать архив с примерами. Он упакован в формат 7z, потому что, в отличие от zip'а, тот умеет упаковывать идентичные файлы так, чтобы они занимали место, как один.
Гайд по созданию визуальной новеллы
Здравствуй, дорогой читатель! Возможно, ты уже слышал о такой широко известной в узких кругах видеоигре от отечественных разработчиков, как «Бесконечное лето» (Everlasting Summer)? Впрочем, если нет, то ничего страшного: я расскажу о ней вкратце.
Как гласит официальный сайт, «„Бесконечное лето“ — это визуальная новелла от российских разработчиков, дарящая самые искренние и светлые переживания об ушедших днях и надеждах, которым ещё предстоит сбыться». Поясняю:
- Визуальный роман (но чаще встречается вариант с англицизмом: визуальная новелла) — это жанр компьютерных игр, в котором упор делается на текстовый контент, сдобренный порциями аудиовизуального сопровождения. По сути, это скорее книги, чем игры, но обильно снабжённые иллюстрациями, анимацией, музыкой и звуками окружающего мира. Также, в отличие от книг, представители данного жанра обычно имеют нелинейный сюжет с несколькими концовками, и исход зависит от выборов игрока.
- «Бесконечное лето» повествует историю об одном асоциальном человеке, волею судеб оказавшемся в загадочном пионерлагере. Многим игра нравится именно атмосферой, позволяющей почувствовать себя пионером либо поностальгировать о временах былой молодости.
Однако мы здесь собрались вовсе не для того, чтобы слушать рекламу и хвалебные оды, не так ли? Так что перейдём ближе к сути.
«Бесконечное лето» написано на бесплатном движке Ren'Py. Это специальный движок, предназначенный для создания визуальных романов сценаристами, далёкими от программирования. Он имеет предельно простой синтаксис и множество встроенных средств для реализации практически всех функций, которые могут понадобиться в подобных играх. Тем не менее, сам движок свободен (open source) и расширяем, предоставляя возможность пользоваться всей мощью языка Python, на котором он написан.
В этом небольшом гайде мы рассмотрим базовые возможности Ren'Py, а также слегка коснёмся темы создания модификаций к игре «Бесконечное лето».
Для того, чтобы начать создавать игры на Ren'Py, первым делом скачай и установи/распакуй набор для разработчиков с официального сайта. После запуска покажется такое окно:
Это Ren'Py Launcher — программа, из которой можно запустить любой из разрабатываемых проектов, открыть папку с ним или сразу перейти к редактированию скриптов. Все команды написаны на простом английском языке, не выходящем за рамки даже слабой школьной российской программы, так что не вижу смысла на них останавливаться. К тому же в настройках можно включить кривой перевод на русский язык.
Создай новый проект, укажи папку (желательно, без кириллицы, но это не обязательно), имя проекта (вот тут только латиница!) и выбери любую тему (это непринципиально).
Ren'Py уже при создании производит базовую настройку проекта, предоставляя интерфейс для меню, стили по умолчанию и т. д. Можешь посмотреть файлы скриптов, которые он создал:
- В options.rpy находится большинство настроек: размеры окна, стили, переходы по умолчанию и т. д.
- В screens.rpy описываются меню, диалоговое окно и прочие «экраны».
- script.rpy предназначен, собственно, для самого скрипта-сценария романа.
Вообще, это всё условно. Все файлы проекта находятся в папке game и Ren'Py читает там все файлы с расширением *.rpy, так что можно разбивать скрипты на любое количество файлов.
Я бы мог рассказать ещё про основы языка Python, как сделано в документации, но всё, что нам понадобится для базового знакомства, интуитивно-понятно или будет пояснено в месте применения. Так что предлагаю просто нажать по ссылке на scripts.rpy в «лончере» (launcher), выбрать редактор (любой, я вообще пользуюсь Sublime Text 3 с плагином) и приступим к созданию твоего первого творения на Ren'Py!
Текст, картинки, переходы
Сотри всё, что уже есть в файле: мы начнём с нуля.
Для упорядочивания кода Ren'Py пользуется системой меток (привет, ассемблер и GOTO!). При выборе кнопки «Начать игру» в главном меню игры, которое отображается сразу после запуска, управление передаётся на метку start:
Что мы видим? После объявления метки start начинается принадлежащий ей блок кода, строки которого обладают отступом в 4 пробела. Внутри блока расположены речевые конструкции (say statements), с помощью которых выводится текст.
В первой и третьей строчках (блока) располагаются слова автора или рассказчика. Фраза просто заключается в двойные кавычки (если внутри фразы нужно вывести кавычки, то они предваряются обратным слешем: \").
Во второй и четвёртой строках находится фраза персонажа под именем Аня. Видно, что имя персонажа, так же заключённое в двойные кавычки, и его фраза отделяются пробелом.
Возникает первая проблема: постоянно приходится повторять имя персонажа (а в больших сценариях с более длинными именами это реально представляет проблему). Ну и сразу обращаю внимание на вторую: все персонажи отображаются абсолютно одинаково, без какой-либо толики индивидуальности. Решим обе эти проблемы:
В самое начало я добавил новую строку, которая определяет (define) нового персонажа (character) и задаёт ему имя и красноватый цвет имени (color). Новый персонаж присваивается короткой переменной a, которая теперь используется в речевых конструкциях вместо имени. Обратите внимание, что определения (что персонажей, что изображений, как мы увидим позже) пишутся вне любых меток, так как выполняются во время инициализации (немного про это будет сказано позже).
Что же у нас получилось?
Хм, надо бы избавиться от этих шашечек и добавить собственный фон. Я использую, например, фотографию крыльца своего института, найденную в Интернете. Закинь любое изображение достаточного размера в папку images внутри папки game. Внутри этой папки Ren'Py сканирует все изображения и по определённым правилам создаёт для них имена, но для наглядности мы определим фон вручную. Самый простой способ:
image bg ismart = 'images/ismart.jpg'
Просто путь к файлу! Но если мы сделаем так, то получим странную картину:
Виной всему слишком большой размер изображения. Поэтому придётся немного усложнить определение. Вот весь код:
Во! Теперь всё в порядке:
Теперь объясню, что делает добавленный код и как вообще происходит отображение. Всего появились две новые строчки: конструкция с image и конструкция с scene:
- image, собственно, определяет изображение. Между ключевым словом и знаком равенства помещается имя отображаемого объекта. С ним не всё так просто. Как мы увидим дальше, в играх такого жанра, часто используются так называемые спрайты, то есть изображения персонажей с разными эмоциями и одеждой. Соответственно, частой операцией является смена спрайтов одного персонажа. По этой причине название изображения для Ren'Py состоит из, собственно, имени и атрибутов, разделённых пробелами. Всё это станет понятнее, когда будем рассматривать спрайты. А сейчас достаточно понять, что bg — название изображения, ismart — атрибут.
- scene, как понятно из названия, предназначен для смены сцены. Выражение с этим словом очищает экран от любых других изображений и выводит указанное (обычно фон, хотя может и не выводить ничего).
- im.Scale(d, width, height) — функция масштабирования, которая принимает отображаемый объект (displayable), в частности изображения, и изменяет его размеры к указанной ширине (width) и высоте (height). Сразу замечу, что существует аналогичная функция без префикса im.* (вне объекта im), которая отличается тем, что производит расчёты при каждом отображении и не сохраняет результат вычислений при определении.
- config.screen_width и config.screen_height — две переменные в объекте конфигурации, хранящие заданные в настройках ширину и высоту экрана игры (их легко можно найти в options.rpy).
Надеюсь, я объяснил достаточно понятно. Давай теперь поиграем со стилями? Открой screens.rpy, найди в самом начале описание экрана диалогов (screen say) и удалим всё «лишнее», добавив немного своего (выделено полужирным):
Рассмотрение стилей, к сожалению, выходит за рамки данного гайда, так что я не стану ничего пояснять. Будем считать, что разобраться в работе стилей будет твоим домашним заданием ;)
Ну а своим вандализмом мы добились такого цветастого безобразия без меню и возможности переключения режима отображения имени персонажа (в том же окне или в отдельном) из сценария:
Мы обязательно должны рассмотреть отображение спрайтов, изменение места их расположения и переходы, но искать спрайты в Интернете мне лень, так что рассмотрим этот материал внутри обещанного блока про создание модификаций для «Бесконечного лета».
Прежде всего скачай саму игру: либо через сервис цифровой дистрибуции Steam, либо через торрент-трекер Rutracker. Актуальные ссылки можно всегда найти на официальном сайте. Далее зайди в папку с игрой (для версии из Steam это \SteamApps\common\Everlasting Summer ). Там обычная структура файлов игры на движке Ren'Py. Заходим в game, как и прежде, а оттуда в папку mods. Скопируй туда scripts.rpy нашего проекта. Можешь даже его как-нибудь переименовать — не суть.
Теоретически можно создать наш файл со скриптом в любом месте внутри папки game, но давай будем придерживаться соглашений. К тому же, нам надо перекинуть и картинку. Создай папку narfu_images рядом с файлом скрипта и скопируй туда наш фон.
В последних сборках игры добавлен загрузчик модификаций, так что нам нужно лишь дать ему знать, что мы есть за скрипт. Открой файл в любимом текстовом редакторе. Пришло время познакомиться с блоками инициализации и запуском кода на Python!
Определение изображений и персонажей, как было сказано в примечании ранее, автоматически размещается в блоке инициализации, который выполняется до загрузки игры. Соответственно, это то самое место, где наш скрипт будет заявлять о себе. Добавь этот код в самое начало скрипта:
Блок инициализации объявляется ключевым словом init. Если дальше идут выражения на языке Python, а не на Ren'Py, то добавляется слово python. Вообще, в любом месте блоки кода на Python объявляются с помощью этого слова. Другой путь написать одиночную команду на Python — использовать знак доллара ($) в начале строки.
В примере выше я вместо слова python явно задал приоритет блока. Блоки выполняются от меньшего приоритета к большему. По умолчанию подразумевается блок с нулевым приоритетом. Порядок выполнения блоков с одинаковым приоритетом не гарантирован и может быть случайным.
Теперь объясняю саму команду. Переменная mods — это специальный список «ключ-значение», где перечисляются все модификации. Ключ должен быть уникальным значением на латинице без пробелов и в кавычках. Значение — название мода для отображения в загрузчике модификаций. Ключ играет роль названия метки при запуске мода, так что исправь label start на label narfu_practice. Также давай уберём определение персонажа a. Он нам больше не понадобится.
Теперь сделаем магию! Вставляй в редактор оставшийся код и запускай игру через меню модификаций в настройках!
С чего бы начать? «Бесконечное лето» предоставляет интерфейс, персонажей, спрайты к ним, фоны и музыку. Здесь мы пока использовали только первые три пункта.
dv — это персонаж и тег изображений для Алисы Двачевской. Соответственно, scared, raged и pioneer — это атрибуты. Вообще, названия всех спрайтов в игре строятся по следующему плану: короткое_имя_персонажа эмоция одежда . Полный список спрайтов можно найти в знаменитых уроках LolBot'а (один из программистов игры, создатель системы модификаций). Официальной ссылки, насколько мне известно, не существует, а прочие быстро станут не актуальны, так что Google в помощь!
При показе второго изображения с таким же тегом, первое исчезает. Это нужно как раз для удобной смены эмоций, как сделано в нашем примере. Чтобы отобразить два одинаковых изображения, можно воспользоваться конструкцией show..as <новая метка> (см. следующий параграф).
Для отображения спрайтов используется ключевое слово show, похожее на scene, но не очищающее экран. Для обеих конструкций могут быть указаны переходы с помощью конструкции with. Строго говоря, изображение вообще отображается только после этой конструкции. Таким образом можно планировать показ нескольких изображений, для которых потом задавать один переход. Если with не встречается до следующего диалога, то Ren'Py использует with None, просто выводящий изображения мгновенно. А ещё его полезно использовать, когда нужно одно изображение отобразить мгновенно, а лишь второе — с переходом.
Ren'Py имеет ряд встроенных переходов (мы использовали dissolve и fade), а также позволяет создавать свои с помощью специальных функций (например, with Dissolve(0.5) для «растворения» одного изображения в другом за полсекунды). Всё это очень интересно, но выходит за рамки данного гайда. Смотри документацию, если хочешь знать больше!
Обрати внимание, как отображаются диалоги с изображениями в обоих случаях речи Алисы: в первом сначала рисуется персонаж, а затем печатается текст, а во втором — и текст, и персонаж переключатся с «растворением» одновременно.
Для того, чтобы диалоговое окно не мерцало при показе изображений, я использовал window show, которое держит окно всегда на экране. По умолчанию же оно показывается при отображении диалогов и скрывается при показе изображений, что я обратно и включаю в конце скрипта (надо помнить, что мод заканчивается, но игра продолжает выполняться, и мы обязаны всё вернуть в исходное состояние!).
Разумеется, существуют конструкции hide для скрытия изображении и window hide для скрытия диалогового окна.
А теперь давайте добавим второго героя, музыки и украшательств!
Прочитал комментарии? Я не буду пояснять про особенности игры, так как статья не об этом. Здесь мы обратим внимание позиционирование изображений, стилизацию текста и музыку.
Для проигрывания музыки и звуков существуют play music и play sound соответственно. Они принимают либо путь к файлу, либо список путей к файлам (в данном случае все пути к музыке из игры расположены в специальном списке, из которого мы берём конкретный). Для остановки используются stop music и stop sound, соответственно.
Музыка и звуки воспроизводятся на разных каналах, громкость которых игрок может регулировать в меню по отдельности. Ну а ещё звуки выполняются один раз, а музыка зацикливается. Разработчик же может регулировать не только громкость, но и скорость воспроизведения, баланс в колонках и многое другое. В том числе, можно создавать свои собственные каналы и играть несколько звуков одновременно.
Расположение спрайтов задаётся при показе либо с помощью at, либо в виде отдельного блока. В первом случае указывается предопределённое расположение (left или right, например), а во втором используется специальный язык ATL. Подробнее о нём можно прочитать в документации, а я лишь опишу базовое позиционирование, о котором также можно посмотреть наглядно в туториале, прилагаемом к Ren'Py SDK.
Положение изображений по обеим координатам задаётся с помощью двух точек: одной на изображении, называемой якорем (anchor), и второй на экране (pos). Задаётся либо с помощью целого числа, обозначающего координаты относительно верхнего левого угла экрана, либо с помощью дробного числа от нуля до единицы, обозначающего долю экрана, как сделано в примере.
Стилизация текста. Текст может содержать специальные теги, показывающие, как он должен отображаться. Для знакомых с языком HTML тут будет совсем просто: чаще всего используются точно такие же теги: , , , (для ссылок). Хотя есть и различия: . Просто. Также в тексте в квадратных скобках могут использоваться подстановки из переменных, определённых в коде. Если же есть необходимость использовать в тексте сами символы фигурных и квадратных скобках, но их нужно продублировать: >, [[, ]].
Внизу на картинке приведён результат. Неплохо получилось, не так ли?
За сим я, пожалуй, откланиваюсь. В Ren'Py есть ещё очень много всего интересного, но место в этой статье не резиновое. Дальше, дорогой читатель, можешь либо почитать документацию (если знаешь английский язык, конечно), либо искать обучающие видео и руководства от других людей.
Ren'Py поддерживает устройства с установленной операционной системой Android, например смартфоны и планшеты. Хотя эти устройства не поддерживают 100% возможностей Ren'Py, с минимальными изменениями визуальные новеллы могут быть упакованы и адаптированы на них.
RAPT (Ren'Py Android Packaging Tool) – программа, скачиваемая отдельно от Ren'Py, формирующая пакет приложения операционной системы Android для тестирования или выпуска.
Некоторые из библиотек, используемые Ren'Py в операционной системе Android, лицензируются на условиях GNU Lesser/Library General Public License. Для распространения Ren'Py вам будет необходимо соблюдать условия этой лицензии. Полагаем, что включение следующего упоминания в описание вашего приложения будет достаточно для этого. Однако для полной уверенности проконсультируйтесь по данному вопросу у юриста вашей страны.
Когда игра, созданная на Ren'Py, запущена на устройстве Android, то функционирует следующая привязка физических и сенсорных кнопок:
Home Возвращает пользователя на домашний экран Android, сворачивая игру. В рамках процесса сворачивания экрана, Ren'Py автоматически сохранит игру. При необходимости, сохранение будет автоматически загружено, когда пользователь вернётся в игру. Menu Открывает/скрывает внутриигровое меню. Back Откатывает назад последнее действие. Volume Up, Volume Down Управляет уровнем громкости на Android.
Существует немало важных различий между платформой Android для сенсорного экрана и платформами, управляемыми "мышью", которые поддерживает Ren'Py. Изменения, связанные с программным и аппаратным обеспечением операционной системы Android:
- Команды на сенсорном экране обрабатываются так же, и как команды "мыши". Однако они будут формироваться только в том случае, если пользователь активно касается сенсорного экрана.
- Воспроизведение видео доступно только в полноэкранном режиме и исключительно с мультимедийными форматами, поддерживаемыми устройствами с операционной системой Android. На этой странице приведён список поддерживаемых форматов видеофайлов.
- Ren'Py не поддерживает изменение уровня громкости устройства. Тем не менее физические кнопки регулировки уровня громкости на устройстве Android работают в штатном режиме.
- Ren'Py не может обрабатывать уровень прозрачности кнопок и объектов карт изображений. Это связано с проблемами производительности на некоторых устройствах с режимами отображения, нуждающимся в поддержке определения прозрачных пикселей.
Кроме того, существует несколько отличий, которые могут быть обусловлены человеческим фактором:
- Так как экраны смартфонов с установленной операционной системой Android могут быть меньше, чем компьютерный монитор, возможно потребуется увеличить размер выводимого на экран текста.
- Поскольку ввод команд на сенсорном экране менее точен, чем ввод команд с помощью "мыши", кнопки на сенсорном экране должны быть больше, чем на экране компьютерного монитора.
Чтобы помочь вам адаптировать эти различия на устройствах с операционной системой Android, Ren'Py для Android автоматически подбирает варианты экрана в зависимости от размера экрана устройства и его возможностей. Для получения дополнительной информации перейдите в раздел «Варианты экрана».
В целях тестирования Ren'Py поддерживает три режима эмуляции Android. Доступ к ним осуществляется с экрана Android-лаунчера.
Phone Этот режим эмулирует окружение телефона с установленной операционной системой Android. Эмуляция касания экрана выполняется с помощью нажатой клавиши "мыши". Кнопка клавиатуры "Escape" соответствует кнопке "Menu" устройства, а кнопка "Page Up" - кнопке "Back". Tablet Этот режим эмулирует окружение планшета с установленной операционной системой Android. Эмуляция касания экрана выполняется с помощью нажатой клавиши "мыши". Кнопка клавиатуры "Escape" соответствует кнопке "Menu" устройства, а кнопка "Page Up" - кнопке "Back". Television / OUYA Этот режим эмулирует окружение игрового устройства с установленной операционной системой Android, такой как консоль OUYA. Сочетания клавиш клавиатуры соответствуют сочетаниям клавиш джойстика или контроллера ввода для обеспечения навигации. Клавиша "Select" соответствует клавише "Enter", клавиша "Escape" - клавише "Menu", а клавиша "Page Up" - клавише "Back". В этом режиме также отображается наложение, показывающее небезопасную область экрана. Содержимое в небезопасной области экрана может не отображаться на всех моделях телевизорах.
Хотя эти режимы эмуляции можно использовать для быстрого тестирования вашего проекта в условиях различных устройств, для лучшего эффекта протестируйте его на реальном оборудовании. Эмуляторы не затрагивают проблемы, связанные с человеческим фактором, таким как размер пальцев пользователя.
Ren'Py содержит инструменты, которые помогут вам собрать пакет приложения, разработанного для Android. Для сборки пакета приложения и загрузки его на своё устройство вы будете использовать персональный компьютер. Затем вы можете запустить игру, как любое приложение для Android. Если всё работает корректно, вы можете загрузить созданный вами пакет в Google Play и другие магазины мобильных приложений.
Создание приложения для Android состоит из четырех этапов:
- Скачайте и установите Java Development Kit и Android USB Drivers.
- Используйте лаунчер для установки Android SDK и создания ключей.
- Используйте лаунчер для настройки процесса сборки пакета приложения для Android.
- Используйте лаунчер для сборки приложения для Android.
После того, как вы завершите эти шаги, у вас появится работающий пакет приложения для Android. Вам нужно выполнить третий шаг только тогда, когда вы решите внести изменения в настройки вашей игры, либо если потребуется полностью настроить новую игру. Чаще всего вы будете выполнять четвертый шаг при создании новой сборки вашей игры.
Перед началом сборки пакетов вам, возможно, потребуется вручную скачать и установить три следующих приложения:
Java Development Kit (JDK). Содержит несколько инструментов, которые используются RAPT, включая инструменты, используемые для генерации ключей и подписи пакетов. Его можно скачать с здесь. Вам понадобится версия 8 JDK. Просьба учесть, что JDK, ориентированный на разработчиков, отличается от JRE, ориентированный на пользователей. Для создания пакетов приложений для Android вам понадобится JDK. Устройство Android. Вам также понадобиться настроить устройство для разработки. Необходимо включить режим разработчика на своём устройстве и настроить свой компьютер для разработки под Android. Инструкцию по настройке вашего компьютера можно найти данному адресу. Вы также можете запустить своё приложение в x86_64 изображении на эмуляторе Android (обратите внимание, что x86 не поддерживается). Настройка эмулятора не входит в данный раздел.
Следующим шагом является настройка Android SDK и остальной среды разработки. Этот шаг включает в себя:
Этот шаг требует доступа в интернет.
Чтобы выполнить этот шаг, выберите «Установить SDK и создать ключи» на экране раздела «Android» в Ren'Py Launcher.
RAPT сообщит о процессе выполнения. Он также отобразит предупреждения о лицензиях и спросит, хотите ли вы, чтобы он сгенерировал ключ.
Предупреждение! Ключ, сгенерированный RAPT, создаётся со стандартной кодовой фразой. Вы действительно должны использовать keytool для генерации ваших собственных ключей подписи.
По крайней мере, вы должны хранить файл android.keystoreв надёжном месте. Вы также должны создать его резервную копию, потому что без ключа вы не сможете загрузить сгенерированные приложения.
Если не хотите загружать SDK каждый раз, то можете создать файл с именем sdk.txt, содержащий одну строку, которая является путём к уже установленному SDK.
Перед сборкой пакета игры, необходимо предоставить Ren'Py некоторую информацию о сборке Android для вашей игры. Для этого нажмите «Настроить» на экране раздела «Android» в Ren'Py Launcher.
Если вам нужно изменить информацию - например, если вы выпускаете новую версию своей игры - вы можете перезапустить команду configure. В таком случае ваши предыдущие выбранные пункты настроек будут сохранены.
Наконец, вы можете собрать и установить пакет приложения. Для этого подключите ваше устройство Android к компьютеру и нажмите «Собрать и установить» на экране раздела «Android» в Ren'Py Launcher. При первой установке ваше устройство Android может запросить авторизовать ваш компьютер для установки приложений.
Если вы хотите вручную скопировать apk-файл игры на ваше устройство Android, выберите «Собрать пакет» на экране раздела «Android» в Ren'Py Launcher. Затем перейдите в каталог bin внутри папки RAPT и скопируйте соответствующий файл на ваше устройство Android. Затем вам нужно найти файл с расширением .apk на вашем устройстве Android, используя приложение файлового менеджера, и открыть его для установки игры.
Ren'Py позволяет выбирать между двумя режимами выпуска - «Отладка» и «Релиз» . Режим отладки полезен для тестирования, поскольку позволяет легко использовать Android studio для просмотра журналов или файлов на устройстве. Релиз выпускает версию приложения, подходящую для загрузки в различные магазины.
При переключении между сборками «Отладка» и «Релиз» нужно удалить приложение.
Иконки Ren'Py создаст иконку из вашего приложения из двух файлов, размещённых в базовом каталоге игры: android-icon_foreground.jpg Слой переднего плана иконки. Должен быть 432x432 пикселей и прозрачным. android-icon_background.jpg Фоновый слой иконки. Должен быть 432x432 пикселей и непрозрачным.Предварительная заставка Предварительная заставка отображается перед полной загрузкой Ren'Py, перед запуском основного заставки. Это особенно важно для Android, поскольку при первом запуске Ren'Py распаковывает вспомогательные файлы, что занимает некоторое время. android-presplash.jpg Изображение, которое используется при загрузке приложения. Должно быть окружено одноцветной границей. Эта граница расширяется, чтобы заполнить экран.
Информация о работе архивов приложений с расширением .apk. На данный момент поддерживается только основное расширение APK, что даёт ограничение в 2 ГБ. При создании Expansion APK все файлы игры будут помещены в расширение APK. Ren'Py будет использовать эти файлы без перекодировки.
Чтобы настроить вашу игру на использование расширенных APK, вам нужно установить две переменные:
build.google_play_key = ". " Лицензионный ключ Google Play, связанный с вашим приложением, который можно найти на вкладке «Сервисы и API», связанной с вашим приложением в консоли разработчика Google Play. Обязательно удалите все пробелы и новые строки из ключа. build.google_play_salt = ( . ) Представляет собой кортеж из 20 байтов информации, где каждый байт представлен как целое число от -128 до 127. Эта переменная используется для шифрования информации о лицензии, возвращенной из Google Play. Допустимое (если незащищённое) значение для этой переменной:
RAPT разместит файл с расширением APK на устройстве при установке пакета APK на устройство. Расширение APK будет файлом с расширением .obb, найденным в подкаталоге bin каталога RAPT.
При нормальной работе Google Play автоматически размещает расширение APK на устройстве, когда пользователь устанавливает приложение.
Что делать, если игра не работает? Ниже попробуем разобраться с частыми проблемами и их решениями.
Не запускается игра, возникают торможения, также именуемые лагами,выдает
непонятную ошибку? Причин этого может быть предостаточно. Существует ряд
действий, которые позволят вам избавиться от проблем в работе игры:
1. После возникновения ошибки во время запуска перво-наперво следует перезагрузить компьютер, а затем попробовать включить игру заново. Как ни странно, простое действие частенько помогает вернуть приложение в рабочее состояние, ликвидируя возникшие проблемы.
2. Игра не запускается, если компьютер не соответствует минимальным системным требованиям. Стоит убедиться в том, что игра подходит для вашего ПК, перед тем, как предпринимать другие действия по устранению неполадок.
3. Ошибки могут быть вызваны наличием символов кириллицы в пути к игре. Убедитесь, что путь не содержит других символов, кроме латинских. При необходимости переустановите игру в новую папку.
4. Частой причиной проблем с игрой является нехватка программного обеспечения. Несвоевременные обновления драйверов на видеокарту, библиотек DirectX, технических программ Microsoft Visual C++ и Microsoft Net Framework – может отразиться на работоспособности приложения. Обязательно проверьте их версии и обновите при необходимости. Напомним, что файлы для обновления можно найти на сайтах производителей видеокарты или разработчиков ПО.
5. Иногда решить проблему с запуском помогает использование прав администратора. Перед их использованием стоит изменить режим совместимости игры. Это повысит шансы на удачу, исключит возможность новых ошибок и проблем.
6. Частой причиной невозможности загрузки или торможений является активность антивирусного ПО. Временное отключение защиты позволит избавиться от проблем.
7. Проблемы в работе приложения могут быть вызваны ошибками устройства памяти. Для того чтобы убедиться в их отсутствии следует провести дефрагментацию и проверку том на наличие ошибок.
8. Еще одним способом устранения неполадок может быть включение DEP для файла с расширением exe игры.
· Игра начинает тормозить, выдавать ошибки или вылетает во время настройки графики, значит – устройство не может работать при выбранных параметрах.
· Выход из игры во время миссии – явный признак проблемы с игрой. Устранить ее поможет выбор более качественного репака или установка обновления (только на лицензированные версии игры).
· Игра не может подключиться к серверам. Что же, скорее всего, проблема в интернет соединении. Следует проверить работу Интернета. В случае если все в порядке, а зайти на сервер все еще невозможно, следует немного подождать. Наверняка проблема связана с большим количеством игроков или какими-то техническими неполадками, решить которые могут только администраторы.
· Возникли проблемы с текстурами? Следует переустановить игру. Только так можно избавиться от этого бага.
· Низкий FPS (торможения в работе) могут проявляться не только при неправильных настройках графики, но и нехватке физической памяти. Избавиться от этой проблемы программно не получиться. Только улучшение аппаратной части самого компьютера позволит увеличить FPS (если уже и так выбраны минимальные настройки игры).
· Во время игры внезапно выскочил черный экран?Тогда ищите проблему в видеокарте или мониторе. Черный
экран – прямой показатель неспособности видеокарты справляться с нагрузкой.
Не помог ни один из вышеперечисленных советов? Тогда высока вероятность того, что вы используете некачественный репак. Воспользуйтесь отзывами других игроков, чтобы найти более популярную версию и переустановите игру.
Также могут быть особенности вашего ПК (кривой софт, ошибки, на грани поломки детали …), описывайте подробно проблему в комментариях к игре, будем разбираться.
Итак, на связи Знайка. Урок первый, основы. Зафиксировано.
Сегодня в уроке:
•Что такое Ren'Py?
•Как скачать Ren'Py?
•Как создать и настроить проект?
•Скрипты, настройки, экраны.
Что такое Ren'Py?
Кратко говоря, ренпай, это инди - разработка разработчика Py'Tom, в которой можно создать свою новеллу, программируя её на питоне (python).
Как скачать Ren'py?
Зайдите в браузер, наберите в поиск "скачать ренпай бесплатно". Первая ссылка - официальный сайт, на котором вы можете скачать любую существующую версию ренпая. Скачиваете заархивированный файл. (рекомендую zip). После распаковывает его, заходите в папку "renpy. (номер версии)"там ищете папку "renpy" в ней должно быть приложение ренпай. Все остальные файлы - кэш ренпая. Не в коем случае не удаляйте их!
Перед вами фото интерфейса, настроенного на английский язык. Если хотите его поменять, а, как мне кажется, вы хотите, нажмите "preferenses" и в колонне "language" поменяйте english на russian, или другой язык. Далее объясняю всё на русском.
В колонне "Проекты" вы можете увидеть два заранее созданных проекта: "Обучение" и "Вопрос". Обучение - проект, встроенный в программу, как обучение всем функциям ренпая. Вопрос - пример новеллы с двумя концовками - хорошей и плохой. У меня среди них ещё один проект, но он мой и создал я его сам. Под списком проектов - кнопка "+ Добавить новый проект", которая, как вы поняли и позволяет добавить проект.
Слева от проектов меню управления этими самыми проектами. Там вы можете изменить скрипты, экраны и настройки. (Редактировать файл: skript.rpy/options.rpy/gui.rpy/screens.rpy) .Об этом позже. В правом нижнем углу вы найдете кнопку "Запустить проект", при помощи которой можно поиграть в новеллу. Остальные элементы меню пока нам не пригодятся.
Как создать и настроить проект?
В пункте выше я уже упоминал кнопку "+Добавить новый проект". Нажмите на неё. Вам вылезет информация о используемом языке. Вы можете создать проект на выбранном языке, или английском. Т.к. изначально выбран английский, изначально вы сможете создать проект только на нём.
Далее вылезает окно "имя проекта".
Я назвал проект "tutorial1"
Далее настраиваем разрешение. Так как не все устройства поддерживают 1920×1080, ренпай рекомендует использовать разрешение 1280×720.
Далее настраиваем основной цвет проекта, режим экрана и скорость текста, который будет печататься в диалоговом окне.
После данные обрабатываются секунд 15-30.
Далее вас кидает в главное меню, где вы можете увидеть свой проект.
Как вы видите, в списке моих проектов помимо прочих появился "tutorial1".
Поздравляю с созданием проекта!)
О настройках, скриптах и экранах.
В колонне "редактировать файл" в главном меню есть перечень файлов. Нажимаем на "все файлы сценария". Далее выбираем текстовый редактор питона. Рекомендую редактор "Editra" (хороший и лёгкий).
Сейчас расскажу про три основных элемента сценария:
Здесь вы будете программировать саму новеллу, диалоги, события и т.п.
Сдесь настроено всё, что можно настроить. Если хотите что-то поменять, просто меняйте значение.
Тут собраны все настройки экранов, например экрана "да/нет", или диалогового окна.
Во всём этом будем разбираться в следующих уроках)
Анонс следующего урока:
Простейший пример новеллы, переменные, текст, картинки, меню выбора и концовки.
Читайте также: