Skip to content
E
Egmatic
Кроссплатформенные сохранения: как связать Steam и телефон
кроссплатформенные сохранениясинхронизация сохранений steamперенос сохранений между платформамиоблачные сохраненияинди-разработка

Кроссплатформенные сохранения: как связать Steam и телефон

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

Vladislav Kovnerov8 октября 2026 г.17 мин

Кроссплатформенному сохранению нужна одна вещь, которую не продаёт ни один стор: единая личность игрока, доказуемая и в Steam-сборке, и в мобильной. Хранилище — лёгкая половина задачи. Steam Cloud и Saved Games из Play Games Services существуют, работают и никогда не разговаривают друг с другом. Поэтому каждая игра, чей прогресс ездит за игроком от рабочего стола до автобуса, приехала туда одним способом. Слой аккаунтов над сторами плюс хранилище, не принадлежащее ни одному из них. Реальные версии моста тянутся от шестизначного кода на телефоне до арендованного бэкенда с бесплатным тарифом. Выбор между ними — вопрос дизайна прежде техники.

Запрос регулярно всплывает в читках сообщества, которые мы ведём для этого блога, — обычно как вопрос игрока, на который у разработчика нет ответа: моё сохранение поедет за мной из Steam в телефон? Одна тема сентябрьского обхода, где разработчик спрашивал про общую сессию между Steam-сборкой и iOS-сборкой, так и осталась с нулём ответов на в остальном живом форуме. Такое молчание само по себе сигнал: желание массовое, а ответ не покупается с полки — его выбирают как архитектуру. Эта статья и есть тот ответ, который мы там не написали: что синхронизируется бесплатно, что не синхронизируется вовсе и какой самый короткий мост выдержит маленькая команда.

Две соседние статьи несут половины, которые мы здесь не разбираем. Облачные сохранения внутри одной платформы — Steam Cloud, Play Games Services и iCloud по отдельности — разобраны в руководстве по облачным сохранениям. Решение о том, что вообще сериализовать, принимает руководство по системе сохранений. Здесь речь о переходе между сторами: один игрок и две платформы, которые не знакомы. И честная оговорка сразу: блог принадлежит Egmatic, no-code 2D-редактору в pre-alpha, а о месте кроссплатформенных сохранений в наших собственных планах — ближе к концу.

Короткий ответ

Ваша ситуацияМостЦена
Один игрок, несколько компьютеровSteam Cloud, а если кода хочется ноль — Auto-CloudБесплатно со Steamworks; синхронизация при запуске и выходе
Телефон Android и ПК через GoogleSaved Games из Play Games Services плюс игра в каталоге Play Games on PCБесплатно; 3 МБ на сохранение; конфликты распутывает сам API
Steam плюс iOS или AndroidАккаунт игрока с привязанными входами обеих платформ и нейтральное хранилищеБесплатные тарифы есть; настоящая цена — владение личностью
Steam плюс мобильные, минимум усилийРучной перенос: код или файл сохранения, который игрок перевозит самБез денег и без синхронизации; добавится работа поддержки
Игра уже держит серверы для мультиплеера или лидербордовСохранение ложится в тот же бэкендНезначительно: ещё одна таблица и один эндпоинт

Каждая строка таблицы отвечает на один и тот же вопрос, только в разной одежде: когда телефонная сборка говорит «это игрок X», почему сборка Steam должна ей верить? Сохранение не уедет дальше личности, на которой оно едет, а сторы останавливаются ровно у собственных стен.

Стена: две хорошие системы, которые не встречаются

Steam Cloud — файловое хранилище, вшитое в клиент Steam. Квоту в байтах и число файлов на игрока вы задаёте в Steamworks App Admin, и файлы, которые пишет игра, после выхода реплицируются на серверы Steam. Когда игрок переезжает на другой компьютер, они скачиваются до запуска — код просто читает диск как обычно. Steam синхронизируется до и после каждой сессии; игрок может выключить облако целиком или по одной игре, а маршрут Auto-Cloud не требует ни строчки кода. Охват — все машины, где этот игрок входит в Steam: Windows, macOS и Linux, Steam Deck включён.

