PlayDrop
PlayDrop kunde inte laddas

En nödvändig del av sidan kunde inte laddas ned. Försök ladda den igen.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
SkapaPlayTradeTjänaLär digConnectorsCommunitySupport
Server-SDK
Dokumentation

Börja här

ÖversiktDitt första spel

Skapa med Cloud

Skapa med CloudPublicera och importeraPlaner och genereringarKrediter och belöningar

Anslut din agent

Alla connectorsClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Teknisk referens

Spelfilercatalogue.jsonKlient-SDKServer-SDKFelsökningFAQ
DokumentationServer-SDK
Teknisk referens

PlayDrops spelservrar: Colyseus, MongoDB och server-SDK:t

Valfritt hostat flerspelarläge för PlayDrop-spel: ladda upp en Colyseus-server.js med MongoDB, testa med testspelare och använd server-SDK:t för vänner och AI.

En spelserver är valfri. Ditt spel kan anropa vilken server du själv driver. Om du föredrar det hostar PlayDrop en vanlig Colyseus-server med en MongoDB-databas åt ditt spel: ladda upp den som server.js bredvid index.html via PlayDrop Connector eller be PlayDrop Cloud bygga den. Paketet @playdrop/server är också valfritt.

Skriv en vanlig Colyseus-server

js
import { Room, defineRoom } from "colyseus";
import { MongoClient } from "mongodb";

class GameRoom extends Room {
  async onCreate() {
    this.mongo = new MongoClient(process.env.PLAYDROP_MONGO_URL);
    await this.mongo.connect();
  }
  onJoin(client) {
    // client.auth is the verified PlayDrop player, for example client.auth.userId.
  }
  async onDispose() { await this.mongo?.close(); }
}

export const rooms = { game: defineRoom(GameRoom) };

Exportera en rooms-karta från server.js och lista rummens namn i catalogue.json som "server": { "rooms": ["game"] }. PlayDrop kör servern, så starta inte en själv. Lagra data med den vanliga MongoDB-drivrutinen via PLAYDROP_MONGO_URL, inom rummets livscykel.

Regler för hostade servrar

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), MongoDB-drivrutinen 7.5 och Node 22.
  • En fristående ES-modul på upp till 2 MiB. Den får bara importera colyseus, @colyseus/core, @colyseus/schema, mongodb och @playdrop/server. Paketera all annan kod i filen.
  • Upp till 2 rumstyper, 8 spelare per rum, 4 timmar per rum, 30 meddelanden per sekund och spelare samt 512 KiB per meddelande.
  • Ingen internetåtkomst från servern: bara MongoDB och PlayDrops tjänster går att nå.
  • Spelare måste vara inloggade. PlayDrop verifierar varje spelare när de går med. Implementera inte onAuth.
  • En MongoDB-databas per spel, som behålls mellan versioner och räknas in i din lagringskvot. Skicka aldrig dess inloggningsuppgifter till webbläsaren.

Anslut webbläsaren och testa

I webbläsaren returnerar sdk.multiplayer.getConnection() från klient-SDK:t serveradressen och spelarens token. Gå med via Colyseus-klienten (@colyseus/sdk 0.17). Under utvecklingen kör du Colyseus 0.17 och MongoDB 8 lokalt och ansluter direkt till din lokala server. För att testa den hostade servern laddar du upp en privat version och öppnar sedan https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 och samma länk med player=2 i ett andra fönster: varje fönster spelar som ett separat testkonto. Gör versionen offentlig från spelsidan när den fungerar.

Valfritt server-SDK: vänner och AI

@playdrop/server lägger till playdrop.social (vänner som spelar det här spelet och spelkort i PlayDrop Chat) och playdrop.ai (generering av text, bild, 3D, video, ljud, tal och musik som betalas av skaparen). De här anropen fungerar bara i uppladdade spel, inte vid lokal utveckling. Ladda ned privat genererad media på servern med playdrop.ai.tasks.downloadFile och skicka bytena bara till den spelare det gäller. Talförfrågningar accepterar högst 40 ord.

Grupp och rumsröst

await playdrop.social.getParty(client.auth) läser det gruppmedlemskap som för tillfället är auktoriserat. Det visar inte gruppchatt eller aktivitet i andra spel och ger inte rätt att hantera gruppen. Befintliga sociala API:er behåller sitt beteende.

En katalog som deklarerar roomVoice: true startar med en policy för hela rummet. Inget serveranrop behövs för den standarden. För att anpassa den binder du const platform = playdrop.multiplayer.forRoom(this) till det faktiska Colyseus-rummet. Använd platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) och updatePositions([{ player: client.auth, position: { x, y, z } }]). Skicka null för att rensa en åsidosättning för lag eller spelare. Närhet kräver färska, auktoritativa positioner.

Den betrodda körmiljön slår ihop ändringar i behörighet, reserverar accepterade gruppföljare efter ledarens vanliga anslutning och städar upp behörigheter. Spel skickar aldrig ljud, leverantörsuppgifter eller mikrofonförfrågningar. Behåll samma rum mellan omgångarna. Använd de befintliga privata testspelarna med en behörig skapare för att testa integrationen före publicering. Publicering ensam aktiverar inte utrullningen.

FöregåendePlayDrops klient-SDK för webbläsarspelNästaFelsök skapande och publicering i PlayDrop Cloud
Visa Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

På den här sidan

Skriv en vanlig Colyseus-serverRegler för hostade servrarAnslut webbläsaren och testaValfritt server-SDK: vänner och AIGrupp och rumsröst
Visa Markdown