Angenommen, ich habe einen Erfolg in meinem Spiel "Sammle dein erstes Ding" und veröffentliche diesen in der Live-Version des Spiels ohne Fortschrittsanzeige. Später entscheide ich mich, einige neue Erfolge in ein Update aufzunehmen, darunter einen, der auf dem vorherigen Erfolg basiert: "Sammle 10 Dingsbums".
Ich erstelle einen Fortschrittsstatus für diesen, der im Code aktualisiert wird, aber ich bearbeite auch den ursprünglichen Erfolg so, dass er über den Fortschrittsstatus und nicht über eine AwardFirstThingamajigAchievement () -Funktion im Code freigeschaltet wird.
Was sind die Konsequenzen daraus? Wird ein Spieler, der diesen Erfolg bereits freigeschaltet hat, feststellen, dass der Erfolg erneut gesperrt wurde, weil der Erfolg bearbeitet wurde, was ihn technisch zu einem neuen macht? Wird es freigeschaltet bleiben, aber dennoch ein kleines Popup für den ersten Erfolg beim nächsten gesammelten Thingamajig verursachen? Oder wird Steam bereits freigeschaltete Erfolge einfach nicht berühren?
quelle
Antworten:
Soweit ich mich an die Steam-API erinnere, können Sie den Fortschritt der Spieler manuell über die Steam-API einstellen / zurücksetzen, wodurch Sie das Problem auf verschiedene Arten lösen können.
Solange die Leistungskennungen im Backend die Werte in Ihrem Code widerspiegeln, sollte es Ihnen gut gehen und die neue Leistung sollte den bereits erreichten Fortschritt in der alten Statistik widerspiegeln.
Wenn Sie die bereits ausgeführte Leistung auf einen neuen Typ migrieren möchten, können Sie sie "verwerfen".
Andererseits glaube ich nicht, dass Steam die Spielerdaten löscht, wenn Sie die ursprüngliche Leistung in "progressiv" ändern. Es ist nur ein Flag, mit dem der Fortschrittsbalken angezeigt wird. Auch wenn Sie den Maximalwert ändern oder die Leistung auf andere Weise ändern, sollten die bereits vorhandenen Daten beibehalten werden. Also mach es einfach und beobachte!
Hoffe das hilft!
quelle
Ich bin nicht mit dem Umgang mit Steam vertraut (muss dort noch veröffentlicht werden), aber ich würde davon ausgehen, dass jeder Spieler, der bereits einen Erfolg freigeschaltet hat, den Erfolg behalten würde. Dies liegt daran, dass Erfolge nicht wie ein- und ausgeschaltete Bool-Variablen sind. Ein Erfolg wird auf dem Steam-Server als erreicht registriert. Daher sollten alle danach erzielten zusätzlichen Fortschritte, unabhängig von Änderungen am Code, keine Rolle spielen. Auf diese Weise wäre meine Leistung auch dann noch da, wenn ich das Spiel gelöscht hätte. Wenn Steam dies nicht getan hätte (dh der Erfolg müsste beim Ändern des Codes erneut freigeschaltet werden), wäre der Erfolg auch beim erneuten Herunterladen des Spiels verschwunden, da alle lokalen Daten zu den Erreichungsbedingungen gelöscht worden wären. Jedoch,
Hoffe das hilft.
quelle