DirectXを利用した2D、3Dゲーム開発向けのライブラリです。
VC++用です。関数形式ではなくクラス形式で提供しているのでVBとかじゃ使えないかも・・・。
元々は自分のサイトにて公開していたものですが、一人で開発し続けるには余りに規模がデカく、
また自分の環境では起きないバグ等もあると思い、2007年02月09日 にSourceForge.jp上にオープンソース化しました。
しかし、いざそのライブラリを使用してゲームを作ってみたものの、そのソースコードは非常に複雑で、汚く難解なものでした。
これを解決するには、恐らく、単なる呼び出し型のライブラリでは駄目。
テンプレート・プログラミングか、それともMix-inか・・・でも、それらを用いた所で、本当に綺麗で、真に分かりやすいプログラムが書けるようになるのだろうか・・・?
・・・単なるライブラリでは限界があるかも知れない。
ゲームのプログラミングは非常に複雑です。
例えDirectX関連の部分が簡略化出来たとしても、今度は”ゲームプログラミングとしての複雑さ”にぶち当たります。
確かに、テンプレート・プログラミングやMix-in、またはそれ以外の手法を用いることにより、ある一定量の成果は出せるかも知れない。
しかし、私はこのライブラリを作る過程で、どんなに仕組みを、設計を極めたとしても、ある一定の所で壁にぶち当たるのではないか。と思いました。
C++は非常に柔軟な言語であるため、それが”C++と言う言語の壁”だとは思いません。
私が思うに”プログラミング言語としての壁”にぶち当たるのではないかと思いました。
それがNeptuneプロジェクトの始まりでした。
現在、Open-MGLを利用した上位アプリケーションとして「Neptune」と言うソフトを(別の SourceForge.jp プロジェクトとして)開発中です。
Neptuneは2D、3Dゲームの統合開発環境(IDE)──というよりも「オーサリング・ツール」です。
単なる言語ライブラリでは限界があると判断し、2008年初めに開発を開始しました。
なお、これに伴いOpen-MGLの開発がとまったわけではなく、むしろNeptune開発中に
「こんな機能があるといいな」と言うのをどんどんフィードバックし、こちらも依然として開発を続けています。
(むしろこのフィードバックにより、以前にも増して開発が活発化しているとも言えます。)