PlayDrop
PlayDrop konnte nicht geladen werden

Ein benötigter Teil der Seite konnte nicht heruntergeladen werden. Laden Sie die Seite erneut.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
PlayDrop logoPlayDrop Studio
ErstellenPlayTradeVerdienenLernenConnectorsCommunityHilfe
Server-SDK
Dokumentation

Hier beginnen

ÜbersichtDein erstes Spiel

Mit Cloud erstellen

Cloud-ErstellungVeröffentlichen & importierenTarife & GenerierungenCredits & Belohnungen

Agent verbinden

Alle KonnektorenClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Technische Referenz

Spieldateiencatalogue.jsonClient-SDKServer-SDKFehlerbehebungFAQ
DokumentationServer-SDK
Technische Referenz

PlayDrop-Spielserver: Colyseus, MongoDB und das Server-SDK

Optionaler gehosteter Multiplayer für PlayDrop-Spiele: Laden Sie eine Colyseus-server.js mit MongoDB-Speicher hoch, testen Sie sie mit Testspielern und nutzen Sie das optionale Server-SDK für Freunde und KI.

Ein Spielserver ist optional. Ihr Spiel kann jeden Server aufrufen, den Sie selbst betreiben. Wenn Sie möchten, hostet PlayDrop für Ihr Spiel einen Standard-Colyseus-Server mit einer MongoDB-Datenbank: Laden Sie ihn als server.js neben index.html über PlayDrop Connector hoch oder lassen Sie ihn von PlayDrop Cloud erstellen. Auch das Paket @playdrop/server ist optional.

Einen Standard-Colyseus-Server schreiben

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) };

Exportieren Sie aus server.js eine rooms-Map und tragen Sie deren Room-Namen in catalogue.json als "server": { "rooms": ["game"] } ein. PlayDrop führt den Server aus; starten Sie also selbst keinen. Speichern Sie Daten innerhalb des Room-Lebenszyklus mit dem Standard-MongoDB-Treiber über PLAYDROP_MONGO_URL.

Regeln für gehostete Server

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), der MongoDB-Treiber 7.5 und Node 22.
  • Ein einziges eigenständiges ES-Modul mit bis zu 2 MiB. Es darf nur colyseus, @colyseus/core, @colyseus/schema, mongodb und @playdrop/server importieren; bündeln Sie jeden anderen Code in die Datei.
  • Bis zu 2 Room-Typen, 8 Spieler pro Room, 4 Stunden pro Room, 30 Nachrichten pro Sekunde und Spieler sowie 512 KiB pro Nachricht.
  • Kein Internetzugriff vom Server aus: Erreichbar sind nur MongoDB und PlayDrop-Dienste.
  • Spieler müssen angemeldet sein. PlayDrop verifiziert jeden Spieler beim Beitritt; implementieren Sie kein onAuth.
  • Eine MongoDB-Datenbank pro Spiel, die über Versionen hinweg erhalten bleibt und auf Ihr Speicherkontingent angerechnet wird. Senden Sie ihre Zugangsdaten niemals an den Browser.

Browser verbinden und testen

Im Browser liefert sdk.multiplayer.getConnection() aus dem Client-SDK die Serveradresse und das Token des Spielers; verbinden Sie sich damit über den Colyseus-Client (@colyseus/sdk 0.17). Führen Sie während der Entwicklung Colyseus 0.17 und MongoDB 8 lokal aus und verbinden Sie sich direkt mit Ihrem lokalen Server. Um den gehosteten Server zu testen, laden Sie eine private Version hoch und öffnen dann https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 sowie denselben Link mit player=2 in einem zweiten Fenster: Jedes Fenster spielt mit einem eigenen Testkonto. Wenn alles funktioniert, machen Sie die Version auf der Spielseite öffentlich.

Optionales Server-SDK: Freunde und KI

@playdrop/server ergänzt playdrop.social (Freunde, die dieses Spiel spielen, und Spielkarten in PlayDrop Chat) und playdrop.ai (Generierung von Text, Bildern, 3D, Video, Sound, Sprache und Musik, bezahlt vom Creator). Diese Aufrufe funktionieren nur in hochgeladenen Spielen, nicht bei der lokalen Entwicklung. Laden Sie private generierte Medien auf dem Server mit playdrop.ai.tasks.downloadFile herunter und senden Sie die Bytes nur an den vorgesehenen Spieler; Anfragen zur Sprachgenerierung akzeptieren höchstens 40 Wörter.

Sprachchat in Gruppen und Räumen

await playdrop.social.getParty(client.auth) liest die aktuell autorisierte Gruppenmitgliedschaft. Der Aufruf gibt weder Gruppenchat noch Aktivitäten in anderen Spielen preis und erlaubt keine Gruppenverwaltung. Bestehende Social-APIs behalten ihr Verhalten.

Ein Katalog mit roomVoice: true verwendet standardmäßig eine Richtlinie für den gesamten Raum; dafür ist kein Serveraufruf nötig. Zur Anpassung bindest du const platform = playdrop.multiplayer.forRoom(this) an den tatsächlichen Colyseus-Raum. Verwende platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) und updatePositions([{ player: client.auth, position: { x, y, z } }]). Übergib null, um eine Teamzuweisung oder eine spielerspezifische Ausnahme zu löschen. Räumliche Nähe erfordert aktuelle, vom Server bestätigte Positionen.

Die vertrauenswürdige Laufzeit bündelt Berechtigungsänderungen, reserviert Plätze für zugelassene Gruppenmitglieder nach dem regulären Beitritt des Gruppenleiters und bereinigt Berechtigungen. Spiele senden niemals Audio, Anbieter-Zugangsdaten oder Mikrofonanfragen. Verwende über mehrere Runden denselben Raum. Teste die Integration vor der Veröffentlichung mit den vorhandenen privaten Test Players und einem berechtigten Erstellerkonto; die Veröffentlichung allein aktiviert die Einführung nicht.

ZurückPlayDrop-Client-SDK für BrowserspieleWeiterProbleme bei Cloud-Erstellung und Veröffentlichung lösen
Markdown anzeigen
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Auf dieser Seite

Einen Standard-Colyseus-Server schreibenRegeln für gehostete ServerBrowser verbinden und testenOptionales Server-SDK: Freunde und KISprachchat in Gruppen und Räumen
Markdown anzeigen