PlayDrop
PlayDrop을 불러올 수 없습니다

페이지에 필요한 일부를 다운로드하지 못했습니다. 다시 불러와 주세요.

STYLESHEET_ERROR
PlayDrop logoPlayDrop Studio
PlayDrop logoPlayDrop Studio
만들기PlayTrade수익배우기커넥터커뮤니티지원
서버 SDK
문서

시작하기

개요첫 게임 만들기

Cloud로 만들기

Cloud 제작게시 및 가져오기요금제 및 생성 횟수크레딧 및 보상

에이전트 연결

모든 커넥터ClaudeChatGPTClaude CodeCodexCursorGeminiAntigravityGrok BuildGrok BotGrok ChatLovableReplit

기술 참조

게임 파일catalogue.json클라이언트 SDK서버 SDK문제 해결자주 묻는 질문
문서서버 SDK
기술 참조

PlayDrop 게임 서버: Colyseus, MongoDB 및 서버 SDK

PlayDrop 게임을 위한 선택형 호스팅 멀티플레이어입니다. MongoDB 저장소를 쓰는 Colyseus server.js를 업로드하고, 테스트 플레이어로 테스트하고, 친구와 AI 기능에는 선택형 서버 SDK를 사용하세요.

게임 서버는 선택 사항입니다. 게임에서 직접 운영하는 어떤 서버든 호출할 수 있습니다. 원한다면 PlayDrop이 MongoDB 데이터베이스를 갖춘 표준 Colyseus 서버를 게임용으로 호스팅해 드립니다. PlayDrop Connector로 index.html 옆에 server.js로 업로드하거나, PlayDrop Cloud에 만들어 달라고 요청하세요. @playdrop/server 패키지도 선택 사항입니다.

표준 Colyseus 서버 작성하기

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

server.js에서 rooms 맵을 내보내고, 룸 이름을 catalogue.json에 "server": { "rooms": ["game"] } 형식으로 나열하세요. 서버는 PlayDrop이 실행하므로 직접 시작하지 마세요. 데이터는 룸 수명 주기 안에서 PLAYDROP_MONGO_URL을 통해 표준 MongoDB 드라이버로 저장하세요.

호스팅 서버 규칙

  • Colyseus 0.17(colyseus 0.17.10, @colyseus/schema 4.0.30), MongoDB 드라이버 7.5, Node 22.
  • 최대 2 MiB의 독립적인 ES 모듈 하나. colyseus, @colyseus/core, @colyseus/schema, mongodb, @playdrop/server만 import할 수 있으며, 그 밖의 코드는 파일 안에 번들로 포함하세요.
  • 룸 유형 최대 2개, 룸당 플레이어 8명, 룸당 4시간, 플레이어당 초당 메시지 30개, 메시지당 512 KiB.
  • 서버에서는 인터넷에 접근할 수 없습니다. MongoDB와 PlayDrop 서비스에만 연결됩니다.
  • 플레이어는 로그인해야 합니다. PlayDrop이 참여 시점에 각 플레이어를 검증하므로 onAuth를 구현하지 마세요.
  • 게임마다 MongoDB 데이터베이스가 하나씩 제공되며, 버전이 바뀌어도 유지되고 저장 공간 할당량에 포함됩니다. 데이터베이스 자격 증명은 절대 브라우저로 보내지 마세요.

브라우저 연결 및 테스트

브라우저에서는 클라이언트 SDK의 sdk.multiplayer.getConnection()이 서버 주소와 플레이어의 토큰을 반환하며, Colyseus 클라이언트(@colyseus/sdk 0.17)로 참여합니다. 개발 중에는 Colyseus 0.17과 MongoDB 8을 로컬에서 실행하고 로컬 서버에 직접 연결하세요. 호스팅 서버를 테스트하려면 비공개 버전을 업로드한 뒤 https://www.playdrop.ai/create/games/<slug>/test?v=<version>&player=1을 열고, 두 번째 창에서 player=2로 바꾼 같은 링크를 여세요. 각 창은 서로 다른 테스트 계정으로 플레이합니다. 잘 작동하면 게임 페이지에서 해당 버전을 공개로 전환하세요.

선택형 서버 SDK: 친구 및 AI

@playdrop/server는 playdrop.social(이 게임을 플레이하는 친구와 PlayDrop Chat의 게임 카드)과 playdrop.ai(크리에이터가 비용을 부담하는 텍스트, 이미지, 3D, 동영상, 사운드, 음성, 음악 생성)를 추가합니다. 이 호출은 업로드된 게임에서만 작동하며 로컬 개발 환경에서는 작동하지 않습니다. 비공개로 생성된 미디어는 서버에서 playdrop.ai.tasks.downloadFile로 다운로드하고, 바이트 데이터는 의도한 플레이어에게만 보내세요. 음성 요청은 최대 40단어까지 허용됩니다.

파티 및 방 음성 채팅

await playdrop.social.getParty(client.auth)는 현재 접근이 허용된 파티 멤버 정보를 읽습니다. 파티 채팅이나 다른 게임에서의 활동을 노출하지 않으며 파티 관리 권한도 부여하지 않습니다. 기존 소셜 API의 동작은 그대로 유지됩니다.

카탈로그에 roomVoice: true를 선언하면 기본적으로 방 전체에 적용되는 정책으로 시작하며, 이 기본값에는 서버 호출이 필요하지 않습니다. 정책을 변경하려면 const platform = playdrop.multiplayer.forRoom(this)를 실제 Colyseus 방에 연결하세요. platform.voice.setPolicy("all" | "team" | "proximity" | "off", { range: 20 }), setTeam(client.auth, teamId), setAudience(client.auth, audience), updatePositions([{ player: client.auth, position: { x, y, z } }])를 사용하세요. 팀 지정이나 플레이어별 재정의 설정을 지우려면 null을 전달하세요. 근접 모드에는 서버가 관리하는 최신 위치 정보가 필요합니다.

신뢰할 수 있는 런타임은 참가 자격 변경을 모아서 처리하고, 리더가 일반적인 절차로 참가한 뒤 승인된 파티 동행자의 자리를 예약하며, 권한을 정리합니다. 게임은 오디오, 제공업체 인증 정보 또는 마이크 요청을 보내지 않습니다. 라운드가 바뀌어도 같은 방을 유지하세요. 게시 전에 자격을 갖춘 크리에이터 계정으로 기존 비공개 Test Players를 사용해 통합을 테스트하세요. 게시만으로 기능 배포가 활성화되지는 않습니다.

이전브라우저 게임용 PlayDrop 클라이언트 SDK다음PlayDrop Cloud 제작과 게시 문제 해결
Markdown 보기
EnglishFrançaisDeutsch日本語한국어EspañolPortuguês (Brasil)Bahasa Indonesia繁體中文简体中文ItalianoPolskiNederlandsSvenskaNorsk bokmålSuomiTürkçeไทยTiếng Việtالعربية

이 페이지의 내용

표준 Colyseus 서버 작성하기호스팅 서버 규칙브라우저 연결 및 테스트선택형 서버 SDK: 친구 및 AI파티 및 방 음성 채팅
Markdown 보기