Проверка обновлений игры и докачка паков
- При появлении обновлений для нашей игры, мы должны реализовать обновление паков. Это используется для платформ где установлены ограничения размера установочного файла игры. Тем самым обязуя нас создавать маленький по размеру файл установки и файл подкачки.
Проверка обновлений игры и докачка паков, реализуются практические идентично, отличие состоит в том, что проверка обновлений - осуществляется автоматически при открытии приложения, а догрузка паков - в определённый момент игры (после покупки анблока и т.д.), то есть осуществляется пользователем.
Правила разбивки на паки и их компоновка описаны в Загрузка проекта по частям и Подготовка для загрузки на маркеты.
Содержание
Принцип обновления приложения маркетом
Если на маркете появляется новая версия приложения которое мы установили, маркет нам предлагает обновить установочный файл (всё что лежит в паке 0). Докачиваемый файл (пак 1) - маркет обновлять не будет, мы должны сами его докачать.
При обновлении маркетом нашей игры, маркет в опциях перебивает параметры:
- VersionMain
- VersionGraphic
- VersionLogic
Пример реализация обновления приложения
Первым экраном в проекте, делаем экран с проверкой на наличие обновлений. Если обновлений нету - переходим на экран мейн, если же обновления есть - докачиваем пак 1. Вот как выглядит Экран с проверкой:
1. Машина set_version_string
Считывает из опций параметры которые перезаписывает маркет ( VersionMain, VersionGraphic, VersionLogic) и компонует их в параметр VersionString по алгоритму:
- ((((VersionMain)*1000000)+((VersionGraphic)*1000))+(VersionLogic)).
В результате мы имеем 7-ми значное число ( 1001001).
2. Машина check_download
Мы проверяем обновилась ли версия нашей игры ( первого пака), сравнивая параметр VersionString и параметр download_version ( check ). Если значения равны (версии одинаковы), переходим в ( done ) на экран мейн. Если не равны - Показываем процесс загрузки ( open_download ), выводим текст( download ) и начинаем загрузку обновлений ( download1 ). При удачной загрузке, мы записываем параметр VersionString как download_version ( машина download_access, состояние access1).
3. Машина download_access
Обрабатывает загрузку пака (пак 1), состояние download1 машины check_download.
4. Машина download_machine
Машина только выдвигает, если нужно, полосу прогресса загрузки.
5. Машина root_button_download
Показывает кнопочку загрузить, если у нас произошла ошибка в ходе загрузки.
6. Машина progress_math
Считывает значение из каунтера и закидывает в прогресс.
Пример реализации докачки пака
Применяется когда дополнительные паки мы догружаем, если мы их купили. Осуществляется функцией download в машине состояний. К примеру мы прошли пак 1 во фришной версии игры, и перешли на окно анлока игры:
При нажатии на кнопку Открыть, осуществляется покупка приложения, и в случае удачи показываем кнопку Догрузить:
При нажатии на кнопку Догрузить, мы начинаем загрузку пака и выводим окно с прогрессом загрузки:
Организация машины загрузки идентична для примера проверки обновлений: