스킬, 스탯, 버프/디버프가 많아질수록 직접 구현하면 코드가 지저분해지는데
GAS는 구조가 딱 잡혀 있어서 유지보수가 편함.
서버/클라이언트 분리도 잘 되어 있어서 멀티플레이에 특히 유리함.
오버워치, 포트나이트 같은 게임들이 GAS 기반으로 만들어짐
→ 신뢰성 검증 완료.
플레이어가 스킬 키 입력
AbilitySystemComponent(ASC)가 “이 스킬 써도 되는지” 태그와 조건 검사
조건 OK면 Ability 발동
Ability 안에서 GameplayEffect 적용
AttributeSet의 수치가 변경되며 서버-클라 자동 동기화
태그로 쿨타임, 상태(스턴, 무적 등) 적용됨
로직 대부분이 Data Driven → 블루프린트/데이터자산에서 관리 가능
효과/스킬/스탯이 서로 독립적
조합이 복잡한 RPG에서 버그가 줄어들고 확장이 쉬움
AttributeSet 값 직접 건드리지 말고 GameplayEffect 통해서만 바꾸기
태그는 많이 쓸수록 관리가 쉬워짐 → 체계적으로 네이밍
Ability는 하나의 실행 단위로 보고 너무 복잡하게 만들지 않기
예약된 실행 흐름(ActivateAbility, Commit, EndAbility)을 이해하면 반은 끝남