play.
PLAY NETWORK SDK · 0.1.0

게임에 친구를 초대하세요.

연결 서비스 요청, WebRTC 연결 객체 생성, 플랫폼 초대 링크를 제공하는 브라우저용 어댑터입니다.

일반 웹 게임은 SDK 없이 업로드할 수 있어요.

친구 초대와 대전을 연동할 때 사용하세요. v0.1은 리프트 아레나 기준의 초기 규격입니다. 경기 규칙, 상태 동기화, SDP·ICE 교환과 연결 복구는 게임에서 구현해야 합니다.

1. HTML에서 불러오기

index.html에서 게임 코드보다 먼저 불러옵니다. 아래 두 예약 경로는 업로드 후 플랫폼이 제공합니다. 공개 URL과 게임 ID만 포함되며 비밀키를 넣지 않습니다.

<script src="./platform-config.js"></script>
<script src="./platform-network.js"></script>
<script src="./game.js"></script>

game.json에 "network": "play-v1"을 지정하세요. 로컬 게임 폴더만 열어서는 예약 경로를 사용할 수 없으므로 업로드 미리보기에서 확인하세요.

2. 모임 만들기와 초대

아래는 모임 생성 부분의 예시입니다. 네트워크 오류는 게임 UI에 표시하고, 반환된 토큰은 URL이나 채팅에 노출하지 마세요.

try {
  const member = await PlatformNetwork.request(
    "lobbies", "POST", { nickname: "푸른기사" }
  );
  const inviteUrl = PlatformNetwork.invite(member.lobbyId);
  // inviteUrl을 게임의 초대 UI에 표시합니다.
  // member.token은 본인 요청에만 사용합니다.
} catch (error) {
  // error.message를 오류 UI에 표시합니다.
}

입장은 lobbies/모임ID/join에 POST, 모임 상태는 lobbies/모임ID/poll에 GET으로 요청합니다. 상태 조회에는 네 번째 인자로 회원 토큰을 전달합니다. 연결 루프와 경기 상태 교환의 전체 예시는 ZIP의 lobby.js와 multiplayer.js를 참고하세요.

3. 제공 API

API하는 일
request(path, method?, data?, token?)게임별 연결 서비스에 요청합니다. 기본 메서드는 GET이며 Promise로 결과를 반환합니다. 타임아웃은 12초입니다.
createPeer(options)RTCPeerConnection을 생성합니다. 모임 가입 후 request("config")로 ICE 서버 설정을 받습니다.
invite(lobbyId)플랫폼 플레이 페이지의 초대 URL을 반환하고 부모 페이지에 초대 이벤트를 보냅니다.
version현재 SDK 버전 문자열: 0.1.0

연동 전 확인할 점

  • 운영 환경의 멀티플레이는 게시 승인 후 사용할 수 있습니다. 승인 전에는 싱글·AI 흐름을 확인하세요.
  • 게임 파일은 상대 경로를 사용하세요. 외부 스크립트·임의 API·서비스 워커는 현재 실행 정책으로 제한됩니다.
  • Supabase 서비스 키와 TURN 공유 비밀키를 게임 파일에 넣지 마세요. TURN 임시 인증정보는 모임 인증 후 서버에서 발급합니다.
  • 결제, 공식 랭킹, 호스트 이전, 재접속 복구 API는 현재 SDK에 포함되지 않습니다.
전체 업로드 규격 보기 →