득이공간

[네트웍 멀티플레이 프레임웍의 이해] 5장. PvP 게임 제작 본문

GP/UE5

[네트웍 멀티플레이 프레임웍의 이해] 5장. PvP 게임 제작

쟁득 2024. 7. 19. 10:11
해당 게시물은 이득우 교수님의 '네트웍 멀티플레이 프레임웍의 이해' 강의를 수강하며
학습한 내용을 개인적으로 정리한 글입니다.

📌 목차 - 5장. PvP 게임 제작

5-1. 캐릭터 아이템과 스탯의 구현

5-2. PvP 게임의 완성


📌 5-1. 캐릭터 아이템과 스탯의 구현

1. 프로퍼티 리플리케이션에 조건을 설정하는 방법의 학습
2. 네트웍 대역폭을 최적화할 수 있는 다양한 방법의 학습
3. 넷시리얼라이저 기능을 사용해 구조체 네트웍 데이터를 효과적으로 패킹하는 방법의 학습

 

  • 이번 강의에서 학습할 내용
    • 프로퍼티 리플리케이션: 최적화
  • 네트웍으로 전송할 데이터의 구분
    • 플레이어의 세부적인 스탯 정보를 모든 클라이언트에 공유할 필요가 있는가?
    • 스탯 정보는 소유자에게만 공유하고 다른 클라이언트(Simulated Proxy)는 체력 정보만 공유
  • 네트웍 멀티플레이어를 위해 고려할 최적화 요소
    • [일반적으로 최적화시 고려할 사항]
      • 불필요한 액터의 리플리케이션 옵션을 끄기
      • 액터에 맞는 최적의 업데이트 빈도(Frequency)와 우선권(Priority) 설정
      • 연관성(Relevancy)을 위한 최적의 조건 설정
      • 프로퍼티 리플리케이션의 조건 설정
      • 필요시 휴면(Dormancy) 상태의 설정
      • 데이터 크기의 양자화 (FVector_NetQuantize)
    • [기타 심화 주제]
      • 구조체 데이터 전송의 최적화 설계 (NetSerialize)
      • 프로퍼티 리플리케이션의 푸시 모델 설정
      • 필요시 빠른 배열 자료구조를 사용한 데이터 전달 (FFastArraySerializer)
      • 빠른 리플리케이션 엔진의 교체 (ReplicationGraph, Iris)
  • NetSerialize 데이터 설계
    • 네트웍으로 전송할 구조체 데이터를 직접 설계해 보내고 싶은 경우에 유용
      • 데이터 양을 최소화 할 수 있음
      • 데이터가 자주 바뀔 때 유용하게 활용
      • 플래그를 설정해 불필요한 데이터 전송을 건너뛸 수 있음
      • 정수 데이터로 변환해 크기를 줄일 수 있음

📌 5-2. PvP 게임의 완성

1. 네트웍 멀티플레이를 위해 제공하는 주요 액터의 활용방법의 이해
2. 네트웍 멀티플레이 게임의 매치 상태와 서버 트래블 기능의 학습

 

  • 이번 강의에서 학습할 내용
    • 프로퍼티 리플리케이션: 상태
  • 게임 모드의 특징
    • 오직 서버에만 존재한다.
    • 게임 모드가 관리하는 정보
      • 현재 게임에 참여하고 있는 플레이어의 수
      • 플레이어가 게임에 입장하는 방법과 스폰, 리스폰 규칙
      • 게임에 관련된 중요한 처리: 대미지 처리, 스코어에 관련된 로직 처리 등등
  • 게임 스테이트의 특징
    • 서버와 모든 클라이언트에 존재한다.
    • 클라이언트는 게임 스테이트를 사용해 현재 게임의 상태를 파악할 수 있다.
    • 팀전에서의 팀 스코어를 관리하는데 유용
    • 게임 스테이트가 관리하는 정보
      • 현재 월드의 시간
      • 플레이어 스테이트의 배열
  • 플레이어 스테이트의 특징
    • 서버와 모든 클라이언트에 존재한다.
    • 클라이언트는 플레이어 스테이트를 사용해 플레이어의 상태를 파악할 수 있다.
    • 플레이어 개인의 스코어 및 다른 사람들과 공유할 플레이어 정보를 관리하는데 유용
    • 플레이어 스테이트가 관리하는 정보
      • 스코어
      • 플레이어 이름
      • 플레이어 Id
  • PvP 게임의 완성을 위해 고려할 요소
    • PvP 전투 시스템의 보완
    • 죽은 후 캐릭터 랜덤 리스폰 기능의 제작
    • 플레이어 스테이트의 값을 활용한 캐릭터별 메시 로딩
    • 플레이어 스테이트가 제공하는 스코어 기능의 활용
    • 게임 스테이트를 활용한 게임 매칭 상태의 변경
    • 서버 트래블 기능을 활용한 게임 레벨의 변경