푸른 피부를 가진 기능공이 자신의 최신 날틀을 공개하는 돌개제작술 명인의 삽화

제 소개를 하겠습니다: 저는 MTG 아레나 기능 팀의 소프트웨어 엔지니어인 Ben Elliott입니다. 여러분이 저와 비슷한 분이라면, 여러분도 한 가지만 하고 있으면 조금 지루함을 느끼는 부류의 플레이어일 것입니다. 여러 형식들 사이를 건너다니는 것을 선호할 수도 있죠. 순환하는 이벤트에 참여해서 색다른 것을 즐겨볼 수도 있고요. 덱을 특정한 용도로 만들어 볼 수도 있죠 … 말하자면, 엄청나게 창의적인 방식으로 스파키를 괴롭힌다던가 말이에요.

다르게 말하자면, 여러분이 아주 많은 목표를 추구하는 것을 즐기는 플레이어일 수도 있다는 것입니다.

MTG 아레나는 오래 전부터 탐험을 권장하기를 바래 왔고, 게임의 시스템 중 여러 가지는 정확히 이를 위해 기획되었습니다. 신규 플레이어 경험이 이에 대한 중요한 첫 예시입니다. MTG 아레나는 여러분이 매직: 더 개더링이라는 거대한 괴수 속으로 한 번에 한 색씩, 한 덱씩 발을 들이게 시도하며, 이를 통해 여러분이 다른 실제 인간 플레이어들과 게임을 하는 것을 편하게 느낄 수 있도록 돕습니다. 이 시점에는 좀 더 경험이 쌓였으므로 일일 퀘스트들을 탐험해 보도록 권장합니다. 매일 같은 덱으로는 아마도 일일 퀘스트를 안정적으로 완료할 수 없을 것입니다(하지만, 여러분이 저와 비슷하다면, 대부분의 일일 퀘스트를 혼자서 완료할 수 있는 덱을 한 개 만드는 도전을 즐길 수도 있습니다). 따라서 다른 방법으로는 시도해 보지 않았을 수도 있는 기술, 전략, 카드들을 찾게 됩니다.

물론, 신규 플레이어 경험 및 일일 퀘스트가 할 수 있는 일에는 한계가 있습니다(그리고 아마도 여러분은 제 이야기가 어디로 가려고 하는지를 알고 계실 겁니다). 플레이어들은 MTG 아레나가 존재해 왔던 기간과 거의 비슷할 정도로 오랜 시간 동안 업적 시스템을 요구해 왔습니다. 탐험을 하고, 새로운 것들을 시도해 보고, 창의적이 되어 보고, 마지막에는 그걸 해냈다는 것을 보여 주는 멋진 뱃지를 받는 방법 말이죠. 알고 보니, MTG 아레나의 기획자와 개발자들도 그만큼 오랫동안 업적에 대해 고민해 왔습니다. 장점과 단점, 기술적인 어려움, 그리고 물론, 그 영광스럽고 어렵고 매우 도전적인 일회성 업적들에 대한 아이디어들을 생각하면서 말이죠. 그리고, 에테르 드리프트의 출시와 함께, 마침내 업적이 런칭되었다는 사실에 매우 기쁩니다!

하지만 여기까지 오는 것은 평탄하기만 여정은 아니었습니다.

여러분이 어떻게 여기까지 올 수 있었는지에 대한 뒷이야기를 조금 듣고 싶어 하지 않을까 하는 생각을 했습니다. 그러면, 지체 없이, 이 모든 것이 어떻게 일어났는지를 설명해 드리겠습니다 …

기초 작업 및 프로토타이핑

저희는 업적에 대해 오랫동안 고민하고 이야기해 왔지만, MTG 아레나 기능 팀이 본격적으로 업적에 대한 작업을 시작한 것은 2024년 봄부터였습니다.

저희 팀은 초기 기획 단계에서부터 시작했고, 업적과 같은 기능의 높은 수준의 목표를 제시함과 동시에 저희가 원하는 업적들의 초기 목록을 작성했습니다(재미있는 사실을 알려드리자면, 첫 목록에는 126개의 업적이 있었습니다). 초기에 등장한 기획안들의 몇 가지 주요 측면은 다음과 같습니다:

  • 참여: 업적은 이를 뒤쫒는 일이 재미있어야 하고 플레이어의 매직 여정을 추적할 수 있어야 합니다.
  • 다양성: MTG 아레나가 제공하는 모든 것에 걸쳐 분포되어 있는 다양한 플레이어 유형에 맞도록 다양한 업적이 있어야 합니다.
  • 유연성: 팀은 관련이 없는 업적을 방해하지 않으면서 업적들을 추가, 조정 및 제거할 수 있기를 바랬으며, 업적을 만들어내는 기획자들에게 완전한 통제권을 부여하고자 했습니다.

