Using den Kongregate API i Flash Games
3
Del
Del
Del
Dette Cyber Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Kongregate er en av de største flash spill portaler på nettet, og har sin egen API som kan integreres i spillene dine (som Kongregate belønner selv deg økonomisk). I denne opplæringen, vil jeg vise deg hvordan å implementere Kongregate API inn i spillene dine, og også gå i detalj om hva API er i stand til, og hvorfor du bør bruke den.
(Merk at denne opplæringen forutsetter at du allerede har en Kongregate konto,. Hvis du ikke gjør det, så kan du opprette en nå)
Endelig resultat Forhåndsvisning
La oss ta en titt på hva API gjør oss i stand til å gjøre:
Emblemer
masse meldinger
rekordar
Det er en annen stor grunn til å implementere API ...
Trinn 1: La oss bli motivert
Før vi dykke inn i de tekniske aspektene ved gjennomføringen av Kongregate API, la oss komme oss hyped opp litt, og sørge for at vi faktisk ønsker å gjennomføre det .
Det er mange grunner til å implementere API, men for de fleste utviklere, taler ingenting høyere enn penger, og det er nok av at involverte. Når du laster opp spillet til Kongregate, tjener du automatisk 25% av alle annonseinntekter som genereres av spillet ditt side
Det blir bedre.; hvis du implementere deres "Statistikk & Utfordringer API ", vil du motta en ekstra 10%! Til slutt, hvis spillet er eksklusivt for Kongregate, eller sponset av dem, får du ytterligere 15%. Dette gir deg muligheten til å tjene opp til 50% av annonseinntekter for spill på Kongregate. Hvis du lurer på hvor mye det er, sjekk ut noen av mine personlige statistikk:
Trinn 2: Sette opp arbeidsmiljøet
For denne opplæringen, vi skal bruke FlashDevelop, en gratis (og fantastisk) åpen kildekode editor for utviklere. Vi skal gjøre alt i enkle .as filer, så hvis du ønsker å følge med hjelp av Flash IDE, bør du ikke ha noen problemer. Hvis du ønsker å bruke FlashDevelop og er ukjent med det, sjekk ut denne utmerkede FlashDevelop nybegynner guide å komme i gang på hva jeg ville vurdere den beste AS3 redaktør ute.
For å begynne, åpen FlashDevelop, gå til kategorien Project, og velg "New Project". Herfra velger du "AS3 Prosjekt med Pre-Loader". Alternativt kan du ta tak i Preloader.as og Main.as filer fra kilden nedlasting, og bare følge med
Filen bør være en bones Main.as fil, slik:.
Pakke {import flash.display.Sprite; import flash.events.Event; /** * ... *author Ditt navn * /[Frame (factoryClass = "Preloader")] public class Hoved strekker Sprite {offentlig funksjon main (): void {if (scene) init (); annet addEventListener (Event.ADDED_TO_STAGE, init); } Private funksjon init (e: Hendelses = null): void {removeEventListener (Event.ADDED_TO_STAGE, init); //Inngangspunkt}}}
Ingenting ovenfor bør være nye for deg; hvis det er, er alt du trenger å vite at denne filen er utgangspunktet for vårt program, det er her det hele begynner. Hvis du kompilere dette med FlashDevelop, bør du få en blank hvit skjerm, uten kompilator feil
Trinn 3:. La oss få tilkoblet
Før vi dykke inn alle de kule funksjonene API, må vi sørge for at vi har API oppe og går.
I motsetning til mange sponsor APIer, er Kongregate API ikke en frittstående sett med filer som vi trenger å kompilere med vårt prosjekt. API er faktisk lagret på Kongregate server, og vi legger det inn under kjøring. Det finnes en rekke måter å gjøre dette på dine prosjekter, men på grunn av denne opplæringen, vil vi rett og slett koble innenfor vår Main.as og lagre en referanse til det der.
For å starte, kopi følgende kode inn i våre Main.as inngi like nedenfor de eksisterende import:
import flash.display.LoaderInfo, import flash.display.Loader, import flash.net.URLRequest, import flash.events.Event; import flash.system .Security;
Ovennevnte er bare noen få enkle import som vil tillate oss å bruke de nødvendige klassene for lasting i Kongregate API
Deretter vil vi legge til en variabel til å lagre vår referanse til den. Kongregate API. Gå videre og legge til følgende rett ovenfor konstruktøren av vår Main.as fil
privat Var Kongregate:. *;
Legg merke til at datatypen vår Kongregate variabelen er *. Hvis du ikke er kjent med dette, er vi rett og slett fortelle kompilatoren at Kongregate variable vil godta enhver datatype, omtrent som et wild card.
(Vær også oppmerksom på at i en ekte spill ville du ønsker til å lagre din referanse til API et sted at hele prosjektet har tilgang til, for eksempel en public static konst. Denne referansen er nødvendig, slik at du kan bruke API fra hvor som helst i prosjektet, for ethvert formål, i stedet for bare i hoved .as fil når vi først starter opp.)
Denne neste del av koden vil ligge i en egendefinert funksjon ved navn initKongregateAPI (). Dette er egentlig ikke nødvendig, men jeg foretrekker å kapsle ideer når du skriver kode, som det bidrar til å holde koden lesbar og lett å jobbe med.
Gå videre og legge denne funksjonen under init funksjon i Main.as .
privat funksjon initKongregateAPI (): void {//Trekk API banen fra FlashVars Var paramObj: Object = LoaderInfo (root.loaderInfo) .parameters; //API banen. "Skygge" API lastes hvis tester lokalt. Var apiPath: String = paramObj.kongregate_api_path || "http://www.kongregate.com/flash/API_AS3_Local.swf"; //La API tilgang til denne SWF Security.allowDomain (apiPath); //Legg API Var forespørsel: URLRequest = new URLRequest (apiPath); Var loader: Loader = new Loader (); loader.contentLoaderInfo.addEventListener (Event.COMPLETE, loadComplete); loader.load (forespørsel); this.addChild (loader); }
Selv om det kan se ut som mye kode, det er virkelig ikke mye, og med kommentarer, er det ganske lett å følge.
Som du ser, i den første delen vi skaper en variabel til å lagre API banen fra FlashVars (hvis du ikke vet hva disse er, slå dem opp veldig raskt, de er en stor ting å forstå).
I andre del, vi fastslå om SWF er på Kongregate nettside eller kjører lokalt, og vi tilordne riktige informasjonen til apiPath variabel.
Deretter gir vi API tilgang til SWF, med en enkel security.allowDomain samtale, der vi passere i apiPath som parameter.
Vi deretter opprette en ny URLRequest objekt, som får apiPath gått i til konstruktøren, en ny Loader objekt, og legg til et arrangement lytteren for lasteren som vil kalle loadComplete når gjort.
Sist, kaller vi loader.load og passere i vår forespørsel (den nyopprettede URLRequest objekt, som inneholder apiPath av Kongregate API). Hvis du forstår hva som skjedde, stor; hvis ikke, ikke svette det, så du slipper å røre dette igjen.
Ikke glem å kalle det!
Nå som initKongregateAPI funksjonen er opprettet, og inneholder alle tilkoblingskode, bør vi nok sørge for at denne funksjonen faktisk blir kalt! Bare gå tilbake til init funksjon som våre Main.as filen allerede finnes, og legge til en funksjon kallet til initKongregateAPI etter linjen som "entry point" linje, som så, etter egen funksjon init (e: Hendelses = null): void {removeEventListener (Event.ADDED_TO_STAGE, init); //Inngangspunkt initKongregateAPI ();}
Til slutt må vi legge til at loadComplete funksjon, for å bli kalt når COMPLETE hendelsen er avfyrt fra vår forrige koden. Legg denne funksjonen under initKongregateAPI funksjon i Main.as.
//Denne funksjonen kalles når lasting er completeprivate funksjon loadComplete (hendelse: Hendelse): void {//Lagre Kongregate API referanse Kongregate = event.target.content; //Koble til back-end kongregate.services.connect (); //Du har nå tilgang til API via: //kongregate.services //kongregate.user //kongregate.scores //kongregate.stats //osv ...}
Koden ovenfor er super enkel; la oss gå over det. Vi starter ved å lagre en referanse til Kongregate API. Som du kan se, vi refererer til Kongregate API gjennom vedtatt i tilfelle parameter, via event.target.content -. Enkel nok
Nå er alt vi trenger å gjøre er å koble til, og vår SWF er godt å gå. Som du kan se, kobler vi ved å ringe kongregate.services.connect metoden. Ingen argumenter nødvendig.
Selv om det kan ha virket som mye arbeid, det var virkelig ikke. Jeg bare gikk over tilkoblingsprosessen i mye detalj, slik at du kan forstå hvordan vi faktisk får tilgang til API, i stedet for bare å ha at tilgang og bruk av det. Nå som du forstår det, kan du bruke alle de ovennevnte som standardtekst kode
Trinn 4:. Statistikken & Utfordringer API
Nå som vi er koblet til, kan vi ta en titt på den viktigste funksjonen av hele API: Statistikk & Utfordringer del. Dette API sender spillerrelatert statistikk til Kongregate server, som gjør en rekke ting.
Først og fremst, er dette den mest grunnleggende måten å tillate brukere å konkurrere for høy score på Kongregate. Med API integrert, vil Kongregate side bar inkluderer en ny fane merket "prestasjoner", som du finner ved siden av "chat" -kategorien. Spillere kan se topplister for enhver stat du sender til servere, som kan være alt fra en enkel høy score til det totale antall fiender beseiret.
Den andre og langt viktigere bruk, er å tillate Kongregate å bruke statistikken du sender til skape "merker" for spillene dine. Merker er en sentral del av Kongregate brukeropplevelsen, og er mye som prestasjonssystemer på plattformer som Xbox LIVE.
Det beste med å ha merkene lagt til spillet er at spillet vil bli omtalt for en kort varighet, sterkt økende antall visninger du får, og dermed i stor grad øke annonseinntektene. Selv etter spillet ditt er ute av rampelyset, alle badged spill på Kongregate fortsette å motta økte utsikt over normale spill, som gir deg en god lang hale inntektsstrøm.
Legg merke til at merkene ikke er lagt til av utviklere, men er i stedet skapt av Kongregate ansatte. Du trenger en høy karakter spillet til å bli valgt, men du må også API for å bli satt opp - så la oss få det halve kampen ut av veien
Trinn 5: Back! -end Forberedelse
For å faktisk bruke den statistikken at vi skal sende, Kongregate krever først oss å la deres server vite hvilke opplysninger det skal være forberedt på å motta fra oss.
For å gjøre dette vi bare gå til Statistisk side for spillet vårt på Kongregate nettstedet. Dette kan bli funnet i "Edit Game" side, eller ved å legge /statistikk til slutten av spillet URL (for eksempel http://www.kongregate.com/games/EpicShadow/pixel-purge/statistics). For denne opplæringen, vil vi laste opp vår test SWF som "spillet"
Før du legger til noen statistikk til statistikk og amp.; Utfordringer API, må vi først forstå de fire typer statistikk som kan brukes, og reglene som de er bundet til. Verdier må være positive, og må være hele heltall. De fire typene er som følger:
Max: Verdien på serveren vil bli erstattet hvis den nye verdien er høyere enn den lagrede verdien. For eksempel vil en høy score på 152 000 erstatte en gammel høy score på 120.000
Min:. Verdien på serveren vil bli erstattet hvis den nye verdien er lavere enn den lagrede verdien. For eksempel i et racingspill, ville en rundetid på 31 sekunder erstatte en eldre verdi på 35.
Legg til: Den nye verdien vil bli lagt til den lagrede verdien. En vanlig bruk av dette ville være totalt fiender beseiret, spiller dødsfall, etc. For mange forespørsler til serveren kan føre til unøyaktige data, så det er anbefalt at data sendes bare i bulk, for eksempel når et nivå er fullført eller når spilleren dør
Erstatt. Den nye verdien vil erstatte den lagrede verdien uansett hva. Dette kan brukes til en rekke ting, som for eksempel gjennomsnittlig overlevelse eller spiller rangeringen.
Å vite hvilken av de ovennevnte typene du trenger å bruke for hver av dine spillstatistikk er ekstremt viktig, så sørg at du gjør deg kjent med listen ovenfor. Du vil åpenbart ønsker en liste over statistikken som du ønsker spillet til å sende til Kongregate, så sørg for at du har de forberedt før du dykke inn i neste trinn når faktisk sender et spill.
For ordens skyld denne opplæringen, vil vi bare bruke følgende statistikk:
Totalt antall klikk (ADD)
Maks klikk (maks)
Sist X (Skift)
Når listen er utarbeidet, hodet til Statistisk siden av spillet, og skriv inn de nødvendige data. Når back-end arbeid er gjort på statistikk siden, vil spillet være klar til å sende data til Kongregate serveren
Trinn 6:. Hvordan sende Stats
Å faktisk sende data til serveren, vi bare kaller "send" -funksjonen, som ser slik ut:
sende (statName: String, verdi: Number): void
Som du kan se, tar funksjonen to parametre: < .no>
statName er navnet på din stat. Det er veldig viktig at String passert er identisk (små bokstaver) til navnet på den stat du listet opp i forrige trinn når prepping server for å håndtere dine statistikker.
Å kalle denne funksjonen i spillet, er det bare å gjøre følgende:
kongregate.stats.submit ("Your Stat String", statValue); //stat verdien kan være 1, 500, 5342324, etc.
Selv om vi hadde fire forskjellige typer statistikk vi kan sende, bare sender denne funksjonen verdien; selve serveren vil se på den informasjonen vi har gitt i forrige trinn for å finne ut hvordan man skal behandle de innkommende data. Det er så enkelt som at; Nå vet vi hvordan vi skal sende data til serveren
Trinn 7:. prepping Våre prosjekt for å sende Stats
Nå som vi har preparert back-end på Kongregate nettside, og nå vet vi hvordan du sender data, la oss gi dette prosjektet en gå.
Det første vi må gjøre er å legge noen kode til vårt prosjekt å faktisk sende våre statistikker. Siden det enkleste å spore er mus input, har jeg valgt muserelaterte statistikker. Som du så i vår forrige trinn, valgte jeg Max klikk, totalt antall klikk, og Last X.
Maks klikk vil være høy score for hvor mange ganger vi klikker i et enkelt spill, for å demonstrere Max type; Totalt antall klikk blir totalsummen av alle klikk vi har gjort, for å demonstrere Legg type; og Sist X vil være x-posisjonen til vårt siste klikk, for å demonstrere Erstatt type.
For å spore våre museklikk, vi trenger importere MouseEvent klassen. Gå tilbake til Main.as, og legge til følgende i importen:
import flash.events.MouseEvent;
Nå er vi nødt til å legge til en variabel for vår Max klikk stat, for å holde orden på totalt antall klikk per spilløkten. Rett nedenfor der vi la til Kongregate referanse variabel (av datatype *), legge til følgende:
private Var maxClicks: int;
Vi kommer til å trenge en hendelse lytteren til å lytte til våre klikk, så vi ' ll legge til at nå. I init funksjon, rett under samtalen til initKongregateAPI, legge til følgende:
//arrangement lytteren for mus clicksstage.addEventListener (MouseEvent.CLICK, klikket);
Som du kan se i koden ovenfor, funksjonen heter når det tilfelle det avfyrt kalles klikket. La oss gå videre og skape denne funksjonen. Legg til følgende under din loadComplete funksjon:
privat funksjon klikket (hendelse: Hendelse): void {maxClicks ++; kongregate.stats.submit ("Totalt antall klikk", 1); kongregate.stats.submit ("Max klikk", maxClicks); kongregate.stats.submit ("Siste X", mouseX);}
Alt vi gjør her er å øke verdien for den maxClicks variabel med 1, og deretter sende inn all nødvendig informasjon til Kongregate server. Dette vil legge en til Totalt antall klikk stat, sende dagens maxClicks variable til serveren, som da vil avgjøre om det er høyere enn den forrige verdien og erstatte det hvis så, og sende x-posisjonen til vår forrige klikk, noe som vil automatisk erstatte den forrige verdien.
Vår SWF kan bare være en blank skjerm, men mye som skjer, og vi er i ferd med å se den i aksjon. Sørg for at du kompilere prosjektet før du går videre
Trinn 8:.. Testing Våre prosjekt
Nå er det på tide å faktisk laste opp prosjektet vårt, og se den i aksjon
< p> Gå tilbake til Kongregate nettside, hodet til spillside, og laste den endelige versjonen av vårt prosjekt. Når du har lastet opp prosjektet, vil du bli brakt til en forhåndsvisningen, der vi kan teste vårt prosjekt før du publiserer det. Hvis du vil lagre Kongregate ansatte en masse tid og energi, gjør alle en tjeneste og ikke trykk publisere på test SWF. (Hvis du jobber på en ekte spill, gå videre, men for å få til denne opplæringen vi ikke skal publisere dette prosjektet.)
Når du er på testsiden, gir spillet et par klikk. Oppdatere siden, og du skal nå se at det er en "høy score" -fanen ved siden av "chat" og "GAME" -kategorien. Hvis du har gjort alt riktig opp til dette punktet, bør du ha en drop down boks som for tiden leser "Siste X" som også inneholder «Max klikk" og "Totalt antall klikk". Merk at klikke raskt vil føre til innacurate statistikk, som serveren ikke kan holde tritt med alle forespørsler, så klikker du sakte for best resultat. Det er derfor jeg rådet tidligere at du sender store grupper av data ved død, eller nivå ferdigstillelse, når det er mulig
Vel, det du går.: Du har nå fått den viktigste delen av Kongregate API opp og løping. Hvis prosjektet ikke fungerer på dette punktet, må du sørge for at dine Kongregate back-end statistikk navnene er skrevet nøyaktig slik de er i din sender funksjon - store og små bokstaver - som det er vanligvis problemet
Du kan. også finne den ferdige koden i endelige filene Ever utgitt et spill, og senere, virkelig ønsket å nå ut til alle dine fans? Vel, med Kongregate API, kan du gjøre nettopp det -. Minst, for alle dine Kongregate fans Det er noen begrensninger på hvem som kan gjøre dette, men disse restriksjonene er svært mye i beste interesse for både utviklere og spillere. For å kvalifisere seg, må spillet får en 3,75 rating eller høyere, og ha minst 10k gameplays. Du kan sende en "aktive spillere" -melding på det meste en gang hver syv dager. Disse meldingene vil bli sendt til alle spillere som har spilt spillet minst tre ganger noensinne, og minst en gang i løpet av de siste ti dagene. Du kan sende en "passiv spillere" -melding på det meste en gang hver 30. dag . Disse meldingene vil bli mottatt av noen spillere som har spilt minst fem ganger totalt, men ikke i løpet av de siste ti dagene. Det er mange grunner til å sende disse meldingene til spillerne dine, for eksempel varsler dem av bug reparasjoner, eller kanskje informere dem om en kommende oppfølger. Uansett hva du bruker dette for, er det en utrolig nyttig system som virkelig kan hjelpe deg å utnytte dine fans. For mer informasjon, se denne guiden. Selv om vi har dekket mye i denne opplæringen, er Kongregate API stand til å gjøre mye mer. Unfortuantely, jeg må skrive en liten bok til å gå over alle funksjonene, spesielt de som er nyttige for web-baserte MMOs. Hvis du er interessert i å sjekke ut hva andre har API har å tilby, anbefaler jeg å sjekke ut Kongregate Developers Senter for mer. Nå som du vet hvordan du skal få Kongregate API oppe og går, jeg sterkt oppfordrer deg til å legge det til alle dine fremtidige spill; Hvis du er heldig, kan du også få noen merker, og det er da den virkelige moroa begynner. Anmeldelser
mappe i kilde nedlasting, så sammenligne koden din til at hvis du fortsatt har problemer
Trinn 9:. Mass melding Communications
så mye mer .. .