DXライブラリ作者山田巧
DXライブラリ(ディーエックス・ライブラリ、またはダイレクトエックス・ライブラリ、デラックスライブラリ)とは、2001年に山田巧がC++用に開発した、無料のコンピュータゲーム開発用ライブラリである。広義にはゲームエンジンに分類される。DxLibとも表記される。
ライブラリ自体の著作権は開発者の山田巧が保持しているが、ライブラリはオープンソースとして公開されている[1]。ライブラリの使用に制限や条件は一切なく、ソースコード配布時に限りライブラリの著作権表示を求めている[2]。 専門学校のゲーム学科[3]で既に使用されていた一般公開されていない教材(ライブラリ)を元に、関係者の協力の下、山田巧がパソコンゲーム(Windows)用に開発した[4][5]。2001年5月に初版がリリースされてから、2019年10月現在でも開発が進んでいる。名称は「DirectXライブラリ」から由来している[6]。 ライブラリ独特の仕様が少なく自由度が高いため、ゲームジャンルや開発規模に制約されないことを特徴に上げている。C++用のライブラリではあるがC言語の知識だけでも扱えるよう工夫されている。DirectXおよびWindows APIを意識せずに使えるように設計されているものの、プログラムのエントリーポイントはWinMain(その他プラットフォーム向けでは異なる)になる。基本的な設計思想について山田巧は、ライブラリの前身にあたる教材の影響を強く受けていると語っている[5]。 2001年開発当初は、DirectXおよびWindows APIを使用しているため、全体的にWindowsに依存しておりマルチプラットフォーム設計ではなかった。2015年9月にPlayStation Vita、同年10月にPlayStation 4、2017年2月にAndroid、2018年6月にNintendo Switch、2019年3月にiOSにそれぞれ対応した。Windows版とその他プラットフォーム向けではソースコードの共有もできるが、一応対応していない関数・機能も存在する。また、有志によってPlayStation Portableで動作する派生ライブラリを開発するプロジェクトが存在する。 開発時のOSはWindows XP以降が必要である。サポートされている開発環境はVisual C++、C++ Builder (Borland C++)、Gnu C++の他にも、Visual C#用パッケージも用意されている。ライブラリ単体でDirectXが利用できるよう設計されているため、DirectXのSDKがなくてもコンパイルできる。ライブラリは静的リンク方式(*.LIB)でのみ提供されておりDLLは存在しない。DXライブラリのソースコードはライブラリ自体には入っておらず、山田巧により DxLibMake というファイルで別途公開されている。 公式サイトにライブラリの関数リファレンスページやサンプルプログラムが用意されているが、「主な関数の説明」とされており掲載されていない関数もある[7][8]。公式リファレンスページ上で全ての関数が掲載されていない状況について、2010年10月に山田巧も「ドキュメントが整備し切れていない」と認めている[9]。なお、公式サイトは2016年3月に一度移転している。 2015年12月、DrawFormatStringなどの文字列を渡す関数でバッファオーバーランが発生し、任意のコードを実行される脆弱性が公表された[10]。2016年1月、JVN iPediaにて告知されIPA上にも掲載された[11][12]。脆弱性は3.16で修正されている。 開発者の名前について、公式サイトや付属の説明書では山田巧で統一されているが、ミラーで配布されているベクターではハンドルネームで夏夕樹と名乗っている[13]。
概要