중요한 것은, 저희 기획자들이 이 기능의 범위에 대해 매우 신중했다는 점입니다; 씹을 수 있는 것보다 더 많이 베어물어 버린다면, 이 기능이 달성할 수 없게 되어 버리지 않겠어요?

이 과정에서 저희는 플레이어에게 업적을 제시할 수 있는 다양한 방법을 프로토타입으로 제작하기 시작했습니다. UI를 만들어 보고, 타협점에 대해 논의하고, 이전에는 실질적으로 사용되지 않았던 방식으로 게임 클라이언트를 사용해 보는 실험을 했습니다.

좋은 예시 한 가지: 언제든 업적을 완료할 때마다 팝업 알림이 표시되어야 합니다. 저희는 팝업 알림이 너무 산만하지 않으면서도 플레이어들이 훌륭한 무언가를 해냈을 때 이를 알 수 있도록 거의 모든 화면에 나타날 수 있는지 확인해야 했습니다. UX 디자이너들이 이러한 알림을 위해 여러 가지 프로토타입을 제작했으며, 또한, 더 중요하게, 화면에 표시될 위치를 결정해야 했습니다. (저희는 화면 우상단을 선택했고, 애니메이션이 너무 오래 지속되지 않게 했습니다.)

우상단 모서리에 노출된 첫 최애 업적에 대한 업적 완료 알림

이 프로토타입 제작 과정에서 저희는 업적을 그룹화하여 주제별로 정리한 뒤 이를 계속 확장되는 목록에서 쉽게 찾을 수 있도록 하기로 결정했습니다. 이는 저희가 그것들을 어떻게 구성해야 하는 지도 기획해야 한다는 것을 의미했습니다. 이 그룹들의 모습은 프로토타입 및 개발 과정에서 여러 번 진화했으며, 그때마다 매번 초기 시도에서 더욱 개선되었습니다. 이 반복적인 과정을 통해 저희는 홈 화면의 일일 퀘스트 추적기에서 "즐겨찾기한" 진행 중인 업적을 보여주는 것에 대해 논의했고, 그것이 유용할 것이라는 데 동의했습니다. 이는 저희가 처음에 계획했던 것이 아니었지만, 여러 차례의 협업 프로토타입 과정을 통해 얻은 이점 중 하나였습니다—이는 저희가 원한다는 것을 몰랐던 것들을 발견할 수 있게 해 주었고, 이미 새로운 기능 내에서 씹을 수 있는 것보다 더 많은 것을 베어물지 않으면서도 새로운 기능을 구현할 수 있는 방법을 찾아야 하는 도전 과제를 던져 주었습니다.

보상 트랙 진척도 디스플레이에서 즐겨찾기한 업적을 보여주는 MTG 아레나 홈 화면의 스크린샷

엔지니어들은 또한 업적을 기존 시스템에 원활하게 통합할 수 있는 방법에 대해 고민하기 시작했습니다. 저희는 신규 플레이어 경험을 개선하면서 개발된 일부 기술들을 재사용하여 업적을 생성할 수 있는 균일한 방법을 제공하고 일부 업적이 수반하는 새로운 요구사항을 충족할 수 있도록 지원을 추가했습니다. 저희는 또한 이 기능이 대규모로 작동하는지도 확인하고자 했습니다—MTG 아레나와 같은 게임에서는 종종 잊혀지는 제한 사항이죠. 특히 소규모 및/또는 독립적인 프로젝트에만 익숙한 경우에는 더욱 말입니다. 수천 수만 명의 플레이어가 참여하는 게임에서 전 세계의 다양한 기기와 소프트웨어를 통해 게임에 참여한다면, 업적을 실제로 가동할 때 성능에 어떤 영향을 미치게 될까요? 이는 서버와 게임플레이 성능에 미칠 부정적인 영향을 최소화하기 위해 저희가 처음부터 매우 신중하게 기획해야 했던 것들 중 하나였습니다.

마지막으로, 업적에 대한 작업은 기능 팀을 중심으로 이루어졌지만, 저희는 팀 간에 상당한 협력이 필요하다는 것을 알고 있었습니다. 대부분의 업적은 매직 게임 안에서 이루어지며, 저희는 카드 그 자체만큼이나 매직의 규칙에 신경을 써야 하는 업적을 작성할 수 있기를 바랬습니다.

