[UE5] 이득우 Part 3. 1강 언리얼 네트웍 멀티플레이어 프레임웍 개요

공부 스파이럴·2024년 6월 14일
0

강의 목표

  • PvP 게임 예제 소개, 에디터 설정
  • 클라이언트-서버 모델의 구성 이해
  • 언리얼 엔진의 네트웍 멀티플레이어 프레임웍을 구성하는 주요 개념 학습
  • 언리얼 C++ 프로그래밍이 가지는 장점 이해

설정

  • 플레이 Net Mode : Play as Listen Server
  • 에디터 설정에서 Allow Late Joining를 true로 해주면 add another client 버튼이 생김
  • 고급 설정에서 Always On Top를 true로 하면 새 윈도우를 항상 위로 놓고 확인 가능

네트워크 개요

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/networking-overview-for-unreal-engine?application_version=5.1

  • 멀티플레이 게임은 시작 단계부터 멀티플레이에 대해 염두해두고 구조를 짜야함
    • 멀티 -> 싱글은 호환되지만
    • 싱글 -> 멀티는 처음부터 코드를 다시 짤 가능성이 매우 높음
    • 네트워크 속도와 안정성으로 인해 발생할 수 있는 기술적 병목 현상 대비 힘듦

  • 클라이언트 서버 모델
    • 한 대의 컴퓨터가 서버 역할
    • 나머지는 클라이언트로 서버에 연결되는 구조
    • 판정은 서버를 통해서만 진행
    • 클라이언트는 폰을 원격으로 제어해서 신호를 보내주는 역할

    • 즉, 서버는 게임 상태 데이터
    • 클라이언트는 서버의 콘텐츠 데이터를 복제, 서버의 근사치를 시뮬레이션

클라이언트-서버 모델

  • 특별한 역할을 하는 하나의 서버 + 다수의 클라이언트
  • 서버 : 실제 게임 서비스를 제공하는 콘텐츠를 담음
  • 클라이언트 : 전달받은 콘텐츠를 화면에 띄워주는 역할
  • 프록시 : 서버로부터 클라이언트에 복제된 콘텐츠
  • 접속 주체 : 접속을 담당하는 액터

프레임웍

  • 접속 플로우 : 로그인, 커넥션, 오너십, 역할
  • 액터 리플리케이션 : 서버와 클라이언트 간에 동일한 액터가 나타나도록 만드는 기능
  • RPC : 네트워크를 활용해서 즉각적으로 서버와 클라이언트 간의 명령을 주고 받아야 함
  • 움직임 리플리케이션 : 무브먼트 컴포넌트
  • 프로퍼티 리플리케이션 : RPC에 비해 느리지만 주요한 속성을 확실하게 전달 받음
    • 최적화해서 전달하는 것이 중요

C++로만 가능한 기능

  • 필수적으로 사용되는 가상 함수 활용 가능
  • 제대로 된 리플리케이션 콜백의 호출 가능
  • 리플리케이션 조건의 세밀한 제어 가능
  • 네트워크 전송 최적화 : 가벼운 데이터 설계

0개의 댓글