塵狼은 '소가 제일 낫군'하고 생각하고 월드 오브 워크래프(이하 WOW)를 시작한 유저입니다. 호드에 대해 엄청난 애정을 갖고 있지는 않지만 호드를 하면서 별 불편함을 못 느꼈고, 라이트한 성향으로 인하여, 아직 호드 컨텐츠도 모두 즐겨보지 못했기 때문에 얼라이언스로 플레이 해 본 적이 없습니다. 드레나이가 귀여워서 만들어 본 경험은 있군요. :)
여튼, 최근에 '인간' 마을인 스톰윈드를 분석해 오라는 특명을 받아 스톰윈드를 구경하고 있습니다.
...스톰윈드를 다녀오면 얼라에 대한 분노가 커진다는 이야기가 농담이 아니더군요.
- 디테일이 다르잖아! 호드는 남는 시간에 만들었냐?! 록타, 오가르는 미안해서 넣어주는 추임새지?!
라는 감상이었습니다. 이것이야말로 로우폴리곤의 향연!!
업무로 진행한 것이니 공개하면 다소 아까운 느낌도 있지만(아마 다른 회사의 수없이 많은 컨텐츠 기획자들이 이 작업을 한 번쯤은 했을 겁니다), 축약하여 일부만 소개해 볼까 합니다.
wow의 건축가들은 모두 같은 도면으로 건축을 하는 것인지, 스톰윈드 국왕령에 의해서 강력한 건축 제재가 있는 것인지 대부분의 건물이 동일하게 생겼습니다. 심지어 내부도 동일하지요!
개발자들은 물론 그 이유를 알고 있습니다. 실제로 게임 개발을 해 보면 놀라운 기획안을 내놓는 것 보다 필요한 그래픽 리소스를 제때 확보하는 것이 가장 어렵다는 걸 알게 됩니다. 그래픽팀의 사람들이 덜 창의적이거나 게을러서가 아닙니다. 제작 공정을 최소로 한다고 해도 일정 퀄리티를 확보하는 3d 그래픽 - 사람 한 명을 만드는데는 하이폴리곤의 경우 4주, 로우폴리곤의 경우 3주 정도 걸립니다. 3d 그래픽의 경우에는 모델링으로 끝나는 것이 아니라 그것에 뼈대를 심고 따로 움직이게 해줘야 하는데 이 작업의 경우에도 정말 아무리 빨라도 그럴 듯하게 만들려면 3주는 걸린다는 사소한 문제가 있습니다. (...)
그런 이유로 정말 소중한 리소스를 아끼기 위해서 개발자들은 재활용의 달인이 됩니다. 썼던 걸 쓰고 또 쓰고, 마르고 닳도록 쓰는 거지요. 이런 부분에 대해서 플레이어들은 좋게 보지 않지만 어쩔 수 없는 현실이죠. 개발 기간은 정해져 있으니까요.
억울한 건 사실이지만 기획자가 할 일은 플레이어에게 불만을 토로하는 대신 눈치채지 못할 정도로 교묘하고 완벽한 재활용을 할 수 있도록 기획하는 것입니다. wow의 경우에도 100점이라고까지는 할 수 없지만 한정된 자원을 최대한 쉽게, 잘 활용하기 위한 많은 꼼수를 사용하고 있습니다.
1스텝) 아제로스에서 날아선 안되는 이유
실제로 많은 게임들에서 이미 사용하고 있는 방법이긴 합니다. 엔진마다 조금씩 다른 점이 있지만, 3D의 경우는 모델의 크기보다는 모델이 가지고 있는 면수에 더 큰 영향을 받는 경향이 있습니다. 다만 일반적으로 더 큰 3D 오브젝트는 더 큰 디테일과 더 큰 텍스쳐를 필요로 하게 되므로 모델의 크기가 아주 영향이 없다고 말할 수는 없습니다. (그 밖에 제작 기간의 제한도 있을 수 있습니다)
위와 같은 이유로, 큰 건물은 문제가 되지 않지만, 복잡한 건물은 문제를 일으킬 수 있습니다.
그러나, 스톰윈드는 인간 종족의 수도로서, 드러내기 좋아하고, 거만하면서도 웅장한 것을 좋아하고 하늘에 닿고 싶어하는 욕망을 숨기지 않는 실제의 인간 그대로를 표현하기 위해서 건물의 수를 줄이거나 초라하게 만들 수는 없었지요. (물론 국내의 개발사에서 일하다 보면 이런 컨셉이 좌절되고 쉽게 만들 수 있는 컨셉으로 변경해야 하는 일이 생기곤 합니다)
그런 이유로 이들이 선택한 것은...바로...
안 보이는 부분에서 면수 줄이기입니다.
스톰윈드를 위에서 올려다 보면 뚜껑이 없는 건물들이 제법 보입니다. 실내가 없는 건물도 많이 있지요. 촬영장 세트처럼 유저가 길에 서서 보는 부분만 대충 가려 놓은 부분도 많이 있습니다.
많은 게임에서 실제로 이미 많이 쓰고 있는 방법이긴 합니다만, wow의 경우는 훨씬 적극적으로 사용하고 있습니다. 국내에서는 원경에서만 선택적으로 사용하는 반면 wow의 경우는 가까이 있는 올라갈 이유가 없는 건물, 정상적인 카메라 각도로는 볼 수 없는 부분에도 뻔뻔하게 그대로 써 버립니다. :)
그런 이유로 아웃랜드가 열리고 곧 두 번째 확장팩이 나오는 이 시점에서도 아제로스에서는 날 수 없습니다. 날면 저게 다 보이니까요. 아제로스에 자유 비행이 없는 이유는 이것입니다.
2스텝) 두 개의 탑
이건 정말 뷰어를 활용하기 전에는 몰랐던 일입니다. wow의 경우는 많은 팬들을 보유하고 있고, 그러다 보니 팬 중에는 이런 사람도 저런 사람도 있기 마련입니다. 팬 중에는 프로그래머도 있을 수 있겠지요. wow의 열렬한 팬인 것으로 보이는 Ufo_z가 만든 맵뷰어는 업데이트가 멈춘지 한참되었지만, Darjk의 패치를 통해서 확장팩의 맵들도 볼 수 있습니다. http://www.wowmodelviewer.org/
이것을 통해서 스톰윈드를 보면 재밌는 것을 볼 수 있습니다.
스톰윈드의 교회탑이 두 개입니다. 하나는 공중에 떠 있기까지 하는군요.
이게 뭘까요? 스톰윈드를 가보면 알겠지만 실제로 교회탑은 하나 밖에 없습니다. 게임에서 공중에 떠 있는 교회탑 아래로 가보면 아무 것도 없답니다. 그렇다면 모델 뷰어에서 교회탑이 두 개인 이유는 사제 뷰어라서 그런 걸까요?
정답은, 실제로도 교회탑은 두 개라는 겁니다. 어떻게 대답할 수 있냐고요? 그리폰을 타고 오면 보이지 않느냐고요?
그렇다면 게임 상에서 직접 확인을 해 봅시다.
아주 짧은 순간이므로 잘 보기 어렵지만 교회탑이 실제로 있을 리 없는 거리에 있습니다. 저 거리는 공중에 떠 있는 두 번째 탑이 있는 위치인 것 같군요.
쉽게 설명하자면, 공중에 떠 있는 두 번째 탑은, 스톰윈드 앞마당에서 교회 첨탑을 보이기 위해서 임의로 만든 장식품이라고 보시면 됩니다. 유저가 저 탑에 일정 거리만큼 접근하면 보이지 않게 되고, 멀리 떨어지면 보이게 되는...역LOD라고 할까요? LOD의 개념은 이미 다들 알고 있는 것이지만, 반대로 "멀리에 있으면 보인다."는 연출은 꽤나 충격적입니다.
또, 이렇게까지 해서 컨셉을 살려주는 회사가 있다는 것도 부럽군요.
3스텝) 조립식 가건물
제가 wow를 처음하면서 느낀 놀라움은, 아주 작은 건물일지라도 문이 열려 있는 건물은 모두 들어가 볼 수 있다는 겁니다. (닫힌 경우에는 못 들어 갑니다) 겉에서 보기에 작은 건물인데 안쪽의 모델링은 어떻게 한 걸까 궁금한 점이 있었지요. 요번 분석을 통해서 그 의문을 해결할 수 있었습니다.
껍데기와 알맹이의 형태를 규격화 한 후, 몇 개의 모형을 만들어서 겹치는 겁니다. 알고 보니 너무 쉬운 방법이라서 허탈해지더군요. (눈물) 장식 오브젝트를 바꿔치기 해서 같은 규격의 건물에서도 컨셉에 따라 내장이 달라진 것처럼 보이기도 합니다.
나만 몰랐을까...
wow같이 오랜 기간 제작된 게임도, 블리자드 같은 거대하고 많은 노하우를 가진 회사도 리소스를 아끼기 위한 꼼수들을 이용하기 위해 많은 노력을 합니다. 어느 회사든지 게임 개발 플랫폼이라는 그 자체의 제약에서는 벗어날 수 없으니까요.
잊지 마세요. 재활용은 환경 뿐만 아니라 게임 개발에도 유익한 영향을 미친답니다. :)
용어 소개
- 리소스(Resource) : 자원이라는 의미인 것 같습니다. 게임 개발에서 리소스라고 하면 주로 "게임에 출력되는 그래픽 데이터"를 말합니다.
- 폴리곤(Polygon) : 3d 그래픽을 활용하는 게임에서 사용하는 용어입니다. 폴리곤 메쉬(Polygon Mesh)의 줄임말이며, 3d 그래픽을 구성하기 위한 뼈대라고 보시면 됩니다. 이 뼈대를 이루는 다각형의 갯수가 많으면 하이 폴리곤(High Polygon), 반대의 경우에는 로우 폴리곤(Low Polygon)이라고 부르며, 하이 폴리곤일수록 고사양의 PC를 요구하게 됩니다. 하이 폴리곤일수록 섬세한 그래픽을 표현할 수 있으므로 일반적으로 하이폴리곤은 고해상도, 고퀄리티 그래픽의 게임과 동의어로 착각하는 경향이 있습니다.
- 매핑(Mapping) : 뼈대(폴리곤)를 만들었으니 그 위에 종이를 발라서 모양을 잡아줄 차례입니다. 그 종이를 바르는 행위를 매핑이라고 부릅니다. 거기 바르는 종이는 맵(map)이라고 부릅니다.
- 모델링Modeling : 3d 디자이너가 폴리곤을 만들고 그 위에 매핑을 입히는 행위 그 자체, 혹은 그 행위를 통해서 나온 결과물.
- 엔 진(Engine) : 차량을 움직이기 위해서 동력을 보내주는 엔진이 필요하듯, 게임을 움직이기 위해서는 컴퓨터의 자원을 효율적으로 배분해 주고, 처리해 주는 엔진이 필요합니다. 하는 역할을 똑같습니다. 다만 움직이는 것이 자동차냐 게임이냐의 차이만 있을 뿐이죠. 더 좋은 엔진을 장착한 차량이 더 좋은 성능을 보이듯, 더 좋은 엔진을 장착한 게임이 더 우수한 성능을 가지게 됩니다. 엔진에 대해서는 추후에 한 번 더 이야기 하지요.
- LOD(Level of Detail) : 기본 개념은 "멀리 있는 것은 선명하게 보이지 않는다." 에서 시작합니다. 멀리에 있는 3D 오브젝트를 임의로 디테일을 낮춰서 보여주는 기술을 총칭합니다. 요즘은 확장된 의미로, 3D 오브젝트 외에도 원거리에 있는 것들(ai, 스크립트 등)을 처리하는 기술에도 이 용어를 사용한다고 합니다.