Advertisement
  1. Code
  2. Games

Verwenden der Kongregate-API in Ihren Flash-Spielen

by
Read Time:16 minsLanguages:

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

Kongregate ist eines der größten Flash-Spieleportale im Internet und hat eine eigene API, die in Ihre Spiele integriert werden kann (für die Kongregate Sie sogar finanziell belohnt). In diesem Tutorial zeige ich Ihnen, wie Sie die Kongregate-API in Ihre Spiele implementieren, und gehe detailliert darauf ein, wozu die API in der Lage ist und warum Sie sie verwenden sollten.

(Beachten Sie, dass in diesem Tutorial davon ausgegangen wird, dass Sie schon über ein Kongregate-Konto wissen. Wenn es nicht so ist, erstellen Sie jetzt ein Konto.)


Vorschau des Endergebnisses

Werfen wir einen Blick darauf, was die API uns ermöglicht:

Abzeichen

Massenbotschaften

High Scores

Es gibt noch einen weiteren wichtigen Grund, die API zu implementieren...


Schritt 1: Lassen Sie uns motivieren

Bevor wir uns mit den technischen Aspekten der Implementierung der Kongregate-API befassen, sollten wir uns ein wenig aufregen und sicherstellen, dass wir sie tatsächlich implementieren möchten.

Es gibt viele Gründe, die API zu implementieren, aber für die meisten Entwickler spricht nichts lauter als Geld, und es gibt viele davon. Wenn Sie Ihr Spiel auf Kongregate hochladen, verdienen Sie automatisch 25% aller Werbeeinnahmen, die durch die Seite Ihres Spiels generiert werden.

Es wird besser; Wenn Sie die "Statistics & Challenges API" implementieren, erhalten Sie zusätzlich 10%! Wenn Ihr Spiel exklusiv für Kongregate ist oder von diesen gesponsert wird, erhalten Sie zusätzlich 15%. Dies gibt Ihnen die Möglichkeit, bis zu 50% der Werbeeinnahmen für Ihr Spiel auf Kongregate zu verdienen. Wenn Sie sich fragen, wie viel das ist, sehen Sie sich einige meiner persönlichen Statistiken an:


Schritt 2: Einrichten unserer Arbeitsumgebung

Für dieses Tutorial verwenden wir FlashDevelop, einen kostenlosen (und erstaunlichen) Open Source-Editor für Entwickler. Wir erledigen alles in einfachen AS-Dateien. Wenn Sie also die Flash-IDE verwenden möchten, sollten Sie keine Probleme haben. Wenn Sie FlashDevelop verwenden möchten und mit FlashDevelop nicht vertraut sind, lesen Sie diese ausgezeichnete FlashDevelop-Anleitung für Anfänger, um zu erfahren, was ich als den besten AS3-Editor auf dem Markt betrachten würde.

Öffnen Sie zunächst FlashDevelop, wechseln Sie zur Registerkarte Projekt und wählen Sie „Neues Projekt“. Wählen Sie hier „AS3-Projekt mit Pre-Loader“. Alternativ können Sie die Dateien Preloader.as und Main.as aus dem Quelldownload herunterladen und einfach mitlesen.

Ihre Datei sollte eine Barebone-Main.as-Datei sein, wie folgt:

Nichts oben sollte für Sie neu sein; Wenn dies der Fall ist, müssen Sie nur wissen, dass diese Datei der Einstiegspunkt für unser Programm ist. Hier beginnt alles. Wenn Sie dies mit FlashDevelop kompilieren, sollten Sie einen leeren weißen Bildschirm ohne Compilerfehler erhalten.


Schritt 3: Lassen Sie uns eine Verbindung herstellen

Bevor wir uns mit allen coolen Funktionen der API befassen, müssen wir sicherstellen, dass die API betriebsbereit ist.

