Advertisement
  1. Code
  2. iOS SDK

Game Center und Bestenlisten für Ihre iOS-App

Scroll to top
Read Time: 8 min

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

Einführung

Game Center ist das soziale Gaming-Netzwerk von Apple. Es ermöglicht Benutzern, ihre Highscores auf einer Bestenliste zu verfolgen, Erfolge zu vergleichen, Freunde zu einem Spiel einzuladen und ein Multiplayer-Spiel durch automatisches Matching zu starten. Wenn Sie also ein iOS-Spiel entwickelt haben und möchten, dass Benutzer ihre Ergebnisse in einer Game Center-Bestenliste veröffentlichen können, ist dies das richtige Tutorial für Sie!

Weitere Informationen zu Apps und dem Game Center finden Sie auf der Apple-Entwicklerseite.

Das Xcode-Projekt

Für dieses Tutorial habe ich ein grundlegendes Xcode-Projekt erstellt, das Sie von GitHub herunterladen können. Ich erkläre alle notwendigen Schritte zum Erstellen einer Bestenliste in iTunes Connect und den erforderlichen Code, um eine Partitur zu senden, zusammen mit einer Schaltfläche zum Öffnen der Bestenliste aus der App heraus.

So sieht das Storyboard der App aus:

Demo Xcode projectDemo Xcode projectDemo Xcode project

Dieses Projekt hat ein UILabel mit rotem Text, das ich scoreLabel genannt habe, und ein paar UIButtons. Der rote fügt der Punktzahl 10 Punkte hinzu und sendet ihn an eine Game Center-Bestenliste, und der blaue öffnet den GKGameCenterViewController und zeigt diese Bestenliste an.

Das allererste, was Sie tun müssen, ist das Game Center auf der Registerkarte Funktionen in Xcode zu aktivieren.

Enable Game Center in the Capabilities tabEnable Game Center in the Capabilities tabEnable Game Center in the Capabilities tab

Dann müssen Sie GameKit am Anfang Ihrer ViewController.swift-Datei importieren und das GKGameCenterControllerDelegate-Protokoll zur Klassendeklaration hinzufügen.

Fügen wir jetzt ein paar Variablen hinzu. Sie können diesen Code direkt in Ihre ViewController-Klasse einfügen:

Die erste Variable zeigt an, ob Game Center aktiviert ist, und die zweite wird später vom lokalen Spieler-Authentifizierungscode verwendet, damit GameKit die Standard-Bestenliste identifizieren kann.

Die score wird natürlich zunächst 0 sein.

LEADERBOARD_ID ist eine String, die Sie festlegen müssen, damit Game Center Ihre Punktzahl über die Standard-Bestenlistenkennung an den Server übermittelt. Wählen Sie den gewünschten Namen, aber denken Sie daran, dass er eine Web-umgekehrte Syntax haben muss. Aus diesem Grund habe ich diese Bestenliste als com.score.mygamename identifiziert, wobei mygamename durch den Namen Ihrer App in Kleinbuchstaben ohne Leerzeichen ersetzt werden sollte.

Bevor Sie Game Center auf der iTunes Connect-Seite Ihrer App aktivieren, lassen Sie uns den Basiscode fertigstellen. Fügen Sie diese Zeile zu viewDidLoad() hinzu:

Und fügen Sie die folgende Funktion direkt unter viewDidLoad() hinzu:

Falls sich ein Benutzer nicht über die Einstellungen auf seinem Gerät bei Game Center angemeldet hat, zeigt die obige Methode den Game Center-Anmeldebildschirm an, sobald eine Verbindung zum GC-Server hergestellt wird. Sobald der Spieler angemeldet ist, erhält die App die Standard-Bestenlisten-ID.

In der nächsten Methode wird die App die LEADERBOARD_ID-Zeichenfolge, die Sie zuvor erstellt haben, abrufen und als Standard-Bestenlisten-ID des Game Center-Servers übergeben.

