Ein kurzer Überblick
Setzen Sie Errungenschaften ein, um Spiele für das Erreichen bestimmter Meilensteine und bestimmter Aktionen im Spiel zu belohnen.Integrationslevel
10 Minuten und weniger als 10 Zeilen Code. Erfordert Integration von Steamworks-SDK.Einführung
Errungenschaften ermutigen Spieler und belohnen sie, bestimmte Meilensteine zu erreichen sowie bestimmte Aktionen im Spiel vorzunehmen. Sie werden häufig verwendet, um die Anzahl der Kills, der gefahrenen Kilometer, geöffneten Truhen etc. in Ihrem Spiel zu markieren. Sie können Spieler auch dazu anregen, Ihr Spiel auf unterschiedliche Weise zu spielen. Erreichte Errungenschaften werden in der Ecke des Spielfensters und auf der Seite für Errungenschaft des entsprechenden Spielers angezeigt.
Mit der Weiterentwicklung Ihres Spiels, können Sie dessen Errungenschaften in
Errungenschaften-Sets organisieren. Mit Sets können Sie Errungenschaften auf eine für Ihr Spiel sinnvolle Weise gruppieren und Errungenschaften für Zusatzinhalte hinzufügen, ohne den Abschluss des Basisspiels zu beeinflussen. Errungenschaften für entfernte Inhalte können Sie archivieren, ohne diese den Spielern wegzunehmen, die sie bereits erhalten haben. Weitere Details finden Sie unten unter
Errungenschaften-Sets.
Hinweis: Die Errungenschaften-Sets befinden sich derzeit in der Beta-Phase. Während der Beta-Phase nehmen wir weiterhin Verbesserungen vor und diese Dokumentation wird entsprechend aktualisiert.
Technische Details
Im Folgenden finden Sie eine kurze Schritt-für-Schritt-Anleitung, wie Sie einfache Steam-Errungenschaften in weniger als 10 Minuten und mit weniger als 10 Zeilen Code in Ihre Anwendung integrieren können. Im Lieferumfang des
Steamworks SDKs ist eine großartige Beispielanwendung namens
Spacewar enthalten, welche die gesamte Bandbreite der Steam-Funktionen demonstriert und Ihre erste Anlaufstelle sein sollte, wenn Sie Funktionen in Aktion erleben möchten. Dieses Tutorial fasst die Informationen aus Spacewar und der API für Statistiken und Errungenschaften auf die wesentlichen für Steam benötigten Informationen zusammen, damit alles so einfach wie möglich bleibt. Beachten Sie, dass es zwischen Statistiken und Errungenschaften erhebliche Überschneidungen gibt. Wenn Sie beides implementieren, können Sie daher zahlreiche Aufrufe konsolidieren.
Errungenschaften-Sets werden vollständig in Steamworks konfiguriert. Sie benötigen keinen zusätzlichen Code, und Ihr Spiel schaltet Errungenschaften in einem Set frei, indem es dieselben API-Namen und -Aufrufe verwendet, die im Folgenden beschrieben sind.
Schritt 1: Definition der Errungenschaften für Ihr Spiel
Errungenschaften sind anwendungsspezifisch und werden auf der Seite zur
Errungenschaftenkonfiguration im Backend der Steamworks-Anwendungsverwaltung eingerichtet. Im Folgenden finden Sie die Liste der Errungenschaften aus der Steamworks-Beispielapp Spacewar:

