Kongregate ist eines der größten Flash-Spieleportale im Internet und verfügt über 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. Außerdem wird ausführlich erläutert, wozu die API in der Lage ist und warum Sie sie verwenden sollten.
(Beachten Sie, dass in diesem Lernprogramm davon ausgegangen wird, dass Sie bereits über ein Konto bei Kongregate verfügen. Wenn Sie dies nicht tun, erstellen Sie jetzt ein Konto.)
Lassen Sie uns einen Blick darauf werfen, was uns die API ermöglicht:
Abzeichen
Massenmeldungen
Highscores
Es gibt noch einen weiteren Grund, die API zu implementieren…
Bevor wir uns mit den technischen Aspekten der Implementierung der Kongregate-API beschäftigen, wollen wir uns ein wenig auf den Kopf stellen und sicherstellen, dass wir sie tatsächlich implementieren wollen.
Es gibt viele Gründe, die API zu implementieren, aber für die meisten Entwickler spricht nichts lauter als Geld, und dazu gibt es viele. Wenn Sie Ihr Spiel bei Kongregate hochladen, verdienen Sie automatisch 25% aller Werbeeinnahmen, die auf der Seite Ihres Spiels erzielt werden.
Es wird besser; Wenn Sie ihre "Statistics & Challenges API" implementieren, erhalten Sie zusätzlich 10%! Wenn Ihr Spiel exklusiv für Kongregate ist oder von ihnen gesponsert wird, erhalten Sie schließlich 15% zusätzlich. Dadurch haben Sie die Möglichkeit, bis zu 50% des Werbeerlöses für Ihr Spiel bei Kongregate zu verdienen. Wenn Sie sich fragen, wie viel das ist, schauen Sie sich meine persönlichen Statistiken an:
Für dieses Tutorial verwenden wir FlashDevelop, einen kostenlosen Open Source-Editor für Entwickler. Wir werden alles in einfachen .as-Dateien erledigen. Wenn Sie also die Flash-IDE mitverfolgen möchten, sollten Sie keine Probleme haben. Wenn Sie FlashDevelop verwenden möchten und sich mit FlashDevelop nicht auskennen, lesen Sie diese ausgezeichnete FlashDevelop-Anleitung für Anfänger, um den besten AS3-Editor auf den Markt zu bringen.
Öffnen Sie zunächst FlashDevelop, gehen Sie zur Registerkarte Projekt und wählen Sie "Neues Projekt". Wählen Sie hier "AS3-Projekt mit Pre-Loader". Alternativ können Sie auch die Preloader.as
und Main.as
Dateien aus der Quelle herunterladen, und folgen Sie einfach.
Ihre Datei sollte ein Barebones sein Main.as
Datei wie folgt:
package import flash.display.Sprite; import flash.events.Event; / ** *… * @author Your Name * / [Frame (factoryClass = "Preloader")] Öffentliche Klasse Main erweitert Sprite öffentliche Funktion Main (): void if (stage) init (); else addEventListener (Event.ADDED_TO_STAGE, init); private Funktion init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // Einstiegspunkt
Nichts darüber sollte neu für Sie 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, sollte ein leerer weißer Bildschirm ohne Compiler-Fehler angezeigt werden.
Bevor wir uns mit den coolen Funktionen der API beschäftigen, müssen wir sicherstellen, dass die API in Betrieb ist.
Im Gegensatz zu vielen Sponsor-APIs ist die Kongregate-API keine eigenständige Gruppe von Dateien, die wir mit unserem Projekt kompilieren müssen. Die API ist tatsächlich auf dem Kongregate-Server gespeichert und wird 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 mit unserem verbinden Main.as
, und dort einen Verweis darauf speichern.
Um zu beginnen, kopieren Sie den folgenden Code in unser Main.as
Datei direkt unter den vorhandenen Importen:
import flash.display.LoaderInfo; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import flash.system.Security;
Dies sind nur einige einfache Importe, die es uns ermöglichen, die erforderlichen Klassen zum Laden in die Kongregate-API zu verwenden.
Als Nächstes fügen wir eine Variable hinzu, um unsere Referenz auf die Kongregate-API zu speichern. Fügen Sie das folgende Recht über dem Konstruktor unserer Datei Main.as hinzu.
private var kongregate: *;
Beachten Sie, dass der Datentyp unserer Kongregate-Variablen ist *
. Wenn Sie damit nicht vertraut sind, sagen wir dem Compiler einfach, dass das Kongregat
Variable akzeptiert jeden Datentyp, ähnlich wie ein Platzhalter.
(Beachten Sie auch, dass Sie in einem echten Spiel Ihren Verweis auf die API an einem Ort speichern möchten, auf den Ihr gesamtes Projekt Zugriff hat, z. B. a öffentliche statische const
. Diese Referenz ist erforderlich, damit Sie die API von jedem beliebigen Ort in Ihrem Projekt für jeden Zweck verwenden können, anstatt nur im Main.as
Datei beim ersten Start.)
Dieses nächste Stück Code wird in einer benutzerdefinierten Funktion unter dem Namen von enthalten sein initKongregateAPI ()
. Dies ist zwar nicht unbedingt notwendig, aber ich bevorzuge es, beim Schreiben von Code Ideen einzukapseln, da der Code lesbar bleibt und leicht zu handhaben ist.
Fahren Sie fort und fügen Sie diese Funktion unter dem hinzu drin
Funktion in Main.as
.
private Funktion initKongregateAPI (): void // Ruft den API-Pfad aus den FlashVars ab. var paramObj: Object = LoaderInfo (root.loaderInfo) .parameters; // Der API-Pfad Die "Schatten" -API wird beim lokalen Testen geladen. var apiPath: String = paramObj.kongregate_api_path || "http://www.kongregate.com/flash/API_AS3_Local.swf"; // Erlaube dem API-Zugriff auf diese SWF Security.allowDomain (apiPath); // Lade die API-Var-Anfrage: URLRequest = neue URLRequest (apiPath); var loader: Loader = neuer Loader (); loader.contentLoaderInfo.addEventListener (Event.COMPLETE, loadComplete); loader.load (Anfrage); this.addChild (loader);
Das sieht zwar nach viel Code aus, ist aber wirklich nicht viel und mit den Kommentaren ist es ziemlich einfach zu folgen.
Wie Sie sehen werden, erstellen wir im ersten Teil eine Variable, um den API-Pfad aus den FlashVars zu speichern..
Im zweiten Abschnitt ermitteln wir, ob sich die SWF-Datei auf der Kongregate-Website befindet oder lokal ausgeführt wird, und weisen die entsprechenden Informationen zu apiPath
Variable.
Als Nächstes geben wir die API mit einem einfachen Zugriff auf die SWF-Datei security.allowDomain
anrufen, wo wir vorbei gehen apiPath
als Parameter.
Wir erstellen dann ein neues URLRequest
Objekt, das das bekommt apiPath
an den Konstruktor übergeben, ein neues Lader
Objekt und fügen Sie einen Ereignis-Listener für den Loader hinzu, der aufgerufen wird loadComplete
wenn fertig.
Zuletzt rufen wir an loader.load
und übergeben Sie unsere Anfrage (die neu erstellte URLRequest
Objekt, das das enthält apiPath
der Kongregate-API). Wenn Sie verstehen, was gerade passiert ist, großartig; Wenn nicht, schwitzen Sie es nicht, da Sie dies nicht erneut berühren müssen.
Jetzt, da die initKongregateAPI-Funktion erstellt wurde und den gesamten Verbindungscode enthält, sollten wir wahrscheinlich sicherstellen, dass diese Funktion tatsächlich aufgerufen wird! Geh einfach zurück zum drin
Funktion das unser Main.as
Datei bereits enthalten, und fügen Sie einen Funktionsaufruf hinzu initKongregateAPI
hinter der Linie diese "Einstiegspunkt" -Linie,
private Funktion init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // Einstiegspunkt initKongregateAPI ();
Zum Schluss müssen wir das noch hinzufügen loadComplete
Funktion, die aufgerufen werden soll, wenn die KOMPLETT
Ereignis wird aus unserem vorherigen Code ausgelöst. Fügen Sie diese Funktion unter dem hinzu initKongregateAPI
Funktion in Main.as
.
// Diese Funktion wird aufgerufen, wenn das Laden abgeschlossen ist. Private Funktion loadComplete (event: Event): void // Save Kongregate-API-Referenz kongregate = event.target.content; // Verbindung zum Backend herstellen kongregate.services.connect (); // Sie können jetzt auf die API zugreifen: // kongregate.services // kongregate.user // kongregate.scores // kongregate.stats // etc…
Der obige Code ist sehr einfach. Lass uns darüber gehen. Wir beginnen mit dem Speichern eines Verweises auf die Kongregate-API. Wie Sie sehen, referenzieren wir die Kongregate-API über den übergebenen Ereignisparameter via event.target.content
- einfach genug.
Jetzt müssen wir nur noch eine Verbindung herstellen, und unsere SWF-Datei ist gut für den Start. Wie Sie sehen, verbinden wir uns mit dem kongregate.services.connect
Methode. Keine Argumente erforderlich.
Das schien zwar viel Arbeit zu sein, war es aber wirklich nicht. Ich habe den Verbindungsprozess einfach detailliert durchgearbeitet, sodass Sie verstehen können, wie wir tatsächlich Zugriff auf die API erhalten, anstatt nur diesen Zugriff zu haben und ihn zu nutzen. Nun, da Sie es verstanden haben, können Sie all das als Boilerplate-Code verwenden.
Nun, da wir verbunden sind, können wir uns die wichtigste Funktion der gesamten API ansehen: den Bereich "Statistiken & Herausforderungen". Mit dieser API werden Player-Statistiken an den Kongregate-Server gesendet, wodurch eine Reihe von Funktionen möglich ist.
Zunächst einmal ist dies der grundlegendste Weg, um Benutzern die Teilnahme an Kongregate für hohe Punktzahlen zu ermöglichen. Wenn die API integriert ist, wird in der Kongregate-Seitenleiste eine neue Registerkarte mit der Bezeichnung "ACHIEVEMENTS" angezeigt, die sich neben der Registerkarte "CHAT" befindet. Spieler können Ranglisten für alle Stat anzeigen, die Sie an die Server senden. Dies kann vom einfachen Highscore bis zur Anzahl der besiegten Feinde reichen.
Die zweite und weitaus wichtigere Anwendung besteht darin, Kongregate zu gestatten, die von Ihnen übermittelten Statistiken zu verwenden, um "Badges" für Ihre Spiele zu erstellen. Badges sind ein zentraler Bestandteil der Kongregate-Benutzererfahrung und ähneln den Leistungssystemen auf Plattformen wie Xbox LIVE.
Das Beste an dem Hinzufügen von Abzeichen für Ihr Spiel ist, dass Ihr Spiel für eine kurze Zeitdauer angezeigt wird, wodurch die Anzahl der Aufrufe und damit der Anzeigenumsatz erheblich gesteigert wird. Selbst wenn Ihr Spiel nicht im Rampenlicht ist, erhalten alle Spiele mit einem Badgedeck auf Kongregate immer mehr Ansichten über normale Spiele, wodurch Sie einen hervorragenden Ertragsstrom erhalten.
Beachten Sie, dass Abzeichen nicht von Entwicklern hinzugefügt werden, sondern von Kongregate-Mitarbeitern erstellt werden. Sie benötigen ein hoch bewertetes Spiel, um ausgewählt zu werden, aber Sie müssen auch die API einrichten - also lassen Sie uns die Hälfte der Schlacht aus dem Weg räumen!
Um die Statistiken, die wir senden, tatsächlich verwenden zu können, muss Kongregate uns zuerst mitteilen, welche Informationen von ihm bereitgestellt werden sollen.
Um dies zu tun, gehen wir einfach auf die Statistikseite unseres Spiels auf der Kongregate-Website. Dies kann auf der Seite "Spiel bearbeiten" oder durch Hinzufügen erfolgen /Statistiken
bis zum Ende der URL Ihres Spiels (z. B. http://www.kongregate.com/games/EpicShadow/pixel-purge/statistics). Für dieses Tutorial laden wir einfach unsere Test-SWF als "Spiel" hoch..
Vor dem Hinzufügen von Statistiken zur Statistics & Challenges-API müssen zunächst die vier Arten von Statistiken, die verwendet werden können, und die Regeln, an die sie gebunden sind, verstanden werden. Werte müssen sein positiv, und muss sein ganze ganze Zahlen. Die vier Typen sind wie folgt:
Es ist äußerst wichtig zu wissen, welche der oben genannten Arten Sie für jede Ihrer Spielstatistiken verwenden müssen. Machen Sie sich also mit der obigen Liste vertraut. Natürlich möchten Sie eine Liste mit Statistiken, die Ihr Spiel an Kongregate senden soll. Stellen Sie also sicher, dass Sie diese vorbereitet haben, bevor Sie in den nächsten Schritt eintauchen, wenn Sie ein Spiel einreichen.
In diesem Tutorial verwenden wir einfach die folgenden Statistiken:
Sobald Ihre Liste vorbereitet ist, gehen Sie zur Statistik-Seite 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.
Um tatsächlich Daten an den Server zu senden, rufen wir einfach die Funktion "Submit" auf, die wie folgt aussieht:
submit (statName: String, Wert: Number): ungültig
Wie Sie sehen, hat die Funktion zwei Parameter:
statName
ist der Name Ihres Stat. Es ist sehr wichtig, dass der übergebene String mit dem Namen der im vorherigen Schritt aufgelisteten Statistik identisch ist (Groß- und Kleinschreibung beachten), wenn Sie den Server für die Verarbeitung Ihrer Statistiken vorbereiten.Wert
ist der tatsächlich übergebene numerische Wert. Obwohl der Datentyp Number ist, müssen Sie beachten, dass Ihr Wert a sein muss positiv, ganze ganze Zahl.Um diese Funktion in Ihrem Spiel aufzurufen, gehen Sie einfach wie folgt vor:
kongregate.stats.submit ("Your Stat String", statValue); // Statwert könnte 1, 500, 5342324 usw. sein.
Obwohl wir vier verschiedene Arten von Statistiken hatten, die wir senden konnten, sendet diese Funktion nur den Wert. Der Server selbst prüft die Informationen, die wir im vorherigen Schritt bereitgestellt haben, um zu ermitteln, wie die eingehenden Daten behandelt werden sollen. So einfach ist das; Jetzt wissen wir, wie man Daten an den Server sendet.
Nun, da wir das Backend auf der Kongregate-Website vorbereitet haben und nun wissen, wie Daten gesendet werden, lassen Sie uns dieses Projekt starten.
Das erste, was wir tun müssen, ist, unserem Projekt etwas Code hinzuzufügen, um unsere Statistiken zu senden. Da es am einfachsten ist, die Mauseingabe zu verfolgen, habe ich Mausstatistiken 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, wie oft wir in einem Spiel klicken, um den Max-Typ zu demonstrieren. Gesamtklicks sind die Gesamtsumme aller Klicks, die wir gemacht haben, um den Typ "Hinzufügen" zu demonstrieren. und Last X wird die x-Position unseres letzten Klicks sein, um den Typ Ersetzen zu demonstrieren.
Um unsere Mausklicks zu verfolgen, müssen wir das importieren MouseEvent
Klasse. Gehen Sie zurück zu Main.as und fügen Sie folgende Importe hinzu:
import flash.events.MouseEvent;
Jetzt müssen wir eine Variable für unseren Max Clicks-Status hinzufügen, um die Gesamtzahl der Klicks pro Spielsitzung zu verfolgen. Gleich unterhalb der Stelle, an der wir die Kongregat
Referenzvariable (vom Datentyp *
), füge folgendes hinzu:
private var maxClicks: int;
Wir werden einen Event Listener benötigen, um auf unsere Klicks zu hören, also fügen wir das jetzt hinzu. In dem drin
Funktion, direkt unter dem Aufruf an initKongregateAPI
, Folgendes hinzufügen:
// Event Listener für Mausklicks stage.addEventListener (MouseEvent.CLICK, angeklickt);
Wie Sie im obigen Code sehen können, wird die Funktion aufgerufen, wenn das Ereignis ausgelöst wird angeklickt
. Lassen Sie uns diese Funktion erstellen. Fügen Sie Folgendes unter Ihrem hinzu loadComplete
Funktion:
private Funktion angeklickt (Ereignis: Ereignis): void maxClicks ++; kongregate.stats.submit ("Total Clicks", 1); kongregate.stats.submit ("Max Clicks", maxClicks); kongregate.stats.submit ("Last X", mouseX);
Alles, was wir hier tun, ist das Inkrementieren maxClicks
variabel durch 1
, und senden Sie dann alle erforderlichen Informationen an den Kongregate-Server. Dadurch wird der Gesamtzahl der Klicks 1 hinzugefügt, und der Strom wird gesendet maxClicks
Variable an den Server, der dann ermittelt, ob er höher als der vorherige Wert ist, und ersetzt ihn, wenn dies der Fall ist, und sendet die x-Position unseres vorherigen Klicks, wodurch der vorherige Wert automatisch ersetzt wird.
Unsere SWF-Datei ist vielleicht nur ein leerer Bildschirm, aber es ist viel los und wir werden es bald in Aktion sehen. Stellen Sie sicher, dass Sie das Projekt kompilieren, bevor Sie fortfahren.
Nun ist es an der Zeit, unser Projekt tatsächlich hochzuladen und es 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. Nachdem Sie das Projekt hochgeladen haben, gelangen Sie zu einem Vorschaubildschirm, auf dem Sie unser Projekt testen können, bevor Sie es veröffentlichen. Um den Kongregate-Mitarbeitern viel Zeit und Energie zu sparen, tun Sie allen einen Gefallen und Veröffentlichen Sie nicht auf Ihrer Test-SWF. (Wenn Sie an einem echten Spiel arbeiten, fahren Sie fort, aber für dieses Tutorial werden wir dieses Projekt nicht veröffentlichen.)
Wenn Sie sich auf der Testseite befinden, geben Sie dem Spiel einige Klicks. Aktualisieren Sie die Seite, und Sie sollten jetzt sehen, dass sich neben den Registern "CHAT" und "GAME" eine Registerkarte "HIGH SCORES" befindet. Wenn Sie bis zu diesem Punkt alles richtig gemacht haben, sollten Sie über ein Dropdown-Feld verfügen, in dem "Last X" angezeigt wird und das "Max Clicks" und "Total Clicks" enthält. Beachten Sie, dass ein schnelles Klicken zu unschätzbaren Statistiken führt, da der Server nicht alle Anforderungen erfüllen kann. Klicken Sie daher langsam, um die besten Ergebnisse zu erzielen. Aus diesem Grund habe ich bereits angeraten, dass Sie nach dem Tod oder nach Beendigung des Levels große Datenmengen senden, wenn dies möglich ist.
Nun, los geht's: Sie haben jetzt den wichtigsten Teil der Kongregate-API in Betrieb. Wenn Ihr Projekt zu diesem Zeitpunkt nicht funktioniert, vergewissern Sie sich, dass die Namen der Kongregate-Back-End-Statistiken genau so eingegeben werden, wie sie in Ihrer Übermittlungsfunktion verwendet werden (Groß- und Kleinschreibung beachten), da dies normalerweise das Problem ist.
Den vollständigen Code finden Sie auch im endgültige Dateien Ordner im Quelldownload herunterladen, vergleichen Sie also Ihren Code damit, wenn Sie immer noch Probleme haben.
Haben Sie schon einmal ein Spiel veröffentlicht, wollten Sie später wirklich alle Ihre 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 liegen im besten Interesse sowohl der Entwickler als auch der Spieler. Um sich zu qualifizieren, muss Ihr Spiel eine Bewertung von 3,75 oder höher haben und über mindestens 10.000 Spiele verfügen.
Sie können höchstens einmal 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 einmal alle 30 Tage eine "inaktive Spieler" -Meldung senden. Diese Nachrichten werden von allen Spielern empfangen, die insgesamt mindestens fünfmal gespielt haben, jedoch nicht innerhalb der letzten zehn Tage.
Es gibt viele Gründe, diese Nachrichten an Ihre Spieler zu senden, z. B. die Benachrichtigung über Fehlerbehebungen oder die Benachrichtigung über eine bevorstehende Fortsetzung. Unabhängig davon, wofür Sie dies verwenden, es ist ein unglaublich nützliches System, das Ihnen wirklich dabei helfen kann, Ihre Fans zu nutzen.
Weitere Informationen finden Sie in diesem Handbuch.
Während wir in diesem Tutorial viel behandelt haben, kann die Kongregate-API noch viel mehr. Unglücklicherweise muss ich ein kleines Buch schreiben, um alle Funktionen durchzugehen, insbesondere diejenigen, die für webbasierte MMOs nützlich sind. Wenn Sie wissen möchten, welche anderen Funktionen die API bietet, empfehle ich Ihnen, das Kongregate Developers Center zu besuchen.
Nachdem Sie nun wissen, wie Sie die Kongregate-API zum Laufen bringen, möchte ich Sie dringend dazu auffordern, sie allen zukünftigen Spielen hinzuzufügen. Wenn Sie Glück haben, bekommen Sie vielleicht sogar einige Abzeichen, und dann beginnt der eigentliche Spaß.