본문 바로가기

게임프로그래밍/실습2

어빌리티 시스템 컴포넌트 (Ability System Component)


ASC의 주요 역할

1. 능력(Ability) 관리

ASC는 캐릭터가 사용할 수 있는 능력을 정의하고 이를 실행하는 역할을 담당합니다.

  • 능력은 일반적으로 GameplayAbility 클래스를 기반으로 정의됩니다.
  • ASC는 다음을 지원합니다:
    • 능력 활성화: 특정 조건에서 능력을 활성화.
    • 능력 취소: 활성화된 능력을 강제로 취소.
    • 능력 쿨다운: 능력이 다시 사용 가능해질 때까지의 대기 시간 관리.

2. 효과(Effect) 관리

ASC는 능력으로 인해 발생하는 **Gameplay Effect (GE)**를 관리합니다.

  • Gameplay Effect는 캐릭터의 스탯(체력, 마나, 속도 등)이나 상태(스턴, 디버프 등)를 변경하는 역할을 합니다.
  • ASC는 다음을 처리합니다:
    • 효과 적용: 능력 실행 시 대상에게 효과 적용.
    • 효과 제거: 효과 지속 시간이 끝나거나 특정 조건에서 제거.
    • 스택 관리: 중첩되는 효과의 관리.

3. 속성(Attribute) 관리

ASC는 캐릭터의 속성(Attribute) 시스템을 관리합니다.

  • Attribute는 캐릭터의 체력, 마나, 공격력 등과 같은 게임 데이터입니다.
  • ASC는 Gameplay Attribute를 통해 속성 값을 읽고 쓰며, 속성 값의 변경을 감지하고 반응할 수 있습니다.

4. 이벤트 및 태그 기반 시스템

ASC는 태그와 이벤트 시스템을 활용하여 능력과 효과를 제어합니다.

  • Gameplay Tags: 능력과 효과의 조건, 제한, 상호작용을 관리.
    • 예: "Stunned" 태그를 가진 캐릭터는 이동 능력을 사용할 수 없음.
  • Gameplay Event: 능력과 효과 간의 통신을 위한 이벤트 트리거.
    • 예: 능력이 발동되면 다른 효과를 트리거.

5. 네트워크 동기화

ASC는 네트워크 환경에서 클라이언트와 서버 간의 동기화를 지원합니다.

  • 능력과 효과는 주로 서버에서 실행되고, 클라이언트로 결과를 동기화.
  • ASC는 **RPC(Remote Procedure Call)**와 **Prediction(예측 시스템)**을 통해 멀티플레이어 환경에서 능력 사용 시 딜레이를 최소화.

ASC의 주요 구성 요소

1. Gameplay Ability

  • ASC에 의해 관리되는 능력의 핵심 클래스.
  • 능력을 활성화하고 실행하는 로직을 정의.

2. Gameplay Effect

  • 능력에 의해 발생하는 효과를 정의.
  • 지속 시간, 스택, 속성 변경 등을 포함.

3. Gameplay Attribute

  • 캐릭터의 속성을 정의하고 관리.
  • ASC를 통해 속성 변경과 이벤트를 처리.

4. Gameplay Tags

  • 능력과 효과를 제어하는 태그 기반 시스템.