Каковы последствия добавления статов прогресса в достижение Steam?

10

Скажем, у меня в игре есть достижение «Собери свою первую вещь», и я публикую это в живой версии игры без статистики прогресса. Позже я решаю, что хочу добавить в обновление несколько новых достижений, в том числе на основе предыдущего достижения: «Собери 10 штук штук».

Я создаю для этого статистику прогресса, которая обновляется в коде, но я также редактирую исходное достижение, чтобы оно разблокировалось с помощью статистики прогресса, а не функции AwardFirstThingamajigAchievement () в коде.

Каковы последствия этого? Найдет ли игрок, у которого уже было это разблокированное достижение, повторную блокировку, потому что достижение было отредактировано, технически сделав его новым? Будет ли он оставаться разблокированным, но все же вызовет небольшое всплывающее окно с первым достижением на следующем собранном Тингамаджиге? Или Steam просто не коснется уже разблокированных достижений?

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

Ответы:

1

Из того, что я помню о Steam API, вы можете установить / сбросить процесс прохождения игроков через Steam API вручную, что позволяет решить проблему несколькими способами.

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

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

  • Сделайте старый «скрытым» и удалите код игры, который обновляет значение.
  • Создать новое достижение в Steam Backend
  • Создайте код игры, который возьмет значение игрока из старого достижения и сохранит его в новом, плюс для старого значения будет установлено значение 0.

Я думаю, вы поняли мою точку зрения здесь. Этот подход имеет некоторые взлеты и падения, но довольно безопасен и, вероятно, вызовет всплывающее окно. Но я более или менее уверен, что вы можете установить значение достижения, не вызывая всплывающее окно.

С другой стороны, я не думаю, что steam уничтожит данные игроков, если вы измените исходное достижение на «прогрессируемое». Это просто флаг, который делает индикатор выполнения всплывающим, и даже если вы измените максимальное значение или измените достижение другим способом, он все равно должен сохранить уже существующие данные. Так что просто сделай это и наблюдай!

Если вы не хотите рисковать, сделайте небольшой эксперимент. Если вы серьезно относитесь к развертыванию Steam, у вас все равно должен быть идентификатор testApp.

Надеюсь это поможет!

плевок
источник
-1

Я не знаком с тем, как Steam обрабатывает вещи (пока не публикуется там), но я бы предположил, что любой игрок, который разблокировал достижение, уже сохранит достижение. Это потому, что достижения не похожи на переменные bool, которые включаются и выключаются. Достижение будет зарегистрировано на Steam-сервере как достигнутое. Поэтому любой дополнительный прогресс, достигнутый после этого, независимо от каких-либо изменений в коде, не должен иметь значения. Таким образом, даже если я удалю игру, мое достижение все равно останется. Если Steam этого не сделает (то есть достижение нужно будет повторно разблокировать при изменении кода), достижение также исчезнет, ​​когда вы повторно загрузите игру - все локальные данные об условиях достижения были бы удалены. Однако,

Надеюсь это поможет.

Даниэль Уилкс
источник