게임개발/ue server

[UE] 언리얼 엔진의 멀티플레이어 게임 프레임워크 특징과 네트워크 프로그래밍에서 BP가 아닌 C++을 사용해야 하는 이유

차차냥 2024. 4. 28. 13:19

UE 에서 싱글 플레이어 게임이 PvP가 가능한 멀티 플레이어 게임이 되기까지

1) 접속 플로우

- 로그인 / 커넥션 / 오너십 / 역할

 

2) 액터 리플리케이션

- 연관성 / 우선권 / 빈도

- 서버와 클라이언트 간에 동일한 액터가 나타나도록 만드는 기능입니다.

- 액터 업데이트 방식은 크게 두 가지 방식( RPC 방식, 프로퍼티 리플리케이션 방식 )으로 나뉩니다.

 

액터 리플리케이션

액터 오브젝트 리플리케이션을 여러모로 살펴봅니다.

docs.unrealengine.com

2-1) RPC (원격 함수 호출, Remote Procedure Call)

- 이전에는 Function Replication 이라 불렸습니다.

- 신뢰성 / 검증

 

언리얼 엔진의 RPC

네트워크를 통해 함수 리플리케이션을 지정합니다.

dev.epicgames.com

더보기

2-2) 프로퍼티 리플리케이션

- 상태 / 동기화

- 액터가 가진 속성을 동기화합니다.

- RPC 에 비해 속도가 조금 느리지만, 게임을 구성하는 주요한 속성을 확실하게 전달받고 싶을 때 사용합니다. 느리기 때문에 정보를 최적화해서 전달하는 것이 필요합니다.

 

언리얼 엔진의 프로퍼티 리플리케이션

액터 프로퍼티 리플리케이션 방법에 대한 상세 정보입니다.

dev.epicgames.com

 

3) 움직임 리플리케이션(움직임 동기화)

- 캐릭터 / 물리 ex. Character Movement Component

 

언리얼 엔진의 무브먼트 컴포넌트

캐릭터부터 무기 발사체까지 레벨에서 무브먼트를 구현하는 무브먼트 컴포넌트를 소개합니다.

dev.epicgames.com

 

 

- 앞으로 위의 리스트들에 대해 공부한 내용을 게시글로 정리하여 업로드 예정입니다. 

 

 


언리얼 네트워크 프로그래밍에서 블루프린트가 아닌 C++ 로 사용해야 하는 이유

1. C++ 에서 필수적으로 사용되는 가상 함수 활용 가능

2. 중요한 타이밍에 쓰이는 리플리케이션 콜백의 호출 가능

3. 리플리케이션 조건의 세밀한 제어 가능

4. 네트워크 전송 최적화 : 가벼운 데이터 설계 가능

 

 

 


 

 

출처. 이득우의 언리얼 프로그래밍 - 언리얼 네트웍 멀티플레이어 프레임웍