Загрузка дистрибутивов

Введение

Разработчики должны использовать инфраструктуру Mail.ru для распространения дистрибутивов своих игр на Платформе. Игровой центр предоставляет разработчику возможности по высокоскоростной загрузке дистрибутивов игр пользователям и набор утилит для подготовки обновлений (патчей), минимизирующих объем данных. 

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

Логика работы с дистрибутивами игр

Клиент игры скачивается Игровым центром (ИЦ) с серверов ИЦ и через механизмы p2p-скачивания. Если на компьютере пользователя нет скачанной игры, ИЦ скачивает её дистрибутив и устанавливает игру на компьютер.

Если на компьютере пользователя игра была установлена ранее, ИЦ скачивает для неё патч и применяет его на установленную игру (выполняет обновление игры). Каждая версия клиента игры, собранная для скачивания её Игровым центром, называется билдом клиента игры.

Разработчик игры собирает и выливает билды [клиента игры] на серверы ИЦ c помощью утилиты сборки дистрибутивов, работа с которой описана далее. Скачать эту утилиту, а также управлять собранными билдами клиента игр можно в кабинете разработчика. Утилита сборки публикует свежесобранный билд в тестовой линии. Такой билд будет доступен в Игровом центре только если ИЦ настроен на тестовую линию. Подробнее об этом см. пункт "Тестирование загруженного дистрибутива" ниже. Обычные пользователи этот билд не увидят. Чтобы билд стал виден всем пользователям ИЦ, необходимо перевести его в основную линию с помощью функций, доступных в кабинете разработчика.

При подготовке билдов, утилиты сборки обращаются по порту 80 (HTTP) к серверам pkg.dl.mail.ru, pkg-store.dl.mail.ru и pkg.gc.my.com. При сборке и выливке билдов на ИЦ-серверы, утилиты сборки обращаются к ИЦ-серверам по портам 80 (HTTP) и 21 (FTP) к серверам  adm-store.dl.mail.ru и admin.dl.mail.ru. Соответственно, необходим доступ с компьютеров сборки к указанным ресурсам.

Сервер Порт
pkg.dl.mail.ru 80 (HTTP)
pkg-store.dl.mail.ru 80 (HTTP)
pkg.gc.my.com 80 (HTTP)
adm-store.dl.mail.ru 80 (HTTP) и 21 (FTP)
admin.dl.mail.ru 80 (HTTP) и 21 (FTP)

Конфигурирование продукта

1.1. Зайти в личный кабинет под аккаунтом, имеющим соответствующие привилегии и активированной двухфакторной авторизацией https://games.mail.ru/dev/login/

1.2. Выбрать нужный продукт из списка, перейти в раздел "Загрузка дистрибутивов".

1.3. Нажать "изменить" и настроить параметры запуска клиента.

1.4. Если проект не имеет одновременно две версии запускаемого файла (х32 и х64) то достаточно заполнить только одно из полей. Необходимо прописать путь до исполняемого файла относительно папки клиента игры.

1.5. Параметры командной строки запуска клиента
Включают в себя только дополнительные параметры от партнера, прописывать доп. параметры sz_pers_id - не нужно. Например там можно прописать IP сервера или еще какие-нибудь игровые параметры которые будут уходить при запуске.

1.6. Имя файла содержащего иконку игры 
Необходимо прописать путь относительно папки клиента игры.

1.7. Название меню-группы под кнопкой пуск 
Например "Mail.Ru\Royal Quest"

1.8. Расширеные настройки клиента
Например:

  • SZPersIdParam=-sz_id
  • SZTokenParam=-sz_token

Пример заполнения всех полей на этой форме

Использование GUI утилиты для Windows (MailRuGameUploader.exe)

2.1. Вся сборка дистрибутивов клиента игры выполняется в "Каталоге Сборки" ("Assembly Folder"). В нём утилита сборки создаёт служебные подкаталоги с дистрибутивами и патчами собранных билдов. В нём же находятся и файлы настроек сборки. Этот каталог может оказаться большого объема, поскольку в нём будут находиться несколько последних собранных билдов клиента.

2.2. Утилиты для сборки и загрузки билдов на ИЦ-сервер вы можете скачать по ссылкам Windows 64 bitLinux (Gentoo 64 bit), MacOS 64 bit и распаковать в отдельный каталог. Утилиты существуют только для 64-bit версий ОС, поэтому для корректной работы требуется установленная на компьютере версия Windows x64.

2.3. Запустить приложение MailRuGameUploader.exe, имеющееся в каталоге распакованных утилит сборки.

2.4. В поле "Path to the source client files folder" ввести путь к каталогу исходных файлов клиента, из которого будет собран новый билд.

2.5. В поле "Path to the Assembly folder" ввести путь к каталогу сборки. При сборке самого первого билда это может быть пустой каталог. Желательно использовать один и тот же каталог для всех последующих сборок данного клиента, так как при сборке нового билда в нём должен присутствовать каталог собранного предыдущего билда. Если каталога предыдущего билда в каталоге сборки не окажется, то в начале сборки утилита автоматически начнёт скачивать его с сервера.

2.6. Нажать "Accept these folders". Система проверит корректность задания каталогов.

2.7. В поле "Authorization token" скопировать токен из кабинета разработчика. Для этого вы должны открыть нужную игру, в разделе "Загрузка дистрибутивов" найти поле "Ваш токен для авторизации в утилитах для загрузки дистрибутивов" и скопировать его значение в буфер обмена. Затем вставить токен из буфера обмена в поле "Authorization token".

