Скажем, у меня в игре есть достижение «Собери свою первую вещь», и я публикую это в живой версии игры без статистики прогресса. Позже я решаю, что хочу добавить в обновление несколько новых достижений, в том числе на основе предыдущего достижения: «Собери 10 штук штук».
Я создаю для этого статистику прогресса, которая обновляется в коде, но я также редактирую исходное достижение, чтобы оно разблокировалось с помощью статистики прогресса, а не функции AwardFirstThingamajigAchievement () в коде.
Каковы последствия этого? Найдет ли игрок, у которого уже было это разблокированное достижение, повторную блокировку, потому что достижение было отредактировано, технически сделав его новым? Будет ли он оставаться разблокированным, но все же вызовет небольшое всплывающее окно с первым достижением на следующем собранном Тингамаджиге? Или Steam просто не коснется уже разблокированных достижений?
источник
Ответы:
Из того, что я помню о Steam API, вы можете установить / сбросить процесс прохождения игроков через Steam API вручную, что позволяет решить проблему несколькими способами.
Пока идентификаторы достижений в бэкэнде отражают значения в вашем коде, с вами должно быть все в порядке, а новое достижение должно отражать уже достигнутый прогресс в старой статистике.
если вы хотите перенести уже запущенное достижение на новый тип, вы можете «отказаться от него».
С другой стороны, я не думаю, что steam уничтожит данные игроков, если вы измените исходное достижение на «прогрессируемое». Это просто флаг, который делает индикатор выполнения всплывающим, и даже если вы измените максимальное значение или измените достижение другим способом, он все равно должен сохранить уже существующие данные. Так что просто сделай это и наблюдай!
Надеюсь это поможет!
источник
Я не знаком с тем, как Steam обрабатывает вещи (пока не публикуется там), но я бы предположил, что любой игрок, который разблокировал достижение, уже сохранит достижение. Это потому, что достижения не похожи на переменные bool, которые включаются и выключаются. Достижение будет зарегистрировано на Steam-сервере как достигнутое. Поэтому любой дополнительный прогресс, достигнутый после этого, независимо от каких-либо изменений в коде, не должен иметь значения. Таким образом, даже если я удалю игру, мое достижение все равно останется. Если Steam этого не сделает (то есть достижение нужно будет повторно разблокировать при изменении кода), достижение также исчезнет, когда вы повторно загрузите игру - все локальные данные об условиях достижения были бы удалены. Однако,
Надеюсь это поможет.
источник