2chモナー格闘ゲーム「Goluah!!」より

おあつらえ向きのソースが手に入りました。
配布元:http://www.geocities.co.jp/SiliconValley-Sunnyvale/2289/
わりかしスタンダードな2D格闘ゲームで、C++で書かれています。
ということで一通り読んでみた結果。なんか自分の想像とは結構違いがありました。
まずキャラの動作はすべて状態メッセージとカウンタ変数による有限状態マシンで実現されています。マイクロスレッドの出現をちょっぴり期待していたのですがさすがにそううまくはいかなかったか。というより、動作途中での割り込みが利きにくいので、格ゲーにマイクロスレッドは合わないというのはやはり正しいようだと実感。
それからキャラクタのデータですが、このゲームはユーザが自由にキャラクタを作成、追加できるようになっています。デバッグの手間を減らす意味でも、キャラクタデータはモジュールとして分離できるようにするべきだとして、意外だったのは形式がDLLだったこと。自分としてはコンパイルを減らすためにスクリプトなどの自前のデータ型で定義したほうがいいかなと考えていたのですが、どうも事情がいろいろと異なるようですね。DLLということで、データはすべてハードコーディングされています。この場合普通のハードコーディングとは少し意味合いが違う気もしますが。
あとやっぱりキャラクタの画像と判定矩形を定義、編集するためのツールがありました。こういうのあると便利だよなーって思ってたけどまずツールの作り方を勉強しなきゃねorz