Сохранение состояния

Узнайте, как управлять постоянными мирами с круглосуточными всегда‑включенными развёртываниями на Частные флоты.

Многие жанры (MMO, песочницы, социальные игры) используют постоянные миры, чтобы позволить игрокам:

  • встречаться и общаться с новыми друзьями; воспитывать органические игровые сообщества,

  • исследовать живой открытый мир, наполненный пользовательским контентом, размещённым игроками,

  • участвовать в эпических рейдах, длящихся часы, с большими группами или целыми гильдиями.

Изучите стратегии, чтобы обеспечить лучший возможный игровой опыт, держать затраты под контролем и устранить разочарование игроков из‑за простоев или откатов. Улучшите традиционную модель сервера, привнеся преимущества периферийных вычислений в удобном для разработчиков игр виде.

✔️ Подготовка

Чтобы обеспечить постоянные, непрерывные круглосуточные развёртывания:

Если вам нужна помощь, пожалуйста, свяжитесь с нами в Discord. Для поддержки по живым играм смотрите наш систему тикетов.

🔑 Владелец сервера

Изучите плюсы и минусы современных и традиционных моделей владения с учётом особенностей периферийных вычислений.

Хостинг студии

Хостинг серверов традиционно управляется студией, которая покрывает затраты на хостинг из доходов от игры.

👍 Преимущества

  • прозрачное ценообразование продукта — стоимость хостинга покрывается лицензией/подпиской игрока,

  • хорошая совместимость клиент/сервер с слабой связностью клиентов, сервисов и масштабирования,

  • более стойко к мошенничеству и реверс‑инжинирингу за счёт закрытой природы серверов.

👎 Недостатки

  • поддержка моддинга сообществ ограничена для обеспечения целостности и стабильности серверов.

Сообщества‑хосты

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

👍 Преимущества

  • улучшенная поддержка моддинга через кураторский список модов Приложения и версии,

  • улучшенная обратная связь от игроков благодаря тесному сотрудничеству с сообществом,

  • сниженный финансовый риск за счёт того, что игроки покрывают затраты на хостинг.

👎 Недостатки

  • больше операционной работы для студии — модерация запросов игроков и сбор платежей,

  • слабее совместимость клиент/сервер из‑за возросшего числа модифицированных версий,

  • подвержено мошенникам из‑за распределённой кодовой базы и возможности реверс‑инжиниринга.

🥛 Вместимость и масштабирование

Изучите продвинутые методы оптимизации доступности серверов, стоимости хостинга и качества сервиса.

Вместимость

Развёртывания не отслеживают и не управляют активными подключениями игроков после того, как вы Развёртывания чтобы дать вам полный контроль и свободу реализовать любую архитектуру.

Реализуйте управление вместимостью, чтобы ваши серверы:

  • максимально экономили средства - проводите тестирование производительности и эффективно использовали ресурсы сервера,

  • обеспечивали плавный игровой процесс — предотвращали перегрузку серверов слишком большим количеством одновременных игроков,

  • предотвращали плохие отзывы из‑за сбоев — перехватывали и обрабатывали неожиданные исключения.

Чтобы обеспечить эффективное управление вместимостью серверов:

  • освобождайте слоты игроков, если игроки, сопоставленные с игровым сервером, не подключаются в течение нескольких секунд,

  • регулярно отправляйте минимальное сообщение‑heartbeat от клиентов на сервер для отслеживания активности,

  • отключайте клиентов и освобождайте слоты игроков, если в течение нескольких секунд не обнаружено активности,

  • не допускайте добавления игроков на серверы с полной загрузкой и отсутствием свободных слотов.

Масштабирование вверх

Масштабирование постоянных серверов не требует «прикидок» регионального трафика или стоимости серверов. Резервируйте Частные флоты вместимость для низкого сезона и автоматически переходите в облако при неожиданных пиках.

Реализуйте стратегии масштабирования серверов, чтобы:

  • обеспечивать крупномасштабный хостинг при аккуратной защите от злоупотреблений,

  • минимизировать пустые затраты на простои резервных серверов,

  • предотвратить длинные очереди, быстро реагируя на возросший спрос игроков.

Референсная архитектура авто‑масштабирования

Ключевые моменты интеграции

  1. Клиенты интегрируют Scaling Authority - Матчмейкинг, Браузер серверов, или пользовательское решение.

    1. Находите других игроков, резервируйте вместимость на запущенных серверах или запрашивайте новые серверы при необходимости.

  2. Scaling Authority назначает работающие серверы или запускает новые, чтобы обслуживать игроков.

  3. Сервер в реальном времени уведомляет Scaling Authority о запуске/остановке и изменениях подключений игроков.

    1. Scaling Authority удаляет (истекает) устаревшие записи о неотвечающих (упавших) серверах.

  4. Клиенты подключаются и устанавливают игровые сессии непосредственно с сервером, переходят к игровому процессу.