Здесь периметр и заканчивается. Мобильная сборка игры — не клиент Steam: у неё нет API, чтобы предъявить аккаунт Steam, и способа прочитать чужие облачные файлы. Дело не в чьём-то недосмотре — так устроена сама система. Личностью владеет Valve, клиент выпускает Valve, и сохранение живёт внутри обоих.

У Google то же зеркало. Saved Games из Play Games Services хранит каждое сохранение снимком, привязанным к Google-аккаунту игрока: 3 МБ на данные сохранения и 800 КБ на картинку-обложку. API отдаёт вашему коду обе стороны конфликта и крючок для выбора победителя. На телефоне Android и на ПК через каталог Play Games on PC это законченная система. С системой Steam она не встречается.

Обе системы исправны — дыра между ними. Аккаунт Steam нельзя предъявить Google, аккаунт Google нельзя предъявить Valve, и у обеих компаний есть веские причины так и оставлять. Когда сохранению нужно перейти эту границу, личность для перехода приходится заводить вам.

Бесплатный край карты

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

Только Steam. Если на ПК игра живёт только на странице Steam, опубликованной по пошаговому разбору Steam Direct, кроссплатформенный вопрос для ПК-матрицы уже закрыт: несколько десктопов, ноутбук, Steam Deck, переезд с Windows на Linux. Для игры, которая позже планирует мобильную сборку, это часть, доставшаяся бесплатно, — и стоит получить её до того, как она понадобится. А сколько сторов в итоге накроет игра, решается ещё раньше, охватом движка; сравнение кроссплатформенных движков — тема отдельная.

Google с обеих сторон. Android-игра, принятая в каталог Play Games on PC, встречает один и тот же Google-аккаунт на телефоне и на ПК — и сохранения Play Games Services едут за игроком между ними. По крайней мере так обещает страница программы у Google. Это настоящая синхронизация между устройствами без бэкенда и без собственного аккаунта. Загвоздка в воротах: каталог — программа с отбором, а не открытый канал. Steam же остаётся местом, где живёт большая часть инди-выручки на ПК, так что на практике маршрут закрывает узкий срез задачи.

Маршрут 1: ручной перенос — мост без текущих расходов

Если аудитория мала или игра — одиночная премиальная покупка, честной первой версией кросспрогрессии будет передача, а не синхронизация: экспортировать сохранение на одной стороне, импортировать на другой.

Рабочий дизайн выглядит так. Один экспорт со всем содержимым: версия формата, открытые предметы, настройки, состояние текущего забега. Короткий код или ссылка, чтобы игроку не пришлось возить файлы через AirDrop или кабель. Одинаковый формат, принимаемый в обе стороны. Кнопка в настройках под понятным именем, а не закопанная в файловом менеджере. Браузерная игра, которая уже поставляет экспорт сохранения, — а хранение в браузерных играх к этому прямо принуждает, — владеет большей частью списка заранее.

Спрос существует даже там, где функции нет. Slay the Spire вышла без официального кросс-сейва между версиями для ПК и мобильных, и игроки построили мост сами. Гайд в сообществе Steam со скриптом переводит сохранение с ПК на Android через отладку по USB, а открытый инструмент slayTheCrossSave автоматизирует тот же путь. Перед вами самые мотивированные игроки, вручную собирающие маршрут, который вы не выпустили, — и часть из них всё равно придёт с тикетом в поддержку, когда самодельный мост сломается.

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

Маршрут 2: слой аккаунтов, как в Hades

Когда Supergiant добавляла кросс-сейв в Hades между версиями для Windows и Switch — патчем декабря 2020, — мостом стал единый аккаунт Epic Games Store. Один аккаунт: в него входят с каждой из платформ, и он же везёт сохранение через границу. Снимите бренд — и останется универсальный приём, один и тот же на любой шкале, от Fortnite до команды из двух человек:

  1. Аккаунт игрока, принадлежащий игре. Почта с паролем или анонимный аккаунт устройства, позже дорастающий до настоящего. На iOS есть правило, которое лучше узнать заранее: требование 4.8 из App Review Guidelines обязывает приложение со сторонними или социальными входами предложить рядом эквивалентную опцию, собирающую меньше личных данных. На практике это ставит Sign in with Apple рядом со входом через Google.
  2. Входы платформ, привязанные к аккаунту. На телефоне — Google Play Games на Android или Game Center на iOS: обе личности бесплатны и у игрока уже есть. В Steam — сессионный тикет: клиент получает auth ticket из Steamworks API, ваш бэкенд проверяет его через Web API AuthenticateUserTicket и получает 64-битный SteamID игрока. Документация Valve говорит об этом прямо: вызов требует ключа издателя, должен жить на защищённом сервере и никогда — в клиентском коде.
  3. Нейтральное хранилище, одно сохранение на игрока. Запись в базе, не принадлежащая ни одному стору: пишет её любое устройство, оказавшееся на связи.