저희는 카드세트 팀과 함께 이러한 업적을 위한 구조를 계획하기 시작했습니다. 게임플레이 관련 업적은 매치 외적인 요소를 가진 다른 업적들과는 달리 근본적으로 고유한 기술적 요구 사항을 가질 수 있기 때문입니다. 저희는 또한 콘텐츠 팀과 파트너십을 맺어 이 기능과 새로운 꾸미기 아이템 유형을 결합하는 등(즉, 칭호 말입니다!) 새로운 업적이 지속 가능할 수 있도록 노력했습니다. 업적 시스템을 구축한 사람이라면 누구나 자신이 게임의 모든 면을 다루게 된다는 것을 알고 있습니다. MTG 아레나의 경우, 이는 매치 내 상호작용부터 부스터 팩 개봉, 덱 구축, 서로 다른 형식을 플레이하는 것 등 … 목록은 계속 이어져 나갑니다.

소프트웨어는 각각의 복잡한 조각들이 다른 복잡한 조각들이 무엇을 하고 있는지 신경 쓸 필요가 없을 때 가장 쉽게 만들고 유지 관리할 수 있습니다. 업적과 같은 기능은 이러한 이상과 마주했을때 웃음을 터뜨립니다; 업적은 모든 것을 신경씁니다.

이 단계는 2024년 여름까지 이어졌고, 그 마지막에는 각각 독립적으로 작동하는 여러 퍼즐 조각이 생겨났습니다. 저희는 초보적인 업적 페이지(실제 업적 데이터 대신 플레이스홀더를 사용하는 단계였습니다)를 제작했고, 일부 업적은 서버에 적용되었으며(아직 클라이언트에 연결되어 표시되지는 않았습니다), 이 모든 것을 하나로 모으는 데 도움이 되는, 진행 중이거나 중간에 있는 많은 작은 작업들(칭호를 확인하고 선택하는 페이지 등)이 있었습니다.

한여름의 오디세이

여름이 시작될 때, 기능 팀의 대부분은 잠시 동안 업적과 관련된 작업을 멈췄습니다.

여기에는 작년을 얼마나 잘 기억하고 있느냐에 따라 설명이 조금 필요할 수도 있고 … 아닐 수도 있습니다; 2024년은 모던 호라이즌 3와 같이 복잡하고 유명한 세트가 있던, MTG 아레나에게 특별한 한 해였습니다. 이를 통해 저희는 이러한 종류의 세트와 짝지을 수 있는 기능을 구축할 수 있는 특별한 기회를 얻었습니다. 동시에, 저희는 매치 내 업적(본질적으로 매치 외적인 업적보다 해결하기 어려운 과제)을 효과적이고 지속 가능하게 개발하는 방법을 찾는 데 있어 몇몇 업적 작업의 프로세스가 막혔다는 것을 깨달았습니다. 저희의 해결책은 다음과 같았습니다:

  • 팀의 일부를 데려와 매치 내 업적의 '정말 까다로운 부분들'을 해결하게 하고
  • 나머지 기능 팀은 업적과 관련되지 않은 기능들에 시간을 할애하게 했습니다.

기능 팀에서 업적 이외의 작업을 수행한 부분은 몇 가지 멋진 기능을 만들어냈습니다. 상점에서 사전 구축덱을 판매할 수 있는 기능을 추가했고, 특정한 백화점(초능력 개구리의 호라이즌 은신처)이 등장했습니다. 어느 시점에서든 기능 팀의 약 절반은 더 작은 기능, 제품의 질 향상, 버그 수정을 위해 노력하고 있습니다. 안심하세요; 이 팀원들은 그 시간을 아주 충실하게 보냈으니 말입니다!

한편, 매치 내 업적을 구현하는 일이 본격적으로 모습을 드러내기 시작했습니다. 팀은 매직: 더 개더링의 능력과 관련된 언어 안에 매치 내 업적을 구현해냈습니다. 플레이어가 게임에 들어가면, 저희는 해당 게임에서 어떤 업적이 관련이 있는지 확인한 다음 규칙 엔진에 해당 업적을 능력과 유사한 무언가로 로드하도록 지시합니다. (참고: 이는 매치 중에 능력에 대해 신경쓰는 다른 효과들과 상호작용하는 것을 막기 위하여 실제 능력은 아닙니다—네, 이는 이러한 방식으로 시스템을 구현할 때 저희가 신경써야 했던 부분입니다.) 해당 업적이 촉발되거나 업적의 진척도가 증가하는 상황이 발생하면, 게임을 그 사실을 기록합니다. 업적의 신호는 일일 퀘스트의 지표와 마찬가지로 플레이어의 업적 진행 상황을 업데이트합니다. 기획자가 동일한 업적 신호를 재사용할 수 있게 함과 동시에 업적을 만들어내는 일을 용이하게 만들기 위해, 저희는 업적 트리거가 매개변수를 취할 수 있는 기능도 추가했습니다: 이는 저희가 트리거를 템플릿화하기 위해 필요에 따라 넣거나 뺄 수 있는 규칙 문구의 일부분입니다.

