= Open-MGL Wiki =
[[BR]]
== Open-MGLとは? ==
DirectXを利用した2D、3Dグラフィクスゲーム開発向けのC++ライブラリです。
初心者でも簡単に扱え、且つ、上級者の使用にも耐えられるライブラリを目指します。
比較的オブジェクト指向の強いライブラリでもあります。
[[BR]]
== August Framework 2.0 ==
>[August_Framework_2.0 August Framework 2.0]
August Frameworkでは更にオブジェクト指向の色を強め、コントロールベースによる開発を行います。
全ての機能クラスは'''コントロール'''として扱われ、基底クラスとして agh::CControlBase を持ちます。
共通の基底クラスを持つ事により各クラス間のインターフェースが統一され、複雑な連携を取る事も可能になりました。
[[BR]]
それぞれの各機能クラスは、必ず'''”デフォルトの処理”'''を持ちます。
これにより、ユーザが入力すべきコードは必要最低限になります。
これまでのDirectXによるゲーム開発では、莫大な初期化処理を記述する必要がありましたが、
[[BR]]August Framework では'''''フレームワークが勝手にやってくれます。'''''
言語上の制限により、コントロールの登録処理を1行記述する、程度の手間は多少残りますが、
[[BR]]それ以外には、'''特に何かする必要がなければ、何もする必要はありません。'''
最も短いコードでは'''3行'''で済みます。あなたは指定された一つのヘッダファイルをincludeし、
[[BR]]使いたいクラスを宣言し、実行すべきメソッドを呼び出せばいいだけなのです。
[[BR]](WinMainの宣言や、windows.hのinclude等については除いたステップ数です)
これは、まっさらなウインドウを表示するだけの場合ですが、
[[BR]]しかし、これに加えて、画面上に一つの画像を表示しようとした場合でも、'''+10ステップ程度の追加で済みます。'''
[[BR]]初めてDirectXによるゲーム開発を行う人にとっては”これが当然”と思うかも知れませんが、
[[BR]]'''そうでない人にとってはそうではない'''のです。そういう人々にとって August Framework は
[[BR]]かつてない程の高速なゲーム開発を実現する手段になるでしょう。
{{{ comment
[[BR]]
== あ、そうそう。
実は'''ドキュメントが全然メンテナンスされていません。'''[[BR]]
なのでまぁ、ドキュメント書かれてないクラスとかは、自分でヘッダファイルとか見て解析してください・・・。[[BR]]
まぁ基本的にクラス名、メソッド名、変数名とはそのまんま分かり安めに書いてある筈なので、頑張って解析してちょ・・・!
[[BR]]
== MSL/MWL/MWLmfc
DirectXとは関係ない、且つ特にゲーム用途と言う訳でもないユーティリティ関数、クラス等を別に分離しています。[[BR]]
・・・んまぁパッケージ内のincludeとかでは一緒くたになってますけどネ・・・。
ちなみにそれぞれMSL=Myu Standard Library、MWL=Myu Windows Library、MWLmfcはそれのMFC部分、って感じです。[[BR]]
あ、そうそう。MGLは'''Myu Game Library'''の略です。
[[BR]]
== 3Dのサポートは・・・?
~~~ちょっと最近視野に入れ始めました。最終的にはサポートするかもです。~~~
本格的にTryし始めてみています。(ぉ
[[BR]]
== ライセンス
近々[http://sourceforge.jp/projects/opensource/wiki/licenses%2Fnew_BSD_license BSD License]から[http://sourceforge.jp/projects/opensource/wiki/licenses%2FMIT_license MIT License]へと変更する予定です。
BSD LicenseとMIT Licenseとでは、基本的に'''「著作権表示さえしていれば後は何をやってもOK」'''と言うスタンスは同じですが、
BSD Licenseの場合、三番目の条項として、
{{{
Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
(日本語訳: 特別の許可が無くては、このソフトウェアから派生した製品の推奨や宣伝に、<組織>の名前やその貢献者の名前を使用してはいけない。)
}}
と言う項目がある点で異なります。多分'''「このソフトから派生したソフトを宣伝するために、その謳い文句として組織名とか作者名を利用するのはやめてね。」'''という事を言いたいのだと思うのですが、それを制限する理由は特にないと思いますし、組織名(即ちプロジェクト名)を公表───'''「このソフトはOpen-MGLを使って作っています!!」'''みたいな風にして宣伝してもらうのはむしろ、このプロジェクトの存在を世の中により広く知ってもらうために良い事だと思うのです。なので、この第三条項のない、MIT Licenseへと移行しようかと思っています。(と言うかこの第三条項の存在意義がそもそも良く分かりません。「俺たちの名前を宣伝の引き合いに出すんじゃねー。自分の[http://d.hatena.ne.jp/keyword/%A5%CD%A1%BC%A5%E0%A5%D0%A5%EA%A5%E5%A1%BC ネームバリュー]の力のみで宣伝しろ!」ってこと・・・?詳しい人教えて!!)
[[BR]]
== ロードマップ
* [ロードマップ]
[[BR]]
[[BR]]
[[BR]]
[[BR]]
}}}
[[BR]]
== サブプロジェクト
* [Roast+]
{{{ comment
* [MSL]
* [MWL]
* [MWLmfc]
}}}
* [MXP MXP++]
* [Ageha AGH 2.0/Ageha]
* [AGH]
* [August_Framework August Framework]
* [August_Framework_2.0 August Framework 2.0]
* [http://sourceforge.jp/projects/neptune Neptune Project] - 別 sf.jp プロジェクト
== メニュー
* 開発者募集要項 (準備中...)
{{{ comment
* ~~[IRCチャンネル]~~ (最近あんまINしてないです。それと別の手段にした方が良いかもとかを検討中)
}}}
* [http://sourceforge.jp/projects/neptune/wiki/%E9%96%8B%E7%99%BA%E6%97%A5%E8%AA%8C 開発日誌(Neptuneと共有)]
* [開発環境の構築 ソースコードをコンパイルするには]
* [コーディング規約]
* [ロードマップ]
* [Memo]
[[BR]]
== for Next Generation is "Neptune" ....
現在、Open-MGLを利用した上位アプリケーションとして「Neptune」と言うソフトを(別の SourceForge.jp プロジェクトとして)開発中です。
>[http://sourceforge.jp/projects/neptune Neptune]
Neptuneは2D、3Dゲームの統合開発環境(IDE)──というよりも'''「オーサリング・ツール」'''です。[[BR]]
単なる言語ライブラリでは限界があると判断し、2008年初めに開発を開始しました。
なお、これに伴いOpen-MGLの開発がとまったわけではなく、むしろNeptune開発中に'''[[BR]]
「こんな機能があるといいな」'''と言うのをどんどんフィードバックし、こちらも依然として開発を続けています。[[BR]]
(むしろこのフィードバックにより、以前にも増して開発が活発化しているとも言えます。)