今回の趣旨
今回は、rFactor2のプラグインを作成する際にVisual Studioのデバッガを使用する方法について解析をする。
Visual Studio
かつては全てのエディションが有料(数万~数十万)であったが、ここ数年は最下位バージョンが無料となっている。
入手はここから可能だ。プログラムが分からない人も、入手だけならしておいて損はない。
http://www.microsoft.com/japan/msdn/vstudio/express/
最適化コンパイルの有無等、ゲームプログラミングでは重要なものもある。
だが、正直、通常のプラグイン開発では必要ないと考える。
スペック厨の人は最適化が!と言うかもしれない。
だが、近所のスーパーに買い物に行くのにグループBのラリーカーは必要ない。
無料版で十分である。
コンパイル設定
毎回ソースファイルをコンパイルして、作成されたDLLをrFactor2のプラグインフォルダにコピーしていては、
トライ&エラーが面倒になってしまう。
InternalPluginデフォルトのプロジェクト設定では、プロジェクト(ISIからダウンロードしてきたソース群)の配下に
ファイルが作成されるが、これをrFactorsのプラグインフォルダに直接出力するよう「出力ファイル」の項目を修正する。
※筆者の場合、C:\Games\rFactor2にrFactor2をインストールしている。
必要であればDebugとReleaseそれぞれを変更しても良いのだが、
今時のCPUでリソースを食いつぶすほどのプラグインを書くことも無いと考えられるので、
とりあえずDebug版だけをコンパイルすることとした。
rFactor2.exeの起動についてデバッグ設定
レースエンジン本体である”rFactor2.exe”はラウンチゃーからキックしないと、起動できないように作られている。
そのため、必要が無くてもラウンチャーをキックするように設定する。
※直接、rFactor2.exeを起動する方法を見つけた方がいたら、情報提供をお願いします。
デバッグ設定
同様にInternalPluginのプロジェクト設定から、デバッグの項目を編集する。
コマンドが、$(TargetPath)となっている。
これを、”Launch rFactor.exe”に設定する。
シンボルファイルの設定
シンボルファイルとは、デバッガでデバッグするための情報が入ったファイルである。
ソースをコンパイルした際に、拡張子pdbとしてDLLと共に作成される。
※Releaseモードでコンパイルした場合は、作成されない。
シンボルファイルの設定は、通常のVisual Studioのプロジェクトであれば必要のない作業である。
だが、実行ファイル(rFactor.exe)のフォルダからシンボルを探す仕様になっているため、
そのため、デバッグができない。
これは単純にVisual Studioの設定として、プロジェクトファイルの相対パスdebugフォルダを追加してやれば、
対処できる。
デバッグの開始
いよいよ、デバッグの開始になる。
Visual Studioの画面で、緑色の▲をクリックして、実行を行う。まだ、一度もコンパイルをしていなかったり、
ソースが変更されている場合はコンパイルされてから、rFactor2のラウンチゃーが立ち上がる。
既にVisual Studioの右下にrFactor2のラウンチゃーがどのようなモジュールをロードしたか分かるはずだ。
ここで、rFactor2のメニューからSingle Playerをクリックする。
だが、以降、デバッグメッセージが出ないはずだ。
Visual Studioの「デバッグ」メニューから「プロセスにアタッチ」を行う。ここで、rFactor2.exeを選択する。
※このアタッチの自動化については、調査中となる。毎回するのは面倒だ
そうすると、以降のデバッグ情報が表示されるはずだ。
※rFactor2のシングルプレーヤーを起動したら、すぐやった方がよい。
次回
予定と異なりデバッグの設定について記載した。
次回は当初の予定に戻り、コースに車両が出た時に呼び出される関数について記載する。
また実際に時間を計測し、画面の描画フレーム数と出力タイミングが同期しているのか、
それとも非同期(例えば、1秒間に数千回データが取れるのか)で取れるのか確認をしようと考えている。
おまけ
C言語やWindowsプログラミングの勉強の本は何がいいかとか、そういった記載の希望はあるだろうか?