게임 속 Strix 라이프사이클

이번 섹션에서는 게임에서 Strix를 이용하기 위해 필요한 조치와 그것이 필요한 때를 설명합니다.

초기화

Strix 기반 게임에서 처음으로 해야 하는 일은 Strix 네트워크를 초기화하는 것입니다. 방법은 블루프린트에서 InitializeStrixNetwork 함수를 호출하는 것입니다. (연결 참조.)

게임에서는 언제든 할 수 있지만 다른 Strix 함수를 이용하거나 Strix 요소가 연결되는 액터를 스폰하기 전에 해야 합니다. 게임들은 대부분 GameInstance 클래스, GameMode 클래스, BeginPlay 이벤트의 첫 레벨 블루프린트에서 이 함수를 호출합니다.

서버와 매치메이킹 연결

Strix의 기본 서버 측 시스템은 마스터 서버가 하나, 방 서버가 하나 이상이며(소규모 게임에서는 싱글 서버 인스턴스가 마스터 서버와 방 서버 역할을 모두 다 하기도 합니다) 방 서버 하나에는 방이 복수로 들어 있을 수 있습니다. (Strix 아키텍처 개요 참조.)

여러 방 중에서 특정 방 하나를 선택하는(매치메이킹) 로직과 기준은 게임 설계에 따라 다르지만, 클라이언트 간에 게임 월드를 공유하기 위해서는(즉, 액터들을 복제해 동기화하기 위해서는) 방에 입장해야 합니다. 이를 위해서는 먼저 마스터 서버에 연결하고 이어서 (여러 방 중에서) 원하는 방 서버에 연결해야 합니다.

연결 방법에는 여러 가지가 있으며, 어느 연결이 최선일지는 각자 선택해야 합니다. 가장 일반적인 설정은 게임 클라이언트에서 다음 순서대로 실행하는 것입니다.

  1. 마스터 서버에 연결합니다.

  2. 쿼리를 보내 가능한 방들을 찾습니다.

  3. 그중에서 입장할 방을 하나 선택합니다. (적절한 것이 없으면 하나 만듭니다.)

  4. 방을 호스트하는 방 서버에 연결한 후 입장합니다.

(마스터 서버 연결, 방 서버 연결, 방과 매치메이킹 참조.)

복제와 동기화

방에 입장한 후에는 플레이어들이 같은 게임 플레이를 공유하도록 Strix 요소가 같은 방에 있는 다른 클라이언트 간에 액터를 복제하여 동기화합니다.

이를 위해 게임 내 액터 각각에 구성요소를 알맞게 연결해야 합니다. (게임 플레이 동기화 참조.) Strix 요소가 제공할 수 있는 것 이상으로 무언가를 하고 싶다면 RPC로 액터에 대한 제어를 강화하면 됩니다.

복제된 개체의 파괴

쓸모없게 된 액터는 파괴됩니다. Strix Replicator가 있는 액터가 파괴되면 액터가 로컬에서 스폰된 오리지널인지, 다른 클라이언트에서 온 레플리카인지에 따라 다음 상황이 결정됩니다. 오리지널 액터가 파괴되면 그것의 레플리카도 모든 클라이언트에서 모두 삭제됩니다. 그러나, 레플리카가 파괴되면 다른 레플리카와 다른 클라이언트에 있는 오리지널은 그대로 남아 있습니다. 즉, 게임 로직이 오리지널 액터만 파괴하고 그 레플리카의 파괴는 오리지널에게 맡기는 것입니다. (소유권 참조.)

Unreal Engine의 액터 자동 삭제 기능을 피하여, 예컨대 새 레벨로 전환해 레플리카를 보호하고 싶을 때도 있습니다. 이 경우에는 Strix의 파괴-전파 기능을 일시정지하면 됩니다. (일시정지 참조.)

종료

방에서 작업을 완료했으면(예: 매치 승리, 탈락 등) 방을 떠나거나 방 서버에서 연결을 차단하면 됩니다. 사용하지 않는 방은 삭제됩니다. (방에서 나오고 방 삭제하기 참조.)

게임의 온라인 기능을 끝내면(이어서 다시 오프라인 게임을 하거나 게임 클라이언트 자체를 빠져나가고 나면) Strix 네트워크를 멈춰도 됩니다. (Strix Network 정지 참조.)