[IT강의실] 게임 개발자들을 위한 선물 - 다이렉트X

김영우 pengo@itdonga.com

[용어로 보는 IT 2015년 개정판] 1995년, PC 업계에 커다란 변혁이 일어났다. 바로 마이크로소프트의 새로운 운영체제인 ‘윈도우95(Windows 95)’가 출시되었기 때문이다. 이전에 PC에서 주로 사용되던 도스(Dos) 운영체제는 모든 명령어를 직접 글자로 쳐서 입력해야 했기 때문에 사용이 쉽지 않고 불편했지만, 윈도우 95는 그래픽 형식의 창과 메뉴를 직접 클릭하며 손쉽게 작업할 수 있는 그래픽 사용자 인터페이스(GUI: Graphical User Interface) 기반의 운영체제였기 때문에 초보자들도 쉽게 적응할 수 있었다.

다이렉트X
다이렉트X

<게임 개발자들을 위한 MS의 선물, 다이렉트X>

윈도우 95 이전에도 윈도우 3.1이나 맥(Mac) OS와 같은 GUI 기반의 운영체제가 있긴 했지만, 윈도우 3.1은 기능이나 편의성이 많이 떨어지는 편이었고, 맥 OS는 애플사의 컴퓨터에만 탑재되므로 일반 PC에서는 사용할 수 없다는 문제가 있었다. 하지만 윈도우 95는 기능 및 편의성, 그리고 호환성 면에서 이전의 GUI 기반 운영체제보다 한층 발전, 전세계적으로 큰 인기를 끌며 널리 보급되기 시작했다.

다이렉트X
다이렉트X

<윈도우 95의 출시는 GUI 운영체제가 PC에 정착되는 계기가 되었다>

윈도우 95와 게임, 그 애증의 관계

윈도우 95의 보급으로 인해 PC의 멀티미디어 기능 역시 주목을 받기 시작했다. 사용이 한층 쉬워진 덕에 영화나 음악을 감상하거나 게임을 즐기고자 하는 사용자들이 많아졌기 때문이다. 그런데 초기의 윈도우 95용 멀티미디어 소프트웨어, 특히 게임은 그 수가 절대적으로 부족했으며 그나마 간간이 나오는 윈도우 95용 게임은 비슷한 형식의 도스용 게임에 비해 품질이 오히려 떨어지는 경우가 많았다.

그 이유는 도스용 게임과 윈도우용 게임의 개발 환경 차이 때문이었다. 도스는 구조가 단순하여 게임을 구동하기 위해 사용하는 각종 하드웨어(그래픽카드, 사운드카드, 키보드, 마우스 등)를 게임 프로그램 내에서 직접 제어하면서 성능을 이끌어낼 수 있었다. 하지만 윈도우는 도스와 비교되지 않을 정도로 구조가 복잡하고 기능이 많은데다, 게임이 구동되는 중에도 배경에서 운영체제가 상당량의 자원(CPU속도, 메모리 용량 등)을 점유하고 있어서 게임 프로그램에서 하드웨어를 효과적으로 제어하기가 어려웠다. 그래서 윈도우 95가 출시된 후에도 한동안 많은 게임 개발사들은 여전히 도스 기반의 게임만 출시하곤 했다. 하지만 언제까지나 게임이 과거의 유물인 도스 기반에 머물러 있을 수는 없는 일이었다.

게다가 윈도우 95 출시 이후부터 PC용 하드웨어의 종류 역시 폭발적으로 늘어나기 시작했다. 특히, 용도는 같아도 내부적인 구동 방식이 상이한 여러 종류의 하드웨어가 시장에서 공존하는 경우가 많아졌는데, 도스용 게임이라면 프로그램 내에서 각기 다른 하드웨어가 호환되도록 개발자가 직접 수많은 테스트를 거치며 프로그램을 손봐야 한다. 이 과정을 제대로 거치지 않으면, 예를 들어 A그래픽카드를 꽂은 PC에서는 잘 구동되던 게임이 B그래픽카드를 꽂은 PC에서는 오작동을 일으키거나 아예 구동이 되지 않는 등의 상황이 벌어질 수 있었다. 이 때문에 개발자들이 게임 개발에 어려움을 겪기 마련이었고, 개발사마다 게임의 품질도 들쑥날쑥 할 수 밖에 없었다.