Мы настоятельно рекомендуем масштабирование на основе числа подключений вместо физической нагрузки (CPU и RAM), поскольку мгновенные колебания физической нагрузки могут привести к непредсказуемой доступности.

Масштабирование вниз

Эффективные политики уменьшения масштаба важны для оптимизации затрат, но выключение серверов без осторожности может негативно повлиять на опыт игроков. Учитывайте эти факторы и тестируйте изменения перед выпуском:

Надёжно ли у вас обнаружение активности игрока/отключения?

  • Отсутствие ввода надёжно указывает на неактивность игрока? Игроки часто используют ботов, макросы и другие приёмы, чтобы подделать активность и поддерживать подключение, чтобы избежать времени в очереди.

  • Есть ли какие‑то частые действия активных игроков, которые трудно подделать?

  • Является ли использование ботов или макросов проблемой или особенностью у Сохранение состояния серверов?

Легко ли и быстро ли отменяется выключение серверов (снова масштабировать вверх)?

  • Достигнув Развёртыванияваш сервер может потребовать дополнительного времени для инициализации движка и Сохранение состояния (восстановления состояния). Возникают ли дополнительные расходы на вычисления или передачу данных с игровыми сервисами? Влияет ли это время ожидания на опыт игроков?

  • Можете ли вы скрыть загрузку сервера с помощью сцены загрузки, мини‑игры, лобби или другими способами?

Привязаны ли игроки к конкретным экземплярам серверов или могут ли они легко мигрировать?

  • Как подключение к другому серверу влияет на аккаунт игрока, историю покупок, социальный опыт, прогресс, инвентарь и другие аспекты игрового процесса?

  • Пересмотрите ваши Сохранение состояния и убедитесь, что критические данные не теряются.

  • Реализуйте автоматические методы или инструменты для игроков для восстановления критических данных.

  • Обеспечьте поддержку людьми и сообщайте вашему сообществу о простоях и проблемах.

🔎 Обнаруживаемость

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

💭 Конфигурация и состояние

Интегрируйте сервисы для определения начальных требований сервера и управления состоянием игроков и сервера.

Управление конфигурацией

Конфигурация относится к начальным данным, передаваемым на ваш сервер при развёртывании:

Конфигурация неизменяема — она читается один раз после запуска сервера и не меняется впоследствии.

Управление состоянием

Состояние относится к данным, описывающим результат серии предыдущих действий игроков и событий на сервере:

Данные состояния часто изменяются. Клиенты выборочно обновляются о релевантной информации серверной авторитетностью.

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

Объекты, принадлежащие серверу

Объекты, принадлежащие серверу, могут изменяться только сервером. Подключённые игроки имеют ограниченный доступ только для чтения к объектам сервера. Объекты сервера обычно не разделяются с другими серверами.

Объекты, принадлежащие игрокам

Объекты, принадлежащие игрокам, могут изменяться как игроками, так и сервером. Назначение владения постоянными объектами игрокам облегчает последующую миграцию на другие серверы.

Предотвращайте мошенничество, проверяя изменения на серверной стороне. Полномочия и владение могут быть разделены.

Цели восстановления

В случае проблем некоторые категории данных могут быть более чувствительны к их потере, например:

  • данные аккаунтов, подписок, покупок и микротранзакций — критически важные,

  • данные о прогрессе, достижениях, лидербордах и инвентаре — важные,

  • данные для обнаружения мошенничества, модерации, производительности и отслеживания ошибок — важные,

  • данные о поведении игроков, социальные, чат‑данные — малой важности.

Мы настоятельно рекомендуем обсудить следующее в вашей команде:

  • категории данных, обрабатываемых в клиентских и серверных частях вашей игры,

  • важность и чувствительность каждой категории для вашего бизнеса и игроков,

  • Recovery Point Objective (RPO) — допустимый объём потери данных до наступления серьёзного ущерба,

  • Recovery Time Objective (RTO) — допустимое время простоя до наступления серьёзного ущерба.

👀 Наблюдаемость

Длительные постоянные серверы вносят новые задачи наблюдаемости, особенно обнаружение аномалий в мониторинге, логировании и отслеживании багов.

Мы категорически рекомендуем внедрять оповещения о перезапусках серверов чтобы получить большую видимость проблем.

Наш Хранилище конечных точек интеграция логов только передаёт логи после Развёртывания , добавьте пользовательские логи и отслеживание ошибок (например, Sentry) для устранения частичных сбоев и багов.

Последнее обновление

Это было полезно?