renpy-debugger紹介

以下のリンクでRen’Py用のデバッガーを開発している人がいます。Windowsで動作したので使い方を紹介します。

https://github.com/Enerccio/renpy-debugger

以下のようにgit cloneでrenpy-debuggeとlibrpydbをそれぞれダウンロードし、librpydbのフォルダをrenpy-debuggeの同名フォルダに上書きします。レポジトリ内のレポジトリ一括ダウンロード多分出来ると思いますが、やり方が見つからなかったです。

git clone https://github.com/Enerccio/renpy-debugge
git clone https://github.com/Enerccio/librpydb

 librpydb, debugger.py, 0000_debugger.rpyをrenpyのデバッグしたいプロジェクトのgameフォルダーにコピーします。

 次にPythonを使える環境を用意しましょう。以下からPython2系をどれかダウンロードしてインストールします。後pipもpython2用にインストールしときましょう。検索すればやり方はでてきます。readlineモジュールも必要になりますが、windowsでは提供されていないので変わりにpipからpyreadlineもインストールします。
https://www.python.org/downloads/windows/

 これで以下のコマンドでデバッガーを起動できます。自分はmsysからwinptyでラップして実行しましたがコマンドプロンプトから直接実行出来ると思います。

python manual_debugger.py

 次にRen’Pyランチャーを起動して対象のゲームを実行します。ランチャーの設定でコンソールの出力を有効化していればコンソールはでますが、ゲームウィンドウはまだ表示されません。以下のように先ほどのデバッガーで適当な場所にブレークポイントを設定してからゲームと接続します。

>>b game/script.rpy:23
>>connect

 これでゲームとの通信が開かれ、ゲームウィンドウが表示されるはずです。スクリプトのパスはベースディレクトリーから始めてください。また、ブレークポイントは接続前でないとちゃんと動作しないようです。後から追加がうまくうごきません。ゲームを進めていくとブレークポイントに設定した場所で処理が停止します。

 変数を見たいときは”scopes”でスコープ番号を表示してから”v (番号)”とします。この手順を繰り返さないとちゃんと表示されないようです。s, si, soで1行ずつコードを実行し、ステップイン、ステップアウトができます。

 残念ながらかなり動作が不安定というか癖があるのであまり常用したい感じではありません。使うときはランチャーごと再起動する必要があり、一回接続を閉じると、まず復帰しません。基本はprintfデバッグを使い、手詰まりになったときに使うのがよいでしょう。