Screenshot_10

Patch Builder — что, зачем, и как пользоваться?

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

Patch Builder

Билдер – это программа которая подготавливает файлы к тому чтобы с ними мог работать апдейтер. Подготовка происходит в несколько основных этапов:

  1. Считывание информации о файлах и папках.
  2. Синхронизация с созданным ранее патчем.
  3. Построение карты файлов для апдейтера.
  4. Удаление из патча не участвующих файлов.
  5. Запаковка всех файлов по отдельности.

Сбор информации

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

Hash сумма – это специфичный идентификатор файла, который высчитывается математическими алгоритмами на основе информации которая содержится в нем. В данный момент мы используем алгоритм CRC32 с точки зрения оптимизации и ускорения процесса сбора информации. При любом изменении файла его хеш-сумма изменится даже если размер останется прежним.

Пример строки с информацией о файле, где 4144 это размер в байтах, а dbc44dcf это хеш сумма: L2.ini 4144 dbc44dcf

Синхронизация

Patch Builder

Если вы уже создали патч для своего клиента не спешите его удалять. В нашем билдере присутствует система синхронизации которая сравнивает прошлый патч с новыми файлами. Магия происходит после сравнения виртуального дерева файлов нового патча с картой файлов ранее созданного патча (UpdateInfo.xml). Результат синхронизации отображается на виртуальном дереве файлов цветовыми индикаторами:

Patch Builder
  • Зеленый – новый файл.
  • Синий – измененный файл.
  • Черный – нетронутый файл.
  • Красный – удаленный файл.

Сборка

Сборка начинается с превращения виртуального дерева файлов в плоский вид тестового файлика формата xml, назовем ее картой файлов апдейта. В этом файлике содержится вся информация которая потребуется апдейтеру для успешного обновления. Подробнее можно узнать в посте про Updater.

После чего сначала удаляются файлы которые уже не участвуют в новом патче. И наконец происходит запаковка каждого файла в архив с помощью Zip алгоритма с параметром best compression.

После сборки результат билда откроется автоматически.

Как же пользоваться?

Запустите UpdateBuilder.exe. В левой части выберите или перетащите папку с новым патчем. После выбора начнет загружаться информация о файлах. Подробная информация о происходящем пишется в окно логирования.

Patch Builder

После построения виртуальной карты файлов пора выбрать папку в которую сохранять результат патча. Если вы уже делали билд выбирайте ту же папку для синхронизации файлов. Если делаете патч в первый раз выбирайте пустую папку.

Patch Builder

Синхронизация прошла, и мы получили полную информацию о файлах, что же дальше? А дальше мы можем приступить к настройке параметров файлов в обновлении. В нашей системе есть два вида параметров:

  1. Участвует ли файл в быстрой (критической) проверке.
  2. Требуется ли проверять файл на размер и хеш-сумму при обновлении.

Данным параметрам соответствуют два переключателя у каждого файла. Те же переключатели на папках меняют у всех зависимых элементов.

Подробнее про быстрое и критическое обновление

При запаковке одного патча вы можете указать какие файлы из всех требуется обновить при быстрой проверке в апдейтере. И здесь мы развязываем вам руки, вам доступна как сборка простого патча с добавлением папки system в быструю проверку, так и вариант собрать весь клиент игры и выделить файлы патча для быстрого обновления. Таким образом вы сможете раздавать и обновлять всю игру своим пользователям. На стороне апдейтера можно обыгрывать эту возможность разными кнопками быстрого и полного обновления, а так же запускать быстрое обновление при старте апдейтера.

Подробнее про проверку на размер и Hash

Все настройки по умолчанию включены.

После того как все синхронизовано и настроено остается нажать на кнопку “Начать упаковку” и запусть сборку. Вся информация так же отображается в логе, а папка с результатом откроется автоматически.

Останется только скопировать файлы на хост и дать ссылку мне.

В заключении

Напомню всем что исходники билдера находятся в общем доступе на GitHub, буду рад любой активности.

Что ж на этом все, спасибо за внимание! Теперь вы немного узнали как создать апдейтер л2 и как работает наш билдер файлов патча lineage 2 (и не только) . Надеюсь вопросов не осталось, но если все же есть – welcome на форму связи

Метки: нет меток

Комментарии закрыты.