Automatic Client Zip (ACZ)
Automatic Client Zip (ACZ) — это система, позволяющая игровому серверу самому раздавать игровые файлы. Благодаря этому лаунчер может напрямую подключаться к игровому серверу без дополнительной инфраструктуры для загрузки ассетов.
Основная функциональность ACZ — это возможность раздавать игровые ассеты с помощью системы Delta Updates. Существует три способа, которыми ACZ может загрузить клиентские ассеты для раздачи:
- «Волшебный» ACZ: клиентские файлы читаются напрямую из среды разработки.
- «Гибридный» ACZ: клиентские файлы читаются из встроенного zip-файла, создаваемого при упаковке сборки сервера.
- «Полностью гибридный» ACZ: клиентские файлы раздаются как в гибридном ACZ, но контент может добавить дополнительные файлы при запуске сервера.
Все версии ACZ построены на системе Asset Packaging. Рекомендуется с ней ознакомиться.
Волшебный ACZ
Волшебный ACZ предназначен для IDE (сред разработки). Он рыщет по вашей IDE, чтобы загрузить игровые ресурсы и клиентские сборки. Используется та же основная логика упаковки, что и при упаковке игровых клиентских файлов для полных публикаций.
Волшебный ACZ можно расширить, заменив реализацию по умолчанию, используемую для упаковки файлов. Это делается вызовом IStatusHost.SetMagicAczProvider(). Можете посмотреть код DefaultMagicAczProvider, чтобы увидеть, что делает реализация по умолчанию.
Волшебный ACZ используется автоматически, если рядом с исполняемым файлом сервера не найден Content.Client.zip. Если он найден, вместо него используется гибридный ACZ, см. ниже.
Гибридный ACZ
При гибридном ACZ игровой сервер загружает игровые файлы из файла Content.Client.zip, который размещён рядом с исполняемым файлом. Этот файл предназначен для включения в сборку сервера при упаковке.
Гибридный ACZ можно расширить с помощью полностью гибридного ACZ, см. ниже.
Полностью гибридный ACZ
Полностью гибридный ACZ даёт вам возможность добавлять дополнительные файлы поверх гибридного ACZ.
OpenDream использует полностью гибридный ACZ. Базовые клиентские файлы движка включены в Content.Client.zip, а файлы ресурсов из загруженной кодовой базы добавляются поверх после запуска.
Используйте IStatusHost.SetFullHybridAczProvider(), чтобы задействовать полностью гибридный ACZ. Учтите, что полностью гибридный ACZ используется только при обнаружении Content.Client.zip, иначе по-прежнему используется Волшебный ACZ. Оба типа провайдеров можно задать одновременно.