open-mgl-dev (開発バージョン) (0.7.9.80) | 2009-11-02 22:25 |
open-mgl (DirectX9, VC++2008) (0.7.9) | 2009-09-27 20:32 |
roast-dev (開発バージョン) (0.0.1.40-dev) | 2009-11-02 23:09 |
DirectXを利用した2D、3Dグラフィクスゲーム開発向けのC++ライブラリ、及びその上位フレームワークを作成しています。
最も短いステップ数で、ゲーム開発が行える事を目指しています。
初心者でも簡単に扱え、且つ、上級者の使用にも耐えられるライブラリを目指します。
DirectXを利用した2D、3Dグラフィクスゲーム開発向けのC++ライブラリ、及びその上位フレームワークです。
初心者でも簡単に扱え、且つ、上級者の使用にも耐えられるライブラリを目指します。
比較的オブジェクト指向の強いライブラリでもあります。
August Frameworkでは更にオブジェクト指向の色を強め、コントロールベースによる開発を行います。
全ての機能クラスはコントロールとして扱われ、基底クラスとして agh::CControlBase を持ちます。
共通の基底クラスを持つ事により各クラス間のインターフェースが統一され、複雑な連携を取る事も可能になりました。
それぞれの各機能クラスは、必ず”デフォルトの処理”を持ちます。
これにより、ユーザが入力すべきコードは必要最低限になります。
これまでのDirectXによるゲーム開発では、莫大な初期化処理を記述する必要がありましたが、
August Framework ではフレームワークが勝手にやってくれます。
言語上の制限により、コントロールの登録処理を1行記述する、程度の手間は多少残りますが、
それ以外には、特に何かする必要がなければ、何もする必要はありません。
最も短いコードでは3行で済みます。あなたは指定された一つのヘッダファイルをincludeし、
使いたいクラスを宣言し、実行すべきメソッドを呼び出せばいいだけなのです。
(WinMainの宣言や、windows.hのinclude等については除いたステップ数です)
これは、まっさらなウインドウを表示するだけの場合ですが、
しかし、これに加えて、画面上に一つの画像を表示しようとした場合でも、+10ステップ程度の追加で済みます。
初めてDirectXによるゲーム開発を行う人にとっては”これが当然”と思うかも知れませんが、
そうでない人にとってはそうではないのです。そういう人々にとって August Framework は
かつてない程の高速なゲーム開発を実現する手段になるでしょう。
(言語上可能な限り基本的に)ユーザは ユーザは、特に何か特別な処理を行う必要がなければ、クラスを宣言するだけで良いのです。
August Frameworkは、Open-MGLによる
これによりある程度の処理は、
コアライブラリ
[[実装状況]]
残りの3行ですか?windows.hのincludeと、WinMain関数の開始と終了、その3行です。
特徴
DirectXの知識必要なし
他のライブラリとの違い 純オブジェクト指向 若干エージェント指向
DirectXを利用した2D、3Dゲーム開発向けのライブラリです。
VC++用です。関数形式ではなくクラス形式で提供しているのでVBとかじゃ使えないかも・・・。
元々は自分のサイトにて公開していたものですが、一人で開発し続けるには余りに規模がデカく、
また自分の環境では起きないバグ等もあると思い、2007年02月09日 にSourceForge.jp上にオープンソース化しました。
8月フレームワーク───
JavaのSpring Frameworkをもじってと言うか、何と言うか、まぁぶっちゃけ適当な名前付けなんですけど。(何
MFCのように、メソッドをどんどんオーバーライドしていくことにより、機能を実装していくタイプのフレームワークです。
前処理や後処理が複雑大量であるDirectX開発では、やっぱりこの形がベストなのかなぁ、とつい最近気付きました。
このタイプのプログラミング手法は嫌う人も居ますが、開発者の負担を考えると、やっぱりこの形が最善です。
詳細は別ページに記載します。
現在、Open-MGLを利用した上位アプリケーションとして「Neptune」と言うソフトを(別の SourceForge.jp プロジェクトとして)開発中です。
Neptuneは2D、3Dゲームの統合開発環境(IDE)──というよりも「オーサリング・ツール」です。
単なる言語ライブラリでは限界があると判断し、2008年初めに開発を開始しました。
なお、これに伴いOpen-MGLの開発がとまったわけではなく、むしろNeptune開発中に
「こんな機能があるといいな」と言うのをどんどんフィードバックし、こちらも依然として開発を続けています。
(むしろこのフィードバックにより、以前にも増して開発が活発化しているとも言えます。)