PlayDrop logoPlayDrop Studio
MakenSpeelruilVerdienenLerenConnectorsAssetsCommunitySupport
PlayDrop logoPlayDrop Studio
MakenSpeelruilVerdienenLerenConnectorsAssetsCommunitySupport
Inloggen
Realtime gameservers
Documentatie

Begin hier

OverzichtJe eerste gamePlayDrop-gamesFAQ

Maken met Cloud

Maken met CloudAbonnementen en generaties

Verbind je AI-app

Alle connectorsClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publiceren en delen

Publiceren vanuit je AI-appEenvoudige HTML-gamesVerpakken en .playPubliceren en importerenGamebestandenZichtbaarheid en bereikAfbeeldingen en video voor de gamepaginaGenres en tagsLokalisatieInstantgames

Spelervaring

Laden, pauze en audioSchermvullend en veilige zonesCloudsavesLokale groepen en controllers

Samen spelen

Delen, vrienden en uitnodigingenRanglijstenPrestatiesOnlinegroepen en spraakRealtime gameservers

Verdienen

InkomstenCredits en beloningen

Assets

Game-assetsAI-assets genererenEigen formaten en creaties

Referentie

Client-SDKServer-SDKcatalogue.jsonFouten en herstelProblemen oplossen
DocumentatieRealtime gameservers
Samen spelen

Realtime gameservers op PlayDrop: Colyseus en MongoDB

Draai een gehoste Colyseus 0.17-server met een MongoDB-database voor je game, verbind vanuit de browser met de SDK, test met twee spelers en ken de limieten.

PlayDrop kan de serverkant van je game hosten: een standaard Colyseus-server met een eigen MongoDB-database, geverifieerde spelers en geen infrastructuur om zelf te beheren. Gebruik hem voor realtime wedstrijden, beurtgebaseerde games, gedeelde werelden en alles waarbij een speler niet mag kunnen valsspelen. Een server is optioneel; je game kan ook een server aanroepen die je zelf host.

De server schrijven

Exporteer een rooms-map uit één ES-module. PlayDrop start de server; roep listen() niet aan en definieer geen onAuth, want PlayDrop verifieert elke speler vóór onJoin.

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

class GameRoom extends Room {
  maxClients = 8;
  async onCreate() {
    this.mongo = new MongoClient(process.env.PLAYDROP_MONGO_URL);
    await this.mongo.connect();
    this.onMessage("move", (client, move) => this.applyMove(client.auth.userId, move));
  }
  onJoin(client) {
    // client.auth is the verified PlayDrop player: userId, username, appRole, isTestPlayer…
  }
  async onDispose() { await this.mongo?.close(); }
}

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

Verbind met MongoDB binnen de levenscyclus van de kamer (room), nooit op moduleniveau: PLAYDROP_MONGO_URL bestaat alleen tijdens het draaien. Maak indexen aan voor je query's.

De server declareren

Bundel de server in één bestand en laat de catalogus ernaar verwijzen:

json
{ "server": { "entry": "server/index.mjs", "rooms": ["game"] } }

Upload hem in een pakket; de eenvoudige HTML-route kan geen server meenemen.

Regels van de gehoste runtime

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), MongoDB-driver 7.5, op Node.js 24.22.1.
  • 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 al het andere.
  • Maximaal 2 kamertypen, 8 spelers per kamer, 4 uur per kamer, 30 berichten per seconde per speler en 512 KiB per bericht.
  • Geen internettoegang: alleen MongoDB en PlayDrop-diensten zijn bereikbaar.
  • Spelers moeten ingelogd zijn.
  • Eén database per game, bewaard over versies heen en meegeteld in de opslag van de maker. Stuur het adres of de inloggegevens nooit naar een browser.

Verbinden vanuit de browser

js
const sdk = await playdrop.init();
const room = await sdk.multiplayer.join("game");
room.onStateChange((state) => render(state));
room.send("move", { x: 1 });

join regelt de groepsplaatsen en het inloggen van PlayDrop; zie onlinegroepen. Voor meer controle op laag niveau geeft sdk.multiplayer.getConnection() { endpoint, token, expiresAt } terug voor de officiële Colyseus-client uit sdk.libs.colyseus.load().

Server-SDK

@playdrop/server voegt vertrouwde platformaanroepen toe: vrienden en gamekaarten (playdrop.social), verificatie van aankopen (playdrop.shop), AI-generatie betaald door de maker (playdrop.ai) en kamerspraak (playdrop.multiplayer.forRoom). Ze werken alleen bij geüploade games. Zie de referentie van de server-SDK.

Testen

Draai tijdens de ontwikkeling Colyseus 0.17 en MongoDB lokaal en verbind je lokale client 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 daarna dezelfde link met player=2 in een tweede venster. Elk venster speelt als een aparte testspeler van jou. Publiceer de geteste versie met publish_game_version als het werkt.

Houd rekening met verbroken verbindingen: Colyseus houdt bij opnieuw verbinden een plaats korte tijd vrij, en de status van de kamer moet een terugkerende speler laten verdergaan.

Gerelateerde gidsen

  • Onlinegroepen en spraakLaat vrienden je game samen online spelen: geef groepsgroottes op, open het groepsvenster van PlayDrop, neem gereserveerde plaatsen in kamers in en regel kamerspraak.
  • Server-SDKDoor PlayDrop gehoste gameservers: runtimeregels, de geverifieerde PlayDropPlayer, playdrop.social, playdrop.shop, playdrop.ai en playdrop.multiplayer.
  • Verpakken en .playRicht een gebouwde gamemap, ZIP of .play in met catalogue.json in de hoofdmap, geef media en servers op en upload met prepare_catalogue_upload.
VorigeOnlinegroepen en spraakchat in PlayDrop-gamesVolgendeBeoordelingen, fooien, aankopen in de game en advertenties op PlayDrop
Markdown bekijken
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Op deze pagina

De server schrijvenDe server declarerenRegels van de gehoste runtimeVerbinden vanuit de browserServer-SDKTesten
Markdown bekijken