[Unreal Engine] Networking

E0u0n·2023년 11월 24일
0

Unreal Engine

목록 보기
4/10
post-thumbnail

Networking Content Examples 관련 Unreal Engine Documentation을 참고하여 작성되었습니다. Unreal Engine의 Contents Examples 프로젝트의 Network Features 맵에 제공된 샘플을 서술합니다.

Network terminology in Unreal Engine

Network Authority, Replication, RepNotify, Relevancy

Network Authority

  • Network Authority(Server)
  • Remote Machine(Client)

블루프린트에서 'Switch Has Authority ' 노드를 통해 플레이어가 server인지, client인지 판별합니다.

Replication

서버와 클라이언트 사이에서 게임 상태를 동기화하는 과정을 말합니다. 예를 들어, 어떤 플레이어가 캐릭터를 움직이거나, 물건을 줍는다면, 이러한 행동은 서버에 의해 처리되고, 다른 클라이언트에도 해당 행동이 반영되어야 합니다.

언리얼 엔진 에디터에서 어떤 액터의 replication 여부를 결정할 수 있습니다.

Replication은 비단 액터에만 국한되지 않습니다.

  • Variable Replication(변수 리플리케이션)

  • Function Replication(함수 리플리케이션)
    • Multicast : 실행되는 곳인 서버에서 호출된 이후, 클라이언트에 자동으로 전송
    • Server : 클라이언트에서 호출되어 서버에서만 실행
    • Client : 서버에서 호출되어 소유중인 클라이언트에서만 실행

Net Owner (네트 소유자)가 있는 액터(플레이어 컨트롤러, 혹은 소유된 경우)에만 사용할 수 있다는 추가적인 제약이 있습니다.

RepNotify

RepNotify는 게임 개발에서, 특히 멀티플레이어 게임을 개발하는 데 사용되는 Unreal Engine 같은 게임 엔진에서 자주 사용되는 개념입니다. 이는 'Replication Notification'의 줄임말로, 변수가 복제될 때 자동으로 호출되는 함수나 이벤트를 의미합니다.

변수가 'RepNotify'로 표시되면, 그 변수의 값이 변경되고 네트워크를 통해 복제될 때마다 특정 함수가 호출됩니다. 이 함수는 변수의 새로운 값으로 업데이트되는 데 사용될 수 있으며, 게임 내에서 이러한 변경을 반영하기 위한 로직을 포함할 수 있습니다. 예를 들어, 플레이어의 체력이 변경되거나, 게임 오브젝트의 상태가 바뀔 때 이를 다른 플레이어에게 시각적으로 표시해야 하는 경우에 사용됩니다.

RepNotify의 주요 장점은 개발자가 네트워크 상태 변화를 쉽게 추적하고 반응할 수 있다는 것입니다. 이는 멀티플레이어 게임에서 일관된 게임 경험을 제공하는 데 매우 중요한 기능입니다.

profile
이세계 개발자입니다.

0개의 댓글