Сам поток привязки обходит почту целиком. Игрок входит в Steam-сборку, бэкенд выдаёт шестизначный код, живущий десять минут; тот же игрок открывает мобильную сборку, входит через Google Play Games или Game Center и набирает код. Оба входа теперь смотрят на один аккаунт, при слиянии остаётся сторона с большим прогрессом — и дальше сохранение следует за игроком, а не за покупкой.

Слой можно арендовать, и именно это спасает маленькую команду. Аутентификация Firebase с сохранением в Firestore бесплатна до 50 000 активных игроков в месяц при 1 GiB хранилища. LootLocker построен вокруг игровых аккаунтов и прогрессии: триал на 1 000 игроков и бесплатная лицензия для некоммерческих игр. Nakama — открытый код под Apache-2.0 на случай, если предпочитаете поднимать серверный бинарник сами. PlayFab и Epic Online Services стоят на крупном конце той же полки. Арендуете вы при этом не хранилище — оно почти везде практически бесплатно, — а операции вокруг личности: сбросы паролей, запросы на удаление данных, отвязку аккаунтов, модерацию. Они становятся вашей ответственностью в тот день, когда аккаунт появился, и это главный аргумент сделать сначала ручной перенос.

Разрешение конфликтов — то, чего никто не показывает в демо

Фича, отличающая кросс-сейв от очереди в поддержку, — правило на тот момент, когда оба устройства уверены, что вчерашний вечер принадлежит им. Напишите его до релиза, одним абзацем, и сделайте скучным:

  • Сначала локально. Игра пишет сохранение на устройство и синхронизируется, когда может: геймплей никогда не ждёт сеть, а выходные без интернета считаются нормой, а не ошибкой.
  • Номера ревизий. У каждого сохранения есть номер версии, который поднимает только сервер. Запись принимается, когда она продлевает ревизию на сервере, и отвергается, когда нет: тихая перезапись превращается в событие, которое код умеет обрабатывать.
  • Серверные метки времени. События упорядочивайте по часам сервера, никогда — по часам устройств: те расходятся, и игрок может переставить их руками.
  • Детерминированное правило ничьей. Когда сталкиваются две настоящие ревизии, победителя выбирает фиксированный порядок: больше наигранного, затем больше открытого, затем серверные часы. Какой именно порядок выбран — менее важно, чем то, что он записан до первого конфликта.
  • Заменять, а не сливать. Для одиночного сохранения прогресса почти всегда правильно заменить запись целиком; слияние инвентарей из двух офлайн-сессий — исследовательский проект, замаскированный под фичу.

Google заслуживает здесь отдельного слова: API Saved Games отдаёт вашему коду оба конфликтующих снимка и крючок разрешения, так что решение там не забудешь. А документация Steam Cloud говорит соседнее с другой стороны: машинно-зависимые настройки вроде качества видео не должны попадать в синхронизируемый набор — иначе два компьютера будут вечно воевать за них.

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

Сколько это стоит

МаршрутДеньги при небольшой базеЧем платите на самом деле
Только Steam Cloud или Play GamesНольНастройка и тесты
Ручной переносНольРазговоры с поддержкой, когда код или файл не сработал
Арендованный бэкенд: Firebase, LootLocker, Nakama managed, PlayFabНоль, пока вписываетесь в бесплатные тарифы вышеОперации с личностью и запросы на удаление данных — ваши
Собственный serverless-бэкендЦенты в месяц при инди-масштабеДежурным инженером сохранений будете вы

Деньги на этом масштабе — не блокер. Если игра уже держит бэкенд для лидербордов или мультиплеера, сохранение доезжает почти бесплатно. Настоящая цена — время: продумать правило до релиза и разгребать очередь в поддержку после.

