다이렉트x는 뭘까?

2018. 1. 20. 08:19 / 서기랑

 요즘 윈도우는 다이렉트x의 최신 버전이 나오면 윈도우 업데이트에 포함되어 따로 다운로드 하여 설치할 필요가 없지만 예전 xp 시절만 하더라도 다이렉트x의 새로운 버전이 나오면 사용자가 직접 다운로드하고 설치해야 핬다.

 그러다 보니 다이렉트x와 관련한 에러는 생각보다 자주 볼 수 있었는데 특히 게임을 실행하려고 보면 에러가 발생하여 여러 사람들에게 짜증을 선사하는 경우가 많았다.


다이렉트x?

 마이크로소프트에서 윈도우에 맞게 개발한 종합 멀티미디어용 라이브러리다.

 다른 곳에도 사용되지만 게임에 특히 많이 사용되는데 이 녀석이 나오게 된 배경이 바로 게임 때문인 점도 한 몫할 것이다.


 예전 DOS 시절에는 하드웨어에 직접 액세스 하는 것이 가능했기 때문에 게임 개발에 그래픽 제조사의 칩셋 라이브러리를 이용하여 최적화된 성능을 낼 수 있었다.

 하지만 GUI 환경 즉 윈도우로 넘어오면서 보안상 직접 액세스를 막고 윈도우를 거치게 변경하였는데 결과적으로 프로그램 개발은 편해졌지만 속도가 엄청나게 느려졌다.

 이로 인해 윈도우라는 운영체제에서는 개발되는 게임이 많지 않았고 당연히 할 수 있는 게임은 별로 없어 사람들은 '윈도우에서는 할 게임이 없다.'라는 불평을 하기 일수였다.


 WinG의 개발 하지만...

 마이크로소프트에서도 이를 심각하게 여기고 있었고 해결을 위해 94년 윈도우 3.1용으로 WinG라는 라이브러리를 개발한다.

 하지만 WinG를 사용해도 여전히 속도는 느렸기 때문에 개발되는 게임 대부분은 빠른 속도가 필요 없는 턴제 전략 게임이나 퍼즐 등이었고 사람들의 반응은 별로 좋지 않았다.

 상황이 이렇다 보니 윈도우가 버전업을 하여 95가 되고 또한 컴퓨터도 486에서 펜티엄으로 업그레이드된 상황에서도 여전히 윈도우에서는 할 게임이 없어 사람들은 게임을 위해 DOS를 선택해야 했다.


 WinG의 환골탈퇴? 이름은 다이렉트x

 95년 마이크로소프트는 WinG를 윈도우95에 맞게 다이렉트x라는 명칭으로 개발을 한다.

 하지만 WinG 보다 나아졌을 뿐 여전히 속도는 느렸기 때문에(특히 3D 부분) '윈도우95는 사무 및 작업, 게임은 DOS'라는 현상은 여전히 달라지지 않았다.


 윈도우를 설치해도 정작 게임은 DOS로 하고 있으니 불만을 가진 사람들이 많았는데 이 중에서는 다이렉트x라는 자체 라이브러리 지원 따위는 때려치우고 OpenGL이나 도입하라는 의견이 많았다.

 이런 의견에도(혹은 비난) 마이크로소프트는 다이렉트x의 개발을 포기하지 않고 이어나갔으며 다이렉트3D, 다이렉트사운드3D 등 기능의 추가 및 개선을 하면서 버전업을 계속해 나간다.


 글라이드 API 등장, 다이렉트x의 위기.

 이렇게 비난을 받으며 다이렉트x가 버전업을 하고 있는 동안 미국의 그래픽 제조사 3dfx에서는 Voodoo라는 그래픽 카드를 만들면서 글라이드(Glide)라는 퍼포먼스가 상당히 좋은 API를 내놓는다.

 덕분에 윈도우 게임도 점차 많아졌는데 97년도에는 DOS게임보다 윈도우 게임이 더 많아졌으며 많은 사람들의 인식도 '게임은 DOS보다 윈도우'로 바뀌게 된다.

 하지만 정작 개발된 게임들은 글라이드 API를 사용해서 만들어졌기 때문에 윈도우 게임이 많이 늘었음에도 마이크로소프트는 상당한 위기감을 느끼게 된다.


 다이렉트x의 승리!

 글라이드 API에 위기를 느낀 마이크로소프트는 개발하던 다이렉트x 4.0을 스킵해버리고 5.0 개발에 착수한다.

 하지만 97년 당시의 글라이드 API는 다이렉트x로서는 넘사벽 급의 퍼포먼스를 가지고 있었기 때문에 여러 가지 기능이 업그레이드가 되었지만 넘어서기란 역부족이었다.


 그렇게 다이렉트x는 글라이드 API에게 주도권을 뺐긴채로 2년이라는 시간을 보내게 된다.

 그리고 99년, 그동안 꾸준히 버전업을 한 다이렉트x 는 7.0이 되었는데 계속된 개발 끝에 드디어 글라이드 API를 따라잡는 데 성공한다.


 글라이드 API와 대등해진 다이렉트x, 대등해졌지만 아직 결과는 알 수 없었다.

 왜냐하면 당시 그래픽 카드 시장의 점유율은 3dfx의 Voodoo 시리즈가 높았기 대문에 윈도우 게임 개발도 글라이드 API를 이용하는 것이 조금 더 유리했다.


 하지만 여기서 3dfx가 엄청난 실수를 하면서 운명의 여신은 다이렉트x의 편을 들어준다.

 글라이드 API를 개발한 3dfx는 Voodoo3를 개발하면서 타사의 칩셋 공급을 전면 중단하고, 자체 생산 모델만을 출시하는 독점 전략으로 선회한다.

 이것이 독이 되어 3dfx의 그래픽 카드 시장 점유율은 엄청나게 떨어지게 되고, nvidia의 그래픽 카드 시장 점유율이 엄청나게 오르게 되는데 설상가상으로 다이렉트x가 글라이드api과 대등해진 수준이 되었기 때문에 개발자들도 글라이드 api를 고집할 필요가 없어졌다.


 한마디로 nvidia 그래픽 카드에 다이렉트x를 이용하는 프로그램이 늘어날 수 있는 환경이 된 것이다.

 그렇게 2000년도가 되면서 결국 다이렉트x는 주도권을 잡는데 성공하고, 윈도우 게임은 다이렉트x라는 공식을 성립시킨다.

 (참고로 지금 보면 알겠지만 3dfx는 이때의 타격으로 파산, nvidia에게 대다수의 지적 재산권을 매각해 버린다.)


 현재의 다이렉트x

 그 이후로는 지금까지 자잘한 사건들이 있었지만 큰 문제 없이(조금 있었나...?) 꾸준히 발전해왔다.

 윈도우의 버전별로 지원할 수 있는 최신 버전은 조금씩 다르지만 가장 최신 버전은 12 이다.