언리얼 엔진

[언리얼엔진] Gameplay Ability System - EGameplayEffectReplicationMode

mane 2024. 2. 7. 00:40
728x90
반응형

Gameplay Effect 복제 모드 (EGameplayEffectReplicationMode)

언리얼 엔진의 GameplayEffect 복제 모드는 게임플레이 효과가 네트워크를 통해 클라이언트에게 어떻게 복제될지를 결정하는 방법을 정의합니다. 이 열거형은 멀티플레이어 게임에서 중요한 부분으로, 효과의 네트워크 트래픽과 성능에 직접적인 영향을 줍니다.

// Engine\Plugins\Runtime\GameplayAbilities\Source\GameplayAbilities\Public\AbilitySystemComponent.h

/** How gameplay effects will be replicated to clients */
UENUM()
enum class EGameplayEffectReplicationMode : uint8
{
    /** Only replicate minimal gameplay effect info. Note: this does not work for Owned AbilitySystemComponents (Use Mixed instead). */
    Minimal UMETA(DisplayName = "Minimal Replication"),

    /** Only replicate minimal gameplay effect info to simulated proxies but full info to owners and autonomous proxies */
    Mixed UMETA(DisplayName = "Mixed Replication"),

    /** Replicate full gameplay info to all */
    Full UMETA(DisplayName = "Full Replication"),
};

간단 설명

  • Minimal: 가장 기본적인 정보만 복제합니다. 주의할 점은, 소유한 AbilitySystemComponents에는 Mixed 모드를 사용해야 한다는 것입니다.
  • Mixed: 시뮬레이션된 프록시에는 최소 정보를, 소유자와 자율 프록시에는 전체 정보를 복제합니다. 이 모드는 소유한 능력 시스템에 적합합니다.
  • Full: 모든 클라이언트에 게임플레이 효과의 전체 정보를 복제합니다. 이는 최대한의 정보를 제공하지만 네트워크 트래픽이 가장 많이 발생합니다.

설명

EGameplayEffectReplicationMode 상세 설명

언리얼 엔진의 GameplayEffect 복제 모드는 멀티플레이어 게임에서 중요한 게임플레이 효과의 네트워크 통신 방법을 결정합니다. 이 열거형은 Minimal, Mixed, Full 세 가지 모드를 제공합니다.

Minimal

  • 정의: 가장 기본적인 게임플레이 효과 정보만을 복제합니다. 네트워크 대역폭을 절약하기 위해 필수적인 정보만 전송하는 방식입니다.
  • 사용 시나리오: 네트워크 트래픽을 최소화하고자 할 때 유용합니다. 효과의 존재만 알려야 하고 세부 사항은 중요하지 않은 경우에 적합합니다.
  • 제한사항: Owned AbilitySystemComponents 에서는 사용할 수 없습니다. 이는 플레이어나 AI가 직접 조종하는 캐릭터에 대해서는 충분한 정보를 제공하지 못할 수 있기 때문입니다.

Mixed

  • 정의: 시뮬레이션된 프록시에는 최소한의 정보를, 소유자와 자율 프록시에는 전체 정보를 복제합니다.
  • 사용 시나리오: 플레이어가 직접 조종하는 캐릭터에 대해 자신의 효과는 전체 정보를 받고, 다른 플레이어나 AI가 조종하는 캐릭터에 대해서는 필요한 최소한의 정보만 받고자 할 때 사용됩니다. 이는 게임플레이의 중요한 부분을 세밀하게 제어하면서도 네트워크 효율성을 유지하고자 할 때 적합합니다.

Full

  • 정의: 모든 클라이언트에 게임플레이 효과의 전체 정보를 복제합니다.
  • 사용 시나리오: 게임플레이 효과에 관련된 모든 정보가 모든 플레이어에게 중요할 때 사용합니다. 예를 들어, 공개적인 효과나 모든 플레이어가 알아야 하는 중요한 변경 사항을 전파할 때 적합합니다.
  • 제한사항: 가장 많은 네트워크 대역폭을 소모합니다. 따라서, 모든 상황에서 Full 모드를 사용하는 것은 네트워크 리소스에 부담을 줄 수 있습니다.

EGameplayEffectReplicationMode를 선택할 때는 게임의 특성, 네트워크 조건, 효과의 중요성 등을 고려하여 가장 적합한 모드를 선택해야 합니다. 이는 게임의 성능 최적화와 직접적인 관련이 있으며, 플레이어에게 최적의 게임 경험을 제공하기 위한 중요한 결정 중 하나입니다.


설정 방법

AbilitySystemComponent의 복제 모드를 설정하는 예시 코드는 다음과 같습니다:

// AbilitySystemComponent 인스턴스를 가져옵니다.
UAbilitySystemComponent* AbilitySystemComponent = ...;

// 복제 모드를 Minimal로 설정합니다.
AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Minimal);

이 설정은 게임의 초기화 단계에서 수행되어야 하며, 플레이어 상태나 AI 캐릭터의 초기화 코드에서 적용됩니다.

728x90
반응형