quantum | v2 switch to v1  

씬 로딩

소개

Quantum 컨텍스트에서 씬을 로드하려면 두 부분이 필요합니다:

  1. 씬 뷰(유니티) 그리고,
  2. 시뮬레이션용 씬 데이터 (Quantum).

이 문서에서는 씬 로드 구현 방법에 대해 3가지 유효한 접근 방식을 설명합니다. 이 모든 기능에서 나중에 OnMapChanged 콜백을 통해 유니티 씬 및 MapData를 직접 로드해야 합니다.

주의: Simulation Config 에셋은 맵에서 씬 자동 로드 옵션을 제공합니다. 이는 production 의 경우 protyping 의 경우 괜찮습니다. 게임별 로더를 직접 작성하시기 바랍니다.

메인 화면으로
 

오프라인인 경우의 로드

유니티 씬은 플레이어가 매치메이킹에 들어가거나 게임을 시작하기 전에 오프라인/로컬로 로드할 수 있습니다. 이것은 직접 매치메이킹으로 하는 캐주얼 게임에 좋은 옵션입니다.

순서:

  1. 오프라인 상태에서도 게임 씬을 백그라운드에서 로드합니다(유니티).
  2. 매치메이킹에 들어가 방을 찾습니다(Photon Realtime).
  3. 이미 사전 로드된 게임 씬으로 시뮬레이션(Quantum)을 시작합니다.

메인 화면으로
 

Photon 룸에 있는 동안 로드

플레이어에게 경기 전 정보를 알리기 위해 로비가 필요한 경우, 모든 사람이 게임 씬을 로드하는 즉시 Photon Realtime API를 통해 로드를 조정하고 Quantum 시뮬레이션을 시작할 수 있습니다.

순서:

  1. 플레이어가 Photon 룸에 참여합니다.

  2. Realtime을 통해 룸에 참여한 모든 클라이언트의 씬 로드를 조정합니다:

    1. (사용자 정의 Photon 메시지 또는 룸 속성)을 사용하여 예상 로드 시간을 지정합니다.
    2. 모든 클라이언트가 씬(플레이어 속성), 또는 마스터 클라이언트 신호가 시간 초과되었음을 확인할 때까지 기다립니다.
    3. Quantum 시뮬레이션 시작 신호를 보냅니다(루 속성).

게임이 시작되면 추가 로딩 없이 시뮬레이션과 게임 플레이가 즉시 시작됩니다. 따라서 관련된 모든 플레이어에게 공정합니다.

메인 화면으로
 

Quantum 시작 후 로드

이 옵션은 이전 옵션과 유사하지만 한 가지 중요한 차이점이 있습니다. 로비 규칙은 Quantum 시뮬레이션에 의해 제어되고 적용됩니다. 이 경로를 통해 결정론의 이점을 바로 얻을 수 있습니다. 이는 MOBA의 캐릭터 선택 규칙과 같이 사전 매치 규칙을 적용해야 할 때 특히 유용합니다.

순서:

  1. 룸에 참여합니다(Realtime).
  2. 시뮬레이션을 시작합니다(Quantum).
  3. 게임 씬을 로드합니다(유니티).
  4. 게임 씬에는 시뮬레이션 논리에 의해 제어되는 로비가 있습니다.
  5. 플레이어는 선택적으로 SendPlayerData 를 사용할 수 있습니다.
  6. 로비 시스템(Quantum)에 의해 타임아웃을 시행하여 클라이언트 실패 시 결정론을 유지합니다.
  7. Quantum에서 로비 시스템을 비활성화하고 게임 관련 시스템을 활성화합니다.

기술문서 TOP으로 돌아가기