다채로운 프로그래밍 기술 활용의 장, 매그넘 스튜디오
2022.08.04페이지 정보
본문
[Interviewee] 매그넘 프로그램실 박상희 부실장
Q. 안녕하세요, 박상희 님! 매그넘 프로그램실에서 맡고 계신 역할에 대해 소개 부탁드립니다.
안녕하세요. 저는 클라이언트 조직을 관리하는 한 사람입니다.
기존에는 프로토타입을 만들고 게임의 틀을 갖추는 일을 했으며, 현재는 전문성을 갖춘 팀원들이 모인 후로는 이들이 제대로 일할 수 있도록 지원하는 업무를 맡고 있습니다. 조직 구성원들이 적절한 업무를 맡는지, 기술 수준이나 성향에 알맞은 업무를 맡고 있는지, 적절하게 소통하며 일을 진행하는지 등을 주의해서 봅니다. 그리고 관리 외에도 게임의 전체적인 설계가 합리적인 방향으로 나갈 수 있도록 프로그래머와 게임 디자이너, 아티스트 등과 협의해 결정하는 역할을 하고 있습니다.
Q. 퍼스트 디센던트에 대한 간단한 소개와 매력어필(?)을 부탁드립니다!
‘퍼스트 디센던트’는 PvE 슈터 게임이며, 총기를 사용한 시원한 액션과 멋진 스킬을 전면에 내세우고 있습니다. PC, 콘솔로 발매할 예정입니다.
프로그래머로서 퍼스트 디센던트 개발이 매력적인 큰 이유는 장르 편중이 심하고 모바일 플랫폼 위주의 국내 상황 때문에 제약받았던 탐구 욕구를 충족할 수 있다는 점입니다. 해외 콘퍼런스에 소개된 기술이나 언리얼 엔진의 고급 기능들 중 상당수가 그림의 떡입니다. 알고 있어도 써 볼 기회가 없거나 관심이 있더라도 구현해 보기 힘들죠.
하지만 퍼스트 디센던트 개발과정에서는 다양한 기술들을 활용해 볼 기회가 있습니다. 새로운 기법들을 찾아서 연구해 보고 이야기해 보는 것을 장려하고 있습니다.
Q. 퍼스트 디센던트를 만들어가며 어떤 점이 가장 어려웠는지, 그리고 그 문제를 어떻게 해결하셨나요?
사람을 사람답게 움직이게 하는 일이 가장 흥미롭고 어려웠습니다. 현재 주류 애니메이션 시스템은 많은 한계가 있는데요. 단적으로 층계를 차례로 밟고 올라가는 것을 제대로 구현하는 게임이 몇이나 있는지 생각해보면 선뜻 떠오르지 않을 것입니다. 특히 움직일 때 발을 제대로 맞추기가 매우 힘듭니다. 걷다가 방향을 바꾸거나 멈출 때 발이 미끄러지거나 꼬이지 않게 하려면 많은 노력과 시간이 필요합니다.
사람과 별개로 거대한 보스 몬스터를 움직이는 것도 까다로웠습니다. 15미터의 보스가 걷는데 그냥 평범하게 구현해서는 발이 미끄러지거나 틀어지는 등 금세 표시가 나고 맙니다. 이동을 하면서 계속 발을 디딜 위치와 궤적을 계산하고 보정해나가는 방식으로 수준 높은 움직임을 만들어냈습니다. 그러면 또 다리가 6개인 곤충형 보스를 만들 때는 어땠을까요? 예상하셨겠지만, 자연스러운 움직임과 사실적인 이동을 구현하는 작업은 매우 복잡했습니다. 하지만 이 문제 역시 수많은 시행착오 끝에 결국 해법을 찾아냈습니다. 그 결과물은 게임을 플레이하며 직접 만나보셔도 좋을 것 같습니다(웃음).
매그넘 프로그램실은 프로그래머뿐 아니라 전체 개발 팀이 이 같은 문제를 중요하게 인지하고, 계속해서 캐릭터가 더 자연스럽게 움직일 수 있도록 연구와 노력을 거듭해 나가고 있습니다.
또 한가지는 테스트 자동화입니다. 개발 과정에서는 환경이 늘 변하다보니 어제 되던 것이 오늘 안되는 일이 다반사인데, 이런 것들은 늦게 발견할수록 고치기 힘듭니다. 그렇기 때문에 문제가 발생하면 최대한 빨리 알아내는 것이 중요합니다. 이 원칙을 작게 적용하면 데이터 검증이고 크게 적용하자면 게임 플레이 테스트입니다. 데이터 검증은 거의 대부분의 프로젝트에서 사용하고 있지만 플레이테스트는 구현이나 운용이 까다롭기 때문에 섣불리 적용하기 힘듭니다. 매그넘 프로그램실은 기계가 할 수 있는 것은 전부 기계에게 시키자는 철칙으로 프로젝트 초기부터 자동 플레이테스트를 통해 캐릭터, 총기, 스킬, 몬스터 등이 제대로 동작하는지 매일 테스트를 수행하는 시스템을 갖췄습니다. 현재는 기능 테스트 위주로 운용하고 있지만, 미래에는 퍼포먼스 모니터링 등의 용도로 확장하려고 합니다.
Q. 매그넘 프로그램실의 자랑할 만한 개발 문화가 있나요?
매그넘 프로그램실은 정보 공유를 적극 권장하고, 같은 맥락에서 문서 작성과 코드 리뷰를 활용합니다. 자신의 생각을 정리하고 다른 사람, 특히 미래의 자신에게 정보를 전달한다는 면에서 문서 작성은 매우 중요합니다. 그래서 통상적인 작업뿐 아니라 리서치 등에도 문서 작성을 폭넓게 적용하고 있습니다. 코드 리뷰는 승인을 받는 목적보다는 동료들 간에 정보를 공유하고 코드 품질을 높이는 목표로 사용합니다. 반드시 관련있는 사람이 아니더라도 궁금한 점을 물어보거나 제안할 수 있습니다. 물론, 현실 세계에서도 사교적인 사람과 그렇지 않은 사람이 있듯 일관되게 긍정적인 효과를 가져오는 것은 아닙니다만, 폭넓은 정보교류를 위한 판을 벌여 놓는 것이 중요하다고 생각합니다.
Q. 최근 가장 집중하고 있는 주제는 무엇인가요?
개발단계상 대량 생산에 관해 고민하고 있습니다.
같은 것을 만들더라도 규모의 경제에 대응할 수 있는지 여부에 따라 디자인부터 운용까지 크게 달라집니다. 보다 많은 캐릭터, 몬스터, 퀘스트, 미션 등을 효율적으로 개발하기 위해서는 설계도 잘 해야 하고 파이프라인도 막힘이 없어야 합니다. 이를 위해서 전 개발실이 함께 노력 중입니다.
Q. 좋은 프로그래머란 어떤 사람일까요?
팀을 운영하는 입장에서 생각해보면 믿을 만한 동료인지, 팀플레이어인지가 매우 중요한 것 같습니다.
작업을 빨리, 높은 품질로 완성하는 것은 중요합니다. 하지만 이것은 프로그래머라면 기본적으로 갖춰야 하는 자질이고, 그것에 더해서 다른 사람의 고민에 귀를 기울이며 전체의 문제를 같이 고민해줄 수 있다면 그 사람이 ‘좋은’프로그래머라고 생각합니다. 뛰어난 사람은 교만하기 쉽지만, 이것을 보완해 주는 겸손함까지 갖추고 있다면 그 사람이 누구나 함께 일하고 싶어하는 인재겠지요. 이는 단지 프로그래머 사이에서만 통용되는 덕목은 아니고, 다른 직군의 사람을 대할 때도 마찬가지입니다.
Q. 미래에 함께 하게 될 프로그래머 분들께 응원의 한 말씀 부탁드립니다.
많은 프로그래머들이 게임을 좋아해서 게임 프로그래머가 되었습니다. 일하다 보면 힘든 점도 있고 기대에 부합하지 못하는 일을 할 때도 있습니다. 그럼에도 자기가 좋아하는 분야에 속해 함께 무언가를 만들어 가면서 때때로 즐거움을 맛보는 것이 이 일의 장점인 것 같습니다.