CF25 Extension GArR Issue #01
CF25 のエクステンション GArR のバグ関連
デバッグに関するメモや進捗など
GArR のデバッグ
GArR というエクステを約3年ほど前 CF25 用に作って公開した。
「グッジョブ!ペンタくん」というパズルゲーム用に作られたエクステで、まだユニコードに対応してなかった本家 Clickteam の既存エクステの代用として必要だから自分で作った版。オリジナル機能は少なく模倣ばかりだがロジックは自分で考えた中身は別物。
無事にゲームもエクステも公開されその後すぐ筆者は GMS へと流れたが、バグ報告とかは無かったので公開後に GArR のソースへ手を入れることは無かった。三年が経過して Fusion3 がまだ未発売なんて未来を予想もしていなかった。
拡張機能(エクステ)とは
CF25 の拡張機能をエクステンション・オブジェクトと呼ぶ。エクステという名の拡張 DLL だから CF25 というメインプログラムの下でのみ動く小さなアプリケーションだ。
CF25 自体は驚くほど機能が少ないけれど、フレームに対して本体が持つ機能以外の機能を選択的に取り込むことができる仕組み。このおかげでフレームに対しては多機能化できる。PC といえば Windows PC 以外ほぼありえないという時代から生き残ってきたゲーム開発ソフトだから Windows PC 用のエクステは数が本当に多い。
エクステの実動作は一つの独立したアプリケーションみたいなもので、ユーザインターフェースが必要な CF25 用のバイナリと実際にゲームとしてビルドされた版に内包されるリリース用バイナリ、2種類をコンパイルして使い分ける。エクステは基本的に CF25 用の対応アプリを作っているのと同義であり、CF25 の提供するインターフェースの中でどのように動くかを想像しながら作る知識とか感覚が必要。
推奨環境が大変古い
VC++2008 を使って GArR は作られている。
CF25 用の SDK は rSDK という MMF2 の時代に作られたユニコード対応版 SDK を標準として使うが、rSDK 自体が古いので CF25 になってからも SDK の推奨環境が当時からすでに古かったのだ。
SDK は VC++2008 以外でも使えるはずだが実際に VC++2010 用に変換したら警告が多く、一つ一つ設定をチェックし直す必要があった。これが面倒なので当時からすでに古かった推奨環境でエクステ開発に臨んだようだ。まぁ実際にはそれでも警告が出たのだけど…
開発が C/C++
エクステは C/C++ で作られている。文字列の扱いが大変厄介で、しかも拡張 DLL だからデバッグに CF25 本体からの実行が必須。3年前、よく作ったなこんなものとソースコードを見ながら我感心す。
そしてさっぱり覚えてない。綺麗に忘れてる。自分は本当に作った本人か?別の世界線の自分じゃなかったのか?
if{
if{
if{
if{
}
}
}
}
お、この糞コードは間違いなく自分だな。ハハハ、まったく成長してない。
頑張ろう
次へ
前へ