게임을 하면서 플레이어는 정말 다양한 어트리뷰트와 어빌리티가 있다.
어트리뷰트의 예
어빌리티의 예
등등..
대충 생각나는 것만 해도 정말 다양한 것들이 있다.
심지어는 어빌리티에 따라서 사운드, 이펙트 등이 필요할 수 있기 때문에 더욱 많을 것이다.
만드려는 게임이 RPG인 경우에는
경험치에 따라 레벨업을 할 것이고,
다양한 어트리뷰트에 변화가 생길 것이고,
새로운 스킬을 배워 어빌리티가 추가될 수도 있다.
이렇듯 게임의 규모가 커질 수록 이런 복잡성이 증가할 수 밖에 없는데
그러면 이 어트리뷰트와 어빌리티가 서로 섞여서 관리하기 정말 어려워질 것이다.
거기서 등장한 것이 바로 이 GAS이다.
GAS의 핵심 구성 요소에 대해 알아보자.
GAS의 가장 중요한 것 중 하나이다.
Actor에게 추가하여 사용할 수 있으며
보통 어빌리티를 활성화시키고,
특정 어빌리티가 활성화 됐을 때의 동작을 알린다던지하는 주요한 친구이다.
위에 말했듯 게임은 다양한 어트리뷰트를 가질 수 있는데, 이를 GAS에서는 Attribute Set이라는 곳에 저장해둔다.
이를 통해 GAS의 다양한 파트와 함께 쓰일 수 있도록 해준다.
캐릭터나 오브젝트 등이 할 수 있는 행동, 즉 어빌리티를 위해 쓰는 것이다.
이를 위한 코드를 캡슐화하여 갖고 있는 것이라고 생각하면 될 듯 하다.
Gameplay Ability를 비동기적으로 처리할 수 있는 기능이다.
이것으로 어트리뷰트 값을 조절하게 된다.
즉시 바꿀 수도, 정해진 시간 후에 바꿀 수도, 주기적으로 바꿀 수도 있다.
이펙트나 파티클 시스템, 사운드를 다루게 된다.
Gameplay Tag는 특별히 GAS에만 속해 있는 것은 아니지만 GAS에서 아주 중요한 역할을 한다.
앞으로 이 시리즈에서 하나씩 알아가보도록 할 것이다