Что такое live ops системы и как их разрабатывать
Что проверяют
Понимаете ли вы, что игра или сервис после релиза живёт не патчами клиента, а серверными изменениями. Вопрос про проектирование: где хранится правда, как выкатывается контент и что делать с игроками, которые сидят на старой сборке.
Как отвечать
Live ops это набор механизмов, позволяющих менять контент и правила без обновления клиента: события по расписанию, акции, баланс, витрина, рассылки, эксперименты.
Опорные решения, которые стоит назвать. Конфигурация снаружи кода: баланс, цены и расписание лежат в удалённом конфиге с версией, клиент забирает его на старте и по сигналу, локальная копия остаётся запасным вариантом.
Сервер как источник правды по всему, что стоит денег. Начисление наград, покупки и прогресс проверяются на сервере, а операции делаются идемпотентными по идентификатору запроса, иначе повтор при обрыве связи выдаст награду дважды.
Контент отдельно от кода: ассеты доставляются пакетами с версией и минимальной совместимой версией клиента. И наблюдаемость: у каждого события есть выключатель, гасящий его без выкладки, а метрики вовлечения и выручки снимаются в разрезе версии сборки.
Где спотыкаются
Забывают про старые версии. Обновление доезжает до всех не сразу, поэтому сервер обязан отвечать сборкам, выпущенным довольно давно, а формат сохранения должен читаться и вперёд, и назад.
Планируют события в местном времени. Расписание держат в UTC и переводят уже на клиенте, иначе переход на летнее время и разброс часовых поясов дадут раннее или задвоенное начало акции.
Не готовят откат. Ошибочный конфиг раскатывается мгновенно и сразу на всех, поэтому нужны поэтапная выкладка, хранение прошлых версий конфига и заранее описанная процедура компенсации игрокам.