'인력': 검색된 포스트 '1'건

  1. 2008/04/28  스킬을 사용할 수 없습니다 (4)

스킬을 사용할 수 없습니다

'갈아 엎는다'는 표현을 사용합니다. 지금까지 개발한 결과물의 상당 부분을 다시 만드는 과정을 그렇게들 이야기하더군요. 내부적으로는 아주 많은 부분을 바꾸지만, 그 결과는 지금과 크게 다르지 않은 경우가 많아서, 바쁜 개발팀에서 시도하기에 쉽지 않습니다. 웬만하면 갈아엎을 일이 생기지 않는 개발 체계와 과정을 만드는 것이 좋고, 혹시 갈아엎어야만 할 일이 생겼다면 최대한 빨리 갈아 엎어야 합니다. 갈아엎어야만 할 문제를 건드리지 않고 라이브까지 끌고 가면 더 이상 손을 쓸 수 없는 일이 생깁니다. 오늘은, 갈아엎어야 할 일을 가만 놔뒀다가 영원히 손쓸 수 없게 된 이야기를 해 보려고 합니다.

전에 이야기한 적이 있는데, 예전에 만들던 게임에 등장하는 몬스터들은 눈이 안 달려 있어서, 스스로 주변 지형을 보고 길을 찾지 못합니다. 그래서 몬스터들이 주변 지형을 인식할 수 있도록 그래픽 데이터로 만들어진 지형 정보를 기계가 인식할 수 있는 정보로 바꿔 줘야 했습니다. 이 작업을 하는데는 크게 두 가지 방법이 있습니다. 흔히들 '패스 엔진'이라고 부르는, 그래픽 데이터를 정해진 규칙에 따라 이동할 수 있는 지역과 그렇지 않은 지역을 구분하는 방법과, ... 무식하지만 사람이 직접 몬스터가 이동할 수 있는 지역을 정해주는 방법입니다.

사실, 어째서 후자의 방법을 사용하게 되었는지, 그 의사결정 과정에 대해서는 잘 모릅니다. 전자의 방법에는 엔진을 구입하는데 약간의 - 전체 개발비용에 상대적인 비용 - 비용과, 이 비용을 사용하는데 필요한 행정적인 절차가 있었고, 후자의 방법에는 개발팀을 투입해 직접 데이터를 입력하게 해야 했는데, 약간의 비용과 행정적인 절차보다는 개발팀의 인력을 사용하는 편이 더 낫다고 생각한 모양입니다. 그리하여, 개발팀이 노가다로 데이터를 입력하기 시작했습니다.

처음에는 지형 정보를 언리얼 에디터에 띄워놓고, 언리얼 스크립트로 액터를 하나 정의한 다음, 이 액터를 맵 위에 포인트 단위로 찍고, 포인트 사이의 관계를 연산한 결과를 저장한 다음, 몬스터가 이동할 때 이 결과를 참고하게 해놨습니다. 맨 처음에는 한 맵에 찍혀 있는 모든 포인트 사이의 이동 가능한 결과값을 모두 저장해놨는데, 데이터 크기는 엄청났지만 속도는 빨랐습니다. 데이터를 입력하는 사람들 이외의 모든 사람이 만족했지요. 하지만, 점 단위로 지형 정보를 분석하게 만들어놨더니, 절벽이나, 계단 같은 지형에서 자주 문제가 생겼습니다. 개선에 개선을 거듭해서 결국 실린더 모양으로 만들었는데, 이 과정 각각에서 지형 정보의 형식을 바꿀 때마다 모든 지형 정보를 다시 입력해야 했습니다. 기획팀이 주로 이 작업을 담당했는데, 나중에는 견디다 못해 아르바이트 작업자를 고용하기까지 했습니다. 참고로, 이 사람들 일당이 기획팀원들 일당보다 많았다고 합니다. :(

사실, 이 각각의 과정에서 '우리 이제 노가다 그만하고 그냥 엔진 사자'란 이야기가 수십번 나왔습니다. 개발이 진행되면 진행될수록 엔진 사서 붙이고 관계된 부분을 '갈아엎는'데 드는 자원과 리스크가 점점 커졌기 때문에, 시간이 지날수록 이런 푸념이 무의미하다는 것은 말하는 우리들 스스로가 더 잘 알고 있었습니다. 이렇게 진행된 프로젝트는 결국 라이브에서 밀려드는 버그를 감당할 수 없는 지경이 됐는데, 유저들이 가장 많이 경험하는 버그인 '스킬을 사용할 수 없습니다'와, '대상이 보이는 장소로 이동하세요'로 돌아왔습니다. 이 문제는 사람이 찍다 보니 지형을 이루는 실린더가 연결되지 않아 생기는 문제인데, 눈으로 보기에는 뻔히 몬스터가 앞에 있지만 그 몬스터가 서 있는 위치와 내 위치 사이에 연결되는 실린더가 없어, 서로 동떨어져 있는 것으로 착각하고 있는 상황입니다. 이 문제는 그때그때 문제가 일어나는 지점의 스크린샷을 받아 그 부분의 지형 정보를 보강하는 식으로 처리했지만, 실수는 도처에 널려 있었고, 버그가 알려진지 1년이 다 되어 가지만, 이제는 알긴 아는데, '절대로 고칠 수 없는 버그'가 되어 버렸습니다.

듣자 하니, 이제 이 문제를 수정하기 위해 강력한 특단의 조치가 진행되고 있다고 합니다. 올해 말 정도면 그 실체가 드러날 모양인데요, 이 경우로부터 배워야 할 교훈은 게임을 만들다가, '갈아엎어야 한다'는 느낌이 오면 최대한 빨리 갈아엎으라는 것, 그리고 '인력'을 쉽게 생각하지 말아야 한다는 것의 두 가지입니다.

2008/04/28 00:26 2008/04/28 00:26

, , ,

[요즘에 쓴 글] [예전에 쓴 글]

(C)Milfy / neoocean.net, milfy@neoocean.net