예를 들면, "원하는 만큼 게임을 플레이하면서 총합 250개의 엘프 또는 히드라 주문을 발동합니다."라고 요구하는 업적 "성장과 힘"을 생각해 보겠습니다. 이 업적 트리거의 규칙 문구는 다음과 같습니다:

당신이 {SubtypeParameter 1} 주문 또는 {SubtypeParameter 2} 주문을 발동할 때마다, {UpdateAchievement}한다.

이 예시에서, 저희는 SubtypeParameter (숫자)를 각각 엘프와 히드라 하위 유형으로 교체했습니다. 이 새로운 키워드인 SubtypeParameter (숫자)UpdateAchievement매직: 더 개더링의 언어의 진정한 일부인 것은 아니지만, 중요한 것은 이러한 문구가 게임 엔진이 이해하는 방식으로 존재한다는 것입니다. 게임 엔진은 이제 이러한 업적 트리거를 올바르게 로드하고 다른 모든 게임 트리거 및 상태와 함께 확인할 수 있습니다. 이렇게 함으로써 얻을 수 있는 보너스는 규칙 엔진이 이러한 매개변수를 충족하는 카드들의 트리거를 규칙을 따르는 방식으로 계산에 넣을 수 있다는 것입니다—예를 들면, 체인질링은 모든 생물 유형이므로(여기엔 엘프와 히드라도 포함됩니다) "성장과 힘" 업적의 진척도를 올려줄 수 있습니다.

여름이 끝날 무렵, 매치 내 업적과 관련된 기술은 좋은 상황이었고, 모던 호라이즌 3가 출시되었으며, 저희는 업적 관련 작업을 멋지게 재개할 준비가 되어 있었습니다.

결승선에 다가가기

늦여름과 가을 동안, 저희는 기능의 이질적인 조각들을 통합하고 남은 업적을 구현하면서 해당 기능의 UI와 UX를 연마하는 데 집중했습니다. 저희는 업적을 두 가지 업적 "세트"로 나눴습니다: 하나는 일반적인 요소에 초점을 맞춘 핵심 업적이고 다른 하나는 매직의 각 색과 관련된 업적입니다. 저희는 수많은 업적을 위한 최종 삽화, 아이콘, 문구 등을 확보하기 시작했습니다. 모든 화면이 모바일 기기와 레이아웃에서 맞게 작동하는지 확인했습니다. 특정 업적을 더 쉽게 테스트할 수 있도록 QA도구를 추가했습니다. 당시 저희는 매직: 더 개더링 파운데이션의 출시와 함께 이 기능을 내보낼 준비가 되어 있기를 바랐고, 저희가 남아 있다고 알고 있는 작업의 양만을 고려했을 때에는 이것이 달성 가능한 것처럼 보였습니다.

엔지니어들은 신중을 유지하면서도 낙관적인 입장이었지만, 저희는 수많은 플레이어가 동시에 게임에 접속한 상황에서도 이 기능이 잘 작동하리라는 것을 알아야만 했습니다. 그래서, 이를 시뮬레이션 해 보았습니다. 저희는 거의 실제 플레이어처럼 행동하는 자동화된 "플레이어"들을 대량으로 만들어내어, 업적을 가동한 다음, 앉아서 진행 상황을 지켜보았습니다. 그리고 다행히도 이는 아주 잘 진행되었죠! 서버들은 예상한 대로 버텨 주었습니다.

그럼에도, 시간이 지남에 따라 개발과 테스트를 통해 무언가가 부족하다는 것을 느꼈습니다. 이 기능이 "훌륭하다"라기보다는 "이정도면 괜찮다"에 더 가깝다는 느낌을 받았습니다. 기능의 거의 모든 부분이 단순히 더 다듬고 싶다를 넘어 다듬어야 한다 수준이었습니다. 저희가 계획했던 더 창의적인 업적 중 일부를 시스템의 거친 모서리에서 순조롭게 진행되지 않을 수 있다는 이유로 덜어내고 싶지 않았습니다. 앞서 언급한 "퀘스트 추적기에서 즐겨찾기한 업적 추적" 요소 없이 이 기능을 출시하고 싶지도 않았죠! 그건 너무나도 좋은 생각이었으니까요! 그리고 저희는 계속해서 버그를 발견했고, 버그들 때문에 프로젝트가 중단될 정도까지는 아니었지만 마음 속으로 얼굴을 조금 찡그리기는 했습니다. QA에게 모든 것을 테스트할 충분한 시간이 있는지도 확인하고 싶었죠! 그리고 MTG 아레나 팀이 지지하는 가장 중요한 큰 가치가 우뚝 서 있었습니다: 크런치는 없다고 말이죠.

