728x90
반응형
- 정리
- 언리얼 네트웍 멀티플레이어 프레임웍 개요
- 예제 프로젝트의 기본 설정
- 클라이언트-서버 모델의 이해
- 언리얼 네트웍 멀티플레이어 프레임웍을 구성하는 주요 개념의 이해
- 앞으로 보강해야 할 기능의 확인
- 언리얼 네트웍 멀티플레이어 프레임웍 개요
- Allow late joining 옵션을 켜준다.
- 서버로 동작한 이후에 Add another client를 통해 클라이언트를 추가할 수 있다.
- Always On Top 옵션을 켜주면 Add another client를 할 때 항상 최상위 윈도우로 생성되며 보기 쉽게 셋팅할 수 있다.
- 네트워크 멀티플레이어 프레임웍
- 네트워크 멀티플레이어 게임에서 언리얼 엔진은 클라이언트-서버 모델을 사용
- 네트워크에 있는 한 대의 컴퓨터가 서버 역할을 하며 멀티플레이어 게임 세션을 호스팅, 다른 모든 플레이어의 컴퓨터는 클라이언트로 서버에 연결
- 서버만이 믿을 수 있음. 멀티플레이어 게임이 실제로 진행되는 곳. 어떠한 판정이 일어날 때 그 서버를 통해서만 무조건 진행된다.
- 서버가 클라이언트의 모니터를 직접 스트리밍 하는 것이 아니라 데이터를 전달하여 클라이언트가 반영하는 동작원리. 클라이언트는 서버에서 일어나는 일의 근사치를 시뮬레이션한다.
- 동작시키는 프로그램은 게임인스턴스라고 하는 클래스가 관리하도록 언리얼 엔진이 설정되어 있다.
- 게임 컨텐츠는 게임인스턴스가 만들어오는 앱의 월드라는 곳에 게임 컨텐츠가 담기게 된다.
- 게임 컨텐츠는 플레이어를 비롯한 다양한 액터들이 담겨 있음
- 서버는 굉장히 강력한 권한. 서버만 놓고 보면 싱글플레이어 게임 구성의 Stand alone 구조와 유사
- 클라이언트들은 주로 서버에서 전달해주는 커넥션을 통해 전달해주는 컨텐츠를 복제해서 화면에 띄워 주는 역할만 수행한다.
- 클라이언트는 다음과 같이 독립적인 게임 인스턴스를 가진다.
- 액터 리플리케이션
- 클라이언트와 서버간에 동일한 액터가 나타나도록 만드는 기능
- 언리얼에서는 모든게 액터로 구성되어 있기 때문에 대부분이 다 액터 리플리케이션이라고 봐도 무방하다.
- RPC
- 펑션 리플리케이션이라고도 함
- 네트워크를 활용해서 즉각적으로 서버와 클라이언트 간에 명령을 주고받아야 되는 경우 사용하면 된다.
- 움직임 리플리케이션
- RPC의 대표적인 예시
- 말그대로 무브먼트 컴포넌트 자체 네트워크까지 고려되서 동기화를 진행
- 기본으로 언리얼 엔진이 제공
- 프로퍼티 리플리케이션
- 액터가 가지고 있는 속성을 동기화하는 개념
- RPC에 비해서는 반응 속도가 느리지만 게임을 구성하는 주요 속성을 확실하게 변화된 속성을 전달받고 싶을 때 사용하는 기능
- 게임 플레이에서 굉장히 중요한 부분. 가급적이면 정보들을 최적화해서 전달하는 것이 중요
- 언리얼 네트워크 프로그래밍에서 블루프린트가 아닌 C++을 써야 하는 이유
- C++ 프로그래밍으로 가능한 기능
- 필수적으로 사용되는 가상 함수의 활용 가능
- 제대로 된 리플리케이션 콜백의 호출 기능
- 리플리케이션 조건의 세밀한 제어 가능
- 네트워크 전송 최적화 : 가벼운 데이터 설계
- C++ 프로그래밍으로 가능한 기능
해당 포스트는 인프런의 <이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이어 프레임웍의 이해>
강의를 수강하고 정리한 내용입니다.
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해 강의 | 이득우 - 인프런
이득우 | 또 하나의 언리얼 엔진이라고도 불리는 네트웍 멀티플레이어 프레임웍을 학습합니다. 네트웍 멀티플레이어 게임을 제작할 때 반드시 알아야 하는 주요 개념, 내부 동작 원리, 최적화
www.inflearn.com
728x90
'공부 > 이득우의 언리얼 프로그래밍' 카테고리의 다른 글
[Study] Part 3 - 커넥션과 오너십 (3/15) (0) | 2024.08.12 |
---|---|
[Study] Part 3 - 게임 모드와 로그인 (2/15) (0) | 2024.08.10 |
[Study] Part 2 - 게임의 완성 (15/15) (0) | 2024.08.07 |
[Study] Part 2 - 게임플로우 다듬기 (14/15) (0) | 2024.06.24 |
[Study] Part 2 - 헤드업디스플레이의 구현 (13/15) (0) | 2024.06.21 |