자료실

Photon 클라우드 - 룸 유지 가이드
작성자 | admin 2021-03-22  |    조회수 : 1272  


룸 유지 가이드



이 가이드에서는 어떻게 Photon이 웹서버에 룸 데이터를 유지하는지 설명합니다.

현재 PUN은 룸에 재참여하는 것을 완전하게 지원하고 있지 않습니다. 따라서 이 가이드는 PUN 을 포함하고 있지 않습니다.


개념


Photon 어플리케이션은 동기적으로 설정되어 있지만 비동기 방식으로 확장 될 수 있습니다. Photon webhooks를 사용할 수 있게 할 수 있으며 플레이어들이 게임 데이터의 누락없이 방에 재참여 할 수 있도록 설정 할 수 있습니다. 또한 친구 초대를 받아서 비동기적으로 룸에 참여 할 수 도 있습니다.

Photon 에서 게임 데이터는 룸 상태로 언급 됩니다. 룸 상태는 다음으로 구성 됩니다:
  1. 룸 옵션
  2. 룸 프로퍼티
  3. 액터 목록
  4. 이벤트 캐시

떠났던 게임을 다시 시작하기 위해서는 룸 상태가 다시 만들어 져야 합니다. 따라서 Photon이 데이터의 저장과 로딩을 가장 기초적 이면서도 간단한 방법으로 룸 상태를 현재로 저장하는 이유입니다.


룸 상태 저장


룸 상태를 저장하려면 다음의 webhooks 설정이 필요 합니다:
  1. BaseUrl 는 유효한 URL 이어야 합니다.
  2. IsPersistent = true.
  3. PathClose 는 유효한 작업 패스 이어야 합니다.

룸을 생성 할 때 이러한 조건이 맞아야 합니다:
  1. PlayerTTL == -1 또는 PlayerTTL > EmptyRoomTTL.
  2. CheckUserOnJoin = true.

플레이어가 룸을 포기하지 않고 떠나게 되는 경우에는 OpLeave(true) 를 호출 해야 합니다.

룸 상태는 GameClose webhook 내로 전송 되며 룸 상태를 웹 서버에 저장 해야 합니다.


룸 상태 로딩


룸 상태를 로드 하기 위해서는 아래 처럼 webhooks를 설정 해야 합니다:
  1. BaseUrl 유요한 URL 이어야 합니다.
  2. IsPersistent = true.
  3. PathCreate 유효한 작업 경로 이어야 합니다.
룸에 재참여 하기 위해서는 다음의 메소드를 호출 해야 합니다:
lbClient.OpJoin(-1, roomName);

만약 게임안에 도전과 초대 기능이 있다면 AsyncJoin 을 true 로 설정하여 사용할 수 있도록 해야 하고 일반적으로 이름을 통하여 룸에 참여 합니다:
lbClient.OpJoin(0, roomName);

웹 서버로 부터 이전에 저장되었던 룸 상태를 webhook 응답으로 받을 필요가 있습니다.


CheatSheet