게임 플레이 어빌리트 시스템을 구성하는 주요 개념과 구성요소를 학습하자. 

 

 

목차

     

     


     

     

    어빌리티 시스템 (Game Ability System)


     

     

    어빌리티 시스템 (Game Ability System) 이란?

     

    액터가 소유하고 발동할 수 있는 어빌리티 및 액터 간의 인터랙션 기능을 제공하는 프레임웍

    RPG, 액션 어드벤처, MOBA 장르의 제작을 쉽게하기 위한 도구. 대부분의 게임 제작에 활용 가능

     

    GAS 프레이웍의 장점

    • 유연성과 확장성: 다양하고 복잡한 게임 제작에 대응할 수 있도록 범용적으로 설계
    • 모듈러 시스템: 각 기능에 대한 의존성이 최소화되도록 설계
    • 네트워크 지원: 네트웍 멀티플레이어 게임에서도 활용 가능하도록 설계
    • 데이터 기반 설계: 데이터를 기반으로 동작하도록 설계
    • 완성도: 포트나이트 게임 서비스를 통해 실효성 검증 (700만명의 동시 접속자를 수용하는 포트나이트와 같은 초대형 네트워크 멀티플레이어 서비스에서 사용되고 있는 프레임웍이다.)

     

    GAS 프레임웍의 단점

    • 배우는 학습 비용: 구성 요소가 많아서 학습하는 비용이 꽤 큼
    • 오버헤드: 작은 규모의 프로젝트에는 복잡한 구조가 오히려 부담될 수 있음

     

    큰 규모의 RPG 및 네트웍 멀티플레이 게임을 효율적으로 만드는데 적합함. 

     

     

     

     

    https://docs.unrealengine.com/5.1/ko/gameplay-ability-system-for-unreal-engine/

     

    게임플레이 어빌리티 시스템

    게임플레이 어빌리티 시스템 개요

    docs.unrealengine.com


     

     

    게임플레이 어빌리티 시스템의 핵심 구성 요소

     

    어빌리티 시스템 컴포넌트(ASC)

    GAS 프레임웍을 관리하고 처리하는 액터의 중앙처리장치

     

     

     


     

    게임플레이 어빌리티 시스템의 기본 흐름

     

     

    1. GAS 프레임웍을 관리하고 처리하는 액터의 중앙처리장치인 AbilitySystemComponent(ASC)를 액터에 생성
    2. 액터가 취할 액션인 Gameplay Ability를 부여
    3. 부여된 어빌리티가 조건에 맞으면 발동(=캐릭터가 액션을 수행)
    4. 캐릭터 액션이 발동이 되면 이 액션의 종류에 따라서 주위 또는 나에게 영향을 미침. 이펙트 발동. Gameplay Effect에서 데이터를 변경
    5. Attribute Set에 영향을 끼침

     

    C++을 써야 하는 이유

     

    GAS의 기본 설정은  C++에서 진행되도록 구성되어 있음

    세밀한 제어는 오직 C++에서 가능함

    게임플레이 어빌리티, 게임 플레이 이펙트 및 장식 이펙트는 블루프린트에서 작업이 용이함

    전체적인 GAS 시스템 설정을 C++로 작업하고, 블루프린트를 활용해 게임 콘텐츠를 제작

     

     

    게임플레이 어빌리티 시스템을 효과적으로 사용하기 위해

    C++ 프로그래밍으로 만든 후 블루프린트와 조합해 의존성을 최소화하는 것을 권장