Im Gegensatz zu vielen Sponsor-APIs ist die Kongregate-API kein eigenständiger Satz von Dateien, die wir zum Kompilieren mit unserem Projekt benötigen. Die API wird tatsächlich auf dem Kongregate-Server gespeichert und zur Laufzeit geladen. Es gibt eine Reihe von Möglichkeiten, dies in Ihren Projekten zu tun, aber für dieses Tutorial werden wir uns einfach innerhalb unserer Main.as verbinden und dort einen Verweis darauf speichern.

Kopieren Sie zunächst den folgenden Code in unsere Datei Main.as direkt unter den vorhandenen Importen:

Dies sind nur einige einfache Importe, mit denen wir die erforderlichen Klassen zum Laden in die Kongregate-API verwenden können.

Dann fügen wir eine Variable hinzu, um unseren Verweis auf die Kongregate-API zu speichern. Fahren Sie fort und fügen Sie Folgendes rechts über dem Konstruktor unserer Datei Main.as hinzu.

Beachten Sie, dass der Datentyp unserer Kongregate-Variablen * ist. Wenn Sie damit nicht vertraut sind, teilen wir dem Compiler einfach mit, dass die kongregate-Variable jeden Datentyp akzeptiert, ähnlich wie ein Platzhalter.

(Beachten Sie außerdem, dass Sie in einem echten Spiel Ihre Referenz auf die API an einem Ort speichern möchten, auf den Ihr gesamtes Projekt Zugriff hat, z. B. eine public static const. Diese Referenz wird benötigt, damit Sie die API von überall in verwenden können Ihr Projekt für jeden Zweck und nicht nur in der Datei Main.as, wenn wir es zum ersten Mal starten.)

Dieser nächste Code wird in einer benutzerdefinierten Funktion mit dem Namen initKongregateAPI() enthalten sein. Dies ist eigentlich nicht notwendig, aber ich bevorzuge es, Ideen beim Schreiben von Code zu kapseln, da dies dazu beiträgt, dass der Code lesbar und einfach zu bearbeiten ist.

Fügen Sie diese Funktion unterhalb der init-Funktion in Main.as hinzu.

Das sieht zwar nach viel Code aus, ist aber nicht viel, und mit den Kommentaren ist es ziemlich einfach zu folgen.

Wie Sie sehen werden, erstellen wir im ersten Teil eine Variable zum Speichern des API-Pfads aus den FlashVars (wenn Sie nicht wissen, um welche es sich handelt, schlagen Sie sie schnell nach, sie sind sehr gut zu verstehen).

Im zweiten Block bestimmen wir, ob sich die SWF auf der Kongregate-Website befindet oder lokal ausgeführt wird, und weisen der Variablen apiPath die richtigen Informationen zu.

Dann gewähren wir der API mit einem einfachen Aufruf von security.allowDomain Zugriff auf die SWF, wobei wir den apiPath als Parameter übergeben.

Anschließend erstellen wir ein neues URLRequest-Objekt, das den an den Konstruktor übergebenen apiPath erhält, ein neues Loader-Objekt, und fügen einen Ereignis-Listener für den Loader hinzu, der nach Abschluss loadComplete aufruft.

Zuletzt rufen wir loader.load auf und übergeben unsere Anfrage (das neu erstellte URLRequest-Objekt, das den apiPath der Kongregate-API enthält). Wenn Sie verstehen, was gerade passiert ist, großartig; Wenn nicht, schwitzen Sie nicht, da Sie dies nicht noch einmal anfassen müssen.

Vergiss nicht, es zu nennen!

Nachdem die Funktion initKongregateAPI erstellt wurde und den gesamten Verbindungscode enthält, sollten wir wahrscheinlich sicherstellen, dass diese Funktion tatsächlich aufgerufen wird! Kehren Sie einfach zu der init-Funktion zurück, die unsere Datei Main.as bereits enthielt, und fügen Sie initKongregateAPI nach der Zeile, die wie folgt lautet, einen Funktionsaufruf hinzu.