2.8. Нажать на появившуюся кнопку "Check the token". Система проверит данный токен.

2.9. Нажать "Start to Assemble". Должна произойти сборка билда клиента игры и выливка его на ИЦ-сервер. По окончании успешной выливки билда его можно видеть в разделе "Загрузка дистрибутивов", в списке билдов. Он в этот момент находится в тестовой линии.

2.10. После тестирования билда вы можете переместить его в "основную" линию путём нажатия кнопки справа от билда в списке билдов ("Перевести из тестовой линии в основную"). Данный функционал находится в личном кабинете (не внутри GUI утилиты). После этой операции билды в основной линии доступны для скачивания всем пользователям. 

Использование консольных утилит

Консольные утилиты позволяют осуществлять публикацию игр с ПК под управлением операционных систем Windows, Linux, MacOS.

3.1. Утилиты для сборки и загрузки билдов на ИЦ-сервер вы можете скачать по ссылкам Windows 64 bitLinux (Gentoo 64 bit) и распаковать в отдельный каталог.

3.2. Запустить приложение bstool.exe с параметрами, задающими все необходимые параметры операции. Формат командной строки и все штатные параметры утилиты:

 > bstool.exe <BuilderFolder> -src=<SourceFolder>|-movetesttolive|-removelastbuild|-removefirstbuild|-skipbuilding [-configscheckonly] [-processallpackages] -token=<actual auth token> ["-versioninfo=<versioninfo>"]
  use "-src=<SourceFolder>" to make new build (from the SourceFolder)
  use "-removelastbuild" to remove the last build
  use "-removefirstbuild" to remove the first build
  use "-skipbuilding" to skip (re-)creation the build
  use "-configscheckonly" to skip any processing unless the configs synchronization with the server
  use "-processallpackages" to resynchronize all the packages in the project
         (not only the last two builds as in normal mode)
  use "-skipsynclocalfiles" to skip the local files synchronization
  use "-ignoresyncerrors" to ignore the errors during local files synchronization
  use "-skipcheckintegrity" to skip the local files integrity checking
  use "-movetesttolive" to move the test build to the live
  <SourceFolder> - source client files folder
  <BuilderFolder> - builder folder
  <versioninfo> - version identifier (string value)

3.3. Для сборки очередного билда игры, запуск тулы выглядит так:

 > bstool.exe <BuilderFolder> -src=<SourceFolder> -token=<actual auth token> ["-versioninfo=<versioninfo>"]

где:
<BuilderFolder> - путь к каталогу сборки;
<SourceFolder> - путь к каталогу с исходными файлами нового билда клиента игры;
<actual auth token> - ваш токен авторизации;
<versioninfo> - строка номера версии нового билда, параметр "-versioninfo=<versioninfo>" является необязательным.

Собранный билд автоматически выливается на ИЦ-сервер и становится доступен в ИЦ в тестовой линии.

3.4 Для перевода собранного билда в живую линию следует выполнить команду:

 > bstool.exe <BuilderFolder> -movetesttolive -token=<actual auth token>

После успешного выполнения этой команды, билд окажется доступным для Игрового центра, работающего в обычном режиме (т.е. который видит только билды живой линии).

 

Тестирование загруженного дистрибутива

До того, как загруженный контент опубликован:

4.1. Авторизуйтесь в Игровом центре Mail.ru аккаунтом, от имени которого игра добавлена или загружена через кабинет разработчика https://games.mail.ru/dev/.

4.2. Переключите Игровой центр в режим разработчика (в верхнем меню пункт "Помощь" -> "Режим разработчика").

4.3. В режиме разработчика на странице игры появится меню, позволяющее переключиться на "тестовую линию". Используя этот режим, вы можете скачать обновления и дистрибутивы, загруженные в раздачу, но не опубликованные на всех пользователей.

Ограничения и рекомендации

  • Загруженные, но не опубликованные дистрибутивы игр могут быть скачаны сторонними лицами, так как располагаются на публичных серверах.
  • Рекомендуется всегда паковать ресурсы игры самостоятельно.
  • Рекомендуется включать в дистрибутив игры не более тысячи файлов.
  • В именах файлов и каталогов разрешено использовать только символы первой части таблицы ASCII (с кодами от 32 до 127), то есть запрешено использовать региональные символы (например, Cyrillic, Chinese и т.п.).
  • Запрещено использовать очень длинные названия файлов (более 200 символов).

Квоты по проектам и свободному месту

Новому разработчику по умолчанию выделяются следующие квоты:

    - количество разрешенных проектов - 5;
    - количество ГБ на проект - 50 ГБ.

Как это работает

Квоты на создание проектов позволяют контролировать процесс создания проектов разработчиком. Если по умолчанию разработчику выделяется 5 проектов, значит, для создания 6 проекта придется обратиться к платформе Mail.ru gamesdev@ml.corp.mail.ru . В случае превышения лимита разработчик увидит следующее сообщение:

Ограничение по месту, выделенному на один проект, позволяет контролировать процесс заливки собранных разработчиком билдов на сервер Игрового центра. Разработчик всегда может видеть актуальное свободное место проекта в разделе "Загрузка дистрибутивов".

Если лимит при следующей заливке билда на сервер будет превышен, то необходимо удалить ненужные(старые) дистрибутивы игры через утилиту загрузки или обратиться к платформе Mail.ru gamesdev@ml.corp.mail.ru .