PlayDrop
Não foi possível carregar o PlayDrop

Uma parte necessária da página não foi baixada. Tente carregá-la novamente.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
PlayDrop logoPlayDrop Studio
CriarPlayTradeGanharAprenderConectoresComunidadeAjuda
SDK do servidor
Documentação

Comece aqui

Visão geralSeu primeiro jogo

Criar com Cloud

Criação com CloudPublicar e importarPlanos e geraçõesCréditos e recompensas

Conectar seu agente

Todos os conectoresClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

Referência técnica

Arquivos do jogocatalogue.jsonSDK do clienteSDK do servidorSolução de problemasPerguntas frequentes
DocumentaçãoSDK do servidor
Referência técnica

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

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

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 (colyseus 0.17.10, @colyseus/schema 4.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, mongodb e @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.

Voz do grupo e da sala

await playdrop.social.getParty(client.auth) consulta os membros do grupo atualmente autorizados. Não revela o chat do grupo nem atividades em outros jogos e não concede permissão para gerenciar o grupo. As APIs sociais existentes mantêm seu comportamento.

Um catálogo que declara roomVoice: true começa com uma política para toda a sala; esse padrão não exige chamada ao servidor. Para personalizá-lo, vincule const platform = playdrop.multiplayer.forRoom(this) à sala real do Colyseus. Use platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience) e updatePositions([{ player: client.auth, position: { x, y, z } }]). Passe null para remover uma equipe ou uma configuração específica de um jogador. A proximidade exige posições atualizadas e validadas pelo servidor.

O ambiente de execução confiável agrupa mudanças de elegibilidade, reserva vagas para os seguidores do grupo aceitos após a entrada normal do líder e limpa as permissões. Os jogos nunca enviam áudio, credenciais do provedor ou solicitações de microfone. Mantenha a mesma sala entre rodadas. Use os Test Players privados existentes com um criador elegível para testar a integração antes de publicar; publicar, por si só, não ativa a disponibilização do recurso.

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

Nesta página

Escreva um servidor Colyseus padrãoRegras do servidor hospedadoConecte o navegador e testeSDK de servidor opcional: amigos e IAVoz do grupo e da sala
Ver Markdown