특집기사 > 전체

① 다이렉트X? 무엇에 쓰는 물건인고?

/ 2

드디어 윈도우 비스타와 함께 다이렉트X 10이 그 모습을 드러냈다. 이 소식에 몇몇 유저들은 게임 그래픽에 새로운 바람이 불어올 것이라 기대하기도 했고, 또 다른 유저들은 ‘그래봐야 달라질 게 무언가’라며 시큰둥한 반응을 보이기도 했다.

과연 다이렉트X 10은 필수인가, 선택인가? 이를 판단하려면 우선 다이렉트X가 무엇인지부터 살펴보아야 한다. 이번 시간에는 다이렉트X의 의미와 용도부터 새로 출시된 다이렉트X 10의 요모조모까지, 유저가 알아야할 다이렉트X의 모든 것을 살펴보는 시간을 가져보자.

directx-03.jpg

컴퓨터 좀 조립할 줄 안다는 A군은 친구인 B양에게 PC 조립을 부탁받았다. 마침 B양의 자금도 넉넉했기에 A군은 N사의 최신형 그래픽 카드를 추천하기로 했다. 그래픽 카드의 값이 생각보다 너무 비싼 것을 발견한 B양은 A군에게 질문을 한다.

B양 : “이게 그래픽 카드라는 거지? 그런데 왜 이렇게 비싸?”

A군 : “응. 요즘 나오는 게임들을 제대로 돌리려면 다이렉트X 10을 지원하는 이 그래픽 카드를 꼭 사야 해. 이게 아니면 요즘 게임들은 못 돌려.”

B양 : “다이렉트X? 그게 뭔데?”

A군 : “… (한참 생각하다가) …… 게임 돌리는 데 필요한 프로그램이야. 윈도우 안에 들어있어.”

B양 : “?”

■ 다이렉트X, 무엇에 쓰는 물건인고?

엄밀하게 말하면, A군의 대답은 정답이 아니다. 하지만 의외로 많은 유저들이 A군처럼 다이렉트X를 단순히 ‘게임 돌리는 프로그램’ 정도로 알고 있는 것이 사실이다. ‘게임용 드라이버의 일종 아닌가?’라고 생각한다면 그나마 조금은 다이렉트X의 역할을 이해하는 셈이지만, 이 또한 정답은 아니다.

사실 다이렉트X의 자세한 내용은 게임 개발자들에게나 필요한 이야기로, A군 정도의 지식만으로도 게임을 즐기는 데는 큰 문제가 없다. 적어도 A군은 ‘게임과 그래픽 카드가 같은 다이렉트X를 지원해야 한다’는 사실은 알고 있으니까 말이다. 하지만 다이렉트X의 정확한 의미를 알지 못하는 A군은 앞으로도 계속 똑같은 질문에 우물쭈물하게 될 것이고, 그래픽 카드의 업그레이드에 필요 없는 돈을 낭비하게 될 확률도 높아질 것이다. 그러니 기왕 잘난 척을 할 거면 조금 더 알고 넘어가는 것도 좋지 않겠는가?

□ 왜 다이렉트X가 필요한가?

분명 다이렉트X와 게임은 뗄 레야 뗄 수 없는 관계에 있다. 하지만 그냥 다른 프로그램들처럼 복잡한 드라이버 없이 윈도우에서 구동하면 편할 텐데, 어째서 마이크로소프트는 다이렉트X라는 프로그램(?)을 만들어서 유저들의 머리를 아프게 하는 것일까?

directx-04.jpg

directx-05.jpg

▲ 우리가 즐기는 게임치고 '다이렉트X'와 연관되지 않은 게임은 거의 없다

① 게임의 그래픽 처리 때문에

첫 번째 이유는 ‘게임에는 대용량의 그래픽 연산이 필요하기 때문’이다. 게임 스코어, 캐릭터의 움직임과 같은 산술적인 데이터의 계산 분량은 그래픽 데이터의 연산 분량에 비하면 말 그대로 새 발의 피 수준이다. 따라서 워드나 웹브라우저처럼 간단한 그래픽 처리만을 요구하는 프로그램들은 그냥 윈도우 상에서도 충분히 구동할 수 있지만, 복잡한 그래픽을 요구하는 게임들은 그래픽 성능을 향상시켜주기 위한 무언가가 반드시 필요하다.

