PlayDrop
PlayDrop kon niet worden geladen

Een vereist deel van de pagina kon niet worden gedownload. Laad de pagina opnieuw.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
PlayDrop logoPlayDrop Studio
MakenPlayTradeVerdienenLerenConnectorsCommunitySupport
Server-SDK
Documentatie

Begin hier

OverzichtJe eerste game

Maken met Cloud

Maken met CloudPubliceren en importerenAbonnementen en generatiesCredits en beloningen

Verbind je agent

Alle connectorsClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Technische referentie

Gamebestandencatalogue.jsonClient-SDKServer-SDKProblemen oplossenFAQ
DocumentatieServer-SDK
Technische referentie

PlayDrop-gameservers: Colyseus, MongoDB en de server-SDK

Optionele gehoste multiplayer voor PlayDrop-games: upload een Colyseus-server.js met MongoDB-opslag, test met testspelers en gebruik de optionele server-SDK.

Een gameserver is optioneel. Je game kan elke server aanroepen die je zelf draait. Liever niet? Dan host PlayDrop een standaard Colyseus-server met een MongoDB-database voor je game: upload hem als server.js naast index.html via PlayDrop Connector of vraag PlayDrop Cloud hem te bouwen. Het pakket @playdrop/server is ook optioneel.

Schrijf een standaard 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) };

Exporteer een rooms-map uit server.js en noem de roomnamen in catalogue.json als "server": { "rooms": ["game"] }. PlayDrop draait de server, dus start er zelf geen. Sla gegevens op met de standaard MongoDB-driver via PLAYDROP_MONGO_URL, binnen de levenscyclus van de room.

Regels voor de gehoste server

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), de MongoDB-driver 7.5 en Node 22.
  • Eén op zichzelf staande ES-module van maximaal 2 MiB. Hij mag alleen colyseus, @colyseus/core, @colyseus/schema, mongodb en @playdrop/server importeren; bundel alle andere code in het bestand.
  • Maximaal 2 roomtypen, 8 spelers per room, 4 uur per room, 30 berichten per seconde per speler en 512 KiB per bericht.
  • Geen internettoegang vanaf de server: alleen MongoDB en PlayDrop-diensten zijn bereikbaar.
  • Spelers moeten ingelogd zijn. PlayDrop verifieert elke speler bij het meedoen; implementeer onAuth niet.
  • Eén MongoDB-database per game, bewaard over versies heen en meegeteld in je opslagquotum. Stuur de inloggegevens nooit naar de browser.

Verbind de browser en test

In de browser geeft sdk.multiplayer.getConnection() uit de client-SDK het serveradres en het token van de speler terug; doe mee met de Colyseus-client (@colyseus/sdk 0.17). Draai tijdens de ontwikkeling Colyseus 0.17 en MongoDB 8 lokaal en verbind rechtstreeks met je lokale server. Om de gehoste server te testen upload je een privéversie en open je https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 en dezelfde link met player=2 in een tweede venster: elk venster speelt als een apart testaccount. Maak de versie openbaar via de gamepagina als het werkt.

Optionele server-SDK: vrienden en AI

@playdrop/server voegt playdrop.social toe (vrienden die deze game spelen en gamekaarten in PlayDrop Chat) en playdrop.ai (generatie van tekst, afbeeldingen, 3D, video, geluid, spraak en muziek, betaald door de maker). Deze aanroepen werken alleen bij geüploade games, niet in lokale ontwikkeling. Download privé gegenereerde media op de server met playdrop.ai.tasks.downloadFile en stuur de bytes alleen naar de beoogde speler; spraakverzoeken accepteren maximaal 40 woorden.

Groeps- en roomspraak

await playdrop.social.getParty(client.auth) leest het momenteel toegestane groepslidmaatschap. Het toont geen groepschat of activiteit in andere games en geeft geen groepsbeheer. Bestaande social-API’s behouden hun gedrag.

Een catalogus met roomVoice: true begint met een beleid voor de hele room; voor die standaard is geen serveraanroep nodig. Om het aan te passen bind je const platform = playdrop.multiplayer.forRoom(this) aan de echte Colyseus-room. Gebruik platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) en updatePositions([{ player: client.auth, position: { x, y, z } }]). Geef null door om een team of een override van een speler te wissen. Afstand vraagt om verse, gezaghebbende posities.

De vertrouwde runtime bundelt wijzigingen in geschiktheid, reserveert geaccepteerde groepsvolgers na de gewone toetreding van de leider en ruimt rechten op. Games sturen nooit audio, inloggegevens van aanbieders of microfoonverzoeken. Houd dezelfde room aan over rondes heen. Gebruik de bestaande privétestspelers met een geschikte maker om de integratie te testen vóór het publiceren; publiceren alleen schakelt de uitrol niet in.

VorigePlayDrop client-SDK voor browsergamesVolgendeProblemen met maken en publiceren in PlayDrop Cloud oplossen
Markdown bekijken
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Op deze pagina

Schrijf een standaard Colyseus-serverRegels voor de gehoste serverVerbind de browser en testOptionele server-SDK: vrienden en AIGroeps- en roomspraak
Markdown bekijken