Експорт пакетів, патчів та модів

Випадки використання

Часто хотілося б додати функціональності до своєї гри після її розгортання.

Наприклад...

  • Зміст, який можна завантажити: можливість додавати функції та вміст у гру.

  • Патчі: можливість виправити помилку, яка присутня у створеному продукті.

  • Моди: надайте іншим людям можливість створювати контент для своєї гри.

Ці інструменти допомагають розробникам розширити свою розробку після початкового випуску.

Огляд файлів PCK

Godot дозволяє це через функцію, що називається пакетами ресурсів (файли PCK, з розширенням .pck).

Переваги:

  • покрокові оновлення / виправлення

  • пропонує DLC

  • пропонує підтримку модів

  • не потрібне розкриття вихідного коду для модів

  • більш модульна структура проєкту

  • користувачі не повинні замінювати всю гру

Перша частина їх використання включає експорт та доставку проєкту до гравців. Потім, коли хтось хоче додати функціональність, або вміст, пізніше, вони просто доставлять оновлення через файли PCK користувачам.

Файли PCK зазвичай містять, але не обмежуються:

  • скрипти

  • сцени

  • шейдери

  • моделі

  • текстури

  • звукові ефекти

  • музику

  • будь-який інший актив, придатний для імпорту в гру

Файли PCK можуть бути навіть зовсім іншим проєктом Godot, який завантажує оригінальна гра під час виконання.

Генерування файлів PCK

Щоб запакувати всі ресурси проекту у файл PCK, відкрийте проект, перейдіть до Project/Export і натисніть «Export PCK/Zip». Також переконайтеся, що при цьому вибрано шаблон експорту.

../../_images/export_pck.webp

Іншим методом буде export from the command line. Якщо вихідний файл закінчується розширенням файлу PCK, або ZIP, то процес експорту створить тип файлу для обраної платформи.

Примітка

Якщо хтось хоче включити підтримку модів для своєї гри, то він може потребувати від своїх користувачів створення аналогічних експортованих файлів. Якщо припустити, що оригінальна гра очікує певної структури ресурсів PCK та/або певного інтерфейсу для її скриптів, то будь-який…

  1. Розробник повинен оприлюднити документацію цих очікуваних структур/інтерфейсів, розраховувати, що модери встановлять Godot Engine, а потім також очікувати, що ці модери будуть відповідати визначеній документацією API при створенні модів для гри (щоб він працював). Потім користувачі будуть використовувати компілятор Godot для експорту інструментів для створення файлу PCK, як детально описано вище.

  2. Розробник використовує Godot для створення графічного інтерфейсу інструмента для додавання свого вмісту API до проекту. Цей інструмент Godot повинен або бути вбудованим у збірку рушія з підтримкою інструментів, або мати доступ до неї (розповсюджуватися разом з оригінальними файлами гри або, можливо, серед них). Потім інструмент може використовувати виконуваний файл Godot для експорту PCK-файлу з командного рядка за допомогою OS.execute(). Сама гра не повинна використовувати інструментальну збірку рушія (з міркувань безпеки), тому краще тримати інструмент для модифікації окремо від гри.

Відкриття файлів PCK під час виконання

Щоб імпортувати файл PCK, використовується синглтон ProjectSettings. Наступний приклад очікує на файл mod.pck в каталозі виконання гри. Файл PCK містить у своєму корені тестову сцену mod_scene.tscn.

func _your_function():
    # This could fail if, for example, mod.pck cannot be found.
    var success = ProjectSettings.load_resource_pack("res://mod.pck")

    if success:
        # Now one can use the assets as if they had them in the project from the start.
        var imported_scene = load("res://mod_scene.tscn")

Попередження

За замовчуванням, якщо ви імпортуєте файл із тим самим шляхом/іменем файлу, який уже є у вашому проекті, імпортований файл замінить його. На це слід звернути увагу під час створення DLC або модів. Ви можете вирішити цю проблему за допомогою інструменту, який ізолює моди до певної підпапки mods. Однак це також спосіб створення патчів для власної гри. PCK-файл такого типу може виправити вміст попередньо завантаженого PCK.

Щоб відмовитися від цієї поведінки передайте false в якості другого аргумента в ProjectSettings.load_resource_pack().

Примітка

Для проєкту C# вам потрібно створити DLL і розмістити його спочатку в каталозі проєктів. Потім перед завантаженням пакета ресурсів потрібно завантажити його DLL наступним чином: Assembly.LoadFile("mod.dll")

Підсумок

Цей підручник пояснює, як додавати модифікації, патчі або DLC до гри. Найважливіше — визначити, як хтось планує розповсюджувати майбутній вміст для своєї гри, і розробити робочий процес, налаштований для цієї мети. Godot має зробити цей процес гладким незалежно від того, який шлях розробник прагне.