차세대 게임개발 언어로 D에 주목하는 이유 - 1


예전 모회사에서 새 게임 프로젝트를 준비할 때, C++ 대신 D 언어를 심각하게 고려한 적이 있습니다. 3년도 더 된 이야기입니다만... 결국 정식 디버거도 없는 열악한 개발 환경 등을 고려할 때 무리다 판단했었습니다.

그 사이 D도 더디지만 발전하여 D 2.0 스펙이 나왔더군요. 그리고 도 출간 예정입니다. 그것도 C++ 구루의 한명인 Andrei Alexandrescu에 의해서 말입니다. 아직 몇개월이 더 지나야 책이 최종 출간될 것 같습니다만... 저는 출간 전 작성 중인 책을 미리 구입해 볼 수 있는 서비스를 통해 미완성본을 읽어보았습니다.

역시 그였습니다. D 1.0에서도 C++의 가려운 점을 많이 긁어주고 있다 생각했었는데, 그의 합류로 탄생한 D 2.0은 한층 더 발전한 느낌입니다. C++도 차기표준 C++0x로 많은 개선이 예정되어 있으나 그에 견주어도 여전히 매력적입니다.

그래서 차세대 게임개발 언어로서의 D의 강점을 앞으로 몇회에 걸쳐 다뤄볼까합니다. 자, 바로 시작해보죠.
  1. C++, Objective-C와 마찬가지로 C와의 하위호환성을 유지합니다.
    • 이를 통해 게임개발에 필수적인 DirectX, OpenGL 등과 운영체제 API의 활용이 가능합니다.
    • 그 밖에도 많은 공개/상용 C 라이브러리들을 D 언어와 조합하여 쓸 수 있습니다.
    • 마지막 한 방울의 성능까지 짜내야할 부분에서 저수준으로 접근하는 것이 가능합니다.
  2. 언어 차원의 단위테스트/연관배열(일명, 사전)/배열쪼개기 지원

    • Type-generic한 이진검색 구현의 예입니다.
    • 8,9줄에서 파이썬에서와 유사한 배열쪼개기(array slicing) 기능을 확인하실 수 있습니다.
    • C++0x에서와 같은 auto를 통한 타입 유추도 확인하실 수 있죠.
    • unittest 키워드로 아주 간편하게 단위테스트를 작성할 수 있습니다. 이러한 단위테스트들은 컴파일 시 -unittest 인자를 주면 main 진입 전에 자동으로 수행됩니다.
벌써 관심이 가지 않으세요!? 맛보기인 이번 회는 이상으로 마무리하겠습니다. 다음 회에 더욱 매력적인 D의 특성들로 찾아뵙겠습니다. ^^

참고자료

* 이 포스트는 blogkorea [블코채널 : 웹, 컴퓨터, it에 관련된 유용한 정보 및 소식] 에 링크 되어있습니다.  


크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 10

top