[Game Ability System] #1. 게임 어빌리티 시스템(GAS)에 대해
https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/GameplayAbilitySystem/
Lyra 프로젝트를 분석해보던중 GAS 프레임워크에 대해 궁금해서 최대한 찾아보고 정리해보려고 이 글을 시작했다. 영어로 된 문서가 많고 용어가 헷갈리긴 해서, 해당 글에 이상한 부분이 있을 수도 있다.
언리얼엔진 문서에 따르면 게임 어빌리티 시스템은 매우 유연한 프레임워크로서, RPG 및 MOBA 장르 게임에서 유용하다고 합니다. 실제로 포트나이트에 적용되고 있다고 한다. 게임 속 캐릭터가 사용할 액션이나 패시브 능력과 상태효과등 구축할 수 있다고 합니다.
보통 RPG 게임에서의 캐릭터는 속성(Attributes)으로 사용하는 수치가 있다. 그중 하나로는 캐릭터의 체력(Life)이 있다. 체력은 일반적으로 캐릭터가 죽거나, 제거되기 전에 받을 수 있는 피해량(Damage)의 누적으로 인해으로 정의된다.
이런 피해량 즉, 대미지 자체도 속성으로 처리되는 경우가 많으며, 여러 가지 요인도 영향을 줄 수 있다. 아이템, 캐릭터의 스킬 및 그 외 여러 가지로 인해서.
하나의 속성이 변경됨에 따라 다른 속성도 영향을 받아서 달라지게 될 수 있다. 이런 공격자체들도 어떤 특정한 캐릭터의 능력(Abilities)들로 인해 발생된다. 게임에서 캐릭터는 다른 플레이어나, 적들을 공격할 수 있으며 이런 공격 능력들도 다양해진다. 검을 휘두르거나, 마법을 사용해서 발생하고 피해를 준다는 것 자체가 어떤 특정한 능력을 이용하는 것이다. 그리고 이런 행동들로 인해 경험치를 얻고, 나아가서 레벨업도 한다.
레벨업을 하게되면 캐릭터의 속성들(체력,힘 등등)이 좀 더 높아질 필요가 있기도 하다.
그리고 이런 과정에서 연관성을 플레이어에게 알려주기 위해 GamePlayEffect라는 항목으로 이펙트(Particles)를 사용해 알려주기도하고, 사운드(Sounds)를 이용한다.
GAS 프레임워크 없이 이런 과정들을 구현 못하는건 아니다. 하지만 GAS 프레임워크를 이용하면 이런 과정 자체들에 대해 좀 더 쉽게 확장 할 수 있고, 모듈식이며, 빠르게 개발 할 수 있다고 한다.
이렇게 앞서 말한 항목들에 대한 클래스 프레임워크가 GAS에 존재하고 하나씩 살펴보려고 한다.
다음 글 :
https://hyo-ue4study.tistory.com/600
게임 '아토믹 하트(2023)'의 gas 프레임워크 적용 사례 인터뷰 :
언리얼 페스트 온라인 2020 (게임어빌리티프레임워크 사용의 이점과 빠지기 쉬운 오류) :
https://www.youtube.com/watch?v=VYGTx7vBe48
언리얼 페스트 온라인 2022 :
https://www.youtube.com/watch?v=vknzNVYJjr4
https://youtu.be/0lEr62LQFpk?si=ELQOtnN98ymlUcbO&t=1723