윈도우용 게임 개발자들을 위한 MS의 선물, 다이렉트X

이런 게임 개발자들의 어려움을 덜어주어 윈도우용 멀티미디어 소프트웨어(특히 게임)의 개발을 활성화 시키기 위해 마이크로소프트는 1995년 10월에 ‘다이렉트X(DirectX)’를 발표한다. 여러 종류의 멀티미디어 관련 하드웨어에서 각각 최적의 성능을 이끌어내기 위해서는 각각의 프로그래밍 방법이 필요하다. 이러한 여러 가지 프로그램 규칙을 일련의 함수들로 규정하여 모아놓고, 개발자들이 쉽게 참조, 활용할 수 있는 몇 가지 인터페이스(interface: 프로그램이나 하드웨어 사이에 사용되는 언어나 규칙)로 재구성한 것이 바로 '다이렉트X'다.

참고로, 이와 같이 여러 가지 함수로 집합된 인터페이스를 ‘API(Application Programming Interface)’라고 하는데, 다이렉트X를 구성하고 있는 대표적인 API는 2D 그래픽 구현을 위한 다이렉트드로우(DirectDraw), 3D 그래픽 구현을 위한 다이렉트3D(Direct3D), 음향 재생을 위한 다이렉트사운드(DirectSound), 키보드나 마우스, 게임패드 등을 제어하는 다이렉트인풋(DirectInput) 등이다.

다이렉트X
다이렉트X

<다이렉트X는 PC 외에 ‘엑스박스(왼쪽)’, ‘엑스박스 360(가운데)’, 엑스박스 원(오른쪽)과 같은 비디오 게임기에도 적용되었다>

이러한 다이렉트X의 등장으로 인해 윈도우용 게임 개발자들은 여러 가지 하드웨어의 특성을 일일이 연구하지 않아도 손쉽게 이들을 제어해 원활한 성능을 이끌어낼 수 있게 되었다. 이후 윈도우용 게임들의 품질이 눈에 띄게 향상되었으며, 하드웨어 구성이 각기 다른 PC마다 겪게 되는 소프트웨어 호환성 문제도 상당수 해결되었다. 그리고 다이렉트X는 기본적으로 윈도우 기반 PC를 위해 개발된 것이지만, 마이크로소프트의 엑스박스, 그리고 그 후속작인 엑스박스 360, 엑스박스 원과 같은 비디오 게임기에 적용되기도 했다. 때문에 엑스박스 시리즈용으로 개발된 게임 소프트웨어는 PC용으로 다시 개발하는 과정이 비교적 간단하며, 그 반대의 경우도 마찬가지다.

다이렉트X의 버전과 운영체제, 그리고 하드웨어와의 관계

다이렉트X는 1995년에 1.0 버전이 나온 이후 점차 새로운 기능이 추가되며 버전을 높여나갔다. 최신의 소프트웨어일수록 당연히 높은 버전의 다이렉트X 기술이 적용되어 있다. 다만, 플레이 하고자 하는 게임에 최신의 다이렉트X 기술이 적용되어 있더라도 현재 사용 중인 윈도우에 구형 버전의 다이렉트X API가 설치되어있다면 해당 게임이 구동되지 않을 수 있다. 따라서 게임을 자주하는 사용자라면 새로운 버전의 다이렉트X가 나올 때마다 이를 내려 받아 설치해 두는 것이 좋다.

윈도우의 버전에 따라 지원하는 다이렉트X의 범위가 다를 수 있다. 윈도우 95는 2001년에 나온 다이렉트X 8.0a 까지만 지원하며, 윈도우 98과 윈도우 XP는 2004년에 나온 다이렉트X 9.0c 까지 지원한다. 그리고 2009년에 등장한 다이렉트X 11은 윈도우 비스타와 윈도우 7, 그리고 윈도우 서버 2008 이상에서만 사용할 수 있다.

