통역

결론: 개발팀에서 통역가는 원래 의도를 잘 반영하지 못하는 잘못된 용어로 정의된 기능을 해석해 이 기능의 원래 의도를 잘 보여주는 덜 무서운 용어로 바꿔 적절한 우선순위를 받을 수 있도록 합니다.

프로젝트를 처음 시작하면 그 모든 것들이 갖춰지지 않은 상태입니다. 아직 정말로 아무것도 없어요. 이제 다들 OS를 설치하고 IDE를 설치하는 중입니다. 누군가는 오피스를 설치하고 또 다른 누군가는 어느 기계인가에 형상관리시스템을 설정하고 있어요. 아직 아무도 첫번째 커밋을 하지 않았고 아직 빌드머신 하드웨어조차 도착하지 않았습니다. 이런 상태를 지나면 우리들이 직군 간 이터레이션을 시작할 아무 기반도 갖추지 못했다는 사실 역시 이내 깨닫게 됩니다. 게임디자이너들은 데이터 입력에 엑셀을 선호하지만 아직 이 엑셀을 어떻게 읽어 코드에 반영할지도 확실하지 않습니다. 많은 개발팀이 그렇듯 비슷한 모양의 XML로 바꿔 읽어들일지 아니면 요즘 웹에서 유행한다는 다른 포멧을 사용할지, 엑셀 파일의 여러 워크시트로 구성된 모양을 허용할지 말지, 엑셀만으로는 편안하게 표현하기 어려운 관계형 데이터를 어떻게 표현하게 할 지 조차 결정되지 않은 상황을 지납니다. 어떻게 어떻게 해서 드디어 빈 땅을 만들고 캐릭터를 세워 뛰어다니게 만든 다음 또 어떻게 어떻게 해서 서버를 붙이고 드디어 옆 사람이 뛰어다니며 칼질을 하는 모양이 내 클라이언트에 동기화되는 상태에 이릅니다. 아. 이제 양산형 매니지먼트 게임 만드는 팀 기분이 좀 나는군요.

그런데 또 한동안 개발을 진행하면 이제 스킬이란 개념도 생기고 이제 제법 전투 모양새도 갖춰갑니다. 다른 누군가는 이제 본격적으으로 시나리오를 만들기 시작하고 이를 게임에 보여줄만한 퀘스트 시스템을 만들어내기 시작합니다. 요즘 세상의 퀘스트는 사실 이전 시대에 비해 훨씬 단순해졌습니다. 이전이 좀 더 섬세했다면 지금은 좀더 투박합니다. 주로 인터페이스를 터치하면 퀘스트 동작의 많은 부분을 자동으로 수행해주기 때문입니다. 몬스터를 좀 더 섬세하게 배치하고 각각의 몬스터를 잡는 동안 플레이어의 이동과 전투 사이에 일어날 행동, 동선을 신경쓰던 이전 시대에 비해 이런 고려는 약해졌습니다. 한편으로는 아예 우리 장르의 게임으로 게임을 시작한 분들에게 우리가 가끔가다가 '콘솔게임같은 경험!!'이라고 말하곤 하는 멋진 스토리텔링과 과감한 연출을 전투의 섬세함에 비해 더 많이 요구받곤 합니다.

그러다가 작은 문제가 생깁니다. 멋진 연출을 집어넣기에 앞서 자잘한 시나리오를 풀어나가려면 게임 속 NPC들을 제어할 자잘한 방법이 필요해집니다. 하지만 이 즈음의 개발팀은 과거 MMO 게임을 만들던 초기와 다르지 않게 흔히 전투라고 말해버리는 코어플레이를 구축하느라 정신이 없고 상대적으로 시나리오를 표현할 퀘스트와 자잘한 표현기능은 우선순위 경쟁에서 뒤로 밀리곤 합니다. 하지만 우선순위 경쟁에서 밀려 개발자원을 분배받지 못했다고 하더라도 어쨌든 이 모든 기능이 준비되어 프로덕션에 들어가는 시점이 조정되지는 않는 현실이라 마음이 좀 급해집니다. 하다못해 NPC가 대사를 말한 다음 이곳에서 저곳까지 짧은 거리를 걸어가게 만들고 싶은 이 조그만 요구사항조차도 아직 어떻게 만들어야 할지 협의되지 않았습니다. 다급한 나머지 이 동작을 수행할 수 있을 것 같은 가장 가깝고 머릿속에 처음으로 떠오른 단어를 외치며 문제를 제기합니다.