Der obige Code fügt der aktuellen Punktzahl auch 10 Punkte hinzu. Jedes Mal, wenn Sie auf die Schaltfläche Punktzahl hinzufügen und an GC senden klicken, ändert sich die rote Punktzahl und die App sendet diese aktualisierte Punktzahl an Ihre GC-Bestenliste.

Sie müssen jetzt eine GameKit-Delegatenmethode hinzufügen, die den GC-Controller verwirft.

Es gibt nur noch eine Methode zum Codieren, bevor Sie Ihre Bestenliste in iTunes Connect erstellen, nämlich die Aktion für die Schaltfläche, die den Game Center ViewController öffnet.

Wie Sie oben sehen können, instanziiert dieser Code den GC-Controller, weist diesem Controller seinen Stellvertreter zu, stellt den Ansichtsstatus des Controllers so ein, dass Bestenlisten angezeigt werden, und leitet Ihre LEADERBOARD_ID weiter, bevor der Controller präsentiert wird.

Jetzt sind wir mit der Codierung fertig, aber Sie können die App noch nicht ausführen. Wenn Sie dies tun, erhalten Sie eine Fehlermeldung von Xcode, da Sie auf der iTunes Connect-Seite Ihrer App keine eigene Bestenliste erstellt haben.

Game Center in iTunes Connect einrichten

Sie sollten bereits eine iOS-App in iTunes Connect mit Ihrer eigenen Bundle-Kennung erstellt haben. Geben Sie nun Ihre App über Ihr iTunes Connect-Dashboard ein und klicken Sie auf Funktionen und dann auf Game Center.

Klicken Sie dann auf das +-Symbol neben Bestenlisten.

App Features page on iTunes ConnectApp Features page on iTunes ConnectApp Features page on iTunes Connect

Wählen Sie auf dem nächsten Bildschirm Single Leaderboard.

Add a leaderboardAdd a leaderboardAdd a leaderboard

Hier müssen Sie den Namen eingeben, den Sie Ihrer Bestenliste geben möchten. Im Screenshot unten habe ich My Leaderboard Name nur als Beispiel verwendet. Sie können Ihre Best Score-Bestenliste oder alles, was Sie wünschen, nennen.

Fügen Sie im Feld Leaderboard-ID die Zeichenfolge der LEADERBOARD_ID ein, die wir zuvor im Xcode-Projekt erstellt haben.

Da die Partitur eine Zahl ist, wählen Sie Integer im Feld Ergebnisformattyp. Sie können die gewünschte Option für Übermittlungstyp und Sortierreihenfolge auswählen. Lassen Sie den Bewertungsbereich (optional) leer.

Klicken Sie abschließend auf die Schaltfläche Sprache hinzufügen.

Set leaderboards detailsSet leaderboards detailsSet leaderboards details

Im Popup-Fenster müssen Sie die Sprache Ihrer Bestenliste auswählen. Die Standardeinstellung ist immer Englisch. Geben Sie den englischen Namen Ihrer Bestenliste erneut ein und wählen Sie ein Ergebnisformat (ich habe Kommas gewählt, um Zifferngruppen zu trennen).

Die Felder für das Ergebnisformat-Suffix sind optional; Sie können beide Felder leer lassen oder das gewünschte Suffix eingeben. Wenn Ihr Spiel zum Beispiel Punkte hat, können Sie "Punkt" und "Punkte" für den Plural eingeben, damit der Game Center-Controller dieses Suffix an das Ende der auf Ihrer Bestenliste angezeigten Punkte hinzufügt, z. B. "1 Punkt" oder "100 Punkte".

Sie können auch ein Symbol hinzufügen. Das Bild muss eine JPEG-, JPG- oder PNG-Datei mit 512 x 512 oder 1024 x 1024 Pixeln, mindestens 72 DPI und im RGB-Farbraum ohne transparenten Hintergrund sein. Klicken Sie auf Datei auswählen, um Ihr Bild hochzuladen.