그리고 2012년에 발표된 다이렉트X 11.1은 윈도우 8, 2013년에 나온 다이렉트X 11.2는 윈도우 8.1에서 지원한다. 그 외에 2014년에는 윈도우 10에서 지원하는 다이렉트X 12, 그리고 윈도우 8.1에서도 다이렉트X 12의 일부 기능을 쓸 수 있는 다이렉트X 11.3이 발표되기도 했다.

게임 소프트웨어와 운영체제가 최신의 다이렉트X를 지원하더라도 PC를 구성하고 있는 하드웨어, 특히 그래픽카드가 구형이라면 해당 소프트웨어가 구동되지 않거나 일부 기능이 제한되기도 한다. 이를테면 다이렉트X 11의 경우, 2009년에 출시된 AMD의 라데온 HD 5000 시리즈가 그래픽카드 중에 최초로 지원하기 시작했고 경쟁사인 엔비지아 지포스 시리즈의 경우, 2010년에 출시된 지포스 400 시리즈부터 다이렉트X 11을 지원했다.

윈도우 10 운영체제의 출시와 함께 본격적으로 배포될 다이렉트X 12의 경우, 라데온 HD 7000 시리즈 이상, 지포스 400 시리즈 이상부터 일부 기능을, 2015년에 출시된 라데온 300 시리즈와 지포스 900 시리즈 이상부터 온전한 기능을 지원한다.

다이렉트X
다이렉트X

<다이렉트X 9 기반의 게임 화면(왼쪽)과 다이렉트X 10 기반의 게임 화면(오른쪽)의 비교. 상위 버전의 다이렉트X가 적용된 게임은 그래픽의 품질이 한층 향상된다 <사진 제공: 마이크로소프트>>

상위 버전의 다이렉트X 기술이 적용된 게임은 한층 향상된 품질의 그래픽을 감상할 수 있으나, 그만큼 높은 처리 성능의 하드웨어를 요구한다. 그리고 몇몇 게임들의 경우, 호환성을 위해 낮은 버전과 높은 버전의 다이렉트X 기술을 동시에 적용해 제작되기도 한다. 이런 게임들은 대부분 게임 내의 그래픽 설정 옵션에서 어떤 버전의 다이렉트X 기술을 적용할지 선택할 수 있는 기능을 갖췄다.

다이렉트X
다이렉트X

<2014년에 첫 발표된 다이렉트X 12는 윈도우10 부터 적용되며, 서로 다른 GPU를 조합해 성능을 높이는 것도 가능하다>

특히 다이렉트X 12의 경우, 단순히 그래픽의 효과를 높이는 것 외에도 하드웨어에 직접 접근해 연산 능력을 향상 시키는 기술도 제공하며, 복수의 GPU(그래픽 처리 장치)를 동시에 활용해 성능을 높일 수도 있다. 복수의 GPU를 활용하는 기술은 이전에도 있었으나 당시엔 같은 브랜드의 동일한(혹은 유사한) GPU끼리만 조합이 가능했다. 하지만 다이렉트X 12의 경우, 성능 차이가 크거나 심지어는 브랜드가 다른 GPU끼리 동시에 활용하는 것이 가능하다. 이를테면 AMD 라데온 GPU와 엔비디아 지포스 GPU의 조합, 혹은 인텔의 CPU 내장 GPU와 엔비디아 외장 GPU를 조합해 게임 성능 향상을 꾀하는 것도 가능하다.

글 / IT동아 김영우(pengo@itdonga.com)

본 기사는 네이버캐스트(http://navercast.naver.com/)의 '용어로 보는 IT' 코너에도 함께 연재됩니다.

IT동아의 모든 콘텐츠(기사)는 Creative commons 저작자표시-비영리-변경금지 라이선스에 따라 이용할 수 있습니다.
의견은 IT동아(게임동아) 페이스북에서 덧글 또는 메신저로 남겨주세요.