내맘대로 쓰는 게임 개발 방법론
Extreme Game Development
레이옷이 처음 온라인 게임을 만들 때에는, 최신 기술을 얼마나 잘 사용할 것인가? 라든지, 오픈후 폭주할 사용자들의 접속과 그에 따른 불만들을 생각하면서 서버를 디자인할 때에나, 코딩을 할 때 아예 처음부터 이런 부분을 모두 고려해서 잘 짜보자..라는 환상에 빠져 있었다.
그러나, 실제로 이렇게 하다 보면 작업 기간이 두배 세배로 늘어났으며, 그에 따라서 능률이라든지 효율이 많이 떨어졌던 적이 많았다. 이러다보니 개인 생활도 점차 피폐해져가고, 원래부터 얼마 없던 인간미도 스트레스로 인해 점점 희미해져가게 되고, 일은 일대로 진척되지 않고, 유저들은 불만을 느끼고... 재미없게 만든 게임 치고 히트를 칠 이유가 없지 않은가...
요즘 들어 느끼는 것은, 서버의 안정성은 경력이 쌓여갈수록 점점 높아지며, 확장성은 프로그램을 짜면 짤수록 자연스럽게 얻어진다는 점이다. 속도는 실행해보고 느리면 프로파일링을 통해서 그 부분만 최적화해나가면 되는 법. 결국 우리가 여기서 얻을 수 있는 교훈은, 필요한 기능은 필요할 때 구현하면 된다. 대신, 현시점에서 가장 간결한 코드를 유지하라! 미래의 요구사항을 걱정하지 말라! 라는 것일까? 이는 Extreme Programming의 가치와 매우 유사하다.
즉, 불필요한 확장성과 최신 기술로 고민하는 시간을 부족한 게임성을 높이는데 주력하라는 말씀! 근데 말은 이렇게 해도 나 역시 언행일치가 잘 안될 때가 많다.
헤일로2 개발자들에게 배우는 상위 법칙
아직도 헤일로2 보너스 DVD 를 보지 않았다면, 꼭 동료들을 불러서 함께 봐라. 30% 정도의 과장과 연출을 무시하더라도 그들은 정말 강하다. 팀원 개개인이 게임 개발의 주체가 되어 더 나은 게임성을 만들어나가는 모습은 정말 감동적이다. 그들에게서 배울 수 있는 2가지 핵심 법칙은 다음과 같다.
- 30초 플레이의 법칙 : 30초의 게임 플레이가 즐거우면, 모든 것이 즐겁다. (이 플레이를 계속 유지시키면 되니까...)
- 5분 플레이의 법칙 : 플레이어는 5분 동안 플레이해서 재미가 없으면 접는다. 즉, 5분 동안 플레이어를 잡아 둘 수 있다면 성공!!
잦은 릴리즈
적정 기간의 마일스톤은 개발팀이 하나의 목표를 향해 흔들리지 않고 달릴 수 있게 해준다. 또한 투자자들에게 일이 잘 흘러간다는 것, 내 돈이 제대로 쓰이고 있다는 것을 알게 해준다.
매 2-3개월마다 개발된 내용을 릴리즈하고 사내에서 시연하라. 시연은 잘못된 과거를 반성할 수 있게 해주며, 부족한 시간과 자금, 맨파워를 느낄 수 있게 해준다. 잘 되든 잘못되든 시연은 좋은 것이다. 아무리 적어도 일년에 4-6회의 내부 시연을 가져야 한다. 결과가 좋을 경우 개발팀에게 보너스를 지급하라. 나쁠 경우에는 왜 잘못되었는지에 대해서 보고서를 쓰게 하고, 보너스는 다음번 시연으로 연기하라.
모든 작업은 2주를 단위로 개발자들에게 할당되어야 한다. 주5일이 확산되고 있는 시점에서, 1주는 너무 짧고 3주는 너무 길다.
퀄리티 > 일정
퀄리티는 절대 양보될 수 없다. 버그 1개를 출시할 바에는 기능 2개를 제거하는 것이 옳다. 그러나 이미 윗사람들이나 마케터가 유저들에게 약속해버린 경우에는 어떻게 해야 할 것인가? (종종 개발팀을 압박하기 위해서 저질러지는 일들이다.) 이 기능이 빼고 출시할 바엔 차라리 포기하는 게 낫다. 그러나 이걸 포기하면 잠재적인 손해가 수천수백만원에 회사 이미지가 손상되므로 무조건 구현해라!라고 나오면 어떻게 하는 것이 옳은가?
중요한건 그들은 책임지지 않는다는 것이다. 최종적으로 책임지는 자는 개발팀이며 결과적으로 회사는 더욱 막심한 손해를 입는다. 주가 관리를 위해 마그나카르타를 출시했다가 치명적인 손상을 입은 소프트맥스의 케이스를 보라. 끝까지 설득하라. 그래도 안된다면 그들로 하여금 퀄리티와 스케줄 둘 중 하나를 선택케 하라.
실제로 불가능한 스케줄을 accept 하게 되면, 원죄를 짊어지고 시작하게 되는 것이다. 어떻게 열심히 야근하면 되지 않을까 하는 낙관적인 접근은 결국 팀을 와해시킨다. 전통적인 SE 에서 디자인 시간이 오래 걸리는 것은 이와 같은 스케줄 관리에서 소모되는 시간을 포함한 것이라고 보면 옳을 것이다. 일단 작업계획서에 서명을 하고 나면 모든 것은 끝이 난다. 그렇더라도 불가능을 확인하게 되면 즉시 상부에게 알려라. 그것이 피해를 최소화하는 것이다.