空のノート - note of void.


Menu

Navi
Auther
Webclap
Search
Categories
Archives
Recent
Comments
Trackbacks
Advertise
RSS1.0 XML


Entries


2008-11-26

Tugumi ユニット移動

漸くユニット移動の実装が終わりました。 こう書くと簡単ですが実際はものすごく面倒です。 ただのGUIだけでもややこしい上にTugumiではWindowsメッセージループとスクリプトの実行スレッドを分けているため、各々の対話が複雑になって頻繁にデッドロックを引き起こし、そのバグ取りにまた苦労するわけです。 更にかなり広範囲のモジュールが関わっているためヘッダのインタフェースを変更すると再コンパイルの時間が掛かるのも厳しかったですね。

兎も角も実装は着々と進んでいるという事で出来るだけ早い内にプレビュー版を出したいと思っていますので、もうしばらくお待ち下さい。


2008-11-10

Tugumi 属性定義案

属性を定義するデータ、仮にattr.txtの仕様案です。 まだ検討段階なのでコードには手を付けておらず、今後大幅に変更する可能性があります。

Tugumi 多分年内には出ません

進行具合はUnit、Pilot、Ride、Launchコマンドの実装を行ったのと、画像関係を少しという程度。 画像関係のデバッグは直接デバッガで内容を確認出来ないので面倒です。 ちなみにIfやFor等のプログラミング関係の機能は粗方実装完了しています。

スクリーンショットの方、些か中途半端ですが以下に。

Tugumi スクリーンショット(開発中)

これだけでは何なので、テスト用に作成したベンチマークの結果でも掲載しておきます。 コードはアッカーマン関数ackを定義し、ack(2, 2)を500回呼んで加算するというものです。 やや回りくどいですが、ack(3, 3)はSRCの場合再帰深度制限に引っかかってエラーになってしまうのでその対策です。

結果は以下。 参考に他の言語の結果も幾つか載せてあります。

言語実行時間(秒)
SRC8.351
Tugumi-debug7.419
VBScript0.062
Python0.017
C++0.00037

流石にネイティブコードのC++は圧倒的ですね。 まあ肝心のTugumiはデバッグビルド版で最適化されていないので何の目安にもなりませんが、これより遅くなる事はない程度に考えて頂ければよろしいかと思います。

メンバポインタ

C++言語を使っているなら、メンバポインタというものが存在する事をご存知の方もいると思います。 ただ最初に知った時は何に使うのか理解出来なかったという人も多いでしょう。 有名なガイドブックであるEffective C++にも「珍獣の部類」と書かれてしまっている程で、そう頻繁に目にするものではない事は確かですが、使ってみるとたまには有用な事もあります。


2008-10-10

Tugumi 完成度65%くらい?

Tugumiですが、漸くプログラム起動して目に見えるようになりました。 今の所進行は順調とはいえ時間がかかりますね。 マップをウィンドウに表示するのは思いの外スムーズに行ったのですが、それを画面スクロール出来るようになるまで4日も掛かりました。 まあ途中でリファクタリングしながらやっているというのも原因ではあります。

現在概ね完了した部分はスクリプトエンジンとデータ解析器、GUI等。 逆にゲームの進行部分(戦闘とか)はまだ丸々残っています。 それとサウンド関係の扱いもまだ決めかねているところです。 どうしましょうかね、mp3とかは。 以前書いたように外部実装にするのが妥当に思えますが、これでOKという確信はありません。 仕様決めもやや負担になりそうな感じですし。

独自機能についても幾つか考えてはいます。 しかしながら、当初挙げたように互換性確保が優先ということで、当面はほとんど後回しになっています。 一応列挙してみると武器属性や特殊能力を定義する新たなデータファイル、インターネットアクセス、レイヤ別描画対応、半透明描画対応、Tugumiの見た目のスキン対応、等等。 もちろんこれら以外にもありますし、逆にこれらが今後確実に実装されるとは限りませんので、その点はご了承を。

とりあえずはこんなところです。 既に十月に入った事を考えるとそろそろスクリーンショットの一つも出したい所ですが、まだ見栄えのする画面は出来ていないので…というか普通のウィンドウにマップが出ただけなので、あまり面白くはないのが辛い所。 中身は結構形になって来ているんですけどね。 それを知るにはソースコードを見ないと判らないわけで。 ともかく、来月には何か出せる所まで出来ているといいなと思っています。