PlayDrop
PlayDrop kunne ikke lastes inn

En nødvendig del av siden kunne ikke lastes ned. Prøv å laste den inn på nytt.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
OpprettPlayTradeTjenLærConnectorerFellesskapStøtte
Klient-SDK
Dokumentasjon

Start her

OversiktDitt første spill

Lag spill med Cloud

Opprettelse med CloudPubliser og importerAbonnementer og genereringerKreditter og belønninger

Koble til agenten din

Alle connectorerClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Teknisk referanse

Spillfilercatalogue.jsonKlient-SDKServer-SDKFeilsøkingFAQ
DokumentasjonKlient-SDK
Teknisk referanse

PlayDrop klient-SDK for nettleserspill

Valgfri nettleser-SDK for PlayDrop-spill: innlogging, lagring, topplister, kjøp, annonser, venner, kontrollere og flerspiller, med én script-tag.

PlayDrop-SDK-en er valgfri: spill uten den kan spilles på PlayDrop. Legg den til for plattformfunksjoner som spillerinnlogging, lagring, prestasjoner og topplister, kjøp med kreditter, annonser, venner og spillkort i PlayDrop Chat, delingslenker, pause og lyd styrt av hosten, kontrollerinndata, hostet flerspiller og KI-generering. PlayDrop Cloud integrerer den for deg. Med PlayDrop Connector legger agenten din til én script-tag.

Legg til SDK-en og følg host-livssyklusen

html
<script src="https://assets.playdrop.ai/sdk/playdrop.js"></script>
<script type="module">
  const sdk = await playdrop.init();
  // Render the game and prepare input, then:
  sdk.host.ready();
  sdk.host.onPause(() => pauseGame());
  sdk.host.onResume(() => resumeGame());
  sdk.host.onAudioPolicyChange(({ enabled }) => setAudioEnabled(enabled));
</script>

Last SDK-en fra PlayDrops CDN. Du trenger ingen pakkeinstallasjon. Tegn den første spillbare ruten og klargjør inndata før du kaller sdk.host.ready(). Sett simuleringen på pause når hosten pauser, gjenoppta uten doble løkker, og følg hostens lydregler.

Identitet, lagring og språk

sdk.me eksponerer spilleridentiteten, og sdk.me.appData lagrer private lagringer. sdk.achievements og sdk.leaderboards håndterer prestasjoner og poengsummer. Lagringer, prestasjoner og topplister fungerer uten en forhåndssjekk av innlogging. Bruk sdk.me.isLoggedIn for funksjoner som krever en ekte konto, som kjøp eller flerspiller. Forhåndsvisnings- og opptaksmodus må ikke skrive spillerfremdrift. sdk.host.language gir spillerens språk: lever engelsk pluss ditt eget språk hvis det er et annet. Å oversette en oppføring oversetter ikke spillinnholdet. Ved en naturlig pause, for eksempel en seier, lar sdk.host.requestReview() PlayDrop be spilleren om en anmeldelse, høyst én gang per spill. Spillet ditt får aldri vite svaret, så belønn det aldri.

Biblioteker, ressurser og flerspiller

sdk.libs laster støttede versjoner av Three.js, Phaser, Rapier, nipplejs og Colyseus. sdk.assets gir referanser til katalog, pakker og ressurser. sdk.social gir venner, spillkort og delingshandlinger. For hostet flerspiller returnerer sdk.multiplayer.getConnection() serveradressen og tokenet til den innloggede spilleren. Bli med via Colyseus-klienten. Siden om server-SDK-en dekker hostede servere. En server du kjører selv, trenger ingenting fra SDK-en. De gamle API-ene for relay-rom er avviklet.

Test med SDK-en før du publiserer

