게임 개발 중 프로그래머와 기획자의 협업
한 MMORPG게임의 개발에 참여할 때였다. 기획자와 프로그래머의 협의 과정에 대한 사뭇 진지한 논쟁이 벌어졌다. 기획자의 기획이 프로그래머에 의해 구현되기까지의 협의 과정이 논의주제였다.
이 논의를 통해서 얻은 것은 기획자와 프로그래머가 서로의 역할을 침범해서는 안 된다는 것이다. 제안은 할 수 있고 질문에 호의를 베푼 대답은 줄 수 있지만, 프로그래머가 기획 시스템에 지나치게 관여를 한다든지 하는 것은 위험하다. 왜냐하면 프로그래머가 기획의 책임과 업무량까지 가져갈 수 있기 때문이다. 그러면 프로그래머로써 불필요한 고민의 시간을 갖게 되며 그것은 구현의 시간을 잡아먹게 된다. 개인이 일정을 관리할 수 있다면 좋은 것이지만 그렇지 않다면 나의 역할이 아닌 것을 위해 내 역할을 소홀히 하게 되는 과오를 범할 수 있다.
다음은 잊어먹고 싶지 않아서 한 번 정리해본 협의 과정이다. 일단 기획에서 구현까지 이르는 데 필요한 네 가지 역할이 있다.
- 시스템 기획자
- 콘텐츠 기획자
- 시스템 프로그래머
- 콘텐츠 프로그래머
일은 콘텐츠 기획자로부터 시작된다. 콘텐츠 기획자는 게임의 구체적인 콘텐츠를 기획한다. 예를 들어서 캐릭터의 공격에 대해 정의하고 기획한다. 하면서 그 콘텐츠의 시스템 기획자와 여러 협의를 한다. 캐릭터의 공격을 가지고 계속 예를 들자면, 콘텐츠 기획자는 시스템 기획자와 공격할 수 있는 방식에 대한 논의를 한다. 스킬, 기본 공격, 점프 공격 등이 가능한지 본다. 데미지 수용 방식에 대한 논의를 한다. 크리티컬 데미지, 얼음 데미지, 화상 데미지 등을 시스템적으로 추가할 수 있는지에 대해 논의한다. 특정 공격에 캐릭터가 몇 초간 쓰러질 수 있는지 논의한다. 이런 논의 후 콘텐츠 기획자는 “넉다운”이라는, 70%확률로 300% 크리티컬 데미지를 주며 캐릭터를 3초간 쓰러지는 스킬을 기획한다. 요약하면, 크리티컬, 얼음, 화상 데미지 등을 시스템화하고, 캐릭터가 쓰러질 수 있는지 없는지를 결정하는 것이 시스템 기획자이며, 이러한 시스템을 활용해 다양한 스킬과 구체적 아이템들을 기획하는 것이 콘텐츠 기획자이다.
시스템 기획자는 이 것들을 콘텐츠 프로그래머와 논의한다. 이러한 시스템들을 추가하고자 하는데 구현이 가능한 것인냐가 주 된 논의 내용이다. 시스템 기획자가 미처 보지 못한 논리적 오류도 콘텐츠 프로그래머가 잡아낸다. 콘텐츠 프로그래머는 이 내용을 가지고 시스템 프로그래머에게 이러한 시스템을 만들어달라고 요청한다. 그러면 시스템 프로그래머는 합리성과 가능성을 따져본 후 구현 해 준다. 콘텐츠 프로그래머는 그 시스템을 기반으로 콘텐츠를 제작한다. 가능한 한 일반적이고 추상적으로 제작하여 코드 재사용성을 높이도록 한다.