본문 바로가기

공부/이득우의 언리얼 프로그래밍

[Study] Part 3 - 언리얼 네트웍 멀티플레이어 프레임웍 개요 (1/15)

728x90
반응형

 

  • 정리
    • 언리얼 네트웍 멀티플레이어 프레임웍 개요
      1. 예제 프로젝트의 기본 설정
      2. 클라이언트-서버 모델의 이해
      3. 언리얼 네트웍 멀티플레이어 프레임웍을 구성하는 주요 개념의 이해
      4. 앞으로 보강해야 할 기능의 확인

 

Editor Preferences>General

  • Allow late joining 옵션을 켜준다.
    • 서버로 동작한 이후에 Add another client를 통해 클라이언트를 추가할 수 있다.

 

Eidt Prefereences>Play

  • Always On Top 옵션을 켜주면 Add another client를 할 때 항상 최상위 윈도우로 생성되며 보기 쉽게 셋팅할 수 있다.

 

  • 네트워크 멀티플레이어 프레임웍
    • 네트워크 멀티플레이어 게임에서 언리얼 엔진은 클라이언트-서버 모델을 사용
    • 네트워크에 있는 한 대의 컴퓨터가 서버 역할을 하며 멀티플레이어 게임 세션을 호스팅, 다른 모든 플레이어의 컴퓨터는 클라이언트로 서버에 연결
    • 서버만이 믿을 수 있음. 멀티플레이어 게임이 실제로 진행되는 곳. 어떠한 판정이 일어날 때 그 서버를 통해서만 무조건 진행된다.
    • 서버가 클라이언트의 모니터를 직접 스트리밍 하는 것이 아니라 데이터를 전달하여 클라이언트가 반영하는 동작원리. 클라이언트는 서버에서 일어나는 일의 근사치를 시뮬레이션한다.

 

로컬 플레이와 네트워크 플레이의 차이

 

멀티플레이어 게임에서의 게임인스턴스와 월드
싱글플레이어 게임의 구성

  • 동작시키는 프로그램은 게임인스턴스라고 하는 클래스가 관리하도록 언리얼 엔진이 설정되어 있다.
  • 게임 컨텐츠는 게임인스턴스가 만들어오는 앱의 월드라는 곳에 게임 컨텐츠가 담기게 된다.
  • 게임 컨텐츠는 플레이어를 비롯한 다양한 액터들이 담겨 있음

 

멀티플레이어 게임의 구성 (클라이언트-서버 모델)

 

  • 서버는 굉장히 강력한 권한. 서버만 놓고 보면 싱글플레이어 게임 구성의 Stand alone 구조와 유사
  • 클라이언트들은 주로 서버에서 전달해주는 커넥션을 통해 전달해주는 컨텐츠를 복제해서 화면에 띄워 주는 역할만 수행한다.
  • 클라이언트는 다음과 같이 독립적인 게임 인스턴스를 가진다.
  • 액터 리플리케이션
    • 클라이언트와 서버간에 동일한 액터가 나타나도록 만드는 기능
    • 언리얼에서는 모든게 액터로 구성되어 있기 때문에 대부분이 다 액터 리플리케이션이라고 봐도 무방하다.
    • RPC
      • 펑션 리플리케이션이라고도 함
      • 네트워크를 활용해서 즉각적으로 서버와 클라이언트 간에 명령을 주고받아야 되는 경우 사용하면 된다.
    • 움직임 리플리케이션
      • RPC의 대표적인 예시
      • 말그대로 무브먼트 컴포넌트 자체 네트워크까지 고려되서 동기화를 진행
      • 기본으로 언리얼 엔진이 제공
    • 프로퍼티 리플리케이션
      • 액터가 가지고 있는 속성을 동기화하는 개념
      • RPC에 비해서는 반응 속도가 느리지만 게임을 구성하는 주요 속성을 확실하게 변화된 속성을 전달받고 싶을 때 사용하는 기능
      • 게임 플레이에서 굉장히 중요한 부분. 가급적이면 정보들을 최적화해서 전달하는 것이 중요
  • 언리얼 네트워크 프로그래밍에서 블루프린트가 아닌 C++을 써야 하는 이유
    • C++ 프로그래밍으로 가능한 기능
      • 필수적으로 사용되는 가상 함수의 활용 가능
      • 제대로 된 리플리케이션 콜백의 호출 기능
      • 리플리케이션 조건의 세밀한 제어 가능
      • 네트워크 전송 최적화 : 가벼운 데이터 설계

 

 

 

 

해당 포스트는 인프런의 <이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이어 프레임웍의 이해>
강의를 수강하고 정리한 내용입니다.
 

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해 강의 | 이득우 - 인프런

이득우 | 또 하나의 언리얼 엔진이라고도 불리는 네트웍 멀티플레이어 프레임웍을 학습합니다. 네트웍 멀티플레이어 게임을 제작할 때 반드시 알아야 하는 주요 개념, 내부 동작 원리, 최적화

www.inflearn.com

 

 

 

 

728x90