Kongregate este unul dintre cele mai mari portaluri de jocuri flash de pe net și are un API propriu care poate fi integrat în jocurile dvs. (pentru care Kongregate vă răsplătește chiar și financiar). În acest tutorial, vă vom arăta cum să implementați API-ul Kongregate în jocurile dvs. și, de asemenea, să faceți detalii despre ce este capabil API și de ce ar trebui să îl utilizați.
(Rețineți că acest tutorial presupune că aveți deja un cont Kongregate, dacă nu, creați unul acum.)
Să aruncăm o privire la ceea ce API ne permite să facem:
insignele
Mesaje de masă
Scoruri mari
Există încă un motiv mare pentru punerea în aplicare a API ...
Înainte de a ne arunca cu privire la aspectele tehnice de punere în aplicare a Kongregate API, hai să ne aranjăm puțin și să ne asigurăm că într-adevăr o vom implementa.
Există multe motive pentru punerea în aplicare a API, dar pentru majoritatea dezvoltatorilor, nimic nu vorbește mai tare decât banii, și există o mulțime de lucruri implicate. Când încărcați jocul în Kongregate, veți câștiga automat 25% din totalul veniturilor generate de pagina dvs. de jocuri.
Ea devine mai bine; dacă implementați API-ul "Statistici și provocări", veți primi o sumă suplimentară de 10%! În cele din urmă, dacă jocul dvs. este exclusiv pentru Kongregate sau sponsorizat de aceștia, primiți o sumă suplimentară de 15%. Acest lucru vă oferă posibilitatea de a câștiga până la 50% din venitul publicitar pentru jocul dvs. pe Kongregate. Dacă vă întrebați cât de mult este, verificați câteva din statisticile mele personale:
Pentru acest tutorial, vom folosi FlashDevelop, un editor gratuit (și uimitor) open source pentru dezvoltatori. Vom face totul în fișiere simple .as, deci dacă doriți să urmați cu ajutorul IDE-ului Flash, nu trebuie să aveți probleme. Dacă doriți să utilizați FlashDevelop și nu sunteți familiarizați cu acesta, verificați acest ghid excelent pentru începători FlashDevelop pentru a vă începe să faceți ceea ce aș considera cel mai bun editor AS3 acolo.
Pentru a începe, deschideți FlashDevelop, accesați fila Project și selectați "New Project". De aici, selectați "Proiect AS3 cu pre-încărcător". Alternativ, poți apuca Preloader.as
și Main.as
fișiere de la sursa de descărcare, și pur și simplu urmați de-a lungul.
Fișierul dvs. ar trebui să fie o boboci Main.as
dosar, astfel:
pachet import flash.display.Sprite; importul flash.events.Event; / ** * ... * @author Numele tău * / [Frame (factoryClass = "Preloader")] clasa publică principală extinde Sprite funcția publică Main (): void if (stage) init (); altfel addEventListener (Event.ADDED_TO_STAGE, init); funcția privată init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // punct de intrare
Nimic de mai sus nu ar trebui să fie nou pentru tine; dacă este, tot ce trebuie să știți este că acest fișier este punctul de intrare pentru programul nostru, acesta este locul unde începe totul. Dacă compilați acest lucru cu FlashDevelop, ar trebui să obțineți un ecran alb necompletat, fără erori de compilator.
Înainte de a ne arunca cu capul în toate caracteristicile interesante ale API, trebuie să ne asigurăm că avem API în funcțiune.
Spre deosebire de multe dintre API-urile sponsorilor, API-ul Kongregate nu este un set independent de fișiere pe care trebuie să le compilam cu proiectul nostru. API-ul este de fapt stocat pe serverul Kongregate și îl încărcăm în timpul rulării. Există o serie de modalități de a face acest lucru în proiectele dvs., dar de dragul acestui tutorial, pur și simplu vom conecta în cadrul nostru Main.as
, și a salva o referință la ea acolo.
Pentru a începe, copiați următorul cod în secțiunea noastră Main.as
dosar puțin sub importurile existente:
import flash.display.LoaderInfo; import flash.display.Loader; import flash.net.URLRequest; importul flash.events.Event; import flash.system.Security;
Cele de mai sus sunt doar câteva importuri simple care ne vor permite să folosim clasele necesare pentru încărcare în API-ul Kongregate.
Apoi, vom adăuga o variabilă pentru a stoca referința noastră la API-ul Kongregate. Mergeți mai departe și adăugați următoarele elemente deasupra constructorului fișierului nostru Main.as.
privat var kongregate: *;
Observați că tipul de date al variabilei kongregate este *
. Dacă nu sunteți familiarizați cu acest lucru, pur și simplu îi spunem compilatorului că Kongregate
variabila va accepta orice tip de date, la fel ca un card wild.
(De asemenea, rețineți că într-un joc real doriți să stocați referința la API undeva la care are acces întregul dvs. proiect, cum ar fi static static const
. Această referință este necesară pentru a putea utiliza API din orice punct al proiectului, în orice scop, și nu doar în Main.as
fișier când pornim pentru prima dată.)
Următoarea bucată de cod va fi conținută într-o funcție personalizată cu numele de initKongregateAPI ()
. Acest lucru nu este de fapt necesar, dar prefer să încapsulez ideile atunci când scriu cod, deoarece ajută la păstrarea codului ușor de citit și de citit.
Mergeți mai departe și adăugați această funcție sub limita init
funcția în Main.as
.
funcția privată initKongregateAPI (): void // Trageți calea API din FlashVars var paramObj: Object = LoaderInfo (root.loaderInfo) .parameters; // Calea API. API-ul "shadow" se va încărca dacă se testează local. var apiPath: String = paramObj.kongregate_api_path || "Http://www.kongregate.com/flash/API_AS3_Local.swf"; // Permiteți accesului API la acest fișier SWF Security.allowDomain (apiPath); // Încărcați solicitarea de tip var API: URLRequest = new URLRequest (apiPath); var loader: Loader = încărcător nou (); loader.contentLoaderInfo.addEventListener (Event.COMPLETE, loadComplete); loader.load (cerere); this.addChild (încărcător);
În timp ce aceasta ar putea părea ca o mulțime de cod, nu este cu adevărat prea mult, și cu comentariile, este destul de ușor de urmat.
Așa cum veți vedea, în prima parte vom crea o variabilă pentru a stoca calea API din FlashVars (dacă nu știți ce sunt acestea, căutați-le într-adevăr rapid, sunt un lucru minunat de înțeles).
În cea de-a doua parte, determinăm dacă SWF se află pe site-ul Kongregate sau dacă se desfășoară la nivel local și atribuim informațiile corecte apiPath
variabil.
Apoi, oferim accesul API la SWF, cu o simplă security.allowDomain
apel, în cazul în care vom trece în apiPath
ca parametru.
Apoi creăm un nou URLRequest
obiect, care devine apiPath
a trecut la constructor, un nou Încărcător
obiect și adăugați un ascultător al evenimentului pentru încărcătorul care va apela loadComplete
cand e gata.
În sfârșit, sunăm loader.load
și treci în cererea noastră (nou creat URLRequest
obiect, care conține apiPath
din API Kongregate). Dacă înțelegeți ce sa întâmplat, minunat; dacă nu, nu-l transpirați, pentru că nu va trebui să atingeți din nou acest lucru.
Acum, când funcția initKongregateAPI este creată și conține tot codul de conexiune, ar trebui să ne asigurăm că această funcție devine efectiv apelată! Pur și simplu du-te înapoi la init
funcția noastră Main.as
fișierul conține deja și adăugați un apel de funcție la initKongregateAPI
după linia care "punctul de intrare" linie, ca atare,
funcția privată init (e: Event = null): void removeEventListener (Event.ADDED_TO_STAGE, init); // punctul de intrare initKongregateAPI ();
În cele din urmă, trebuie să adăugăm asta loadComplete
funcția, care va fi apelată atunci când COMPLET
evenimentul este declanșat din codul nostru anterior. Adăugați această funcție sub initKongregateAPI
funcția în Main.as
.
// Această funcție se numește atunci când încărcarea este completă cu sarcina privată loadComplete (eveniment: Eveniment): void // Salvați referința API Kongregate kongregate = event.target.content; // Conectați-vă la back-endul kongregate.services.connect (); // Acum puteți accesa API-ul prin intermediul: // kongregate.services // kongregate.user // kongregate.scores // kongregate.stats // etc ...
Codul de mai sus este foarte simplu; Hai să trecem peste asta. Începem cu salvarea unei referințe la API-ul Kongregate. După cum puteți vedea, facem referire la API-ul Kongregate prin intermediul parametrului de eveniment transmis, prin intermediul event.target.content
- destul de simplu.
Acum trebuie doar să ne conectăm și SWF-ul nostru este bine să mergem. După cum puteți vedea, ne conectăm prin apelarea kongregate.services.connect
metodă. Nu sunt necesare argumente.
În timp ce acest lucru poate părea o mulțime de muncă, într-adevăr nu a fost. Pur și simplu am trecut peste procesul de conectare într-o mulțime de detalii, pentru a înțelege cum obținem de fapt accesul la API, mai degrabă decât să avem accesul și să îl folosim. Acum că ați înțeles-o, puteți folosi toate cele de mai sus ca și cod de boilerplate.
Acum, că suntem conectați, putem să aruncăm o privire la cea mai importantă caracteristică a întregului API: porțiunea "Statistici și provocări". Acest API trimite statistici legate de jucător la serverul Kongregate, ceea ce permite o serie de lucruri.
În primul rând, acesta este cel mai simplu mod de a permite utilizatorilor să concureze pentru scoruri mari la Kongregate. Cu ajutorul API-ului integrat, bara laterală Kongregate va include o nouă filă numită "REALIZĂRI", care poate fi găsită lângă fila "CHAT". Jucătorii pot vizualiza clasamentele pentru orice stat pe care îl trimiteți la servere, ceea ce ar putea fi orice, de la un scor de bază la cel mai mare număr de dușmani învinși.
Al doilea și mult mai important folosire este să permiteți Kongregate să utilizeze statisticile pe care le transmiteți pentru a crea "insigne" pentru jocurile dvs. Insignele reprezintă o parte centrală a experienței utilizatorilor Kongregate și sunt asemănătoare cu sistemele de realizare pe platforme precum Xbox LIVE.
Cea mai bună parte din faptul că ați adăugat insigne în jocul dvs. este că jocul dvs. va deveni recomandat pentru o scurtă durată, crescând considerabil numărul de vizionări pe care le obțineți și, astfel, sporind considerabil venitul publicitar. Chiar și după ce jocul dvs. este în afara atenției, toate jocurile insignați de la Kongregate continuă să primească viziuni sporite asupra jocurilor normale, ceea ce vă oferă un flux de venituri excelente.
Rețineți că insignele nu sunt adăugate de dezvoltatori, ci sunt create de personalul Kongregate. Veți avea nevoie de un joc cu un rating ridicat pentru a fi selectat, dar veți avea nevoie, de asemenea, de configurarea API-ului - deci să luăm jumătatea bătăliei în afara!
Pentru a utiliza efectiv statisticile pe care le vom trimite, Kongregate solicită mai întâi să le permitem serverului să știe ce informații ar trebui să fie pregătite să le primească de la noi.
Pentru a face acest lucru, mergem pur și simplu la pagina Statistici pentru jocul nostru pe site-ul Kongregate. Acest lucru se găsește în pagina "Editați jocul" sau adăugând /statistici
până la sfârșitul adresei URL a jocului dvs. (de exemplu, http://www.kongregate.com/games/EpicShadow/pixel-purge/statistics). Pentru acest tutorial, vom încărca pur și simplu SWF noastre de testare ca "joc".
Înainte de a adăuga statistici la API-ul Statistics & Challenges, trebuie să înțelegem mai întâi cele patru tipuri de statistici care pot fi utilizate și regulile la care sunt obligați. Valorile trebuie să fie pozitiv, și trebuie să fie întregi întregi. Cele patru tipuri sunt după cum urmează:
Știind care dintre tipurile de mai sus pe care trebuie să le folosești pentru fiecare dintre statisticile tale despre joc este extrem de important, așa că asigurați-vă că vă familiarizați cu lista de mai sus. Veți dori în mod evident o listă de statistici pe care doriți ca jocul dvs. să le trimită la Kongregate, așa că asigurați-vă că ați pregătit-o înainte de a vă arunca în pasul următor atunci când trimiteți un joc.
Din motive de acest tutorial, vom folosi pur și simplu următoarele statistici:
Odată ce lista dvs. este pregătită, mergeți la pagina Statistici a jocului și introduceți datele necesare. Odată ce lucrarea din back-end se face pe pagina Statistici, jocul va fi gata să trimită date către serverul Kongregate.
Pentru a trimite efectiv date către server, sunăm pur și simplu funcția "trimiteți", care arată astfel:
trimiteți (statName: String, valoare: Număr): void
După cum puteți vedea, funcția are doi parametri:
statName
este numele statului dvs. Este foarte important ca String-ul să fie identic (sensibil la minuscule) cu numele statului pe care l-ați enumerat în pasul anterior atunci când pregătiți serverul pentru a vă ocupa de statisticile dvs..valoare
este valoarea numerică reală care trebuie trecută. Chiar dacă tipul de date este Număr, rețineți că valoarea dvs. trebuie să fie a pozitiv, intreg întreg.Pentru a apela această funcție în jocul dvs., trebuie doar să faceți următoarele:
kongregate.stats.submit ("String-ul dvs. de stat", statValue); // Valoarea statului ar putea fi de 1, 500, 5342324, etc.
Chiar dacă am avea patru tipuri diferite de statistici pe care le-am putea trimite, această funcție trimite doar valoarea; serverul în sine va analiza informațiile pe care le-am furnizat în etapa anterioară pentru a determina modul de tratare a datelor primite. Este la fel de simplu ca asta; acum știm cum să trimitem date către server.
Acum că am pregătit back-end-ul pe site-ul Kongregate și acum știm cum să trimitem date, să lăsăm acest proiect să meargă.
Primul lucru pe care trebuie să-l facem este să adăugăm un cod la proiectul nostru pentru a trimite efectiv statisticile noastre. Deoarece cel mai simplu lucru pe care îl puteți urmări este intrarea mouse-ului, am ales statisticile legate de mouse. După cum ați văzut în pasul anterior, am ales numerele Max Clicuri, Total Clicuri și Ultimul X.
Numărul maxim de clicuri va fi scorul mare pentru câte ori faceți clic într-un singur joc, pentru a demonstra tipul Max; Totalul clicurilor va fi numărul total de clicuri pe care le-am făcut, pentru a demonstra tipul de adăugare; iar ultimul X va fi poziția x a celui mai recent clic, pentru a demonstra tipul Replace.
Pentru a urmări clicurile mouse-ului, trebuie să importați MouseEvent
clasă. Du-te înapoi la Main.as, și adăugați următoarele la importurile dvs.:
importul flash.events.MouseEvent;
Acum va trebui să adăugăm o variabilă pentru statul nostru Max Clicks, pentru a urmări numărul total de clicuri pe sesiune de joc. Chiar mai jos de unde am adăugat Kongregate
variabila de referinta (de tip de date *
), adăugați următoarele:
privat var maxClicks: int;
Vom avea nevoie de un Listener de evenimente pentru a asculta clicurile noastre, așa că vom adăuga acum. În init
funcția, chiar sub apelul la initKongregateAPI
, adăugați următoarele:
// Ascultător de evenimente pentru clicurile de mouse stage.addEventListener (MouseEvent.CLICK, clic);
După cum puteți vedea în codul de mai sus, funcția apelată ori de câte ori se declanșează evenimentul declanșat a făcut clic
. Să mergem mai departe și să creăm acea funcție. Adăugați următoarele sub dumneavoastră loadComplete
funcţie:
funcția privată a făcut clic (eveniment: Eveniment): void maxClicks ++; kongregate.stats.submit ("Total clicuri", 1); kongregate.stats.submit ("Clicuri maxime", maxClicks); kongregate.stats.submit ("ultimul X", mouse X);
Tot ceea ce facem aici este creșterea incrementului MaxClicks
variabilă prin 1
, și apoi trimiterea tuturor informațiilor necesare serverului Kongregate. Aceasta va adăuga 1 la statul Total clicuri, trimiteți curentul MaxClicks
variabilă la server, care apoi va determina dacă este mai mare decât valoarea anterioară și o va înlocui dacă este cazul și va trimite poziția x a clicului nostru anterior, care va înlocui automat valoarea anterioară.
SWF-ul nostru poate fi doar un ecran gol, dar se întâmplă multe și suntem pe cale să îl vedem în acțiune. Asigurați-vă că ați compilat proiectul înainte de a porni.
Acum este momentul să încărcați proiectul și să îl vedeți în acțiune.
Du-te înapoi la site-ul Kongregate, mergeți la pagina de joc și încărcați versiunea finală a proiectului nostru. Odată ce ați încărcat proiectul, veți fi adus la un ecran de previzualizare, unde putem testa proiectul înainte de a-l publica. Pentru a salva personalul Kongregate o mulțime de timp și de energie, face toată lumea o favoare și nu apăsați publicat pe SWF de testare. (Dacă lucrați la un joc real, continuați, dar de dragul acestui tutorial nu vom publica acest proiect.)
Odată ce vă aflați pe pagina de test, dați jocului câteva clicuri. Actualizați pagina și acum ar trebui să vedeți că există o filă "HIGH SCORES" de lângă fila "CHAT" și "GAME". Dacă ați făcut totul corect până acum, ar trebui să aveți o casetă verticală care citește în prezent "Ultimul X" care conține, de asemenea, "Câte clicuri" și "Total clicuri". Rețineți că clicurile rapide vor avea ca rezultat statistici inacurate, deoarece serverul nu poate ține pasul cu toate solicitările, prin urmare faceți clic încet pentru obținerea celor mai bune rezultate. Acesta este motivul pentru care am sfătuit mai devreme că trimiteți loturi mari de date la moarte sau completare la nivel, atunci când este posibil.
Ei bine, acolo te duci: acum ai primit partea cea mai importantă a API-ului Kongregate. Dacă proiectul dvs. nu funcționează în acest moment, asigurați-vă că numele dvs. de stat din spate Kongregate sunt tipărite exact așa cum sunt în funcția de trimitere - sensibil la caz - deoarece aceasta este de obicei problema.
De asemenea, puteți găsi codul completat în fișiere finale folderul din sursa de descărcare, așa că comparați codul cu acesta dacă aveți în continuare probleme.
Ați lansat vreodată un joc, apoi, mai târziu, ați vrut cu adevărat să vă adresați tuturor fanilor dvs.? Ei bine, cu Kongregate API, poți să faci asta - cel puțin pentru toți fanii tăi Kongregate.
Există anumite restricții cu privire la cine poate face acest lucru, însă aceste restricții sunt foarte în interesul dezvoltatorilor și al jucătorilor. Pentru a vă califica, jocul dvs. trebuie să primească un rating de 3,75 sau mai mare și să aibă cel puțin 10k de jocuri.
Puteți trimite cel puțin un mesaj "jucător activ" o dată la șapte zile. Aceste mesaje vor fi trimise tuturor jucătorilor care au jucat jocul cel puțin de trei ori și cel puțin o dată în ultimele zece zile.
Puteți trimite cel puțin un mesaj de "jucători inactivi" o dată la fiecare 30 de zile. Aceste mesaje vor fi primite de către oricare dintre jucătorii care au jucat cel puțin cinci ori total, dar nu în ultimele zece zile.
Există multe motive pentru a trimite aceste mesaje jucătorilor dvs., cum ar fi alertarea acestora în legătură cu remedierea erorilor sau, eventual, informarea acestora cu privire la o continuare viitoare. Indiferent de ceea ce folosiți pentru acest lucru, este un sistem incredibil de util, care vă poate ajuta să vă îndreptați fanii.
Pentru mai multe informații, consultați acest ghid.
Deși am acoperit mult în acest tutorial, API-ul Kongregate este capabil să facă mult mai mult. Din nefericire, trebuia să scriu o carte mică pentru a trece peste toate caracteristicile, în special cele care sunt utile pentru MMO-urile bazate pe web. Dacă sunteți interesat să verificați ce alte funcții poate să ofere API, vă recomandăm să consultați Centrul de dezvoltatori Kongregate pentru mai multe informații.
Acum că știți cum să obțineți și funcționează API-ul Kongregate, vă încurajez cu fermitate să îl adăugați la toate jocurile viitoare; dacă aveți noroc, ați putea obține chiar și niște insigne și atunci începe distracția reală.