Оптимизация работы батареи на Аллее Монстров

Ознакомьтесь с нашим интервью с генеральным директором Talofa Games Дженни Сю, где она объясняет технические проблемы и решения в области разработки, стоящие за созданием бесшовного, фонового опыта, в том числе как команда использует кряки Unity для OnApplicationFocus и OnApplicationPause для сохранения состояния игры.
ДЖЕННИ СЮ:Когда мы только задумали Аллею монстров, основная проблема дизайна, которую мы пытались решить, это идея о том, как сделать шаги, например, реальные шаги, которые вы делаете, чтобы почувствовать себя играть в игру? Например, не как работа по дому, это не чувствуется привязанным, это не ощущение, что это фитнес-приложение и игра, две разные вещи, но действительно как игра, в которую вы играете, будучи более здоровым в реальной жизни.
Самой большой технической проблемой было сделать эти шаги в реальном времени, как живые данные, чувствовать себя действительно беспрепятственными и интегрированными в игровой опыт со всеми этими различными ограничениями платформы, как фоновая доставка, время работы батареи. Для нас это должно было быть отслеживание шага в реальном времени и как сделать, чтобы это не чувствовать себя слишком наказуемым или слишком наградным для игроков так, чтобы фактически держать их подотчетными своей физической форме.
КОНСОЛИДАЦИЯ ШАГОВЫХ ПОТОКОВ ДАННЫХ
Благодаря тому, что мы использовали Unity, это очень помогло легко подключиться как к родным плагинам Android, так и к iOS. И мы имеем дело с Android Health Connect, Google Fit, Garmin, со всеми этими источниками данных, поступающими в нашу игру. И мы должны все это закрепить и сказать игроку, сколько шагов, по нашему мнению, он сделал между последним выходом в игру и тем, когда открыл ее в следующий раз.
К счастью, Unity действительно предоставляет нам возможность подключиться к родным API. Мы даже создали свой счетчик шагов, потому что не могли предположить, что у них будет "Здоровье Connect". Мы не могли предположить, что у них есть Google Fit. Может, у них ничего не было. И мы создали этот родной плагин, который прилагался к Unity, что все работает без сбоев, и он считал шаги в фоновом режиме, даже если приложение было закрыто.
Поэтому, чтобы это поддержать, нам пришлось строить почти как трехслойное решение в рамках нашего проекта Unity. И, в то же время, не отнимать слишком много времени от батареи или постоянно находиться в фоновом режиме, чтобы игроки просто хотели удалить.
И то же самое, когда речь шла о балансировке всех данных, которые мы получали. Потому что Apple, у вас есть Apple Health, у вас есть родные шаги на переднем плане, например, когда приложение открыто и телефон дрожит, возможно, игрок делает шаг, но и Apple Health в это время тоже отслеживает шаг.
Итак, как вы консолидируете лишние данные? Как сделать так, чтобы не чувствовать себя слишком полезным, не слишком наказуемым? Найти это милое место, возможность встретиться с игроком там, где он находится с точки зрения модели устройства, которая у него была, и сделать это ощущение волшебным, это было самое сложное техническое испытание.
ОПТИМИЗАЦИЯ РАБОТЫ ОТ БАТАРЕИ
Поскольку Прогулка монстров - это игра, которая эффективно работала в фоновом режиме весь день, нам пришлось разработать такие системы, которые бы продвигали игровой процесс, не перегревая телефон. Даже между iOS и Android поведение фона суперразное.
Поэтому мы должны были быть особенно осторожны, когда дело дошло до сохранения состояния игрока, и, по сути, потому что мы делаем так много фоновой обработки шагов, данных о здоровье, мы должны были создать у игроков иллюзию, что пока они в отъезде, их монстры все еще ходят с ними, даже если приложение было закрыто.
Поэтому, я бы сказал, что многое из этого - дизайн-кадрирование, а затем я бы также сказал, что мы довольно осторожно подходим к завершению процессов, убеждаясь, что фоновые потоки не запущены и что игрок не видит приложение открытым и он разряжает аккумулятор.
Итак, мы подключаемся ко многим крякам Unity для OnApplicationFocus, OnApplicationPause и просто используем эти моменты для быстрого сохранения состояния. И каждый раз, когда они возвращаются, мы проверяем наш последний сэйв, возобновляем и проверяем их количество шагов, и мы говорим, эй, ты только что прошел столько со своим маленьким другом-монстром. С возвращением.
Ознакомьтесь с новыми историями от разработчиков Unity на Unity Blog и Resource Hub.
