Как настроить автоматическое обновление игр

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

Для этого используются профили развёртывания. Вы обновляете игру в папке на сервере, а Gizmo сам сверяет её с папкой на клиентском пк и копирует только изменившиеся файлы, а при необходимости удаляет на клиенте файлы, которых больше нет в источнике. Развёртывание выполняется перед запуском игры, к исполняемому файлу которой прикреплён профиль.

Шаг 1. Подготовьте актуальную версию игры на сервере

Держите актуальную версию игры в отдельной папке на пк с Gizmo Server — именно её Gizmo будет использовать как источник для клиентских пк. Когда выходит обновление, обновите игру в этой папке.

Как организовать папку-источник и обновлять в ней игру:

Данный раздел находится в разработке.

Шаг 2. Ограничьте заполнение диска на клиентских пк

Чтобы обновление не заполнило диск клиентского пк, задайте минимальный запас свободного места:

  1. Откройте Настройки → Клиент → Файловая система, блок Развертывание.

  2. Укажите значение параметра Всегда оставлять % свободного места на диске при использовании профилей развертывания.

Если после развёртывания свободного места останется меньше указанного значения, операция будет прервана. Подробнее — в статье «Файловая система».

Шаг 3. Создайте профиль развёртывания

  1. Откройте Станции → Приложения, затем карточку игры и её исполняемый файл.

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

  3. Заполните карточку:

    • Имя — название профиля развёртывания;

    • Источник — папка с актуальной версией игры на пк с Gizmo Server (шаг 1);

    • Пункт назначения — папка игры на клиентском пк, с которой сверяется источник и куда копируются отличающиеся файлы.

  4. Выберите Режим сравнения. Чем тщательнее сравнение, тем меньше вероятность ошибки, но тем медленнее обновление:

    • Быстрый — сверяет файлы и папки только по длине и атрибутам;

    • Стандарт — по времени последнего изменения, длине и атрибутам;

    • Стандартный без атрибутов — по времени изменения и длине;

    • Тщательный — самый медленный и самый надёжный: дополнительно считает и сверяет хеш-сумму файлов.

  5. При необходимости ограничьте состав развёртывания полями Включить файлы, Включить каталоги, Исключить файлы и Исключить каталоги — поддерживаются групповые символы, элементы разделяются «;». В поле Реестр можно указать скрипт реестра, который выполнится при развёртывании.

  6. Сохраните карточку развёртывания и исполняемый файл.

Описание всех полей — в статье «Карточка развёртывания».

Если перед развёртыванием нужно выполнить скрипт, назначьте его на событие Задачи до развертывания на вкладке Задачи того же исполняемого файла. Подробнее — в статье «Карточка редактирования исполняемого файла».

Шаг 4. Включите запуск игры сразу после обновления

На вкладке Главная исполняемого файла, в блоке Организация параметров запуска, включите Auto Launch. Тогда игра запустится сразу после развёртывания. Если параметр выключен, гостю придётся нажать дважды: первый раз — чтобы выполнить развёртывание, второй — чтобы подтвердить запуск.

Результат

  • Когда гость запускает игру, Gizmo сначала сверяет папку игры на пк с папкой на сервере и копирует только изменившиеся файлы.

  • Обновлять игру нужно один раз — в папке-источнике на сервере; клиентские пк получат обновление при следующем запуске.

  • Если на диске клиентского пк не хватает места с учётом заданного запаса, развёртывание прерывается.

Как добавить игру и создать исполняемый файл — в инструкции «Как добавить игру в клиентскую оболочку». Как сохранять прогресс гостей между сеансами — в инструкции «Как сохранять прогресс игр гостей между сеансами».

Почему игра копируется целиком, развёртывается после каждого перезапуска или просит обновление — в статье «Развёртывание -- как работает и частые вопросы». Пример настройки для игры, которая хранит статус обновления вне своей папки, — «Как настроить развёртывание Epic Games Launcher и Fortnite».