관리 메뉴

기억을 위한 기록들

[Game Ability System] #1. 게임 어빌리티 시스템(GAS)에 대해 본문

UnrealEngine/Game Ability System (GAS)

[Game Ability System] #1. 게임 어빌리티 시스템(GAS)에 대해

에드윈H 2024. 1. 17. 21:11

https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/GameplayAbilitySystem/

 

Gameplay Ability System

High-level view of the Gameplay Ability System

docs.unrealengine.com

 

Lyra 프로젝트를 분석해보던중 GAS 프레임워크에 대해 궁금해서 최대한 찾아보고 정리해보려고 이 글을 시작했다. 영어로 된 문서가 많고 용어가 헷갈리긴 해서, 해당 글에 이상한 부분이 있을 수도 있다.

 

언리얼엔진 문서에 따르면 게임 어빌리티 시스템은 매우 유연한 프레임워크로서, RPG 및 MOBA 장르 게임에서 유용하다고 합니다. 실제로 포트나이트에 적용되고 있다고 한다. 게임 속 캐릭터가 사용할 액션이나 패시브 능력과 상태효과등 구축할 수 있다고 합니다.

 

보통 RPG 게임에서의 캐릭터는 속성(Attributes)으로 사용하는 수치가 있다. 그중 하나로는 캐릭터의 체력(Life)이 있다. 체력은 일반적으로 캐릭터가 죽거나, 제거되기 전에 받을 수 있는 피해량(Damage)의 누적으로 인해으로 정의된다.

치열하게 서로의 체력을 깎고 있다. (출처 : https://www.youtube.com/watch?app=desktop&v=sEn8Z3lZIeM)

 

이런 피해량 즉, 대미지 자체도 속성으로 처리되는 경우가 많으며, 여러 가지 요인도 영향을 줄 수 있다. 아이템, 캐릭터의 스킬 및 그 외 여러 가지로 인해서.

 

하나의 속성이 변경됨에 따라 다른 속성도 영향을 받아서 달라지게 될 수 있다. 이런 공격자체들도 어떤 특정한 캐릭터의 능력(Abilities)들로 인해 발생된다. 게임에서 캐릭터는 다른 플레이어나, 적들을 공격할 수 있으며 이런 공격 능력들도 다양해진다. 검을 휘두르거나, 마법을 사용해서 발생하고 피해를 준다는 것 자체가 어떤 특정한 능력을 이용하는 것이다. 그리고 이런 행동들로 인해 경험치를 얻고, 나아가서 레벨업도 한다.

 

레벨업을 하게되면 캐릭터의 속성들(체력,힘 등등)이 좀 더 높아질 필요가 있기도 하다.

 

그리고 이런 과정에서 연관성을 플레이어에게 알려주기 위해 GamePlayEffect라는 항목으로 이펙트(Particles)를 사용해 알려주기도하고, 사운드(Sounds)를 이용한다.

출처 : https://blog.naver.com/44alice/222749102711

 

GAS 프레임워크 없이 이런 과정들을 구현 못하는건 아니다. 하지만 GAS 프레임워크를 이용하면 이런 과정 자체들에 대해 좀 더 쉽게 확장 할 수 있고, 모듈식이며, 빠르게 개발 할 수 있다고 한다.

 

 

이렇게 앞서 말한 항목들에 대한 클래스 프레임워크가 GAS에 존재하고 하나씩 살펴보려고 한다.

 

다음 글 :

 

https://hyo-ue4study.tistory.com/600

 

[Game Ability System] #2. 어떤게 있고, 어떻게 사용 할지?

Game Ability System 플러그인을 활성화 한다면 사용 할 수 있는 클래스들이 어떤것이 있고 주로 어떻게 사용할까에 대해 써보려고 한다. Ability System Component - 액터에 추가 할 수 있는 컴포넌트 - 능력

hyo-ue4study.tistory.com

 

게임 '아토믹 하트(2023)'의 gas 프레임워크 적용 사례 인터뷰 : 

https://www.unrealengine.com/ko/tech-blog/unreal-s-gameplay-ability-system-is-at-the-heart-of-atomic-heart

 

Atomic Heart의 핵심: 언리얼 게임플레이 어빌리티 시스템

CTO Andrey Dyakov의 설명을 통해 개발사 Mundfish가 어떻게 자사의 맞춤형 액션 필터 시스템을 GAS로 대체했는지, 이것이 Atomic Heart의 개발에 어떤 도움이 됐는지 알아봅니다.

www.unrealengine.com

 

 

언리얼 페스트 온라인 2020 (게임어빌리티프레임워크 사용의 이점과 빠지기 쉬운 오류) :

https://www.youtube.com/watch?v=VYGTx7vBe48

 

언리얼 페스트 온라인 2022  : 

https://www.youtube.com/watch?v=vknzNVYJjr4

 

 

https://youtu.be/0lEr62LQFpk?si=ELQOtnN98ymlUcbO&t=1723