액터가 소유하고 발동할 수 있는 어빌리티 및 액터 간의 인터랙션 기능을 제공하는 프레임워크
RPG, 액션 어드벤처, MOBA 장르의 제작을 쉽게하기 위한 도구, 대부분의 게임 제작에 활용 가능
큰 규모의 RPG 및 네트워크 멀티플레이 게임을 효율적으로 만드는데 적합함

흐름의 중심엔 AbilitySystemComponent가 존재
모든 요소를 제어 가능
Gameplay Tag 정보는 프로젝트 단위에서 모든 시스템을 감싸고 있음
로직을 전개할 때 태그를 사용하여 현재 상태를 기록/파악할 수 있음
AbilitySystemComponent을 액터에 생성
액터가 취할 액션인 Ability를 부여하여 Gameplay Ability 발동
Gameplay Effect로 자신이나 다른 대상에 영향을 줌
액터의 데이터인 Attribute Set을 변화
시간이 걸리는 작업은 Ability Task에서 처리
시각/청각적 효과는 Gameplay Cue에서 처리

https://github.com/ideugu/UnrealGAS1
Part2 베이스
주 게임 모듈이 아닌 보조 게임 모듈을 사용해 GAS에 관련된 모든 기능을 구현
기본적인 플레이어와 NPC만 구현되어 있음
무한 맵 관련 기능 제외함
캐릭터 레벨 적용 기능 제외함
NPC 인공지능 제외함
세부 UI 및 게임 마무리 관련 기능 제외함
네트워크 멀티플레이 관련 기능 제외함

GAS의 기본 설정은 C++에서 진행되도록 구성되어 있음
세밀한 제어는 오직 C++에서 가능함
게임플레이 어빌리티, 게임플레이 이펙트 및 장식 이펙트는 블루프린트에서 작업이 용이함
전체적인 GAS 시스템 설정을 C++로 작업하고, 블루프린트를 활용해 게임 콘텐츠를 제작
게임플레이 어빌리티 시스템을 효과적으로 학습하기 위해
C++ 프로그래밍으로 전 과정을 직접 만들어 본 후
블루프린트와 조합해 의존성을 최소화하는 것을 권장