Zugriff auf den Errungenschaften-Editor
Errungenschaften werden im Errungenschaften-Editor erstellt und verwaltet:
- Wählen Sie auf der Startseite Ihrer Anwendung in Steamworks Steamworks-Einstellungen bearbeiten.
- Wählen Sie Statistiken & Errungenschaften > Errungenschaften.
- Klicken Sie auf der Seite oben auf das Banner, um den neuen Errungenschaften-Editor zu öffnen.
Um den Errungenschaften-Editor nutzen zu können, benötigen Sie die Berechtigung, die Metadaten der Anwendung bearbeiten zu dürfen.
Der Editor verfügt über zwei Tabs:
- Errungenschaften verwalten: Erstellen, bearbeiten und organisieren Sie Ihre Sets und Errungenschaften.
- Massenimport/-export: Exportieren und importieren Sie Ihre Errungenschaften als CSV-Dateien und laden Sie Symbole in großen Mengen hoch. Siehe Massenimport/-export unten.
Im oberen Bereich des Editors wird angezeigt, wie viele Errungenschaften und Sets Ihr Spiel außerhalb Ihrer festgelegten Grenzen nutzt. Des Weiteren finden Sie Links zu einer Vorschau Ihrer Errungenschaften auf Ihrer persönlichen Errungenschaftenseite.
Errungenschaften erstellen und bearbeiten
Alle Ihre Errungenschaften gehören zum Errungenschaften-Set für das
Basisspiel, sofern sie keinem anderen Set zugewiesen sind. Um eine Errungenschaft zu erstellen, klicken Sie auf
Errungenschaft erstellen in dem Set, zu dem diese gehören soll. Um eine Errungenschaft zu bearbeiten, wählen Sie diese in der Errungenschaftstabelle aus.
| Variable | Beschreibung |
|---|
| API-Name | Ein eindeutiger Name, den Ihr Spiel an die Steamworks-API übergibt, z. B. ACH_WIN_ONE_GAME. Erforderlich. |
| Anzeigename | Der Name der Errungenschaft, der den Spielern angezeigt wird. Lokalisierbar. |
| Beschreibung | Die Beschreibung der Errungenschaft, die den Spielern angezeigt wird. Lokalisierbar. |
| Symbole | Das Symbol Erreicht und das Symbol Nicht erreicht. Weitere Details finden Sie unten unter Symbole. |
| Ausgelöst durch | Die Errungenschaft kann freigeschaltet werden durch den Client, einen Spielserver oder einen offiziellen Spielserver. |
| Fortschrittsstatistik | Optional kann eine Statistik angezeigt werden, die den Fortschritt zum Erreichen der Errungenschaft anzeigt. Des Weiteren erscheint die Spannweite (Statistik), die den Fortschritt zwischen 0 % und 100 % abbildet. |
| Sichtbarkeit | Sichtbar oder Spoiler, um die Details der Errungenschaft auszublenden, bis diese freigeschaltet ist. |
| Optionaler Status | Verfügbar oder Archiviert, wenn die Errungenschaft nicht mehr erzielt werden kann. |
| Im Set | Das Set, zu dem diese Errungenschaft gehört. |
Die Errungenschaften-Tabelle zeigt außerdem die ID jeder Errungenschaft, ob sie freigeschaltet ist, wie sie freigeschaltet wird, und eine globale Statistik für freigeschaltete Errungenschaften. Verwenden Sie das Feld
Filter in der Symbolleiste, um Erfolge anhand des Namens, der Beschreibung oder des API-Namens zu finden.
Durch Löschen einer Errungenschaft wird diese für alle entfernt, auch für Spieler, die sie bereits freigeschaltet haben. Wenn eine Errungenschaft bereits von Spielern erzielt wurde, empfiehlt der Editor stattdessen, sie zu archivieren. Weitere Details finden Sie unten unter
Archivierung.
Symbole
Für ein optimales Ergebnis sollten für Errungenschaftssymbole PNG-Bilder mit einer Größe von 256 × 256 Pixel verwendet werden. Eine Größe von 64 × 64 Pixel ist auch möglich, wir empfehlen jedoch, die größere Größe zu verwenden. Symbole müssen quadratisch sein. Größere Symbole werden auf 256 × 256 Pixel herunterskaliert. JPG-Bilder werden ebenfalls akzeptiert.
Wir empfehlen, Symbole für freigeschaltete Errungenschaften farbig und für nicht freigeschaltete Errungenschaften in Graustufen darzustellen. Symbole für nicht freigeschaltete Errungenschaften müssen Sie nicht selbst erstellen: Klicken Sie im Errungenschaften-Editor auf
Generieren oder verwenden Sie die Option
„Nicht erreicht“-Symbole automatisch generieren beim Massen-Upload, um aus dem Symbol „Erreicht“ ein Graustufen-Symbol für nicht erreichte Errungenschaften zu erstellen. Sie können das generierte Symbol jederzeit durch Ihr eigenes ersetzen.
Lokalisierung
Verwenden Sie die
Sprachauswahl in der Symbolleiste, um Ihre Errungenschaften in den verschiedenen Sprachen Ihres Spiels anzuzeigen und zu bearbeiten. In der Symbolleiste wird ein Warnsymbol angezeigt, wenn Übersetzungen in einigen Sprachen fehlen, und jede Errungenschaft oder jedes Set, bei dem solcher Text fehlt, wird im Editor markiert.
Um auszuwählen, welche Sprachen Ihre Errungenschaften unterstützen, klicken Sie in der Symbolleiste neben
Sprache auf die Schaltfläche „Bearbeiten“ oder im Tab
Massenimport/-export auf
Sprachen konfigurieren. Diese Sprachen werden im Editor und in den CSV-Dateien der Lokalisierung verwendet. Wenn Sie Errungenschaften über die API abfragen, gibt Steam den Text für die angeforderte Sprache zurück.
Limits
| Element | Limit |
|---|
| Errungenschaften pro Anwendung | 5000 (100 für Anwendungen, die noch nicht überprüft wurden) |
| Sets pro Anwendung | 40, einschließlich des Basisspiel-Sets |
Archivierte Errungenschaften werden dem Errungenschaften-Limit angerechnet.
Schritt 2: Kurzbeschreibung der Arbeit mit Errungenschaften
Der folgende Code ist spielübergreifend und kann entsprechend Ihrer Anforderungen in Ihr Spiel eingefügt werden. Die Klasse ist in dieser Form voll funktionsfähig, kann aber bei Bedarf problemlos erweitert werden. Der gesamte Code stammt direkt aus den Spacewar-Beispieldateien
StatsAndAchievements.cpp/h.
Header-Datei
Zunächst definieren wir eine Struktur, in welche die von Steam empfangenen Errungenschaftsdaten aufgenommen werden, und stellen ein Makro zur Erstellung von Objekten dieses Typs bereit. Diese Daten entsprechen exakt denen auf der Seite
Errungenschaftenkonfiguration.
#define _ACH_ID( id, name ) { id, #id, name, "", 0, 0 }
struct Achievement_t
{
int m_eAchievementID;
const char *m_pchAchievementID;
char m_rgchName[128];
char m_rgchDescription[256];
bool m_bAchieved;
int m_iIconImage;
};
Als Nächstes definieren wir eine Helper-Klasse, die alle Aufrufe der Steam-API zusammenfasst und alle
Steam-Rückrufe erstellt.
class CSteamAchievements
{
private:
int64 m_iAppID; // Die aktuelle App-ID
Achievement_t *m_pAchievements; // Daten zu Errungenschaften
int m_iNumAchievements; // Anzahl der Errungenschaften
bool m_bInitialized; // Are we ready to use the API?
public:
CSteamAchievements(Achievement_t *Achievements, int NumAchievements);
~CSteamAchievements();
bool Initialize();
bool SetAchievement(const char* ID);
STEAM_CALLBACK( CSteamAchievements, OnUserStatsStored, UserStatsStored_t,
m_CallbackUserStatsStored );
STEAM_CALLBACK( CSteamAchievements, OnAchievementStored,
UserAchievementStored_t, m_CallbackAchievementStored );
};
Codedatei
Konstruktor
Parameter: - Der Konstruktor umfasst einen Zeiger auf ein Array mit Errungenschaften sowie die Länge des Arrays. Das Format dieses Arrays wird im Hauptcode des Spiels weiter unten behandelt.
Rückgabe: - k. A.
Funktionsweise: - Der Konstruktor initialisiert eine Reihe von Instanzvariablen und ruft die App-ID ab, mit der wir gerade spielen. Außerdem werden der Rückrufmethoden eingebunden, mit denen asynchrone Aufrufe an Steam verarbeitet werden. Schließlich führt er einen initialen Aufruf zu
Initialize() aus, um zu überprüfen, ob die API bereit ist.
CSteamAchievements::CSteamAchievements(Achievement_t *Achievements, int NumAchievements):
m_iAppID( 0 ),
m_bInitialized( false ),
m_CallbackUserStatsStored( this, &CSteamAchievements::OnUserStatsStored ),
m_CallbackAchievementStored( this, &CSteamAchievements::OnAchievementStored )
{
m_iAppID = SteamUtils()->GetAppID();
m_pAchievements = Achievements;
m_iNumAchievements = NumAchievements;
m_bInitialized = Initialize();
}
Initialize()
Parameter: - Nichts
Rückgabewert: - Boolescher Wert, der angibt, ob der Aufruf erfolgreich war oder nicht. Wenn der Aufruf fehlgeschlagen ist, wurde Steam höchstwahrscheinlich nicht initialisiert. Stellen Sie sicher, dass ein Steam-Client ausgeführt wird, wenn Sie diesen Aufruf ausführen, und dass zuvor
SteamAPI_Init aufgerufen wurde.
Funktionsweise: - Stellt sicher, dass Steam geladen ist und eine Benutzersitzung aktiv ist.
bool CSteamAchievements::Initialize()
{
// Is Steam loaded? If not we can't get stats.
if ( NULL == SteamUserStats() || NULL == SteamUser() )
{
return false;
}
// Is the user logged on? If not we can't access stats.
if ( !SteamUser()->BLoggedOn() )
{
return false;
}
return true;
}
SetAchievement()
Parameter: - Die Zeichenfolge mit dem Bezeichner der Errungenschaft, die Sie einstellen möchten (z. B. "ACH_WIN_ONE_GAME")
Rückgabe: - Boolescher Wert, der angibt, ob der Aufruf erfolgreich war oder nicht. Wenn der Aufruf fehlgeschlagen ist, wurde Steam nicht initialisiert.
Funktionsweise: - Diese Methode setzt eine bestimmte Errungenschaft auf „Freigeschaltet“ und sendet die Ergebnisse an Steam. Sie können eine Errungenschaft mehrmals festlegen, sodass Sie sich nicht darum kümmern müssen, nur diejenigen festzulegen, die Sie noch nicht konfiguriert haben. Dies ist ein asynchroner Aufruf, der zwei Rückrufe auslöst:
OnUserStatsStored() und
OnAchievementStored().
bool CSteamAchievements::SetAchievement(const char* ID)
{
// Wurde einen Rückruf von Steam erhalten?
if (m_bInitialized)
{
SteamUserStats()->SetAchievement(ID);
return SteamUserStats()->StoreStats();
}
// Falls nicht, können keine Errungenschaften festgelegt werden.
return false;
}
OnUserStatsStored()
Parameter: - k. A.
Rückgabe: - Nichts
Funktionsweise: - Diese Methode ist ein Rückruf, der immer aufgerufen wird, wenn Sie versuchen, Statistiken auf Steam zu speichern.
void CSteamAchievements::OnUserStatsStored( UserStatsStored_t *pCallback )
{
// we may get callbacks for other games' stats arriving, ignore them
if ( m_iAppID == pCallback->m_nGameID )
{
if ( k_EResultOK == pCallback->m_eResult )
{
OutputDebugString( "Stored stats for Steam\n" );
}
else
{
char buffer[128];
_snprintf( buffer, 128, "StatsStored - failed, %d\n", pCallback->m_eResult );
OutputDebugString( buffer );
}
}
}
OnAchievementStored()
Parameter: - k. A.
Rückgabe: - Nichts
Funktionsweise: - Diese Methode ist ein Rückruf, der immer aufgerufen wird, wenn Errungenschaften erfolgreich auf Steam gespeichert wurden.
void CSteamAchievements::OnAchievementStored( UserAchievementStored_t *pCallback )
{
// we may get callbacks for other games' stats arriving, ignore them
if ( m_iAppID == pCallback->m_nGameID )
{
OutputDebugString( "Stored Achievement for Steam\n" );
}
}
Schritt 3: Integration in Ihr Spiel
Im Folgenden finden Sie eine vollständige Liste der Codeausschnitte, die Sie an den entsprechenden Stellen in Ihr Spiel integrieren müssen.
Definitionen und Globals
Im Folgenden finden Sie die Liste der Include-Anweisungen, die für die Erstellung von Errungenschaften erforderlich sind, die Aufzählung unserer spielspezifischen Errungenschaften und einen globalen Zeiger zu unserem Helper-Objekt. Hinweis: Die Errungenschaften entsprechen denen auf der Verwaltungsseite auf Steamworks.
...
#include "steam_api.h"
// Definition der Errungenschaften
enum EAchievements
{
ACH_WIN_ONE_GAME = 0,
ACH_WIN_100_GAMES = 1,
ACH_TRAVEL_FAR_ACCUM = 2,
ACH_TRAVEL_FAR_SINGLE = 3,
};
// Array von Errungenschaften, das deren Daten und Status enthält.
Achievement_t g_Achievements[] =
{
_ACH_ID( ACH_WIN_ONE_GAME, "Winner" ),
_ACH_ID( ACH_WIN_100_GAMES, "Champion" ),
_ACH_ID( ACH_TRAVEL_FAR_ACCUM, "Interstellar" ),
_ACH_ID( ACH_TRAVEL_FAR_SINGLE, "Orbiter" ),
};
// Global access to Achievements object
CSteamAchievements* g_SteamAchievements = NULL;
...
Initialisierung
Der Aufruf von
SteamAPI_Init initialisiert Steam vollständig und muss vor allen anderen Schritten erfolgen. Wenn dieser Aufruf erfolgreich ist, erstellen wir das Helper-Objekt, indem wir das Array der Errungenschaften und die Größe des Arrays übergeben.
...
// Initialize Steam
bool bRet = SteamAPI_Init();
// Create the SteamAchievements object if Steam was successfully initialized
if (bRet)
{
g_SteamAchievements = new CSteamAchievements(g_Achievements, 4);
}
...
Verarbeitung von Rückrufen
Um sicherzustellen, dass alle Steam-Rückrufe verarbeitet werden, müssen wir regelmäßig auf neue Meldungen prüfen. Dies erreichen wir, indem wir der Spielschleife diesen Aufruf hinzufügen.
...
SteamAPI_RunCallbacks();
...
Auslösen von Errungenschaften
Das Auslösen einer Errungenschaft umfasst lediglich einen einzigen Aufruf, mit dem der Bezeichner der Errungenschaft übergeben wird.
...
if (g_SteamAchievements)
g_SteamAchievements->SetAchievement("ACH_WIN_100_GAMES");
...
Hinweis: Steam schaltet keine Errungenschaften in archivierten Sets oder Errungenschaften eines Zusatzinhalt-Sets für Spieler frei, die diesen Zusatzinhalt nicht spielen können. Stellen Sie sicher, dass Ihr Spiel Errungenschaften eines Zusatzinhalts nur Spielern zeigt, die diesen Zusatzinhalt besitzen, und die Möglichkeit zur Freischaltung eingestellt wird, sobald Sie diese Errungenschaften archivieren. Weitere Details finden Sie unten unter
Errungenschaften-Sets.
Beenden
Der Aufruf von
SteamAPI_Shutdown ist wahrscheinlich bereits in Ihrem Code enthalten. Dadurch wird Steam beendet. Dieser Aufruf muss erfolgen, bevor Ihre Anwendung beendet wird. Schließlich löschen wir das erstellte Helper-Objekt.
...
// Steam herunterfahren.
SteamAPI_Shutdown();
// Delete the SteamAchievements object
if (g_SteamAchievements)
delete g_SteamAchievements;
...
Schritt 4: Testen und Problembehandlung
Über die Steam-Client-Konsole können Sie Statistiken oder Errungenschaften festlegen oder entfernen, ohne Code zu Ihrem Spiel hinzuzufügen. Starten Sie Steam mit „steam.exe -console“ und geben Sie dann die folgenden Befehle ein:
- achievement_clear <appid> <achievement name>
- reset_all_stats <appid>
Vorschau und Veröffentlichung
Änderungen, die Sie im Errungenschaften-Editor vornehmen, werden in der Entwurfskonfiguration Ihrer Anwendung gespeichert. Um die Änderungen zu veröffentlichen, gehen Sie über den Tab
Veröffentlichen zu
Steamworks-Einstellungen bearbeiten, wie bei jeder anderen Steamworks-Einstellung.
Vor der Veröffentlichung können Sie Ihre oben im Editor verlinkten Errungenschaften auf Ihrer eigenen Errungenschaftenseite einsehen. Verwenden Sie Sets, die nur für Entwickler sichtbar sind, um neue Errungenschaften zu testen, ohne sie den Spielern anzuzeigen.
Um Errungenschaften vollständig zu aktivieren und Ihre Veröffentlichungscheckliste abzuschließen, müssen Sie außerdem die Option
Steam-Errungenschaften unter
Unterstützte Funktionen in den allgemeinen Informationen Ihrer Shopseite aktivieren. Um die Veröffentlichungscheckliste abschließen zu können, muss jede Errungenschaft in jeder von Ihnen konfigurierten Sprache einen Namen und ein Symbol haben.
Errungenschaften-Sets
Mit Errungenschaften-Sets können Sie die Errungenschaften Ihres Spiels in benannte Gruppen sortieren, den Fortschritt von Spielern pro Set verfolgen und im Laufe der Zeit Errungenschaften hinzufügen oder archivieren, ohne dass Spieler Fortschritte verlieren. Mit Errungenschaften-Sets können Sie:
- Errungenschaften sinnvoll in Sets zusammenfassen, zum Beispiel nach Modus, Charakter, Kapitel oder Event.
- Errungenschaften für Zusatzinhalte hinzufügen, die nur von Spielern, die diese Zusatzinhalte besitzen, freigeschaltet werden können.
- Errungenschaften und Sets für nicht länger verfügbare Inhalte archivieren und sie gleichzeitig für Spieler, die diese bereits freigeschaltet haben, erhalten.
- Neue Errungenschaften in nur für Entwickler sichtbaren Sets erstellen und testen.
- Große Anzahlen an Errungenschaftsdefinitionen, Set-Zuweisungen, Symbolen und lokalisierten Texten mithilfe von CSV- und Bilddateien verwalten.
Basisspiel-Set
Jedes Spiel verfügt über ein
Errungenschaften-Set für das Basisspiel. Errungenschaften, die keinem anderen Set zugewiesen sind, gehören zum Basisspiel-Set. Wenn Sie also keine zusätzlichen Sets erstellen, befinden sich alle Errungenschaften im Basisspiel-Set. Bei den meisten Spielen enthält dieses Set den Großteil der Errungenschaften.
Das Basisspiel-Set kann nicht umbenannt, gelöscht oder neu angeordnet werden. Es wird immer zuerst angezeigt, es sei denn, es ist leer. In diesem Fall wird es nicht angezeigt, wird aber dennoch dem Limit für Errungenschaften angerechnet.
Benutzerdefinierte Errungenschaften-Sets
Sie können zusätzliche Sets erstellen, um Ihre Errungenschaften zu sortieren. Jedes Set hat einen Namen, der Spielern angezeigt wird, sowie eine optionale Einschränkung:
| Einschränkung | Wer kann die Errungenschaften des Sets freischalten? |
|---|
| Alle Spieler des Spiels | Jeder, der das Spiel spielen kann. |
| Besitzer eines Zusatzinhalts | Nur Spieler, die den ausgewählten Zusatzinhalt spielen können. |
Spielern wird der Fortschritt für jedes Set angezeigt, und der Abschluss eines Sets wird separat vom Abschluss des restlichen Spiels erfasst.
Zusatzinhalt-Sets
Hierbei handelt es sich um ein Set, das auf
Besitzer eines bestimmten Zusatzinhalts beschränkt ist. Zusatzinhalt-Sets:
- Die Errungenschaften auf der Errungenschaftenseite des Spiels werden allen Spielern angezeigt, können aber nur von Spielern freigeschaltet werden, die diesen Zusatzinhalt besitzen.
- Das Set wird nicht den Errungenschaften des Basisspiels oder eines anderen Sets sowie deren Freischaltung/Abschluss angerechnet.
- Das Set wird Spielern erst mit der Veröffentlichung des Zusatzinhalts angezeigt. Dies ermöglicht Ihnen, Errungenschaften für bevorstehende Zusatzinhalte vor deren Veröffentlichung zu konfigurieren und zu testen.
- Verwenden Sie das Shop-Artwork und den Shop-Link des Zusatzinhalts auf der Errungenschaftenseite. Wenn keine veröffentlichte Shopseite für den Zusatzinhalt vorliegt, werden stattdessen das Artwork und der Shop-Link des Basisspiels verwendet, worauf der Editor hinweist.
- Zusatzinhalt-Sets werden in der Leiste für Errungenschaften auf der Shopseite des Zusatzinhalts angezeigt.
Der Name des Sets wird mit dem Präfix „Zusatzinhalt“ angezeigt. Sie müssen „Zusatzinhalt“ also nicht selbst in den Namen aufnehmen.
Nur für Entwickler sichtbare Errungenschaften-Sets
Ein
Nur für Entwickler markiertes Set ist nur für Entwickler der Anwendung sichtbar, unabhängig davon, ob die Anwendung veröffentlicht ist oder nicht. Nur Entwickler können Errungenschaften in einem solchen Set freischalten. Nur für Entwickler bestimmte Sets sind nützlich, um neue Errungenschaften zu erstellen und vor ihrer Veröffentlichung zu testen.
Archivierung
Es kommt gelegentlich vor, dass ein Spielmodus ersetzt wird, ein saisonales Event endet oder eine Errungenschaft nicht mehr freigeschaltet werden kann. Statt die von Spielern freigeschalteten Errungenschaften zu löschen, können Sie diese archivieren.
- Archivierte Errungenschaften werden Spielern, die diese freigeschaltet haben, weiterhin angezeigt und können weiterhin auf ihren Profilen hervorgehoben werden. Spielern, die eine archivierte Errungenschaft nicht freigeschaltet haben, wird diese nicht angezeigt, und sie wird auch nicht der Vervollständigung des jeweiligen Sets angerechnet.
- Archivierte Sets sind nur für Spieler sichtbar, die eine darin enthaltene Errungenschaft vor der Archivierung freigeschaltet haben. Errungenschaften in einem archivierten Set können nicht freigeschaltet werden. Spielern, die Errungenschaften in einem archivierten Set bereits freigeschaltet haben, werden weiterhin alle Errungenschaften des Sets angezeigt.
Die Archivierung ändert nichts an Ihrem Spiel. Wenn Sie eine Errungenschaft archivieren, stellen Sie sicher, dass Ihr Spiel diese nicht mehr vergibt.
Spoiler-Errungenschaften
Errungenschaften, die zuvor als
Ausgeblendet markiert waren, werden jetzt als
Spoiler-Errungenschaften bezeichnet. Um Inhalte Ihres Spiels nicht zu früh preiszugeben, werden der Name und die Beschreibung einer Spoiler-Errungenschaft Spielern erst angezeigt, wenn sie diese freischalten oder sich entscheiden, sie aufzudecken. Spoiler-Errungenschaften und archivierte Errungenschaften werden nicht in der Errungenschaftenleiste auf Ihrer Shopseite angezeigt.
Freischaltung/Abschluss von Errungenschaften
Die Freischaltung/der Abschluss wird pro Set erfasst:
- Spieler vervollständigen ein Set, indem sie alle darin enthaltenen und noch verfügbaren Errungenschaften freischalten. Nicht freigeschaltete archivierte Errungenschaften sind nicht erforderlich.
- Für Spieler bleibt ein einmal abgeschlossenes Set abgeschlossen, auch wenn Sie diesem Set später weitere Errungenschaften hinzufügen.
- Zusatzinhalt-Sets zählen nur dann zum Fortschritt des Spielers, wenn dieser den Zusatzinhalt besitzt.
Spieler können auf ihrem Steam-Profil zeigen, wie viele Spiele und Sets sie abgeschlossen haben. Ein Spiel wird unter „Vervollständiger“ im Profil eines Spielers hervorgehoben, wenn dieser alle Errungenschaften eines Sets vollständig freigeschaltet und das Set somit abgeschlossen hat.
Ein Errungenschaften-Set erstellen
- Klicken Sie im Tab Errungenschaften verwalten auf Neues Set erstellen.
- Geben Sie einen Set-Namen ein. Dieser Name wird Spielern angezeigt.
- Wählen Sie unter Beschränkungen entweder Alle Spieler des Spiels aus oder wählen Sie einen Zusatzinhalt aus, um das Set auf Besitzer dieses Zusatzinhalts zu beschränken. Die Liste der Zusatzinhalte enthält alle Ihre Zusatzinhalte sowie deren App-IDs.
- Markieren Sie das Set optional als Nur für Entwickler.
- Speichern Sie das Set.
Ein Set ohne Errungenschaften wird niemandem angezeigt.
Ein Errungenschaften-Set bearbeiten
Öffnen Sie das Menü des Sets und wählen Sie
Set bearbeiten, um dessen Namen, Einschränkungen oder auf Entwickler beschränkten Status zu ändern oder es als
archiviert zu markieren.
Die
Sichtbarkeit jedes Sets wird im Editor angezeigt:
| Sichtbarkeit | Bedeutung |
|---|
| Sichtbar | Das Set ist für Spieler sichtbar. |
| Durch Beschränkungen verborgen | Dieses Set wird Spielern nicht angezeigt, zum Beispiel weil es nur für Entwickler vorgesehen ist oder der zugehörige Zusatzinhalt noch nicht veröffentlicht wurde. |
| Wird nach der Veröffentlichung sichtbar | Das Set wird Spielern sofort nach der Veröffentlichung Ihrer Änderungen angezeigt. |
Errungenschaften-Sets neu anordnen
Klicken Sie in der Symbolleiste auf
Sets neu anordnen und legen Sie dann die Reihenfolge, in der sie Spielern angezeigt werden sollen, per Ziehen und Ablegen fest. Das Basisspiel-Set kann nicht verschoben werden.
Errungenschaften-Sets löschen
Öffnen Sie das Menü des Sets und wählen Sie
Set löschen. Sie müssen alle Errungenschaften eines Sets verschieben oder löschen, bevor Sie das Set selbst löschen können. Wenn Sie ein Set zurückziehen möchten, ohne die Errungenschaften der Spieler zu entfernen, die diese freigeschaltet haben, archivieren Sie es stattdessen.
Errungenschaften zwischen verschiedenen Sets verschieben
Um eine einzelne Errungenschaft zu verschieben, ändern Sie das Feld
Im Set. Um mehrere Errungenschaften auf einmal zu verschieben, verwenden Sie die Option
Massenverschiebung:
- Klicken Sie in der Kopfzeile der Errungenschaftentabelle auf Massenverschiebung.
- Wählen Sie die Errungenschaften aus, die Sie verschieben möchten. Die Anzahl der ausgewählten Errungenschaften wird unten auf der Seite angezeigt.
- Wählen Sie ein Ziel-Set aus, oder wählen Sie Neues Set erstellen …, um ein neues Set zu erstellen.
- Klicken Sie auf Verschieben.
Sie können beispielsweise den Modus „Massenverschiebung“ aktivieren, mithilfe des Suchfelds die Errungenschaften nach API-Namen filtern und dann das Kontrollkästchen in den Spaltenüberschriften anklicken, um alle sichtbaren Errungenschaften einer Gruppe zum Verschieben auszuwählen. Dieser Arbeitsablauf ist relativ einfach und kann eine Menge Zeit sparen.
Der Editor warnt Sie vor einem Verschiebevorgang, der sich auf Spieler auswirkt:
- Wenn Sie Errungenschaften von einem sichtbaren Set in ein verborgenes oder unveröffentlichtes Set verschieben, werden die Errungenschaften für Spieler, die sie bereits freigeschaltet haben, ausgeblendet.
- Das Verschieben von Errungenschaften in ein Set, in dem Spieler bereits Fortschritt erzielt haben, kann den Abschluss des Sets für diese Spieler beeinträchtigen.
Hinweis: Das Hinzufügen einer Errungenschaft zu einem bereits veröffentlichten Set hat keinen Einfluss auf abgeschlossene Sets (sie werden Spielern weiterhin als 100 % abgeschlossen angezeigt). Die neue Errungenschaft wird jedoch möglicherweise anders angezeigt. Erwägen Sie stattdessen, ein neues Set zu erstellen.
Massenimport/-export
Im Tab
Massenimport/-export können Sie Ihre Errungenschaften als Dateien verwalten: Exportieren Sie CSV-Dateien, bearbeiten Sie diese in einem Tabellenkalkulationswerkzeug und laden Sie sie zusammen mit Ihren Errungenschaftssymbolen wieder hoch.
Arbeitsablauf
- Klicken Sie auf Definitionen exportieren (CSV), Lokalisierung exportieren (CSV) und/oder Lokalisierung des Sets exportieren (CSV), um Ihre aktuellen Daten herunterzuladen.
- Bearbeiten Sie die Dateien. Kopfzeilen enthalten Hinweise in Klammern, die jede Spalte beschreiben, zum Beispiel
spoiler („true“ oder „false“). Diese Hinweise werden beim Hochladen der Datei ignoriert.
- Ziehen Sie Ihre
CSV-Datei und Ihre PNG-Datei in das Upload-Feld, oder klicken Sie auf Dateien auswählen …. Sie können mehrere Dateien gleichzeitig hochladen.
- Überprüfen Sie die Liste der hochgeladenen Dateien auf Fehler. Wenn Sie eine Datei löschen, werden alle durch die Datei vorgenommenen Änderungen rückgängig gemacht. Um eine Datei zu ersetzen, korrigieren Sie sie und laden Sie sie erneut hoch.
- Überprüfen Sie die ausstehenden Änderungen. Klicken Sie zum Abschluss auf Importierte Daten speichern.
Wenn Ihr Spiel noch keine Errungenschaften hat, sind die Definitions- und Lokalisierungsexporte Vorlagen mit einigen Beispielzeilen, die mit
EXAMPLE_ beginnen. Sie können den Text überschreiben, löschen oder die Vorlage unverändert hochladen, um zu sehen, wie der Import funktioniert.
CSV-Dateien für Errungenschaftsdefinitionen
Exportiert als
<appid>-achievements-definitions.csv. Jede Zeile definiert eine Errungenschaft.
| Spalte | Beschreibung |
|---|
api_name | Erforderlich, eindeutig. Der Name Ihres Spiels, der an die API übergeben wird. |
setid | (Optional) Die ID eines bestehenden Sets. Für das Basisspiel-Set bitte freilassen. |
permission | Einer der folgenden Werte: Client, GameServer oder OfficialGameServer. |
spoiler | true oder false. |
archived | true oder false. |
progress_stat_name | (Optional) Der Name einer bereits vorhandenen Statistik, die für eine Fortschrittsleiste verwendet werden soll. Lassen Sie dieses Feld leer, um keine Fortschrittsleiste anzuzeigen. |
progress_stat_min | Eine Zahl, die den festgelegten Mindestwert der Statistik nicht unterschreiten darf. Muss eine Ganzzahl sein, wenn der Wert eine Ganzzahl ist. |
progress_stat_max | Eine Zahl größer als progress_stat_min, die jedoch den Maximalwert der Statistik nicht überschreiten darf. Muss eine Ganzzahl sein, wenn der Wert eine Ganzzahl ist. |
Wenn Sie eine Definitions-CSV-Datei hochladen, werden die Errungenschaften anhand des API-Namens mit Ihren bestehenden Errungenschaften verglichen:
- Hinzugefügt: Zeilen, die keinem vorhandenen API-Namen entsprechen, werden als neue Errungenschaften hinzugefügt. Falls Sie den API-Namen einer bestehenden Errungenschaft umbenennen wollen, ändern Sie diesen zuerst im Editor, da ansonsten die alten Daten entfernt werden.
- Geändert: Vorhandene Errungenschaften, deren Werte sich geändert haben, werden aktualisiert.
- Unverändert: Vorhandene Errungenschaften, deren Werte sich nicht geändert haben, bleiben unverändert.
- Nicht in CSV-Datei enthalten: Vorhandene Errungenschaften, die nicht in der Datei enthalten sind, werden beibehalten, es sei denn, Sie aktivieren Diese Errungenschaften löschen. Seien Sie beim Entfernen von Errungenschaften vorsichtig, denn entfernte Errungenschaften können nicht einfach wieder hinzugefügt werden.
Hinweis: Errungenschaftsnamen und -beschreibungen sind nicht Teil der Definitions-CSV-Datei. Verwenden Sie die Lokalisierungs-CSV-Datei, um diese festzulegen.
Hinweis: Eine Fortschrittsstatistik muss bereits vorhanden sein und über die gleichen Berechtigungen wie die Errungenschaft verfügen. Um neue Statistiken zu erstellen, bearbeiten Sie zuerst Ihre vorhandenen Statistiken.
CSV-Dateien für die Lokalisierung
Diese werden als
<appid>-achievements-localization.csv exportiert. Jede Errungenschaft hat zwei Zeilen: eine für ihren Namen und eine für ihre Beschreibung.
| Spalte | Beschreibung |
|---|
api_name | Erforderlich. Muss mit einem api_name aus der CSV-Datei der Definitionen oder einer vorhandenen Errungenschaft übereinstimmen. API-Namen beachten hier die Groß-/Kleinschreibung. |
field | name oder description. |
| (eine Spalte pro Sprache) | Der Text für diese Sprache, zum Beispiel english, french, german. |
Die Spalten für Sprachen entsprechen den für Ihre Errungenschaften konfigurierten Sprachen. Wenn Sie mit der Lokalisierung beginnen, konfigurieren Sie zuerst die gewünschten Sprachen, damit die exportierte CSV-Datei diese Sprachspalten enthält.
Wenn Sie eine CSV-Datei der Definitionen und eine für die Lokalisierung gemeinsam hochladen, wird die Lokalisierung für Errungenschaften, die in der CSV-Datei der Definitionen fehlen, nicht aktualisiert.
CSV-Dateien für die Lokalisierung von Errungenschaften-Sets
Diese werden als
<appid>-achievement-sets-localization.csv exportiert. Jede Zeile enthält den Namen eines Sets.
| Spalte | Beschreibung |
|---|
setid | Erforderlich. Die ID eines bestehenden Sets. |
| (eine Spalte pro Sprache) | Der Set-Name in dieser Sprache. english ist erforderlich. |
Sets müssen im Editor erstellt werden, bevor Sie sie hier lokalisieren können. Das Basisspiel-Set kann nicht umbenannt werden.
Dateien für Errungenschaftssymbole
Benennen Sie Symboldateien mit dem API-Namen der Errungenschaft, gefolgt von
_ACHIEVED oder
_UNACHIEVED, zum Beispiel
LEVEL_20_ACHIEVED.png und
LEVEL_20_UNACHIEVED.png. Die Symbole werden automatisch der passenden Errungenschaft zugewiesen.
Markieren Sie das Kontrollkästchen
„Nicht erreicht“-Symbole automatisch generieren, um Graustufen-Versionen für nicht freigeschaltete Errungenschaften für die von Ihnen hochgeladenen Symbole für freigeschaltete Errungenschaften zu erstellen.
Wenn Sie eine CSV-Datei mit Definitionen zusammen mit Ihrer Symboldatei hochladen, werden die Symbole nur den in dieser CSV-Datei enthaltenen Errungenschaften zugewiesen. Um Symbole eigenständig hochzuladen, laden Sie sie ohne eine CSV-Datei mit Definitionen hoch.
Was Spielern angezeigt wird
Errungenschaftenseite
Spieler sehen die Errungenschaften Ihres Titels auf der Steam-Errungenschaftenseite, im Steam-Client und auf der Website der Steam-Community. Die Errungenschaftenseite:
- Zeigt den Fortschritt und Abschluss für jedes Set an, einschließlich Zusatzinhalt-Sets.
- Ermöglicht Spielern, ihre Errungenschaften mit bis zu drei Freunden zu vergleichen.
- Zeigt eine globale Statistik für jede freigeschaltete Errungenschaft und hebt seltene Errungenschaften hervor.
- Ermöglicht es Spielern, Errungenschaften zu durchsuchen und nach „freigeschaltet“ und „nicht freigeschaltet“ sowie Set zu filtern.
Sie können Spieler direkt zu den Errungenschaften Ihres Spiels verlinken:
| URL | Zeigt |
|---|
https://steamcommunity.com/achievements/<appid> | Die Errungenschaften Ihres Spiels, ohne den Fortschritt eines bestimmten Spielers. Verfügbar, unabhängig davon, ob der Spieler das Spiel besitzt. |
|
Shopseiten
Die Errungenschaftenleiste auf Ihrer Shopseite zeigt die Errungenschaften Ihres Spiels, ausgenommen Spoiler-Errungenschaften und archivierte Errungenschaften. Auf den Shopseiten von Zusatzinhalten werden die Errungenschaften des jeweiligen Zusatzinhalt-Sets angezeigt.
Profile
Spieler können die Anzahl abgeschlossener Spiele und Sets in ihrem Profil ausstellen. Ein Spiel kann außerdem unter der Kategorie „Vervollständiger“ im Profil eines Spielers hervorgehoben werden, wenn dieser alle Errungenschaften eines Sets vollständig freigeschaltet und das Set somit abgeschlossen hat. (Es müssen nicht ALLE Sets eines Spiels abgeschlossen werden.)
Bewährte Praktiken
- Neue Sets für neue Inhalte hinzufügen. Das Hinzufügen von Errungenschaften zu einem Set, das Spieler bereits abgeschlossen haben, kann verwirrend sein, da das Set zwar als abgeschlossen markiert wird, aber ausstehende Errungenschaften enthält. Durch das Erstellen eines neuen Sets für neue Inhalte, wie einen Zusatzinhalt, ein Update oder einen neuen Modus, bleibt der Spielfortschritt für die Spieler übersichtlich.
- Archivieren statt löschen. Wenn Spieler eine Errungenschaft freigeschaltet haben, sollte diese archiviert statt gelöscht werden, damit sie diese Errungenschaft behalten.
- Verwenden Sie Zusatzinhalt-Sets für Errungenschaften von Zusatzinhalten. Dadurch bleibt der Abschluss des Basisspiels separat, sodass Spieler, die die Zusatzinhalte nicht besitzen, Ihr Spiel dennoch abschließen können.
- Set-Namen sollten kurz und aussagekräftig sein. Set-Namen werden Spielern an vielen Stellen angezeigt, unter anderem im Steam-Client.
- Set-Namen lokalisieren. Für jede Sprache, die Ihr Spiel unterstützt, sollten Sie die Namen mithilfe der CSV-Datei für die Lokalisierung oder des Editors lokalisieren.
- Mit Entwickler-Sets testen. Bevor Sie neue Errungenschaften für Spieler freigeben, testen Sie diese mit Sets, die nur für Entwickler verfügbar sind.
Häufig gestellte Fragen
Muss ich mein Spiel oder das Steamworks-SDK aktualisieren, um Errungenschaften-Sets verwenden zu können?
Nein. Die Sets werden in Steamworks konfiguriert, und Ihr Spiel schaltet Errungenschaften mit denselben API-Namen und Aufrufen wie zuvor frei.
Was passiert mit meinen vorhandenen Errungenschaften?
Diese sind im Basisspiel enthalten. Wenn Sie keine weiteren Sets erstellen, werden die Errungenschaften Ihres Titels Spielern als eine einzige Liste auf der neuen Errungenschaftenseite angezeigt.
Verlieren Spieler ihren Fortschritt, wenn ich neue Errungenschaften hinzufüge?
Spieler, die ein Errungenschaften-Set abgeschlossen haben, behalten es als abgeschlossenes Set bei. Das Hinzufügen von Errungenschaften zu einem bereits veröffentlichten Set bedeutet jedoch, dass Spieler, die dieses Set noch nicht abgeschlossen haben, mehr Errungenschaften freischalten müssen, um es abzuschließen. Daher empfehlen wir in solchen Fällen, ein neues Set hinzuzufügen.
Was ist der Unterschied zwischen dem Archivieren und dem Löschen einer Errungenschaft?
Archivierte Errungenschaften werden Spielern, die diese freigeschaltet haben, weiterhin angezeigt und werden für Spieler, die sie nicht freigeschaltet haben, nicht mehr dem Fortschritt und Abschluss eines Sets angerechnet. Gelöschte Errungenschaften werden für alle Spieler entfernt.
Kann ich eine Errungenschaft nach der Veröffentlichung in ein anderes Set verschieben?
Ja. Sie erhalten jedoch einen Warnhinweis vom Editor, wenn Ihre Änderungen dazu führen, dass die Errungenschaft für Spieler versteckt wird, die diese bereits freigeschaltet haben, oder sie den Fortschritt von Spielern beeinträchtigen können.
Wie viele Sets kann ich erstellen?
Bis zu 40, einschließlich des Basisspiel-Sets.