Servidores de jogo do PlayDrop: Colyseus, MongoDB e o SDK de servidor
Multijogador hospedado opcional para jogos do PlayDrop: envie um server.js do Colyseus com armazenamento no MongoDB, teste-o com jogadores de teste e use o SDK de servidor opcional para amigos e IA.
Um servidor de jogo é opcional. Seu jogo pode chamar qualquer servidor que você mesmo execute. Se preferir, o PlayDrop hospeda para o seu jogo um servidor Colyseus padrão com um banco de dados MongoDB: envie-o como server.js ao lado do index.html pelo PlayDrop Connector ou peça ao PlayDrop Cloud que o crie. O pacote @playdrop/server também é opcional.
Escreva um servidor Colyseus padrão
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) };Exporte um mapa rooms no server.js e liste os nomes das salas no catalogue.json como "server": { "rooms": ["game"] }. O PlayDrop executa o servidor, então não o inicie você mesmo. Armazene os dados com o driver padrão do MongoDB por meio do PLAYDROP_MONGO_URL, dentro do ciclo de vida da sala.
Regras do servidor hospedado
- Colyseus 0.17 (
colyseus0.17.10,@colyseus/schema4.0.30), driver do MongoDB 7.5 e Node 22. - Um único módulo ES autocontido de até 2 MiB. Ele só pode importar
colyseus,@colyseus/core,@colyseus/schema,mongodbe@playdrop/server; empacote qualquer outro código no próprio arquivo. - Até 2 tipos de sala, 8 jogadores por sala, 4 horas por sala, 30 mensagens por segundo por jogador e 512 KiB por mensagem.
- Sem acesso à internet a partir do servidor: somente o MongoDB e os serviços do PlayDrop são acessíveis.
- Os jogadores precisam estar logados. O PlayDrop verifica cada jogador ao entrar; não implemente
onAuth. - Um banco de dados MongoDB por jogo, mantido entre as versões e contabilizado na sua cota de armazenamento. Nunca envie as credenciais dele ao navegador.
Conecte o navegador e teste
No navegador, sdk.multiplayer.getConnection() do SDK de cliente retorna o endereço do servidor e o token do jogador; entre na sala com o cliente Colyseus (@colyseus/sdk 0.17). Durante o desenvolvimento, execute o Colyseus 0.17 e o MongoDB 8 localmente e conecte-se diretamente ao seu servidor local. Para testar o servidor hospedado, envie uma versão privada e abra https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1 e o mesmo link com player=2 em uma segunda janela: cada janela joga como uma conta de teste diferente. Quando tudo funcionar, torne a versão pública na página do jogo.
SDK de servidor opcional: amigos e IA
@playdrop/server adiciona playdrop.social (amigos que jogam este jogo e cards de jogo no PlayDrop Chat) e playdrop.ai (geração de texto, imagem, 3D, vídeo, som, fala e música paga pelo criador). Essas chamadas só funcionam em jogos enviados, não no desenvolvimento local. No servidor, baixe a mídia privada gerada com playdrop.ai.tasks.downloadFile e envie os bytes somente ao jogador de destino; solicitações de fala aceitam no máximo 40 palavras.