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
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 (
colyseus0.17.10,@colyseus/schema4.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,mongodby@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.