CPU가 이런 복잡한 그래픽 연산을 모두 처리할 수 없기 때문에 달린 것이 바로 그래픽 카드로, 여기에는 CPU와 맞먹는 속도를 가진 또 하나의 프로세서인 GPU(Graphic Processing Unit)가 들어있다. GPU는 원래라면 CPU가 다 처리해야 할 그래픽 작업의 일부를 대신 처리해주어 CPU의 부담을 줄이고 컴퓨터의 전반적인 속도를 높인다.

여기서 CPU와 GPU의 다리 역할을 하는 것이 바로 다이렉트X다. 말하자면, CPU가 할 일 중 골치 아픈 몇 개를 중간에서 쏙 빼다가 GPU가 대신 수행하게 해 주는 것이다.

② 윈도우의 처리 구조가 복잡하기 때문에

윈도우는 원활한 멀티태스킹과 시스템 안정성을 위주로 만들어졌기 때문에, 윈도우의 모든 작업은 관리 시스템인 ‘커널’을 통해 입력과 연산, 출력을 반복한다. 이른바 중앙집권제인 이런 복잡한 내부 구조로 인해 윈도우 상에서의 데이터 연산은 상당히 길고 복잡한 과정을 거치게 된다. 단시간에 엄청난 데이터를 처리하고 전달해야 하는 게임들에 있어, 이런 복잡한 처리 구조는 쥐약일 수밖에 없다.

그래서 게임에 관련된 그래픽만이라도 최대한 빠른 속도로 처리하기 위해, 데이터 처리의 중간 과정을 생략하고 게임 프로그램이 직접 하드웨어에 명령을 전달할 수 있게 하는 것이 다이렉트X의 중요한 목적이다.

directx-01.jpg

▲ 도스 시절의 게임들은 하드웨어의 성능을 최대로 발휘할 수 있었지만, 개발이 까다로웠다

③ 개발자들이 골치 아파서

다이렉트X를 가장 사랑하는 것은 게임 유저가 아니라 게임 개발자들이다. 사실 하드웨어 본연의 성능을 발휘하는 데는 윈도우보다 옛날에 쓰던 도스 쪽이 훨씬 효율적이다. 윈도우처럼 복잡한 관리과정 없이 하드웨어에 직접 명령을 전달하기 때문이다. 그럼에도 불구하고 게임 개발자들이 도스를 버리고 윈도우를 택한 것은 바로 윈도우의 뛰어난 호환성 때문이었다.

그래픽 카드를 만드는 회사는 한두 개가 아니고, 그들이 만드는 그래픽 카드의 종류도 수천 개에 달한다. 그래픽 카드의 성능이 다르듯 그래픽 카드마다 받아들이는 명령어도 다 다르기 때문에, 도스 시절의 게임 개발자는 게임 안에 각각의 그래픽 카드에 맞는 명령어를 일일이 다 입력해야만 했다. 하지만 윈도우는 커널이 관리하는 ‘드라이버’가 명령어를 해석해주는 역할을 해 주므로, 개발자는 하드웨어에 신경 쓰지 않아도 마이크로소프트가 제공하는 하나의 명령어 세트로 게임을 만들 수 있게 되었다.

그 명령에 세트에 붙은 이름이 바로 다이렉트X다. 결국 다이렉트X의 역할은 ‘누구나 쉽게, 하드웨어에 신경 쓰지 않고 게임을 개발할 수 있는 솔루션’인 것이다.

'2편: 다이렉트X 10.0 무엇이 달라졌나'에서는 윈도우 비스타에 탑재된 '다이렉트X 10'이 정말 우리의 게임 환경을 윤택하게 해줄지에 대해 알아보도록 하겠습니다.

이 기사가 마음에 드셨다면 공유해 주세요
게임잡지
2000년 12월호
2000년 11월호
2000년 10월호
2000년 9월호 부록
2000년 9월호
게임일정
2025
11