네트워크 프로젝트 환경 구성
소개
NetworkProjectConfig
는 개별 게임 세션에서 사용할 Fusion의 설정을 저장하는 유니티 에셋 클래스입니다. 클라이언트-서버 모드의 경우 환경 구성은 런타임에 서버에 의해 실행되며 공유 게임의 경우 Photon 서버 플러그인이 사용할 환경 구성을 공유합니다.
다양한 설정이 있으며 일부 설정은 특정 게임 모드를 사용할 때 배타적이고 필수입니다. 예: 관심 영역 설정은 연속적인 일관성 전송 모드를 사용할 때만 적용되며, 동시에 델타 스냅샷 모드는 클라이언트-서버 모드 등에 대해서만 사용할 수 있습니다.
씬 설정
피어 모드
Single
은 하나의 주 활성 씬만 로드됩니다. 게임 빌드를 실행할 때의 기본 구성입니다.Multiple
여러 피어(서버 또는 클라이언트)가 동일한 편집기/빌드 인스턴스에 게임 씬을 동시에 로드합니다. 주로 개발/디버깅에 사용됩니다.
-Scenes
는 유니티의 빌드 설정에서 활성화된 씬 목록을 보관합니다. 자동 로딩을 위해 Fusion에서 인덱스가 필요합니다.
물리 설정
Physics Engine
은 Fusion이 단계 물리 시뮬레이션을 담당해야 하는지 여부를 정의합니다.Physics 3D
PhysX는FixedUpdateNetwork()
로 Fusion에 의해 직접 단계화됩니다.Physics 2D
유니티의 Box2D는FixedUpdateNetwork()
로 Fusion에 의해 직접 단계화됩니다.None
Fusion이 단계 물리를 하지 않고 유니티가 처리합니다. 이것은 일반적으로 물리학이 전혀 필요하지 않은 게임이나 더 간단한 공유 모드 애플리케이션에서만 사용됩니다.
Prediction Mode
Server Only
물리는 FixedUpdateNetwork의 새로운 틱에 대해서만 진행됩니다. 시뮬레이션은 물리 엔진에 영향을 미치지 않습니다.Client Prediction
물리가 클라이언트에서 완전히 예측되고 서버 조정을 위해 롤백 됩니다. 이것은 더 비싸고(PhysX 씬 재설정으로 인해) WYSIWYG 물리 샌드박스 경험을 제공하려는 게임에서 신중하게 사용해야 합니다.
객체 설정
시뮬레이션
틱 속도
틱은 개별 시점을 나타내며 특정 또는 호스트에 전달되는 "실제" 시간과 분리됩니다. 예를 들어, 틱 속도가 1/60초로 정의되어 있는 경우, 이것은 시뮬레이션에 의해 사용될 시간 단계입니다. 하드웨어 시계 대신 틱을 사용하면 네트워크 세션의 모든 참가자가 "시간" 동안 공통 참조 프레임을 공유할 수 있습니다. 이것은 미래와 과거의 사건에 대해 정확하게 추론하는 데 매우 중요합니다.
씬의 뒷단에서는 Fusion이 가능한 한 원하는 틱 속도에 충실하도록 노력합니다. 즉, 서버가 제공하는 올바른 틱 시간과 동기화를 유지하기 위해 미세 보정을 수행할 수 있습니다. 또한 Fusion은 여러 시뮬레이션 단계를 연속적으로 빠르게 실행하여 업데이트된 이전 상태에서 새로운 현재 상태를 설정하는 재시뮬레이션을 수행합니다.
복제 모드
상태 전송 모드로 알려져 있는 게임의 Replication Mode
는 에셋의 Simulation
섹션의 NetworkProjectConfig
에 정의되어 있습니다.
API는 모든 복제 모드에 대해 동일하므로 동일한 게임과 코드를 사용하여 다른 복제 모드를 사용하여 다른 게임 인스턴스를 실행할 수 있습니다. 이를 통해 개발자는 나중에 개발 과정에서 복제 모드를 선택하거나 전환할 수 있습니다.
델타 스냅샷
델타 스냅샷
은 매우 효율적인 델타 압축을 사용한 서버 인증 및 전체 월드 스냅숏입니다. 델타 스냅샷
을 사용하면 모든 클라이언트가 정확한 데이터를 지속적으로 수신할 수 있습니다. 이는 플레이어 수가 적은 빠른 속도의 경쟁 게임(예: 10 플레이어 팀 기반 FPS)에 적합합니다.
이 모드는 전용 서버 또는 플레이어 호스트가 시작한 게임에만 사용할 수 있습니다(공유 클라우드 게임에는 유효하지 않음).
연속적인 일관성
Eventual Consistency
모드는 관심 영역을 추가해 네트워크 객체가 많고 복잡한 세계(예: 서바이벌, 배틀로얄 게임)가 있는 게임에 더 적합합니다.
Server Auth
:
이 모드는 전용 서버 또는 플레이어 호스트가 시작한 게임에만 사용할 수 있습니다(공유 클라우드 게임에는 유효하지 않음).
Client Auth
: 클라이언트 인증 EC는 Photon Cloud를 통한 공유 게임에 사용됩니다. 관심 영역은 Photon 서버 플러그인(NetworkTransform
또는NetworkRigidbody
컴포넌트가 있는 모든 GameObjects에 대해 자동으로 관리)에 의해 관리됩니다.