Klicken Sie zuletzt auf Speichern, und Sie sind fertig. Sie können die obigen Schritte wiederholen, um weitere Sprachen hinzuzufügen – achten Sie nur darauf, die Bestenlistennamen entsprechend der ausgewählten Sprache einzugeben.

Add a leaderboards languageAdd a leaderboards languageAdd a leaderboards language

Nachdem Sie ein Fenster hinzugefügt haben, können Sie die Details Ihrer Bestenliste überprüfen. Wenn alles in Ordnung ist, klicken Sie auf Speichern, und Sie werden mit Ihrer brandneuen Bestenliste zur Seite Funktionen weitergeleitet.

Language added for a new leaderboardLanguage added for a new leaderboardLanguage added for a new leaderboard
Features pageFeatures pageFeatures page

Jetzt ist es an der Zeit, Game Center im App Store-Bereich Ihrer App zu aktivieren. Klicken Sie auf App Store und auf Übermittlung vorbereiten.

App Store sectionApp Store sectionApp Store section

Scrollen Sie nach unten, bis Sie Game Center mit einem Schalter daneben finden. Aktivieren Sie dies, und es wird grün. Klicken Sie dann auf das Pluszeichen (+) neben Bestenlisten, wählen Sie Ihre Bestenliste aus der Liste aus und klicken Sie auf Fertig.

Klicken Sie oben rechts im Fenster auf Speichern, und Sie sind mit der Einrichtung von Game Center in iTunes Connect fertig.

Save your app with Game Centers leaderboardSave your app with Game Centers leaderboardSave your app with Game Centers leaderboard

Sie können jetzt zu Ihrem Xcode-Projekt zurückkehren und die App auf einem echten Gerät oder sogar auf dem iOS-Simulator ausführen. Wenn du noch nicht beim Game Center angemeldet bist, wird der Anmelde-Controller angezeigt. Es sieht aus wie das:

Game Center Sing In screenGame Center Sing In screenGame Center Sing In screen

Melden Sie sich mit Ihren Zugangsdaten an und Sie können mit dem Testen der App beginnen!

In unserer addScoreAndSubmitToGC()-Methode haben wir den folgenden print()-Aufruf hinzugefügt:

Wenn Sie also auf die rote Schaltfläche tippen, zeigt das scoreLabel "10" an und die Xcode-Konsole druckt die beste Punktzahl, die an Ihre Bestenliste gesendet wurde!

Score updated and submitted to your leaderboardScore updated and submitted to your leaderboardScore updated and submitted to your leaderboard

Tippen Sie noch dreimal auf die rote Schaltfläche und dann auf die blaue, um Ihre Bestenliste zu öffnen und zu überprüfen, ob die eingereichte Punktzahl 40 beträgt. Sie sollten in etwa so aussehen:

GC controller for leaderboardsGC controller for leaderboardsGC controller for leaderboards

Abschluss

Wenn Sie Game Center mit einer voll funktionsfähigen Spiele-App in Aktion sehen möchten, sollten Sie sich meine CodeCanyon-Spielvorlage Four Dots ansehen. Es ist eine Vorlage für ein minimales Endlosspiel, das die besten Ergebnisse speichert und an das Game Center sendet.

Four Dots iOS app template on CodeCanyonFour Dots iOS app template on CodeCanyonFour Dots iOS app template on CodeCanyon

Spielvorlagen wie diese sind eine großartige Möglichkeit, um bei Ihrem nächsten Spiel einen Vorsprung zu erzielen. CodeCanyon bietet Hunderte von iOS-Spielvorlagen, mit denen Sie die Entwicklung beschleunigen können – so können Sie das nächste Killerspiel viel schneller erstellen!

Danke fürs Lesen und bis zum nächsten Mal! Bitte sehen Sie sich einige unserer anderen Tutorials zur Entwicklung von Swift- und iOS-Apps an.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.