• Showing Page History #52763

開発日誌

カレンダー:
2008: 3月 / 5月 / 6月 / 8月 / 9月 / 10月
2009: 1月 / 2月 / 4月 / 6月 / 7月 / 10月


最近まったくもって動きがありませんが・・・。 - 2010/02/06 (土) by myun2


何もせず、ただぐーたらしていた訳ではありませんよ・・・?(本当に


ちなみに、仕事で忙しくて何もしていないと言うオチでもありません。・・・まぁ、仕事はそれなりに忙しくもありますが。(何

と言うか実は、コミット履歴自体は1/15くらいまであるものの、実は本当のMGL・・・って言うか何て言うか、August Frameworkやら、 直接ゲーム開発に関わる部分は、実は11/20辺りのが最後だったり・・・。

つまりは、前回の日記、及び前回の最終リリースより半月後以降は、全然違う事をやっていたと言う事です。


で、何をやっていたかと言いますと。


Roast+の方をずーーーっと、弄ってました。

2009/10/10の日記で書いた、SIMDの件の続きに始まり、ファイルアクセスの共通クラスやら、WaveファイルやらLFSRやら・・・。

まぁ、本プロジェクト(Open-MGL/Neptune)とは全く関係ない、別プログラムのための作業なんですけど。(←

でも折角なので、その過程で出てきた、共通関数/クラスとして出来そうな部分を、Roast+の方にも蓄積・・・と言う訳です。
と言うか、こう言ったライブラリ的な物って言うのは、実際に使っていく中で作って行かないと、いざ使ってみた時に、 なかなか実用的でなかったりしますしね。目的無しで作っても、使われるに値しないものが出来てしまう事がよく有ります。

なのでまぁ、丁度いい機会と言うか、そんな感じです。


で、今ふと気がつけば、何故か「テンプレートプログラミング」にまで手を出してたりします。(何

C++歴かれこれ7年くらい・・・。ようやく重い腰を上げてレンプレートプログラミングに着手した感じです。
あ、ちなみに、ジェネリクス的なテンプレートの使い方だけであれば、勿論以前から使ってましたけどね。
ただしこういうのは「テンプレートプログラミング」とは言わない・・・。本当の意味での 「テンプレートプログラミング」に手を出し始めたのは、ついぞ年が開けてからの事です。

定番書「Modern C++ Design」 も買ったりしました。ま、基本的には出来る限り本には頼らず、自力で解決して行く方針にはしておりますが。(まぁ本を買ったのは、困った時用、バイブル的な感じです)
んでまぁRoast+の方に、そういったテンプレートプログラミング的な要素もバンバン追加していってる訳なのですが・・・ これについて書き始めるとまた長くなるのでまたの機械に・・・。


ちなみにRoast+なのですが、そう言った本格的なテンプレートプログラミングを始めた頃、1月中頃。別Projectとして分離しました。
理由としては、かねてから「ライセンス・・・Open-MGLとは違うものにしようと思ってるんだけれど・・・これって大丈夫・・・?」 って言うのもあり、また、そもそも毛並みがかなり違い、また、規模としてもだいぶデカくなってきちゃっていたので、分離した訳です。 ・・・今はソースコードリポジトリの移行となっていますが・・・。まぁ最終的にはWikiとかも移行ですね。

・・・って言うかRoast+もだいぶ方向性が、元のWikiに書いてある奴から変わって来ちゃったなぁ・・・。あ、まぁここらへんも今度の機会に話すか。(何


最後に、肝心のビッグニュースをお伝えしなければなりません・・・。


Open-MGLの方は暫く更新しないつもりで居ます。


「なんや?正々堂々サボり宣言か?」と思うかも知れません。んまぁ、20%くらい間違ってない事も無いとは思いますが・・・。(何

暫くの間、Roast+の方に集中しようかと思っています。理由としては大きく二つです。

まず、一つ目としては、ゲームを作るにあたって、取り敢えず最低限、ほんっと最低限の機能に関しては実装したと言う事。
まぁ、これでゲームを作れない事も無いと言うか、簡単なゲームであればとりあえず十分に作れるでしょう、と言うレベル。

二つ目の理由は、一つ目の理由にもちょっと繋がるところがあるのですが・・・ 今後これ以上の拡張機能を実装して行くに辺り、基本ライブラリ(Roast+)の方を作りこんで行く必要があるでしょう、と言う事。
今のままでは、どっちみちOpen-MGLの拡張機能を実装して行っても、所々で基本ライブラリを作るために手が止まることがあるでしょう、と言う。 そういった基本ライブラリと、Open-MGLのDirectX的な部分やらを行き来(頭を切り替え)して行くのは、結構な労力ですので・・・。 そんならば、いっそまずは基本ライブラリの方を、ある程度片してしまってから、Open-MGL本体の方に集中した方が良いでしょう、と言うことです。

また、2.5個目的な理由として、テンプレートプログラミングをある程度覚えることによって、きっと
「ここはこういう実装にした方が良いな」と言うのが出てくるであろう、と言うのもあります。
と言うか、今のAugust Frameworkやらの設計を、根本的に覆してしまうかも知れません・・・。

それを後からと言うのは非常に無駄な労力ですから。出来るんであれば、可能な限り早めに・・・と言う事です。


さて、どれくらいそのRoast+に対し時間を注ぎ込むつもりで居るのか・・・と言う話ですが・・・。

個人的には、半年から長ければ最大で1年くらい、と見ています。

ま、主にこれ、その大半が「テンプレートプログラミング」の旅に費やされると見込んでいる訳ですが・・・。

ある程度テンプレートプログラミングについて学び、Roast+にもその成果がある程度蓄積された段階で、 Open-MGLの方に戻って来る考えでいます。テンプレートプログラミングの旅は・・・まぁ確実に、長く、険しい旅になるかと思いますので・・・(苦笑


・・・暫く日誌の方も更新しないかもねぇ・・・。ま、Roast+に関するちょっと今回の日記では書けなかった報告に関してだけは、 機会があればしたいとは思っていますが・・・。それ以外の事に関しては、暫く、”まったくもって活動してない”的な状態に見えるかと思います。


んま。そんな感じの近況です。



一応「最も短いステップ数で、」と言う”証明”的な・・・ - 2009/11/03 (火) by myun2

プロジェクトの概要として「最も短いステップ数で、ゲーム開発が行える事を目指しています。」等と言った事を謳い文句としてのたまっている訳ですが、
一応、Neptune Explorer v0.000000001(β1) のソースとかそれなりに短いんじゃねぇかなぁー、と言う事で、出してみます。

きっと、DirectXやWindowsAPI等と触れ合った事のない人にとっては(初心者であれば初心者ほど)「え・・・これで短いの・・・?」と思う事でしょうが、
そうでない人にとっては(上級者であれば上級者であるほど)「こんなに短く書けるのか・・・!」と分かってくれるはず・・・!!多分・・・!!きっと・・・(何

neptune_explorer_vO9b.cpp

一応、テキスト行数的には300近く、コメントや空白行を抜くと200ステップくらいになります。

まぁ、ファイル操作関連の部分はRoast+の方に丸投げなので、この200と言うステップ数はGUI関連のみの部分ですね。
でも普通にDirectXでガリガリ書いたら、コメントや空白行抜いても500ステップ(下手したら1Kステップ越え)は固いよ・・・!!
・・・と思いますが、まぁやっぱやった事無い人にはこの苦労は分からないでしょうねぇ・・・。


ちなみに、まだリファレンスにもチュートリアルにも無い機能を幾つか使ってたりします。と言うか、Neptune Explorerを実現するに当たり必要だったので追加して行きました。(何

なのでまぁマニュアル無くとも諦めてください・・・つってもそんな分かり辛い機能は使ってない&コメントもそれなり記入しているので、
大体見たり、ちょっとソース追えば分かると思うんですけど・・・。

あと、Neptuneプロジェクトのダウンロードの方に、11/02の日誌で上げたモジュールと、依存環境(Open-MGL, Roast)含めた一式のソースをアップしておきました。
う○こなこのファイラーをもっとまともに直して使ってやろう!と言う酔狂な有難い方がいらっしゃいましたら、どうぞ弄ってやってください。

・・・あ、ちなみにライセンスも何もreadme.txt自体入れてませんでしたね・・・。
まぁ、NeptuneプロジェクトがGPLなので、これもGPLと言う事で。ライセンスの範囲内であれば、煮るなり焼くなり適当にサイト等で公開するなりどうぞご自由に・・・



Neptune Explorer v0.000000001(β1) - 2009/11/02 (月) by myun2

ちなみに「0.000000001」と言う矢鱈と0が多いバージョン名は、20世紀末にオタク(および世間)を騒がせた某アニメに因んでのものです。(何

と言う訳で、先日の作りかけファイラー「Neptune Explorer」が、一応それなりに、カタチになってきたので公開です。

neptune_explorer_O9b.zip

クリックでディレクトリを移動したり、ファイルを開いたりします。上位ディレクトリへの移動は、一番上の「..」なフォルダをクリックです。
ファイルのオープンは…デフォルトの関連付けのみ、しかもファイルを開いている間Neptune Explorerは操作不能と言う・・・system()関数で開いてるだけなんですよねぇ・・・超適当。(苦笑

スクロールも、マウスのホイールにより可能なのですが・・・それ以外のインターフェースを用意していないので、ホイールがないマウスとかだとスクロール不可という・・・。
まぁホント、「とりあえず最低限実装した」って言う程度のシロモノですねぇ。悪しからず・・・


あ、そうそう。「テキスト描画(ID3DXFont::DrawText)が非常に重い・・・」と言ってた問題。大凡改善しました。
まだ、画面いっぱいにファイルやディレクトリがあるとCPU使用率が100%行くと思いますが・・・。でもだいぶマシになったかと思います。
原因はライブラリ側のバグでした。フラグ設定が上手くいってなくて、フォントの再生成を毎回行っていたという・・・。

ま、それを直しても、まだまだだいぶ重い訳ですが・・・。やっぱ、描画のキャッシュとか必要かなぁ・・・等と考えております。


カレンダー:
2008: 3月 / 5月 / 6月 / 8月 / 9月 / 10月
2009: 1月 / 2月 / 4月 / 6月 / 7月 / 10月