GAS란?
GAS란 Game Ability System의 줄임말로 액터가 소유하고 발동할 수 있는 어빌리티 및 액터 간의 인터렉션 기능을 제공하는 프레임워크이다.
GAS는 데이터를 기반으로 동작하며 모듈화되어 확장성이나 유연성이 좋다.
또한, 네트워크 멀티플레이를 지원하기도 한다.
이러한 이유로 GAS는 게임을 보다 효율적으로 제작할 수 있도록 해준다.
GAS 구성 요소
GAS의 핵심 요소는 위의 사진과 같다.
각각의 요소들이 어떠한 역할을 하는지 간단하게 정리하면 다음과 같다.
- ASC: Ability System을 관리하는 중앙처리장치 같은 역할을 한다.
- Tag: GAS를 간편하게 관리하게 해주는 구분자
- GA: 게임 내에서 일어나는 액션
- GE: GA의 결과로 Attibute에 주는 영향
- Attribute: 캐릭터가 갖고 있는 데이터(스탯이나 상태)
GAS의 기본 흐름
GAS는 위와 같은 흐름으로 동작한다.
Actor는 ASC를 가지며 GA를 부여받아 특정 시점에 실행하게 된다.
이러한 결과로 GE가 생성되어 Attribute에 영향을 주게 된다.
이때, Gameplay Tag를 이용하면 더욱 간편하게 시스템을 제어할 수 있다.
C++ vs Blueprint
GAS는 기본적으로 C++에서 설정하게 되어있다.
하지만, 특정 부부은 BP에서 작업하는 것이 편할 수 있다.
따라서, 전반적인 GAS 설정은 C++로 하고 BP를 통해 의존성을 줄이며 콘텐츠를 제작하는 것이 가장 효과적이다.