PlayDrop
No se pudo cargar PlayDrop

No se pudo descargar una parte necesaria de la página. Vuelve a cargarla.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
PlayDrop logoPlayDrop Studio
CrearPlayTradeGanarAprenderConectoresComunidadAyuda
SDK del servidor
Documentación

Empieza aquí

ResumenTu primer juego

Crear con Cloud

Creación con CloudPublicar e importarPlanes y generacionesCréditos y recompensas

Conectar tu agente

Todos los conectoresClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Referencia técnica

Archivos del juegocatalogue.jsonSDK del clienteSDK del servidorSolución de problemasPreguntas frecuentes
DocumentaciónSDK del servidor
Referencia técnica

Servidores de juego de PlayDrop: Colyseus, MongoDB y el SDK de servidor

Multijugador alojado opcional para juegos de PlayDrop: sube un server.js de Colyseus con almacenamiento en MongoDB, pruébalo con jugadores de prueba y usa el SDK de servidor opcional para amigos e IA.

Un servidor de juego es opcional. Tu juego puede llamar a cualquier servidor que gestiones tú mismo. Si lo prefieres, PlayDrop aloja para tu juego un servidor Colyseus estándar con una base de datos MongoDB: súbelo como server.js junto a index.html mediante PlayDrop Connector, o pide a PlayDrop Cloud que lo cree. El paquete @playdrop/server también es opcional.

Escribe un servidor Colyseus estándar

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

Exporta un mapa rooms desde server.js y enumera los nombres de sus salas en catalogue.json como "server": { "rooms": ["game"] }. PlayDrop ejecuta el servidor, así que no lo inicies tú. Guarda los datos con el controlador estándar de MongoDB mediante PLAYDROP_MONGO_URL, dentro del ciclo de vida de la sala.

Reglas del servidor alojado

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), el controlador de MongoDB 7.5 y Node 22.
  • Un único módulo ES autocontenido de hasta 2 MiB. Solo puede importar colyseus, @colyseus/core, @colyseus/schema, mongodb y @playdrop/server; incluye cualquier otro código en el propio archivo.
  • 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 desde el servidor: solo se puede acceder a MongoDB y a los servicios de PlayDrop.
  • Los jugadores deben haber iniciado sesión. PlayDrop verifica a cada jugador cuando se une; no implementes onAuth.
  • Una base de datos MongoDB por juego, que se conserva entre versiones y cuenta para tu cuota de almacenamiento. Nunca envíes sus credenciales al navegador.

Conecta el navegador y prueba

En el navegador, sdk.multiplayer.getConnection() del SDK de cliente devuelve la dirección del servidor y el token del jugador; únete con el cliente de Colyseus (@colyseus/sdk 0.17). Durante el desarrollo, ejecuta Colyseus 0.17 y MongoDB 8 en local y conéctate directamente 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 el mismo enlace con player=2 en una segunda ventana: cada ventana juega con una cuenta de prueba distinta. Cuando funcione, haz pública la versión desde la página del juego.

SDK de servidor opcional: amigos e IA

@playdrop/server añade playdrop.social (amigos que juegan a este juego y tarjetas de juego en PlayDrop Chat) y playdrop.ai (generación de texto, imágenes, 3D, video, sonido, voz y música que paga el creador). Estas llamadas solo funcionan en juegos subidos, no en el desarrollo local. Descarga en el servidor el contenido multimedia privado generado con playdrop.ai.tasks.downloadFile y envía los bytes solo al jugador previsto; las solicitudes de voz aceptan como máximo 40 palabras.

Voz del grupo y de la sala

await playdrop.social.getParty(client.auth) consulta la pertenencia al grupo autorizada actualmente. No revela el chat del grupo ni la actividad en otros juegos, ni permite administrar el grupo. Las API sociales existentes mantienen su comportamiento.

Un catálogo que declara roomVoice: true comienza con una política para toda la sala; este valor predeterminado no necesita una llamada al servidor. Para personalizarla, vincula const platform = playdrop.multiplayer.forRoom(this) a la sala real de Colyseus. Usa platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) y updatePositions([{ player: client.auth, position: { x, y, z } }]). Pasa null para borrar un equipo o una excepción de un jugador. La proximidad necesita posiciones actualizadas y validadas por el servidor.

El entorno de ejecución de confianza agrupa los cambios de elegibilidad, reserva plazas para los seguidores del grupo aceptados tras la entrada normal del líder y elimina los permisos que ya no corresponden. Los juegos nunca envían audio, credenciales del proveedor ni solicitudes de micrófono. Mantén la misma sala entre rondas. Usa los Test Players privados existentes con un creador elegible para probar la integración antes de publicar; publicar por sí solo no activa el despliegue.

AnteriorSDK de cliente de PlayDrop para juegos de navegadorSiguienteSoluciona problemas de creación y publicación Cloud
Ver Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

En esta página

Escribe un servidor Colyseus estándarReglas del servidor alojadoConecta el navegador y pruebaSDK de servidor opcional: amigos e IAVoz del grupo y de la sala
Ver Markdown