Kongregate è uno dei più grandi portali di giochi Flash in rete e ha una propria API che può essere integrata nei tuoi giochi (per i quali Kongregate ti ricompensa anche finanziariamente). In questo tutorial, ti mostrerò come implementare l'API di Kongregate nei tuoi giochi e anche nei dettagli su cosa è in grado l'API e perché dovresti usarlo.
(Nota che questo tutorial presume che tu abbia già un account Kongregate; se non lo fai, creane uno ora.)
Diamo un'occhiata a ciò che l'API ci consente di fare:
badge
Messaggi di massa
Miglior punteggio
C'è un altro grande motivo per implementare l'API ...
Prima di approfondire gli aspetti tecnici dell'implementazione dell'API di Kongregate, facciamo un po 'di risalto e assicuriamoci di volerlo implementare.
Ci sono molte ragioni per implementare l'API, ma per la maggior parte degli sviluppatori, nulla parla più dei soldi, e c'è molto di questo. Quando carichi il tuo gioco su Kongregate, guadagni automaticamente il 25% di tutte le entrate pubblicitarie generate dalla pagina del tuo gioco.
Migliora se implementi la loro "API Statistics and Challenges", riceverai un ulteriore 10%! Infine, se il tuo gioco è esclusivo di Kongregate o sponsorizzato da loro, riceverai un ulteriore 15%. Questo ti dà l'opportunità di guadagnare fino al 50% delle entrate pubblicitarie per il tuo gioco su Kongregate. Se ti stai chiedendo quanto è successo, controlla alcune delle mie statistiche personali:
Per questo tutorial, utilizzeremo FlashDevelop, un editor open source gratuito per gli sviluppatori. Faremo tutto in semplici file .as, quindi se vuoi continuare a utilizzare l'IDE Flash, non dovresti avere problemi. Se desideri utilizzare FlashDevelop e non ti è familiare, dai un'occhiata a questa eccellente guida per principianti FlashDevelop per iniziare a conoscere quello che considererei il miglior editor AS3 in circolazione.
Per iniziare, apri FlashDevelop, vai alla scheda Progetto e seleziona "Nuovo progetto". Da qui, selezionare "Progetto AS3 con Pre-Loader". In alternativa, puoi afferrare il Preloader.as
e Main.as
file dal download di origine, e semplicemente segui.
Il tuo file dovrebbe essere un barebone Main.as
file, come questo:
pacchetto import flash.display.Sprite; import flash.events.Event; / ** * ... * @author Nome * / [Frame (factoryClass = "Preloader")] public class Main estende Sprite public function Main (): void if (stage) init (); else addEventListener (Event.ADDED_TO_STAGE, init); funzione privata init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // punto d'entrata
Niente di sopra dovrebbe essere nuovo per te; se lo è, tutto ciò che devi sapere è che questo file è il punto di ingresso per il nostro programma, è qui che tutto inizia. Se lo compili con FlashDevelop, dovresti ottenere uno schermo bianco vuoto, senza errori del compilatore.
Prima di immergerci in tutte le fantastiche funzioni dell'API, dobbiamo assicurarci di avere le API attive e funzionanti.
A differenza di molte API sponsor, l'API Kongregate non è un insieme autonomo di file che dobbiamo compilare con il nostro progetto. L'API è effettivamente memorizzata sul server Kongregate e la cariciamo in fase di runtime. Ci sono molti modi per farlo nei tuoi progetti, ma per il bene di questo tutorial, ci collegheremo semplicemente all'interno del nostro Main.as
, e un salvataggio di un riferimento ad esso lì.
Per iniziare, copia il seguente codice nel nostro Main.as
file appena sotto le importazioni esistenti:
import flash.display.LoaderInfo; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import flash.system.Security;
Quanto sopra sono solo alcune semplici importazioni che ci permetteranno di utilizzare le classi necessarie per il caricamento nell'API Kongregate.
Successivamente, aggiungeremo una variabile per memorizzare il nostro riferimento all'API Kongregate. Vai avanti e aggiungi il seguente diritto sopra il costruttore del nostro file Main.as.
private var kongregate: *;
Si noti che il tipo di dati della nostra variabile kongregate è *
. Se non hai familiarità con questo, stiamo semplicemente dicendo al compilatore che il Kongregate
la variabile accetterà qualsiasi tipo di dati, proprio come una wild card.
(Inoltre, si noti che in un gioco reale si desidera memorizzare il proprio riferimento all'API da qualche parte a cui l'intero progetto ha accesso, ad esempio statico pubblico const
. Questo riferimento è necessario per poter utilizzare l'API da qualsiasi punto del progetto, per qualsiasi scopo, piuttosto che solo nel Main.as
file al primo avvio.)
Questo prossimo pezzo di codice sarà contenuto in una funzione personalizzata dal nome di initKongregateAPI ()
. Questo non è effettivamente necessario, ma preferisco incapsulare idee quando si scrive codice, in quanto aiuta a mantenere il codice leggibile e facile da lavorare con.
Vai avanti e aggiungi questa funzione sotto il dentro
funzione in Main.as
.
funzione privata initKongregateAPI (): void // Estrai il percorso dell'API da FlashVars var paramObj: Object = LoaderInfo (root.loaderInfo) .parameters; // Il percorso dell'API. L'API "shadow" verrà caricata se si esegue il test localmente. var apiPath: String = paramObj.kongregate_api_path || "Http://www.kongregate.com/flash/API_AS3_Local.swf"; // Consentire all'API di accedere a questo SWF Security.allowDomain (apiPath); // Carica la richiesta var dell'API: URLRequest = new URLRequest (apiPath); var loader: Loader = new Loader (); loader.contentLoaderInfo.addEventListener (Event.COMPLETE, loadComplete); Loader.load (richiesta); this.addChild (caricatore);
Anche se può sembrare un sacco di codice, non è molto, e con i commenti è abbastanza facile da seguire.
Come vedrai, nella prima parte stiamo creando una variabile per archiviare il percorso dell'API da FlashVars (se non sai cosa sono, guardali molto velocemente, sono una grande cosa da capire).
Nel secondo blocco, determiniamo se il file SWF si trova sul sito Web Kongregate o è in esecuzione a livello locale e assegniamo le informazioni corrette al apiPath
variabile.
Successivamente, forniamo l'accesso API al file SWF, con un semplice security.allowDomain
chiama, dove passiamo nel apiPath
come parametro.
Quindi creiamo un nuovo URLRequest
oggetto, che ottiene il apiPath
passato al costruttore, un nuovo caricatore
oggetto e aggiungere un listener di eventi per il loader che chiamerà loadComplete
quando fatto.
Ultimo, chiamiamo Loader.load
e passare nella nostra richiesta (la nuova creazione URLRequest
oggetto, che contiene il apiPath
dell'API Kongregate). Se capisci cosa è appena successo, bene; in caso contrario, non sudare, poiché non dovrai più toccarlo.
Ora che la funzione initKongregateAPI è stata creata e contiene tutto il codice di connessione, dovremmo probabilmente assicurarci che questa funzione venga effettivamente chiamata! Basta tornare al dentro
funzione che il nostro Main.as
file già contenuto e aggiungere una chiamata di funzione a initKongregateAPI
dopo la linea quella linea "entry point", in questo modo,
funzione privata init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // entry point initKongregateAPI ();
Infine, dobbiamo aggiungere questo loadComplete
funzione, da chiamare quando il COMPLETARE
l'evento è licenziato dal nostro codice precedente. Aggiungi questa funzione sotto il initKongregateAPI
funzione in Main.as
.
// Questa funzione viene richiamata quando il caricamento è completato. Funzione privata loadComplete (event: Event): void // Salva riferimento Kongregate API kongregate = event.target.content; // Connetti al back-end kongregate.services.connect (); // Ora puoi accedere all'API tramite: // kongregate.services // kongregate.user // kongregate.scores // kongregate.stats // etc ...
Il codice sopra è super semplice; andiamo oltre. Iniziamo salvando un riferimento all'API Kongregate. Come puoi vedere, stiamo facendo riferimento all'API di Kongregate tramite il parametro evento passato, via event.target.content
- abbastanza semplice.
Ora tutto ciò che dobbiamo fare è connettersi e il nostro SWF è pronto. Come puoi vedere, ci colleghiamo chiamando il kongregate.services.connect
metodo. Nessun argomento richiesto.
Anche se questo può sembrare un sacco di lavoro, in realtà non lo era. Ho semplicemente analizzato molto dettagliatamente il processo di connessione, in modo che tu possa capire come stiamo effettivamente ottenendo l'accesso all'API, piuttosto che avere solo quell'accesso e usarlo. Ora che lo capisci, puoi usare tutto quanto sopra come codice standard.
Ora che siamo connessi, possiamo dare un'occhiata alla funzione più importante dell'intera API: la parte relativa alle statistiche e alle sfide. Questa API invia le statistiche relative ai giocatori al server Kongregate, che consente un certo numero di cose.
Prima di tutto, questo è il modo più semplice per consentire agli utenti di competere per i punteggi più alti su Kongregate. Con l'API integrata, la barra laterale di Kongregate includerà una nuova scheda denominata "ACHIEVEMENTS", che può essere trovata accanto alla scheda "CHAT". I giocatori possono vedere le classifiche per qualsiasi stat che invii ai server, che potrebbe essere qualsiasi cosa, da un punteggio alto di base al numero totale di nemici sconfitti.
Il secondo e molto più importante uso è permettere a Kongregate di usare le statistiche che invii per creare "badge" per i tuoi giochi. I badge sono una parte centrale dell'esperienza utente di Kongregate e sono molto simili ai sistemi di realizzazione su piattaforme come Xbox LIVE.
La parte migliore dell'aggiunta di distintivi al tuo gioco è che il tuo gioco diventerà caratterizzato per una breve durata, aumentando notevolmente il numero di visualizzazioni ottenute e aumentando così notevolmente le entrate pubblicitarie. Anche dopo che la tua partita è stata al centro dell'attenzione, tutti i giochi con badge su Kongregate continuano a ricevere visualizzazioni più elevate rispetto ai normali giochi, il che ti offre un eccellente flusso di entrate a coda lunga.
Si noti che i badge non vengono aggiunti dagli sviluppatori, ma vengono creati dallo staff di Kongregate. Avrai bisogno di un gioco di alto livello per essere selezionato, ma avrai anche bisogno dell'API da impostare - quindi lasciamo perdere metà della battaglia!
Per utilizzare effettivamente le statistiche che invieremo, Kongregate ci richiede innanzitutto che i loro server sappiano quali informazioni dovrebbero essere preparate per ricevere da noi.
Per fare questo, andiamo semplicemente alla pagina Statistiche per il nostro gioco sul sito Web Kongregate. Questo può essere trovato nella pagina "Modifica gioco", o aggiungendo / statistiche
alla fine dell'URL del gioco (ad esempio, http://www.kongregate.com/games/EpicShadow/pixel-purge/statistics). Per questo tutorial, caricheremo semplicemente il nostro SWF di test come "gioco".
Prima di aggiungere eventuali statistiche all'API Statistics & Challenges, dobbiamo prima capire i quattro tipi di statistiche che possono essere utilizzate e le regole a cui sono vincolati. I valori devono essere positivo, e deve essere interi interi. I quattro tipi sono i seguenti:
Sapere quale dei tipi di cui sopra è necessario utilizzare per ciascuna delle tue statistiche di gioco è estremamente importante, quindi assicurati di familiarizzare con l'elenco precedente. Ovviamente vorrai un elenco di statistiche che vuoi che il tuo gioco invii a Kongregate, quindi assicurati di averle preparate prima di affrontare il passaggio successivo quando invii effettivamente un gioco.
Per il bene di questo tutorial, utilizzeremo semplicemente le seguenti statistiche:
Una volta che la tua lista è pronta, vai alla pagina Statistiche del tuo gioco e inserisci i dati richiesti. Una volta eseguito il lavoro di back-end nella pagina Statistiche, il gioco sarà pronto per inviare i dati al server Kongregate.
Per inviare effettivamente i dati al server, chiamiamo semplicemente la funzione "submit", che assomiglia a questo:
submit (statName: String, value: Number): void
Come puoi vedere, la funzione accetta due parametri:
statName
è il nome della tua statistica. È molto importante che la stringa passata sia identica (con distinzione tra maiuscole e minuscole) al nome della stat che hai elencato nel passaggio precedente quando prepari il server per gestire le tue statistiche.valore
è il valore numerico effettivo da passare. Anche se il tipo di dati è Numero, ricorda che il tuo valore deve essere a positivo, intero intero.Per chiamare questa funzione nel tuo gioco, fai semplicemente quanto segue:
kongregate.stats.submit ("Your Stat String", statValue); // il valore stat potrebbe essere 1, 500, 5342324, ecc.
Anche se potevamo inviare quattro diversi tipi di statistiche, questa funzione invia solo il valore; il server stesso esaminerà le informazioni fornite nel passaggio precedente per determinare come trattare i dati in arrivo. E 'così semplice; ora sappiamo come inviare dati al server.
Ora che abbiamo preparato il back-end sul sito Web Kongregate e ora sappiamo come inviare i dati, diamo il via a questo progetto.
La prima cosa che dobbiamo fare è aggiungere del codice al nostro progetto per inviare effettivamente le nostre statistiche. Poiché la cosa più semplice da tracciare è l'input del mouse, ho scelto le statistiche relative al mouse. Come hai visto nel nostro passaggio precedente, ho scelto Numero massimo di clic, Numero totale di clic e Ultima X.
Max Clicks sarà il punteggio più alto per quante volte facciamo clic in una singola partita, per dimostrare il tipo Max; I clic totali saranno il totale complessivo di tutti i clic effettuati per dimostrare il tipo di aggiunta; e Ultima X sarà la posizione x del nostro clic più recente, per dimostrare il tipo Sostituisci.
Per monitorare i clic del mouse, è necessario importare il MouseEvent
classe. Torna a Main.as e aggiungi quanto segue alle tue importazioni:
import flash.events.MouseEvent;
Ora avremo bisogno di aggiungere una variabile per la nostra statistica Max Clic, per tenere traccia del numero totale di clic per sessione di gioco. Proprio sotto dove abbiamo aggiunto il Kongregate
variabile di riferimento (del tipo di dati *
), aggiungere quanto segue:
private var maxClicks: int;
Avremo bisogno di un listener di eventi per ascoltare i nostri clic, quindi lo aggiungeremo ora. Nel dentro
funzione, proprio sotto la chiamata a initKongregateAPI
, aggiungere il seguente:
// Listener di eventi per i clic del mouse stage.addEventListener (MouseEvent.CLICK, clicked);
Come puoi vedere nel codice precedente, la funzione viene chiamata ogni volta che viene chiamato l'evento che ha generato cliccato
. Andiamo avanti e creiamo quella funzione. Aggiungi il seguente sotto il tuo loadComplete
funzione:
funzione privata cliccata (evento: Evento): void maxClicks ++; kongregate.stats.submit ("Clic totali", 1); kongregate.stats.submit ("Clic massimi", maxClicks); kongregate.stats.submit ("Last X", mouseX);
Tutto quello che stiamo facendo qui sta incrementando il maxClicks
variabile da 1
, e quindi inviare tutte le informazioni richieste al server Kongregate. Questo aggiungerà 1 alla statistica Clic totali, invia la corrente maxClicks
variabile al server, che determinerà se è superiore al valore precedente e se lo sostituirà, e invierà la posizione x del nostro clic precedente, che sostituirà automaticamente il valore precedente.
Il nostro SWF potrebbe essere solo uno schermo vuoto, ma sta succedendo molto e stiamo per vederlo in azione. Assicurati di compilare il progetto prima di proseguire.
Ora è il momento di caricare effettivamente il nostro progetto e vederlo in azione.
Torna al sito Web Kongregate, vai alla pagina di gioco e carica la versione finale del nostro progetto. Una volta caricato il progetto, verrai portato a una schermata di anteprima, dove possiamo testare il nostro progetto prima di pubblicarlo. Per salvare lo staff di Kongregate un sacco di tempo ed energia, fai un favore a tutti e non premere pubblicare sul tuo test SWF. (Se stai lavorando a un vero gioco, vai avanti, ma per il bene di questo tutorial non pubblicheremo questo progetto.)
Una volta che sei nella pagina di test, dai qualche clic al gioco. Aggiorna la pagina e ora dovresti vedere che c'è una scheda "HIGH SCORES" accanto alla scheda "CHAT" e "GAME". Se hai fatto tutto correttamente fino a questo punto, dovresti avere una casella a tendina che attualmente legge "Ultima X" che contiene anche "Numero massimo di clic" e "Clic totali". Si noti che facendo clic rapidamente si otterranno statistiche non accurate, poiché il server non può tenere il passo con tutte le richieste, quindi fare clic lentamente per ottenere i migliori risultati. Questo è il motivo per cui ho consigliato prima di inviare grandi quantità di dati al momento della morte, o il completamento del livello, quando possibile.
Bene, ecco qua: ora hai la parte più importante dell'API di Kongregate attiva e funzionante. Se il tuo progetto non funziona a questo punto, assicurati che i nomi delle tue statistiche back-end di Kongregate siano digitati esattamente come nella funzione di invio, vale a dire la distinzione tra maiuscole e minuscole, poiché di solito è il problema.
Puoi anche trovare il codice completato nel file finali cartella nel download di origine, quindi confronta il tuo codice con quello se hai ancora problemi.
Hai mai rilasciato un gioco, poi più tardi, hai davvero voluto raggiungere tutti i tuoi fan? Bene, con l'API di Kongregate, puoi fare proprio questo - almeno, per tutti i tuoi fan di Kongregate.
Ci sono alcune restrizioni su chi può farlo, ma queste restrizioni sono molto nell'interesse sia degli sviluppatori che dei giocatori. Per qualificarsi, il tuo gioco deve ricevere un punteggio di 3,75 o superiore e avere almeno 10k gameplay.
Puoi inviare un messaggio "giocatori attivi" al massimo una volta ogni sette giorni. Questi messaggi saranno inviati a tutti i giocatori che hanno giocato al gioco almeno tre volte in assoluto, e almeno una volta negli ultimi dieci giorni.
Puoi inviare un messaggio "giocatori inattivi" al massimo una volta ogni 30 giorni. Questi messaggi saranno ricevuti da tutti i giocatori che hanno giocato almeno cinque volte in totale, ma non negli ultimi dieci giorni.
Ci sono molti motivi per inviare questi messaggi ai tuoi giocatori, come avvisarli di correzioni di bug o forse informarli di un seguito imminente. Indipendentemente da cosa usi per questo, è un sistema incredibilmente utile che può davvero aiutarti a sfruttare i tuoi fan.
Per ulteriori informazioni, consultare questa guida.
Anche se abbiamo trattato molto in questo tutorial, l'API Kongregate è in grado di fare molto di più. Sfortunatamente, dovrei scrivere un piccolo libro per esaminare tutte le funzionalità, specialmente quelle che sono utili per gli MMO basati sul Web. Se sei interessato a verificare quali altre funzionalità l'API ha da offrire, ti consiglio di visitare il Centro per gli sviluppatori di Kongregate per ulteriori informazioni.
Ora che sai come far funzionare le API di Kongregate, ti incoraggio vivamente ad aggiungerlo a tutti i tuoi giochi futuri; se sei fortunato, potresti anche ottenere dei badge, ed è allora che inizia il vero divertimento.