Частые ошибки

  • Доверять меткам времени устройств. Часы на устройствах одного игрока расходятся на минуты в хороший день, а ручной перевод даты добивает наивное правило «победила последняя запись».
  • Выпустить синхронизацию без теста с двумя устройствами в авиарежиме. Конфликты, не всплывшие в разработке, появляются через неделю после того, как у настоящего игрока оказались и телефон, и ноутбук.
  • По аккаунту на платформу и ни одного пути связывания. Игрок остаётся с тремя половинами сохранения и без способа слить их — это хуже, чем не иметь аккаунтов вовсе.
  • Гнать машинные настройки вместе с прогрессом. Документация Steam предупреждает об этом по имени: видеонастройкам нечего делать на чужих устройствах.
  • Блокировать геймплей на сети. Сохранение, которому нужен интернет, чтобы открыть игру, превращает каждую поездку в метро в отзыв с одной звездой.
  • Решать вопрос кросспрогрессии после того, как схема сохранения заморожена. Достраивать личность поверх выпущенной схемы — миграция; заложить её заранее — одно поле в структуре данных.

Как вписывается Egmatic

Egmatic, no-code 2D-редактор, которому принадлежит этот блог, строится вокруг простой ставки: самому тяжёлому разделу этой статьи незачем существовать для человека, который делает игру. Персистентность, следующая за игроком сквозь сторы, живёт на слое публикации, рядом с релизом и аналитикой. Это то, что настраивают при выпуске, а не сервис, под который нанимают людей и вскакивают по ночам. ИИ внутри редактора играет ту же роль, что и везде в Egmatic, — усилитель ремесла под вашим руководством. Что лежит в сохранении и какое правило побеждает в конфликте, решаете вы; инфраструктуру он черновит; каждый файл остаётся вашим. Про стадию скажем прямо: Egmatic сейчас в pre-alpha, и дат, которых не сможем сдержать, мы не называем. Лист ожидания на egmatic.com — место, где можно сказать, между какими двумя платформами должно жить ваше сохранение: запросы, приходящие в pre-alpha, и направляют разработку.

Заключение

Начните с бесплатного периметра: Steam Cloud для ПК-матрицы, Saved Games из Play Games Services на Android и каталог Play Games on PC в те дни, когда Google впускает обе стороны. Когда игре действительно нужно перейти из Steam в мобильные, сначала выпустите ручной перенос и прочитайте его как исследование рынка. Он скажет, переходят ли ваши игроки между устройствами вообще, — прежде чем вы потратите выходные на личность. Спрос окажется настоящим — арендуйте слой аккаунтов, держите привязку на шестизначном коде и запишите правило конфликтов до первой синхронизации: номера ревизий, серверные метки времени, фиксированное правило ничьей, замена сохранения целиком. Hades перешёл сторы через аккаунт Epic; соло-разработчик переходит их на бесплатном тарифе и абзаце правил. Сами сторы этот разрыв не закроют для вас никогда — и именно поэтому мост строить вам.

Источники

  1. Документация Steamworks, Steam Cloud: репликация после выхода, скачивание до запуска, квоты на игрока, синхронизация вокруг каждой сессии, предупреждение о машинных настройках. Прочитано 8 октября 2026 года.
  2. Справочник Web API Steamworks, ISteamUserAuth/AuthenticateUserTicket: ключ издателя, требование защищённого сервера, возврат SteamID. Прочитано 8 октября 2026 года.
  3. Android Developers, Cloud Save (Play Games Services): 3 МБ на сохранение, разбор конфликтов в самом API.
  4. Google, Play Games on PC: непрерывность прогресса между телефоном и ПК в одном аккаунте.
  5. Apple, App Review Guidelines 4.8, Login Services: требование эквивалентного входа, собирающего меньше данных. Прочитано 8 октября 2026 года.
  6. Wikipedia, Hades (видеоигра): патч кросс-сейва в декабре 2020 между Windows и Switch через аккаунты Epic Games Store. Прочитано 8 октября 2026 года.
  7. Сообщество Steam, гайд по переносу Slay the Spire с ПК на Android и открытый инструмент slayTheCrossSave: кросс-сейв, собранный сообществом. Источники сообщества — отмечено для проверяющего.
  8. Читки сообщества Egmatic, обход от 30 сентября 2026 года: тема о shared session между Steam и iOS осталась без ответов. Внутренние данные.

Похожие статьи