매직: 더 개더링 파운데이션의 마감일이 다가오면서, 저희는 하느냐 마느냐를 결정해야 했습니다. 결국, 저희는 매직: 더 개더링 파운데이션과 함께 기능을 출시할 수도 있었다는 데에는 합의했지만, 이 기능이 받아 마땅한 사랑을 주기로 했고, 이는 원래 계획보다 늦게 이 기능을 출시하게 된다는 것을 의미했습니다. 연말연시 시즌이 다가오는 것과 출시 일정을 고려하여, 저희는 이 기능의 목표를 이후에 출시될 주요 제품인 에테르 드리프르로 하기로 변경했습니다. 다행히, 저희는 다른 모든 기능과 마찬가지로 이 기능을 나중에 출시해도 옮기기 쉽도록 제작했으며(이는 소프트웨어 업계에서는 항상 현명한 조치입니다), 이를 전환하기 위해 필요한 주문을 읊었습니다.

그 후 몇 주 동안, 저희가 올바른 결정을 내렸다는 자신감은 계속해서 커져 갔습니다. 계속해서 버그와 드문 사례, 그리고 어색한 사용자 경험을 발견했습니다. 업적을 일찍 출시하는 것은 기술적으로는 작동했겠지만, 저희 스스로의 기준이나 플레이어들의 기준에 도달하지는 않았을 것입니다. 추가로 확보한 시간 덕분에 저희는 버그들을 해결하고 절실하게 필요했던 폴리싱 작업을 많이 추가할 수 있었습니다. 업적 자체도 클라이언트 상에서 더 읽기 쉽게 변했고, 심지어 멋진 애니메이션도 얻었습니다. 업적 알림이 더 화려해지도록 꾸미기도 했습니다. 이 기능은 단순히 개화한 것이 아니라, 팀이 예상한 대로 꽃을 피워냈습니다.

달성한 업적 두 개를 보여주는 스크린샷: 첫 최애 및 스타일리시한 스펠슬링어

업적 완료!

에테르 드리프트와 함께 데뷔한 버전의 업적에서는 총 63개의 "핵심" 업적 및 매직의 색과 연관된 업적 50개(각 색마다 10개씩)가 있어 총 113개의 업적을 선보입니다. 네, 이는 첫 목록에 있던 126개보다는 약간 적지만, 이는 저희 팀이 개발 중에 몇 가지 업적을 들어냈기 때문입니다. 플레이어들에게 문제가 생길 만한 행동을 부추기게 되거나 해당 업적을 완료하는 일이 재미없다고 생각했기 때문이지, 그것들이 제대로 작동하지 않기 때문인 것은 아닙니다! 몇몇은 개념적 형태부터 수정되었지만, 저희가 처음에 계획했던 거의 모든 업적들이 완성된 기능까지 도달했습니다. 저희는 업적의 수와 다양성에 만족합니다. 업적들 사이에는 다양한 난이도, 색 사이의 균형, 그리고 플레이스타일이 존재합니다.

저희는 또한 새로운 아바타, 이모티콘, 카드 슬리브, 심지어 상대방에게 자신을 강력한 적이라고 자랑할 수 있는 새로운 꾸미기 아이템인 칭호까지 업적을 위한 수많은 보상을 집어넣었습니다.

칭호 선택 화면의 스크린샷

저희는 여러분께 업적을 제공해드릴 수 있게 해준 모든 노력을 매우 자랑스럽게 생각합니다. 다른 모든 작업과 마찬가지로, 저희 팀도 이 작업에 대해 책임감 있고 지속 가능하며 신중을 기하기 위해 많은 노력을 기울였습니다. 이것들은 단순히 공장에서 찍어낸 것 같은 체크리스트가 아닙니다; 수작업으로 만들어낸, 장인이 손길과 사랑이 듬뿍 담긴 업적입니다!

언제나처럼, MTG 아레나 팀은 이 기능에 대한 커뮤니티의 피드백을 모니터하면서 남아 있는 거친 모서리들을 깎아낼 예정입니다. 의견이 있다면 언제든 연락해 주세요—기꺼이 경청하겠습니다!

읽어 주신 분들께 감사드리며, 즐거운 사냥 되세요!