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
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 (
colyseus0.17.10,@colyseus/schema4.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,mongodbund@playdrop/serverimportieren; 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.