소프트웨어 이야기

기술의 정체?

Induky 2009. 3. 25. 00:45

물론 이거슨 게임에 한정된 이야기입니다.

요즘 무슨 그래픽 무슨 기술 어쩌고 하면서 게임들은 많이 쏟아지고 있습니다.
특히 온라인 게임쪽의 발전은 가히 눈이 부실 정도라고도 할 수 있죠(C9와 마비노기 영웅전만 봐도 그렇습니다.)
그러나 실상을 보면 반드시 그렇지는 않음을 볼 수가 있습니다.

지난 5년 사이에 그래픽 기술은 정말 많은 발전이 있습니다.
그 중에서도 가장 획기적인 기술이라면 다름아닌 쉐이더로 대표되는 HLSL이 되겠습니다.
이 고급 쉐이더는 3D엔진에서 표현할 수 있는 사물의 질감을 그 이전과 비교해서 완전히 차원이 다르게 표현할 수가 있게 되었죠.
그게 가장 극적인 것이라면 당연 DX 7.0→DX 8.0(8.1)로 넘어 가면서 입니다. 물론 DX 8.0에 들어가는 HLSL은 고급이라는 말이 무색할 정도로 간편한(?) 픽셀 쉐이더와 버텍스 쉐이더 정도였습니다만... 아무튼 이게 들어간다는 것 자체가 획기적인 수준이죠.
그걸 잘 표현한 것이 2003년... 당시 국내 온라인 게임에서 획기적인 게임이 하나 나왔죠. 바로 노숙소프트의 니니지2입니다.
당시에는 콘솔게임이나 패키지에서나 통한다는 당대 최고의 엔진 중 하나인 언토 2003엔진을 집어넣었습니다.
사실 그 전만 해도 꿰끼3 엔진만 넣어도 충분히 좋은 그래픽이라는 인식이 많았던 상황에서 이걸 덥썩 집어넣어버렸으니 말입니다. 니니지2는 덕분에 현재까지 엔진에 약간씩 땜질을 한 덕분에 요즘에도 잘 통하는 그래픽을 보여주고 있습니다.

그리고 또 하나의 놀라운 기술이 등장합니다. 첫번째는 실시간 광원 계산, 둘째는 DX 9.0C에 들어간 HDR입니다.
첫번째는 다름아닌 카멕횽이 2004년에 내놓은 둠삼에서 처음 등장했다고 봐도 과언이 아닌데, 당시의 컴퓨터 스펙을 보면 무모하다고 봐도 과언이 아닌 기술이었죠(이게 엄청난 사양을 요구하니까요. 요즘에야 이거 없으면 질 떨어지는 그래픽이라는 소리 듣습니다만. 그러나 요즘도 게임 옵션에서 가장 사양 차지하는게 다름아닌 그림자 옵션이죠?)
두번째는 Cry engine에서 처음 등장합니다. 다름아닌 파크라이죠. 파크라이는 처음부터 HDR을 집어넣지는 않았지만 한차례의 리뉴얼을 통해 HDR을 넣게 됐습니다. 그에 자극받은 우리의 수도꼭지사... 짝퉁 HDR을 소스엔진에 집어넣었죠(덕분에 쥐포술 6,7시리즈에서도 HDR+AA가 가능했습니다)

자, 그 이후.
DX10이 나왔습니다. 기존에 픽셀 쉐이더, 버텍스 쉐이더로 대표되던 HLSL을 통합했습니다. 통합한 쉐이더에는 지오메트릭 쉐이더가 또 포함됩니다. 기존의 픽셀, 버텍스와는 또 다른 쉐이더입니다. 
쉐이더 언어는 갈수록 발전합니다. DX10으로 넘어오면서는 거의 완전한 자유를 얻었다고 할 수가 있죠(점점 쉐이더 옵션이 세분화 되는데다가 지원하는 명령도 다양해지니까요. 게다가 쉐이더 파이프라인 배분도 유동적으로 가능하고요)