Schließlich müssen wir diese loadComplete-Funktion hinzufügen, die aufgerufen wird, wenn das COMPLETE-Ereignis aus unserem vorherigen Code ausgelöst wird. Fügen Sie diese Funktion unter der Funktion initKongregateAPI in Main.as hinzu.

Der obige Code ist super einfach; Lass uns darüber nachdenken. Wir beginnen mit dem Speichern eines Verweises auf die Kongregate-API. Wie Sie sehen können, verweisen wir auf die Kongregate-API über den übergebenen Ereignisparameter über event.target.content - ganz einfach.

Jetzt müssen wir uns nur noch verbinden, und unser SWF kann loslegen. Wie Sie sehen können, stellen wir eine Verbindung her, indem wir die Methode kongregate.services.connect aufrufen. Keine Argumente erforderlich.

Das schien zwar viel Arbeit zu sein, war es aber nicht. Ich habe den Verbindungsprozess einfach sehr detailliert durchgearbeitet, damit Sie verstehen, wie wir tatsächlich Zugriff auf die API erhalten, anstatt nur diesen Zugriff zu haben und ihn zu verwenden. Nachdem Sie es verstanden haben, können Sie alle oben genannten Elemente als Boilerplate-Code verwenden.


Schritt 4: Die Statistik- und Herausforderungs-API

Nachdem wir verbunden sind, können wir uns das wichtigste Merkmal der gesamten API ansehen: den Abschnitt Statistik & Herausforderungen. Diese API sendet spielerbezogene Statistiken an den Kongregate-Server, wodurch eine Reihe von Funktionen aktiviert werden.

Das ist die einfachste Möglichkeit, den Benutzern zu ermöglichen, auf Kongregate um hohe Punktzahlen zu konkurrieren. Wenn die API integriert ist, enthält die Kongregate-Seitenleiste eine neue Registerkarte mit der Bezeichnung „ACHIEVEMENTS“, die sich neben der Registerkarte „CHAT“ befindet. Spieler können Bestenlisten für alle Statistiken anzeigen, die Sie an die Server senden. Dies kann von einem einfachen Highscore bis zur Gesamtzahl der besiegten Gegner reichen.

Die zweite und weitaus wichtigere Verwendung ist Kongregate die Verwendung der von Ihnen eingereichten Statistiken zu ermöglichen, um "Abzeichen" für Ihre Spiele zu erstellen. Abzeichen sind ein zentraler Bestandteil der Benutzererfahrung von Kongregate und ähneln den Leistungssystemen auf Plattformen wie Xbox LIVE.

Das Beste ist das, dass Ihrem Spiel Abzeichen hinzugefügt werden, ist, dass Ihr Spiel für kurze Zeit angezeigt wird, wodurch sich die Anzahl der Aufrufe und damit Ihre Werbeeinnahmen erheblich erhöhen. Selbst nachdem Ihr Spiel nicht mehr im Rampenlicht steht, erhalten alle Spiele mit Abzeichen auf Kongregate weiterhin mehr Aufrufe als normale Spiele, was Ihnen eine hervorragende Einnahmequelle für Long Tail bietet.

Beachten Sie, dass Badges nicht von Entwicklern hinzugefügt werden, sondern von den Mitarbeitern von Kongregate erstellt werden. Sie benötigen ein hoch bewertetes Spiel, um ausgewählt zu werden, aber Sie müssen auch die API einrichten - lassen Sie uns also die halbe Miete aus dem Weg räumen!


Schritt 5: Backend-Vorbereitung

Um die Statistiken, die wir senden, tatsächlich verwenden zu können, muss Kongregate zunächst dem Server mitteilen, welche Informationen er von uns erhalten soll.