“우리 NPC AI 어디까지 진행됐어요?”

개발팀 전체가 한번에 굳어버립니다. 아니. 이제서야 전투 기반 잡고 서버 동기화하고 데이터 파이프라인 구축했는데 갑자기 자다가 엉덩이 긁는 소릴 하는 거냐는 반응을 얻고 맙니다. 아니 왜 지금 그 멋지고 무서운 이름에 빛나는 'AI'라는 단어를 말하는 것인지 다들 이해하지 못합니다. 그렇잖아도 우선순위 경쟁에서 쉽게 소외되는 NPC 제어기능은 이 무서운 단어를 듣고 딴청을 피우며 못 들은 척 하는 사람들 덕분에 더더욱 깊고 큰 위기에 처합니다.

이 상황을 해결하는 방법은 서로 다른 직군, 서로 다른 업무를 서로 다른 관점에서 수행하는 스탭들 사이에 통역을 시도하는 겁니다. 이미 눈치채셨겠지만 NPC가 여기서 저기까지 걸어가는건 AI라는 무서운 단어를 사용할만한 기능이 아닙니다. 특히 퀘스트 연출에서 굳이 NPC가 몇 발자국 움직이는 기능은 심지어 이동 기능이라고 생각하기에도 단순한 기능입니다. 오히려 핵심은 이 기능을 누가, 어디서, 어떻게 호출해서 사용할지의 체계를 구축하는 일이지 그 기능 자체는 아무런 문제도 아닙니다. 그냥 만들면 돼요. 단 방금 이야기한 기능을 랩핑한 체계에 신경쓰면서요. 그런데 여기서 NPC가 움직이는 것 같으니 그와 비슷한 카테고리인 'AI'같은 무서운 단어를 말해버리면 사람들은 간단히 NPC가 이동하는 기능이 지금은 구현하기 힘든 거대한 기능 집합의 일부라고 생각해버립니다. 모든 사람들의 마음속에 각인되기는 할 겁니다. 그리고 한 두어달 후에나 구현되는 기능을 돌려받을 수 있겠죠. 원래 필요에 비해 훨씬 복잡하고 게임디자이너들이 사용하기 어려운 모양으로요.

통역이 하는 일은 종종 팀 내부나 외부로부터 사실은 전혀 무섭지 않은 요구사항이 무서운 단어로 의사소통될 때 재빨리 눈치채고 끼어들어 하나도 안 무서운 단어로 바꿔서 이야기하는 겁니다. 종종 NPC가 몇 발자국 이동하는 기능을 누군가 'AI'라고 말해 주변을 긴장시키고 있다면 최대한 빨리 끼어들어 훨씬 마음이 놓이는 다른 말로 바꿔줍니다. 그래서 모두가 두려워하며 두 달 후에나 원하던 것과는 거리가 먼 기능으로 돌려받는 대신 이 기능을 호출해서 사용할 체계 준비를 포함해서 이틀 안에 안정적으로 동작하는 기능을 갓 구축된 빌드머신으로부터 다운로드해서 사용할 수 있게 해줍니다. 잠깐 동안 더 무서운 단어에 긴장했던 사람들이 이내 게임 안에서 NPC들이 대사를 말하며 자연스럽게 걸어다니는 모습이 당연하다고 생각하고 아직 주로 전투와 관련된 AI는 구현되지 않았지만 이 기능이 당연하다고 생각하고 팀에는 다시 평화가 찾아옵니다.