PlayDrop logoPlayDrop Studio
CriarTroca de partidasGanharAprenderConectoresRecursosComunidadeAjuda
PlayDrop logoPlayDrop Studio
CriarTroca de partidasGanharAprenderConectoresRecursosComunidadeAjuda
Entrar
Servidores em tempo real
Documentação

Comece aqui

Visão geralSeu primeiro jogoJogos do PlayDropPerguntas frequentes

Crie com o Cloud

Criação com CloudPlanos e gerações

Conecte seu app de IA

Todos os conectoresClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Publique e compartilhe

Publicar pelo seu app de IAJogos em HTML simplesEmpacotamento e .playPublicação e importaçãoArquivos do jogoVisibilidade e alcanceArte e vídeo da listagemGêneros e tagsLocalizaçãoJogos instantâneos

Experiência de jogo

Carregamento, pausa e áudioTela cheia e áreas segurasSalvamentos na nuvemGrupos locais e controles

Jogue junto

Compartilhamento, amigos e convitesPlacaresConquistasGrupos online e vozServidores em tempo real

Ganhe

MonetizaçãoCréditos e recompensas

Assets

Assets de jogoGeração de assets com IAFormatos personalizados e criações dos jogadores

Referência

SDK de clienteSDK de servidorcatalogue.jsonErros e recuperaçãoSolução de problemas
DocumentaçãoServidores em tempo real
Jogue junto

Servidores de jogo em tempo real no PlayDrop: Colyseus e MongoDB

Rode um servidor Colyseus 0.17 hospedado com um banco MongoDB para o seu jogo, conecte o navegador com o SDK, teste com dois jogadores e conheça os limites.

O PlayDrop pode hospedar o lado servidor do seu jogo: um servidor Colyseus padrão com seu próprio banco de dados MongoDB, jogadores verificados e nenhuma infraestrutura para manter. Use-o para partidas em tempo real, jogos por turnos, mundos compartilhados e tudo em que um jogador não deve conseguir trapacear. Um servidor é opcional; seu jogo também pode chamar um servidor que você mesmo hospeda.

Escreva o servidor

Exporte um mapa rooms de um único módulo ES. O PlayDrop inicia o servidor; não chame listen() nem defina onAuth, porque o PlayDrop verifica cada jogador 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) };

Conecte-se ao MongoDB dentro do ciclo de vida da sala, nunca no escopo do módulo: PLAYDROP_MONGO_URL só existe durante a execução. Crie índices para as suas consultas.

Declare o servidor

Empacote o servidor em um único arquivo e aponte o catálogo para ele:

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

Envie-o em um pacote; o caminho de HTML simples não comporta um servidor.

Regras do ambiente hospedado

  • Colyseus 0.17 (colyseus 0.17.10, @colyseus/schema 4.0.30), driver do MongoDB 7.5, no Node.js 24.22.1.
  • Um único módulo ES autocontido de no máximo 2 MiB. Ele só pode importar colyseus, @colyseus/core, @colyseus/schema, mongodb e @playdrop/server; empacote todo o resto.
  • 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: só o MongoDB e os serviços do PlayDrop são acessíveis.
  • Os jogadores precisam estar logados.
  • Um banco de dados por jogo, mantido entre as versões e contabilizado no armazenamento do criador. Nunca envie o endereço nem as credenciais dele a um navegador.

Conecte o 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 cuida das vagas de grupo e do login do PlayDrop; veja grupos online. Para um controle de nível mais baixo, sdk.multiplayer.getConnection() retorna { endpoint, token, expiresAt } para o cliente oficial do Colyseus, obtido com sdk.libs.colyseus.load().

SDK de servidor

@playdrop/server adiciona chamadas confiáveis à plataforma: amigos e cards de jogo (playdrop.social), verificação de compras (playdrop.shop), geração com IA paga pelo criador (playdrop.ai) e voz da sala (playdrop.multiplayer.forRoom). Elas só funcionam em jogos enviados. Veja a referência do SDK de servidor.

Teste

Durante o desenvolvimento, rode o Colyseus 0.17 e o MongoDB localmente e conecte seu cliente local 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 depois o mesmo link com player=2 em uma segunda janela. Cada janela joga como um jogador de teste diferente seu. Quando tudo funcionar, publique a versão testada com publish_game_version.

Pense nas desconexões: a reconexão do Colyseus guarda a vaga por pouco tempo, e o estado da sala deve permitir que um jogador que volta continue de onde parou.

Guias relacionados

  • Grupos online e vozAmigos jogam juntos online: declare tamanhos de grupo, abra a janela de grupo do PlayDrop, entre em salas reservadas com sdk.multiplayer.join e controle a voz.
  • SDK de servidorServidores de jogo hospedados no PlayDrop: regras de execução, o PlayDropPlayer verificado e playdrop.social, playdrop.shop, playdrop.ai e playdrop.multiplayer.
  • Empacotamento e .playOrganize uma pasta, ZIP ou .play compilado com o catalogue.json na raiz, declare a mídia da listagem e os servidores e envie com prepare_catalogue_upload.
AnteriorGrupos online e chat de voz em jogos do PlayDropPróximoAvaliações, gorjetas, compras no jogo e anúncios no PlayDrop
Ver Markdown
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

Nesta página

Escreva o servidorDeclare o servidorRegras do ambiente hospedadoConecte o navegadorSDK de servidorTeste
Ver Markdown