Dazu gehen wir einfach auf die Statistikseite für unser Spiel auf der Kongregate-Website. Dies finden Sie auf der Seite "Spiel bearbeiten" oder durch Hinzufügen von /statistics am Ende der URL Ihres Spiels (z. B. http://www.kongregate.com/games/EpicShadow/pixel-purge/statistics). In diesem Tutorial laden wir einfach unsere Test-SWF als „Spiel“ hoch.

Bevor wir Statistiken zur Statistik- und Herausforderungs-API hinzufügen, müssen wir zunächst die vier Arten von Statistiken verstehen, die verwendet werden können, und die Regeln, an die sie gebunden sind. Die Werte müssen positiv und ganze Zahlen sein. Die vier Typen sind wie folgt:

  • Max: Der Wert auf dem Server wird ersetzt, wenn der neue Wert höher als der gespeicherte Wert ist. Zum Beispiel würde eine hohe Punktzahl von 152.000 eine alte hohe Punktzahl von 120.000 ersetzen.
  • Min: Der Wert auf dem Server wird ersetzt, wenn der neue Wert niedriger als der gespeicherte Wert ist. In einem Rennspiel würde beispielsweise eine Rundenzeit von 31 Sekunden einen älteren Wert von 35 ersetzen.
  • Hinzufügen/Add: Der neue Wert wird zum gespeicherten Wert hinzugefügt. Eine übliche Verwendung davon wäre die totale Niederlage von Feinden, der Tod von Spielern usw. Zu viele Anfragen an den Server können zu ungenauen Daten führen. Es wird daher empfohlen, Daten nur in großen Mengen zu senden, z. B. wenn ein Level abgeschlossen ist oder wenn der Spieler stirbt.
  • Ersetzen/Replace: Der neue Wert ersetzt den gespeicherten Wert, egal was passiert. Dies kann für eine Reihe von Dingen verwendet werden, z. B. für die durchschnittliche Überlebenszeit oder die Rangfolge der Spieler.

Es ist sehr wichtig zu wissen, welche der oben genannten Typen Sie für jede Ihrer Spielstatistiken verwenden müssen. Machen Sie sich daher mit der obigen Liste vertraut. Sie möchten natürlich eine Liste der Statistiken, die Ihr Spiel an Kongregate senden soll. Stellen Sie daher sicher, dass Sie diese vorbereitet haben, bevor Sie mit dem nächsten Schritt beginnen, wenn Sie tatsächlich ein Spiel einreichen.

Für dieses Tutorial verwenden wir einfach die folgenden Statistiken:

  • Klicks insgesamt (Hinzufügen)
  • Max Klicks (Max)
  • Letztes X (Ersetzen)

Sobald Ihre Liste erstellt ist, gehen Sie zur Statistikseite Ihres Spiels und geben Sie die erforderlichen Daten ein. Sobald die Back-End-Arbeit auf der Statistikseite abgeschlossen ist, kann das Spiel Daten an den Kongregate-Server senden.


Schritt 6: Wie man Statistiken sendet

Um tatsächlich Daten an den Server zu senden, rufen wir einfach die Funktion "Senden" auf, die folgendermaßen aussieht:

Wie Sie sehen können, akzeptiert die Funktion zwei Parameter:

  • statName ist der Name Ihrer Statistik. Es ist sehr wichtig, dass die übergebene Zeichenfolge mit dem Namen der Statistik identisch ist (Groß- und Kleinschreibung beachten), die Sie im vorherigen Schritt aufgeführt haben, wenn Sie den Server für die Verarbeitung Ihrer Statistiken vorbereiten.
  • value ist der tatsächlich zu übergebende numerische Wert. Auch wenn der Datentyp Number ist, denken Sie daran, dass Ihr Wert eine positive ganze Zahl sein muss.

Um diese Funktion in Ihrem Spiel aufzurufen, gehen Sie einfach wie folgt vor:

Obwohl wir vier verschiedene Arten von Statistiken hatten, die wir senden konnten, sendet diese Funktion nur den Wert. Der Server selbst überprüft anhand der Informationen, die wir im vorherigen Schritt bereitgestellt haben, wie die eingehenden Daten behandelt werden sollen. So einfach ist das; Jetzt wissen wir, wie man Daten an den Server sendet.


Schritt 7: Vorbereitung unseres Projekts zum Senden von Statistiken

Nachdem wir das Back-End auf der Kongregate-Website vorbereitet haben und nun wissen, wie Daten gesendet werden, können wir dieses Projekt ausprobieren.

Das erste, was wir tun müssen, ist, unserem Projekt Code hinzuzufügen, um unsere Statistiken tatsächlich zu senden. Da die Mauseingabe am einfachsten zu verfolgen ist, habe ich mausbezogene Statistiken ausgewählt. Wie Sie in unserem vorherigen Schritt gesehen haben, habe ich Max Clicks, Total Clicks und Last X ausgewählt.

Max Clicks ist die höchste Punktzahl für die Häufigkeit, mit der wir in einem einzelnen Spiel klicken, um den Max-Typ zu demonstrieren. Die Gesamtzahl der Klicks ist die Gesamtsumme aller Klicks, die wir ausgeführt haben, um den Typ "Hinzufügen" zu demonstrieren. und Letztes X ist die x-Position unseres letzten Klicks, um den Ersetztyp zu demonstrieren.

Um unsere Mausklicks zu verfolgen, müssen wir die MouseEvent-Klasse importieren. Gehen Sie zurück zu Main.as und fügen Sie Ihren Importen Folgendes hinzu:

Jetzt müssen wir eine Variable für unsere Max-Klick-Statistik hinzufügen, um die Gesamtzahl der Klicks pro Spielsitzung zu verfolgen. Fügen Sie direkt darunter, wo wir die kongregate-Referenzvariable (vom Datentyp *) hinzugefügt haben, Folgendes hinzu:

Wir benötigen einen Ereignis-Listener, um auf unsere Klicks zu warten, also fügen wir das jetzt hinzu. Fügen Sie in der init-Funktion direkt unter dem Aufruf von initKongregateAPI Folgendes hinzu:

Wie Sie im obigen Code sehen können, wird die Funktion aufgerufen, wenn das clicked Ereignis aufgerufen wird. Lassen Sie uns fortfahren und diese Funktion erstellen. Fügen Sie unter Ihrer loadComplete-Funktion Folgendes hinzu:

Wir erhöhen hier lediglich die Variable maxClicks um 1 und senden dann alle erforderlichen Informationen an den Kongregate-Server. Dies addiert 1 zum Total Clicks-Status, sendet die aktuelle maxClicks-Variable an den Server, der dann feststellt, ob sie höher als der vorherige Wert ist, und ersetzt sie, falls dies der Fall ist, und sendet die x-Position unseres vorherigen Klicks, die automatisch erfolgt Ersetzen Sie den vorherigen Wert.

Unser SWF ist vielleicht nur ein leerer Bildschirm, aber es ist viel los, und wir werden es gleich in Aktion sehen. Stellen Sie sicher, dass Sie das Projekt kompilieren, bevor Sie fortfahren.


Schritt 8: Testen unseres Projekts

Jetzt ist es Zeit, unser Projekt tatsächlich hochzuladen und in Aktion zu sehen.

Gehen Sie zurück zur Kongregate-Website, gehen Sie zu Ihrer Spieleseite und laden Sie die endgültige Version unseres Projekts hoch. Sobald Sie das Projekt hochgeladen haben, werden Sie zu einem Vorschaubildschirm weitergeleitet, auf dem wir unser Projekt testen können, bevor wir es veröffentlichen. Um den Mitarbeitern der Kongregate viel Zeit und Energie zu sparen, tun Sie allen einen Gefallen und drücken Sie nicht auf Veröffentlichen in Ihrem Test-SWF. (Wenn Sie an einem echten Spiel arbeiten, fahren Sie fort, aber für dieses Tutorial werden wir dieses Projekt nicht veröffentlichen.)

Sobald Sie auf der Testseite sind, geben Sie dem Spiel ein paar Klicks. Aktualisieren Sie die Seite, und Sie sollten jetzt sehen, dass sich neben den Registerkarten "CHAT" und "GAME" eine Registerkarte "HIGH SCORES" befindet. Wenn Sie bis zu diesem Punkt alles richtig gemacht haben, sollten Sie ein Dropdown-Feld mit der Aufschrift "Last X" haben, das auch "Max Clicks" und "Total Clicks" enthält. Beachten Sie, dass ein schnelles Klicken zu ungenauen Statistiken führt, da der Server nicht mit allen Anforderungen Schritt halten kann. Klicken Sie daher langsam, um die besten Ergebnisse zu erzielen. Aus diesem Grund habe ich vorhin darauf hingewiesen, dass Sie große Datenmengen nach dem Tod oder nach Abschluss des Levels senden, wenn dies möglich ist.

Nun, los geht's: Sie haben jetzt den wichtigsten Teil der Kongregate-API zum Laufen gebracht. Wenn Ihr Projekt zu diesem Zeitpunkt nicht funktioniert, stellen Sie sicher, dass Ihre Kongregate-Back-End-Stat-Namen genau so eingegeben werden, wie sie in Ihrer Übermittlungsfunktion enthalten sind - Groß- und Kleinschreibung beachten -, da dies normalerweise das Problem ist.

Sie finden den fertigen Code auch im Ordner mit den endgültigen Dateien im Quelldownload. Vergleichen Sie Ihren Code daher mit dem Code, wenn Sie weiterhin Probleme haben.


Schritt 9: Kommunikation der Massenmitteilung

Hast du jemals ein Spiel veröffentlicht und wolltest später wirklich alle deine Fans erreichen? Mit der Kongregate-API können Sie genau das tun - zumindest für alle Ihre Kongregate-Fans.

Es gibt einige Einschränkungen, wer dies tun kann, aber diese Einschränkungen sind sehr im besten Interesse von Entwicklern und Spielern. Um sich zu qualifizieren, muss Ihr Spiel eine Bewertung von 3,75 oder höher erhalten und mindestens 10.000 Spiele haben.

Sie können höchstens alle sieben Tage eine Nachricht „Aktive Spieler“ senden. Diese Nachrichten werden an alle Spieler gesendet, die das Spiel mindestens dreimal und in den letzten zehn Tagen mindestens einmal gespielt haben.

Sie können höchstens alle 30 Tage eine Nachricht "Inaktive Spieler" senden. Diese Nachrichten werden von allen Spielern empfangen, die mindestens fünf Mal insgesamt gespielt haben, jedoch nicht innerhalb der letzten zehn Tage.

Es gibt viele Gründe, diese Nachrichten an Ihre Spieler zu senden, z. B. sie über Fehlerkorrekturen zu informieren oder sie über eine bevorstehende Fortsetzung zu informieren. Unabhängig davon, wofür Sie dies verwenden, ist es ein unglaublich nützliches System, das Ihnen wirklich dabei helfen kann, Ihre Fans zu nutzen.

Weitere Informationen finden Sie in diesem Handbuch.


So viel mehr...

Während wir in diesem Tutorial viel behandelt haben, kann die Kongregate-API noch viel mehr. Leider müsste ich ein kleines Buch schreiben, um alle Funktionen zu erläutern, insbesondere diejenigen, die für webbasierte MMOs nützlich sind. Wenn Sie herausfinden möchten, welche anderen Funktionen die API bietet, empfehlen wir Ihnen, das Kongregate Developers Center zu besuchen, um weitere Informationen zu erhalten.

Nachdem Sie nun wissen, wie Sie die Kongregate-API zum Laufen bringen, empfehle ich Ihnen dringend, sie allen zukünftigen Spielen hinzuzufügen. Wenn Sie Glück haben, bekommen Sie vielleicht sogar ein paar Abzeichen, und dann beginnt der wahre Spaß.

Advertisement
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.