개요
본 글은 Youtube에서 Unreal Engine KR에 올라와있는 게임플레이 어빌리티 시스템(GAS)으로 RPG 시스템 만들기편을 기준으로 정리를 한 내용이다. 강의를 들으면서 GAS에 대한 이해도를 올리고 팀 프로젝트를 진행함에 있어서 적용이 가능한 부분일지 판단까지 진행해볼 예정이다.
GAS(Game Ability System)란?
-
스킬 중심으로 액터간에 상호작용을 설계하는 프레임 워크이다.
-
에픽게임즈에서 포트나이트게임을 통해 검증된 노하우를 바탕으로, GAS를 사용하면 체계적으로 유연하게 구현할 수 있다.
-
학습하기 위한 진입장벽이 있기에, 이를 활용하기가 어려움.
-
게임 시스템 플레이 루프를 제작하는데에 지원을 해줌. -> GAS에서 이러한 부분은 Ability, Attribute, Effect라는 이름으로 제공됨.
GAS의 장단점
장점
- 유연성과 확장성 : 복잡하고 다양한 게임 개발 환경을 지원하도록 설계.
- 모듈식 구조 : 의존성을 최소화해, 각 기능이 독립적으로 작동하도록 구성
- 멀티플레이어 환경에 최적화 : 네트워크 게임 환경에서 안정적으로 동작하도록 제작됨.
- 데이터 기반 설계 : 데이터 테이블과 환경 설정을 기반으로 동작하는 시스템.
단점
- 높은 학습 난이도 : 구성 요소가 많고 복잡하여 처음 배우는데 시간이 오래 걸림
- 잠재적인 오버헤드 : 규모가 작거나 단순한 프로젝트에 활용하기에는 오히려 시스템이 너무 복잡하다.
GAS의 핵심 구성 요소
1. Ability System Component (ASC)
- 가스를 구동하는 핵심 컴포넌트
- Actor에 이 ASC를 붙이면 GAS를 사용할 수 있게 된다.
- ASC는 GAS에 다른 구성요소를 하나씩 쌓아 올릴 수 있는 기반.
2. Gameplay Tag
- 강력한 계층 구조를 지원하는 태그 시스템.
- 액터의 행동이나 상태를 효과적으로 표현 가능.
- 이를 활용하면, 특정 조건에 만족하면 스킬을 발동시키는 것이 가능하다.
- GAS가 만드는 커다란 시스템을 잘 정리하고 규모를 늘리는데에 유용하게 사용된다.
3. Gameplay Ability(GA)
- 게임 플레이 설계 시작.
- 캐릭터가 행하는 모든 행동이나 스킬은 GA로 만들 수 있다.
- GA로 포장된 캐릭터의 스킬은 이후에 성공, 실패, 취소 등의 여러 결과를 가지게 되며, 이를 발동하는 로직을 Ability Task로 처리하게 된다.
- 이러한 스킬을 성공적으로 수행했다면, 이후 게임 플레이 이벤트를 통해 더욱 다양한 상황을 설계할 수 있다.
4. Attribute Set
- 체력, 스태미나, 임시 데미지 등 캐릭터가 가진 스탯을 표현하는데에 사용.
5. Gameplay Effect(GE)
- 게임에 상호작용은 데이터 관점에 발동한 캐릭터의 행동이 목표물에 적중하면 적중한 목표물이 가진 스탯을 변경하는 작업.
- 예를 들어, 플레이어 공격은 공격이라는 Ability가 적에게 적중하면 적의 체력 Attribute가 감소하게 된다. 이때 플레이어의 공격력에 따라 공격 받은 NPC의 체력을 얼마나 감소시켜야 할 지 지정하게 되는데, 이러한 체계를 설계해주는 것.
- 어빌리티에 대한 결과에 대한 효과를 시스템에 알려주는 것.
- 데미지 뿐만 아니라 지속 피해, 중첩 버프, 무적상태, 체력 회복 등.. 복잡한 효과까지 제작 가능.
6. Gameplay Cue(GC)
- 캐릭터의 스킬이 발동할 때 사용자에게 시각적, 청각적으로 피드백 효과를 줄 때 사용됨.
- 게임 클라이언트에서 사용되는 시, 청각적인 효과를 모두 모아서 관리함.
No Comment! Be the first one.