PlayDrop logoPlayDrop Studio
CrearIntercambio de partidasGanarAprenderConectoresRecursosComunidadAyuda
PlayDrop logoPlayDrop Studio
CrearIntercambio de partidasGanarAprenderConectoresRecursosComunidadAyuda
Iniciar sesión
Servidores en tiempo real
Documentación

Empieza aquí

ResumenTu primer juegoJuegos de PlayDropPreguntas frecuentes

Crea con Cloud

Creación con CloudPlanes y generaciones

Conecta tu app de IA

Todos los conectoresClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publica y comparte

Publicar desde tu app de IAJuegos HTML simplesEmpaquetado y .playPublicar e importarArchivos del juegoVisibilidad y alcanceImágenes y vídeo de la fichaGéneros y etiquetasLocalizaciónJuegos instantáneos

Experiencia de juego

Carga, pausa y audioPantalla completa y zonas segurasPartidas guardadas en la nubeGrupos locales y mandos

Juega en grupo

Compartir, amigos e invitacionesClasificacionesLogrosGrupos en línea y vozServidores en tiempo real

Gana

MonetizaciónCréditos y recompensas

Recursos

Recursos de juegoGeneración de recursos con IAFormatos personalizados y creaciones de jugadores

Referencia

SDK de clienteSDK de servidorcatalogue.jsonErrores y recuperaciónSolución de problemas
DocumentaciónServidores en tiempo real
Juega en grupo

Servidores de juego en tiempo real en PlayDrop: Colyseus y MongoDB

Ejecuta un servidor Colyseus 0.17 alojado con base de datos MongoDB, conéctate desde el navegador con el SDK, prueba con dos jugadores y conoce los límites.

PlayDrop puede alojar la parte de servidor de tu juego: un servidor Colyseus estándar con su propia base de datos MongoDB, jugadores verificados y ninguna infraestructura que gestionar. Úsalo para partidas en tiempo real, juegos por turnos, mundos compartidos y cualquier cosa en la que un jugador no deba poder hacer trampas. El servidor es opcional; tu juego también puede llamar a un servidor que alojes tú.

Escribe el servidor

Exporta un mapa rooms desde un único módulo ES. PlayDrop inicia el servidor; no llames a listen() ni definas onAuth, porque PlayDrop verifica a cada jugador antes de 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) };

Conéctate a MongoDB dentro del ciclo de vida de la sala, nunca en el ámbito del módulo: PLAYDROP_MONGO_URL solo existe en tiempo de ejecución. Crea índices para tus consultas.

Decláralo

Agrupa el servidor en un solo archivo con un bundler y haz que el catálogo apunte a él:

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

Súbelo en un paquete; la vía de HTML simple no puede incluir un servidor.

Reglas del entorno alojado

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30) y el controlador de MongoDB 7.5, sobre Node.js 24.22.1.
  • Un único módulo ES autónomo de 2 MiB como máximo. Solo puede importar colyseus, @colyseus/core, @colyseus/schema, mongodb y @playdrop/server; incluye todo lo demás dentro del módulo.
  • Hasta 2 tipos de sala, 8 jugadores por sala, 4 horas por sala, 30 mensajes por segundo por jugador y 512 KiB por mensaje.
  • Sin acceso a internet: solo se puede llegar a MongoDB y a los servicios de PlayDrop.
  • Los jugadores deben iniciar sesión.
  • Una base de datos por juego, que se conserva entre versiones y cuenta para el almacenamiento del creador. Nunca envíes su dirección ni sus credenciales a un navegador.

Conéctate desde el navegador

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

join gestiona las plazas de los grupos de PlayDrop y el inicio de sesión; consulta grupos en línea. Para un control de más bajo nivel, sdk.multiplayer.getConnection() devuelve { endpoint, token, expiresAt } para el cliente oficial de Colyseus de sdk.libs.colyseus.load().

SDK de servidor

@playdrop/server añade llamadas de confianza a la plataforma: amigos y tarjetas de juego (playdrop.social), verificación de compras (playdrop.shop), generación con IA pagada por el creador (playdrop.ai) y voz de sala (playdrop.multiplayer.forRoom). Solo funcionan en juegos subidos. Consulta la referencia del SDK de servidor.

Prueba

Durante el desarrollo, ejecuta Colyseus 0.17 y MongoDB en local y conecta tu cliente local a tu servidor local. Para probar el servidor alojado, sube una versión privada y abre https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 y, después, el mismo enlace con player=2 en una segunda ventana. Cada ventana juega como un jugador de prueba distinto tuyo. Cuando funcione, publica la versión probada con publish_game_version.

Prepara el juego para las desconexiones: la reconexión de Colyseus reserva una plaza durante poco tiempo, y el estado de la sala debe permitir que un jugador que vuelve pueda continuar.

Guías relacionadas

  • Grupos en línea y vozDeja que tus amigos jueguen en línea: declara tamaños de grupo, abre la ventana de grupo, entra en salas reservadas con sdk.multiplayer.join y gestiona la voz.
  • SDK de servidorServidores alojados por PlayDrop: reglas del entorno, el PlayDropPlayer verificado y playdrop.social, playdrop.shop, playdrop.ai y playdrop.multiplayer.
  • Empaquetado y .playOrganiza una carpeta, ZIP o .play compilado con catalogue.json en la raíz, declara medios de la ficha y servidores, y súbelo con prepare_catalogue_upload.
AnteriorGrupos en línea y chat de voz en juegos de PlayDropSiguienteReseñas, propinas, compras dentro del juego y anuncios en PlayDrop
Ver Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

En esta página

Escribe el servidorDecláraloReglas del entorno alojadoConéctate desde el navegadorSDK de servidorPrueba
Ver Markdown