현재 수많은 DX10게임들이 나와있습니다.
DX10지원의 정점을 찍는 게임이라면 다름 아닌 Cry Engine2을 써먹는 크라이실사스.
아직도 이를 뛰어넘는 그래픽을 보여주지 못하고 있다는 그 엔진입니다.

자, 이쯤에서 본론으로 들어가도록 합시다.
DX10이 나온지 2년이 넘게 지난 지금. '진짜' DX10 게임은 아직도 안나오고 있습니다. 말로는 DX10 지원이라고는 하지만 실상 보면 DX10 옵션에 들어가는 것들은 전부 DX9에서 실행 가능합니다(크라이실사스 같은 경우.. 베리하이 옵션을 XP에서도 돌릴 수 있다는 것이 밝혀졌죠. 것도 화질 열화 하나 없이.)

그 이유라면 다름 아닌 DX10의 하위호환성 문제가 되겠습니다. 시스템 사양은 전혀 문제 삼을 것이 없습니다. 왜냐면 DX10을 돌릴 사양이라면 최소한 지포스 8시리즈, 라데온 HD2000시리즈를 사용 할 것이고 CPU도 대부분이 듀얼코어를 사용 할 것이기 때문입니다.
아시다시피 DX10은 하위호환성을 전혀 고려하지 않았습니다. 덕분에 XP에서는 사용 불가능하죠. XP에서 DX10이 가능하다는 것은 '개'소리임이 이미 밝혀졌고요.
원래 DX10을 완벽히 지원하는 게임이라면 CPU에 대한 부담이 줄어들고, 그래서 현재와 같은 무식한 스펙의 CPU까지는 필요가 없을 것입니다. CPU는 말 그대로 물리연산과 단순작업만을 담당하게 되는 것인데, 현재는 모든 작업을 CPU를 거쳐야만 하고 덕분에 그래픽이 좋아질수록 CPU에 대한 부담은 커질 수 밖에 없습니다.

현재의 DX10은 5년 전에 AMD가 제시한 AMD64와 비슷한 입장이라 할 수 있습니다. AMD64는 더 나은 성능과 하위호환성을 지니고 있습니다만 아직도 제대로 된 어플리케이션이 부족한 것이 현실이죠.
DX10은 그보다 더 험난한 길을 걷게 될 것입니다. AMD64같은 경우는 64bit OS의 등장과 함께 가격이 거의 바닥을 찍은 메모리 가격의 영향 덕분에 요즘 많은 점유율을 얻었습니다만, DX10, 그리고 그 이후의 DirectX는 윈도우 XP의 점유율 하락과 함께 해야 합니다.
그 이유야 너무나 뻔하기 때문입니다. 예를 들어봅시다.
앞으로 DX11에서 테셀레이션과 물리연산을 넣는다고 생각 해봅시다.(물리연산 API를 뭘로 넣느냐는 둘째치고)

그러나.. 그런 멋진 기술을 넣는다고 해봐야 결국은 '일부 호환'게임만 나올 것입니다. 왜냐면 이 역시 DX9와의 호환성을 생각 해야 할 것이기 때문입니다. 아직 DX10조차 완전하게 지원하는 게임이 없는 현실에서 DX11 지원은 요원할 뿐입니다.
유일하게 DX10을 완전하게 지원하는게 있긴 있습니다. 3D Mark Vantage. 그러나 이건 단지 기술을 보여주기만 할 뿐이라는 것은 너무나도 당연한 사실이죠.

뭐 앞으로 DX11이 나온다면 테셀레이션도 지원하긴 하겠죠. 물리엔진도 현재 돌아가는 판에 뭔들 못하겠습니까. 다만 엄청난 CPU부담과 함께 하겠죠.
앞으로 더욱 멋진 기술이 나올 것입니다만, 그 기술을 완전히 발휘하기 전에 먼저 Windows XP가 발목을 잡을 것입니다. 특히 대한민국에서는. 여전히 XP민국인게 현실인데요.