브리치 개발이 성공하려면, 다양한 스킬에 대해 팀이 생각해낸 아이디어를 표현할 수 있는 시스템 도구 상자가 필요하다고 생각했습니다. 개발 초기부터 우리가 상상했던 캐릭터 스킬이나 클래스가 다양했기 때문에 유연하면서도 데이터를 기반으로 한 능력치 생성 방법이 필요했죠.
타올라라! 궁극기, 인페르노(The Inferno)
그때 QC 게임즈의 개발자 및 아티스트가 단순 근접 공격 스킬부터 클래스별 궁극기까지 스킬을 조합할 수 있는 일련의 연결 시스템이 떠올랐습니다. 아직 공개하지 않은 클래스의 궁극기인 인페르노는 시전 시 플레이어가 불을 내뿜어 범위에 있는 적에게 불을 붙이는 스킬입니다. 아주 인상적인 궁극기지만, 놀랍게도 인페르노는 스킬 데이터 애셋(Ability Data Asset)을 비롯해 브리치의 다른 기술과 동일한 기본 구성 요소를 공유합니다.

언제 어디서나 적용할 수 있는 Gameline
스킬 데이터는 브리치 내의 스킬 "종류"와 사용 "방법"을 정의합니다. 인페르노의 설명으로 돌아가자면 "시전"이라는 말에서 브리치의 스킬을 제작하는 핵심 시스템인 게임라인(Gameline)의 특징이 드러납니다. 게임라인은 캐릭터가 대미지를 입히거나 스포닝될 때 캐릭터의 모습을 표현하기 위한 애니메이션 재생부터 머티리얼 변화 방식까지 게임상에서 일어나는 모든 이벤트의 타임라인을 말합니다.

게임라인은 에디터에 영향을 주었을 뿐 아니라, 디지털 기술 측면에서 브리치의 속도 빠른 멀티플레이어 전투를 가능하게 한 핵심이기도 합니다. 멀티플레이어 매치에서 스킬이 시전되면 해당 게임라인이 게임 서버와 클라이언트에 동기화됩니다. 게임라인이 실행되면, 클라이언트는 서버가 스킬 실행 유효성을 판단하기 전에 먼저 예측할 수 있게 됩니다. 드물게 서버가 클라이언트의 판단과 다른 결정을 내리는 경우, 클라이언트는 서버가 판단한 게임 상황에 맞춰 자신의 상태를 수정합니다. 그러나 대부분은 플레이어가 즉시 결과를 확인할 수 있기 때문에 개발자는 네트워킹 상황을 고려하지 않고 자유롭게 스킬을 작성할 수 있습니다. 게임라인을 사용한 덕분에 브리치의 멀티플레이어 대부분은 놀라울 만큼 지연이 발생하지 않고 매끄러운 게임 플레이를 경험합니다.
정확한 조건 확인
브리치의 많은 스킬처럼 인페르노 역시 땅에 서 있거나 공중에 떠 있을 때 사용이 가능합니다. 두 시나리오에서 인페르노는 거의 비슷하지만 표현에 있어 플레이어가 땅에 서 있는 경우와 공중에서 떨어지는 경우에 사용해야 할 애니메이션이 다르고 실행에 있어서도 캐릭터가 시전 시 공중에 떠 있는 경우와 아닌 경우가 다릅니다. 공중에 있을 때와 착지했을 때가 구별되도록 만들 수는 있었지만, 다른 스킬은 캐릭터의 체력이나 (팀 내부에서는 모디파이어라고 하는) "버프" 활성화 여부 등이 필요한 경우도 있다는 것을 알았습니다.

화상 효과 재현
게임라인 툴은 스킬 실행 시퀀스에 필요한 기초를 제공하고 조건에 따라 적절한 애니메이션과 효과를 재생하도록 합니다. 하지만 인페르노 스킬의 화염(inferno)은 어떻게 표현할까요? 그래서 우리는 브리치의 전투 시스템인 AOE(Area of Effect, 효과 영역) 액터라는 도구도 개발했습니다. 스킬의 AOE는 액션 RPG에서 흔히 사용되며 브리치 역시 이를 채택했습니다. AOE 액터(언리얼 엔진에서 레벨에 배치하는 요소는 모두 특정 유형의 액터입니다)는 이런 스킬을 시전하는 데 유용한 기능과 AOE 범위를 정의하는 셰이프(기본적으로 상자부터 임포트된 메시에 이르는 커스텀 셰이프까지), AOE에 영향을 받는 캐릭터를 결정하기 위해 개발자가 선택할 수 있는 조건, AOE가 효과를 적용하기 시작하는 "순간"을 정의하는 방법과 조건 및 속도에 대한 옵션, 시간 흐름에 따른 AOE 셰이프 변화 방법을 다양하게 지원합니다.

브리치의 시스템 개발자와 게임플레이 시스템 데이터가 서로 영향을 주고받긴 했지만, 일부 영역은 효과적인 데이터 모델링보다 더 나은 제어와 유연성이 필요하다고 생각했습니다.
대미지 계산을 위해 개발자들은 네이티브 코드로 작업한다는 과제에 착수했으며, 나중에는 단순한 값이 아닌 경우 델리게이트(Delegates)라는 시스템을 활용해 기능을 추가했습니다. 델리게이트는 개발자가 작성한 네이티브 코드를 호출하여 게임플레이 시스템의 단순한 정수나 부동 소수점을 간단한 함수 기능으로 교체하는 기능입니다. 델리게이트는 끊임없이 숫자가 증가하는 특수한 경우를 핵심 시스템 코드에 그대로 남기지 않고도 프레임워크의 구조를 유지하면서 유연성을 확보하는 데 매우 중요했습니다. 델리게이트는 인페르노 같은 스킬의 지속 시간과 투사체 속도, 화상 디버프의 최종 대미지량 등 모든 요소를 고려합니다.
