Сборка дистрибутивов (Building Distributions)
Ren'Py включает поддержку создания игровых дистрибутивов. После выбора «Построить дистрибутивы» в Ren'Py Launcher, Ren'Py просканирует себя и проект, чтобы определить файлы для включения в дистрибутив, создаст все необходимые архивы, а также создаст пакет и обновит файлы.
При отсутствии конфигурации Ren'Py может создавать следующие типы пакетов:
- Windows и Linux
-
- Заархивированный файл для Windows x86, Linux x86 и Linux x86_64.
- Linux x86/x86_64
-
- Файл в формате tar.bz2 для Linux x86 и Linux x86_64.
- Macintosh x86_64
-
- Заархивированный файл, содержащий приложение Macintosh, предназначенное для Macintosh OS X на процессорах Intel. Игровые данные будут включены в приложение, которое отображается пользователю в виде одного файла.
- Windows x86
-
- Заархивированный файл для Windows x86.
- Windows, Mac и Linux для рынков программного обеспечения
-
- Дистрибутив, содержащий информацию, необходимую для работы на рынках программного обеспечения, таких как itch.io и Steam. Не предназначен для запуска напрямую (и, вероятно, не будет работать на Mac), но должен быть включен в процесс загрузки из магазина приложений.
Предупреждение! Файлы zip и tar.bz2, которые создаёт Ren'Py, содержат информацию о разрешениях, которая должна присутствовать для запуска Ren'Py в Linux и Macintosh. Распаковка и переупаковка заархивированного файла в Windows, а затем запуск его в Linux или Macintosh не поддерживаются.
Базовая конфигурация (Basic Configuration)[править | править код]
Процесс сборки можно настроить, установив переменные и вызвав функцию, работающие в пространстве имён сборки. Это должно быть сделано изнутри блока init python. Настройки по умолчанию для этих конфигураций задаются в файле options.rpy.
Есть несколько основных переменных и функций, которые будут использоваться во многих играх.
- build.name = "..."
- Используется для автоматического создания build.directory_name и build.executable_name, если ни то, ни другое не установлено. Не должна содержать пробелов, двоеточий или точек с запятой.
- build.directory_name = "..."
- Используется для создания имён каталогов в архивных файлах. Например, если задано значение "mygame-1.0", то версия проекта для Linux будет распакована в "mygame-1.0-linux".
- Также используется для определения имени каталога, в котором находятся файлы пакета. Например, если вы установите для build.directory_name значение mygame-1.0, архивные файлы будут помещены в mygame-1.0-dists в каталоге над базовым каталогом.
- Переменная не должна содержать специальных символов, таких как пробелы, двоеточия и точки с запятой. Если не установлено, по умолчанию build.name a dash и config.version.
- build.executable_name = "..."
- Переменная управляет именем исполняемых файлов, которые пользователь нажимает для запуска игры.
- Переменная не должна содержать специальных символов, таких как пробелы, двоеточия и точки с запятой. Если не установлено, по умолчанию используется build.name.
- Например, если для этого параметра установлено значение "mygame", пользователь сможет запустить mygame.exe в Windows, mygame.app в Macintosh и mygame.sh в Linux.
Специальные файлы (Special Files)[править | править код]
Есть два файла, которые могут быть включены в базовый каталог вашей игры для настройки сборки:
- icon.ico
- Иконка, которая используется в Windows.
- icon.icns
- Иконка, которая используется в Macintosh.
Эти файлы иконок могут быть в определенных форматах. Для их преобразования вам потребуется использовать программу или веб-сервис, например [1].
Классификация и игнорирование файлов (Classifying and Ignoring Files)[править | править код]
Процесс сборки работает путём первоначальной классификации файлов в дистрибутиве Ren'Py и вашей игры в списки файлов. Затем эти списки файлов добавляются в файлы пакетов.
Классификация выполняется функцией build.classify. Она принимает шаблоны и разделенный пробелами список имён файлов. Шаблоны сопоставляются от первого до последнего, причём первое совпадение имеет приоритет (даже если за ним следует более конкретный шаблон). Шаблоны сопоставляются с и без начального /.
Шаблоны могут содержать следующие специальные символы:
- /
- Разделитель каталогов.
- *
- Соответствует всем символам, кроме разделителя каталогов.
- **
- Соответствует всем символам.
Например:
- **.txt
- Соответствует всем файлам с расширением .txt.
- game/*.txt
- Соответствует файлам с расширением .txt в директории игры.
Существует семь списков файлов, по которым файлы можно классифицировать по умолчанию. Ren'Py помещает свои собственные файлы в первые шесть из них.
- all
- Эти файлы будут включены во все пакеты, а также в сборку Android.
- linux
- Эти файлы будут включены в пакеты для Linux.
- mac
- Эти файлы будут включены в пакеты для Macintosh.
- windows
- Эти файлы будут включены в пакеты для Windows.
- renpy
- Эти файлы будут включены в пакеты, которые требуют файлы движка Ren'Py (Linux, Macintosh и Windows.)
- android
- Эти файлы будут включены в сборку Android.
- archive
- Эти файлы будут включены в архив archive.rpa.
Файлы, которые не классифицированы как-либо иначе, помещаются в список "all" файлов.
Чтобы исключить файлы из распространения, классифицируйте их как None или пустую строку. Например:
# Включите README.txt
build.classify("README.txt", "all")
# Но исключите все остальные файлы с расширением txt.
build.classify("**.txt", None)
# Добавьте файлы с расширением .png и .jpg из директории игр в архив.
build.classify("game/**.png", "archive")
build.classify("game/**.jpg", "archive")
Документация (Documentation)[править | править код]
Вызов функции build.documentation с шаблонами помечает файлы, соответствующие этим шаблонам, как документацию. Файлы документации включены в приложение Macintosh дважды - как внутри, так и снаружи самого приложения.
Например, чтобы пометить все файлы с расширением .txt и .html в базовом каталоге как документацию, вызовите:
build.documentation("*.txt")
build.documentation("*.html")
Пакеты (Packages)[править | править код]
Также можно добавить новые типы пакетов в процесс сборки Ren'Py. Это делается путём вызова функции build.package с именем пакета, типом и строкой, содержащей включаемые списки файлов.
Скажем, вы хотите создать нормальную версию вашей игры, в которой будет бонусный материал. Вы можете классифицировать бонусные файлы в список «bonus» файлов, а затем объявить пакет all-premium с:
build.package("all-premium", "zip", "windows mac linux all bonus")
Поддерживаемые типы пакетов – "zip" и "tar.bz2" для создания файлов в этих форматах, а также "directory" для создания каталога, заполненного файлами.
Архив (Archives)[править | править код]
Ren'Py поддерживает объединение файлов в простой архивный формат. Хотя это не очень безопасно, это защищает файлы от случайного копирования. По умолчанию все файлы, отнесенные к списку файлов "archive", будут помещены в архив archive.rpa, который включён в список всех файлов.
Вызывая build.archive, можно объявить новые архивы и списки файлов, в которые они будут включены. Однако редко можно использовать что-либо кроме списка всех файлов. Чтобы использовать архив, классифицируйте файлы в список с его именем.
Например, следующий код заархивирует изображения в images.rpa, а игровые скрипты в scripts.rpa:
# Объявите два архива.
build.archive("scripts", "all")
build.archive("images", "all")
# Поместите файлы скриптов в архив скриптов.
build.classify("game/**.rpy", "scripts")
build.classify("game/**.rpyc", "scripts")
# Поместите изображения в архив изображений.
build.classify("game/**.jpg", "images")
build.classify("game/**.png", "images")
Если архивный файл пуст, он не будет создан.
Пожалуйста, подумайте дважды об архивации вашей игры. Сохранение открытых файлов поможет другим запустить вашу игру на будущих платформах – платформы, которые могут не существовать, пока вас не станет.
Требования (Requirements)[править | править код]
Некоторые магазины запрашивают требования для запуска приложений, созданных на Ren'Py. Хотя это варьируется от игры к игре, вот набор минимальных требований для визуальных новелл.
- Windows
-
- Версия: Windows XP или выше.
- Процессор: 2.0 GHz Core 2 Duo
- Оперативная память: 2.0 GB
- Графика: OpenGL 2.0 или DirectX 9.0c
- macOS
-
- Версия: 10.6+
- Процессор: 2.0 GHz Core 2 Duo (только 64 -bit)
- Оперативная память: 2.0 GB
- Графика: OpenGL 2.0
- Linux
-
- Версия: Ubuntu 12.04+
- Процессор: 2.0 GHz Core 2 Duo
- Оперативная память: 2.0 GB
- Графика: OpenGL 2.0
Объем требуемого дискового пространства полностью зависит от ресурсов в вашей игре, и объем требуемого процессора и оперативной памяти также может варьироваться.
Функции build (Build Functions)[править | править код]
build.archive(name, file_list=u'all')
- Объявляет о существовании архива. Если один или несколько файлов классифицированы по name, name.rpa создаётся как архив. Архив включён в список именованных файлов.
build.classify(pattern, file_list)
- Классифицирует файлы, которые соответствуют pattern, в file_list.
build.clear()
- Очищает список шаблонов, используемых для классификации файлов.
build.documentation(pattern)
- Объявляет шаблон, соответствующий документации. В сборке приложения для Mac файлы, соответствующие шаблону документации, хранятся дважды - один раз внутри пакета приложения и снова вне его.
build.executable(pattern)
- Добавляет шаблон маркировки файлов как исполняемые на платформах, которые его поддерживают (Linux и Macintosh).
build.package(name, format, file_lists, description=None, update=True, dlc=False, hidden=False)
- Объявляет пакет, который может быть собран инструментом упаковки.
- name
- Имя пакета.
- format
- Формат пакета. Строка, содержащая список, разделенный пробелами:
- name
- Имя пакета.
- zip
- Заархивированный файл
- tar.bz2
- Файл с расширением tar.bz2.
- directory
- Каталог, содержащий файлы.
- dmg
- Macintosh DMG, содержащий файлы.
- app-zip
- Заархивированный файл, содержащий приложение для Macintosh.
- app-directory
- Образ диска macintosh, содержащий dmg (только для Mac.)
- Пустая строка не будет создавать форматы пакетов (это делает возможным использование dlc).
- file_lists
- Список, содержащий списки файлов, которые будут содержаться в пакете.
- description
- Необязательное описание создаваемого пакета.
- update
- Если принимает значение True и создаются обновления, то для этого пакета будет создано обновление.
- dlc
- Если принимает значение True, любой файл с расширением zip или tar.bz2 будет построен в автономном режиме DLC без каталога обновления.
- hidden
- Если принимает значение True, это будет скрыто из списка пакетов в Ren'Py Launcher.
Дополнительная настройка (Advanced Configuration)[править | править код]
Следующие переменные обеспечивают дополнительный контроль над процессом сборки:
build.exclude_empty_directories = True
- Если принимает значение True, пустые каталоги (включая каталоги, оставленные пустыми при архивировании файлов) будут удалены из созданных пакетов. Если принимает значение False, пустые каталоги будут включены.
build.destination = "{directory_name}-dists"
- Указывает путь к каталогу, в который будут помещены архивные файлы. Это может быть абсолютный или относительный путь. Относительный путь считается относительным к каталогу проектов.
- Следующие значения подставляются при использовании функции str.format в Python.
- {directory_name}
- Значение build.directory_name.
- {executable_name}
- Значение build.executable_name.
- {version}
- Значение build.version.
build.allow_integrated_gpu = True
- Позволяет Ren'Py работать на интегрированном графическом процессоре на платформах с интегрированными и дискретными графическими процессорами. В настоящее время это поддерживается только в Mac OS X.
build.include_old_themes = True
- При значении True в сборку будут включены файлы, необходимые для поддержки тем, существовавших до Ren'Py 6.99.9. При значении False такие файлы исключаются.
- Принимает значение False при вызове gui.init().
build.itch_project = None
- Установка этого параметра позволяет Ren'Py Launcher загружать ваш проект в itch.io. Должна быть установлена на имя проекта, зарегистрированного в itch. Например, "renpytom/the-question".
- Как только это будет установлено, после того, как дистрибутивы будут построены, вы можете нажать «Построить дистрибутивы», «Загрузить в itch.io», чтобы вызвать загрузку.
Источник[править | править код]
Статья "Building Distributions" на английском языке.
На главную страницу | Официальная документация движка | Вернуться к началу статьи |