Kjør den vanlige utviklingsserveren din og åpne https://www.playdrop.ai/creators/<username>/apps/game/<slug>/dev?url=http://localhost:5173/ i Chrome for å spille i den ekte PlayDrop-rammen med SDK-hosten. Alle localhost-porter og https-URL-er fungerer. Funksjoner som krever en konto, som lagring og kjøp, fungerer når spillet er lastet opp én gang. En privat opplasting er nok. Mediegenerering i nettleseren kjører som asynkrone oppgaver med en kredittkostnad som hosten bekrefter. Se catalogue.json for metadata om oppføringen.

Spill sammen

Bruk await sdk.multiplayer.join("game") i spillfasen. Den blir med uavhengig, eller bruker hostens gruppereservasjon. En gruppefeil avviser kallet i stedet for å stille og rolig dele spillerne inn i et annet rom. getConnection() er fortsatt API-et for umiddelbare tilkoblingsdetaljer for eksisterende spill. Behold det samme rommet gjennom rundene, og hold nettverket i gang mens host-overlegg pauser spillinndata.

Bruk sdk.social.openParty() fra en spillerhandling for å åpne hostens gruppe-popup. Les medlemskap med await sdk.social.getParty() eller sdk.social.onPartyChange(callback). Spill kan ikke endre plattformgrupper eller styre mikrofoner. Gruppe- og romstemme ligger i web-/native-hosten og er fortsatt underlagt spillerens samtykke, demping, blokkeringer og kvalifisering for utrulling.

For jevn avspilling i rommet kaller du sdk.multiplayer.voice.updateSpatialState({ listener: { position, forward, up }, speakers: [{ userId, position }] }) med endelige { x, y, z }-vektorer. Hint påvirker volum og panorering, aldri autorisasjon. Serveren håndhever lag og nærhetskvalifisering.

Bruk sdk.device.localPlayers og sdk.device.onLocalPlayersChange(callback) for de valgte lokale kontrollerplassene { playerIndex, gamepadKey }. Oversikten over tilkoblede kontrollere er adskilt. En frakoblet plass beholder identiteten sin. Lokal modus kan ikke bli med i nettrom. Den kopierbare oppskriften playdrop-metagame/recipes/play-together viser begge moduser, to destinasjoner og romregler.

Kontrollere

Les fysiske kontrollere og PlayDrop-telefonkontrollere gjennom sdk.device, på samme måte på alle plattformer. Kall enableControllerInput() én gang etter init(), les gamepad(playerIndex) i spillløkken (0 er S1), og bruk onButton for trykk og slipp. Akser og knapper følger nettleserens standardrekkefølge for spillkontrollere. Knapper har posisjonsnavn som south og east, og pad.label("south") returnerer teksten for den kontrolleren, for eksempel "A" eller "Cross". Menu tilhører PlayDrop og setter spillet på pause.

js
await sdk.device.enableControllerInput();
const stop = sdk.device.onButton(({ playerIndex, button, pressed }) => {
  if (button === "south" && pressed) jump(playerIndex);
});
function update() {
  const pad = sdk.device.gamepad(0);
  if (pad?.connected) move(pad.axes[0], pad.axes[1]);
  requestAnimationFrame(update);
}
update();

Ikke kall navigator.getGamepads(): telefonkontrollere når spill bare via SDK-en, og PlayDrop logger en advarsel når et spill leser nettleser-API-et direkte. Hvis hosten ikke kan levere kontrollerinndata, avviser enableControllerInput() med controller_input_unavailable eller controller_input_timeout, og spillet fortsetter å kjøre. pad.has("dpad") forteller om en kontroll finnes. Deklarer kontrollene spillet ditt trenger i catalogue.json.

Forrigecatalogue.json: spillmetadata og lokalisering på PlayDropNestePlayDrop-spillservere: Colyseus, MongoDB og server-SDK-en
Vis Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

På denne siden

Legg til SDK-en og følg host-livssyklusenIdentitet, lagring og språkBiblioteker, ressurser og flerspillerTest med SDK-en før du publisererSpill sammenKontrollere
Vis Markdown