DX
ライブラリ(ディーエックス・
ライブラリ、またはダイレクトエックス・
ライブラリ、デラックス
ライブラリ)は、
2001年に山田巧氏によって開発された、
C++向けの無料ゲーム開発
ライブラリです。広義にはゲームエンジンに分類され、「DxLib」とも表記されます。
ライブラリ自体の著作権は開発者である山田巧氏が保持していますが、オープンソースとして公開されており、使用に制限や条件はありません。
ソースコード配布時には、
ライブラリの著作権表示が求められます。
開発の背景
DX
ライブラリは、
専門学校の
ゲーム学科で使用されていた教材を基に、関係者の協力を得て開発されました。
2001年5月に最初のバージョンがリリースされて以来、現在も開発が続けられています。名称は「DirectX
ライブラリ」に由来しています。
特徴
DX
ライブラリは、
ライブラリ特有の
仕様が少なく、自由度の高さが特徴です。ゲームのジャンルや開発規模に制約されず、
C++の
ライブラリでありながら、
C言語の知識だけでも扱えるよう工夫されています。DirectXや
Windows APIを直接意識せずに使用できますが、プログラムの
エントリーポイントはWinMain(その他プラットフォームでは異なる)となります。開発者は、
ライブラリの前身となった教材の影響を強く受けていると語っています。
マルチプラットフォーム対応
当初はWindowsに依存した設計でしたが、
2015年以降、
PlayStation Vita、
PlayStation 4|PlayStation_4、Android、
Nintendo Switch、iOSなど、様々なプラットフォームに対応しました。Windows版と他のプラットフォーム版では、
ソースコードを共有できますが、一部の関数や機能には差異があります。また、有志によって
PlayStation Portable向けの派生
ライブラリも開発されています。
開発環境
開発にはWindows XP以降のOSが必要で、Visual
C++、
C++ Builder、Gnu
C++などの開発環境がサポートされています。Visual C#用のパッケージも用意されています。DirectXのSDKがなくても、
ライブラリ単体でDirectXを利用できるため、コンパイルが可能です。
ライブラリは静的リンク方式(
.LIB)で提供され、DLLは存在しません。ソースコードは「DxLibMake」というファイルで別途公開されています。
ドキュメント
公式サイトには関数リファレンスやサンプルプログラムがありますが、全ての関数が掲載されているわけではありません。開発者自身もドキュメントが十分に整備されていないことを認めています。公式サイトは2016年3月に一度移転しています。
脆弱性
2015年12月には、文字列を渡す関数でバッファオーバーランが発生する脆弱性が公表され、2016年1月に修正されました。
開発者名
公式サイトや付属の説明書では開発者名は山田巧で統一されていますが、一部のサイトではハンドルネームである夏夕樹として公開されている場合があります。
サポートされている機能
DXライブラリはゲーム開発に特化したライブラリであり、以下のような機能が提供されています。
グラフィックス: 2D描画、3D描画
サウンド: サウンド再生全般、MIDIファイルの演奏、ムービー再生
入力: マウス・キーボード入力、ジョイパッド入力
通信: TCP/IP通信
また、MikuMikuDanceのモデルファイルとモーションファイルの読み込みにも対応していますが、一部仕様に違いが見られます。一般的なアプリケーション開発に必要なウィジェット(コントロール)はサポートされていません。
採用実績と評価
DXライブラリの利用に制限はなく、使用を公言する義務もないため、正確な採用数は不明です。しかし、公式サイトや動画投稿サイトなどで、多くの使用例が確認できます。教育機関での教材としての採用や、派生ライブラリの活用事例も存在します。
DXライブラリは、「画像ファイルを読み込んで画面上に動かす、効果音や音楽を再生するといったゲームに欠かせない処理を簡単に実行できる」と評価されています。また、「C言語で楽にゲームを作る機能を提供してくれる」ため、ゲームプログラミング学習にも適しているとされています。
関連書籍
DXライブラリを使ったゲームプログラミングの入門書も多数出版されています。
14歳からはじめる
C言語わくわくゲームプログラミング教室 Windows98/2000/Me/XP対応 ISBN 4-8997-7151-7
14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2008編―Windows XP/Vista対応 ISBN 4-8997-7217-3
14歳からはじめる
C言語わくわくゲームプログラミング教室 Visual Studio 2010編 ISBN 4-8997-7281-5
14歳からはじめるC言語オンラインゲームプログラミング教室 Windows XP/Vista対応 ISBN 4-8997-7240-8
14歳からはじめる
C++わくわくゲームプログラミング教室―Windows98/2000/Me/XP対応 ISBN 4-8997-7165-7
14歳からはじめる リアルに動く!ゲーム物理プログラミング教室 C言語編―Windows 98/2000/Me/XP/Vista対応 ISBN 4-8997-7180-0
関連項目
ゲームエンジン
WOLF RPGエディター
外部リンク
DXライブラリ置き場(公式サイト)
DXライブラリPortable(PSP動作の派生ライブラリ)
DxPortLib(似た構文を利用するマルチプラットホーム環境)