デバッグについて


デバッグとは、バグや欠陥を発見して修正する作業です。
Code on Rmakeでゲームのデバッグをする方法について紹介します。

バグには以下のような種類があります。

  • エラーが発生してゲームが停止したり、処理が流れなくなったりするもの
    • 例:関数の引数が間違っていてエラーが発生してゲームが停止する
  • システム的には動作するが、仕様と異なる動作をするもの
    • 例:RPGにて、HPが0になったのにキャラクタが行動不能にならない

いずれの場合も、バグを発見するには、以下を調査する必要があります。

  • どこで問題が発生しているか
  • 変数などの状態がどうなっているか

ここでは、デバッグで重要な「問題を見つける方法」について紹介します。

speakを使う方法


speak関数を使って、変数の値などを画面上に表示する方法です。

speak("変数aの値:#{a}")


エラーが発生している場合や、どこで問題が発生しているかわかりにくい場合は処理の前後にspeakを挟んでもいいでしょう。
どこでエラーが発生しているのか把握しやすくなります。

speak("処理1の前")
# ここに処理1が入っている
speak("処理1の後")
speak("処理2の前")
# ここに処理2が入っている
# 仮にここで問題が起こった場合にこの下のspeakは実行されないので、
# 問題の発生個所を特定することができます
speak("処理2の後")


Loggerを使う方法


Loggerを使うと、ログファイルに情報を書きだすことができます。
(Windows環境では、ログファイルはlog/log_user_0.txtに出力されます。)

if hp > 0 && action == "attack"
  game.logger.info "キャラクタは行動可能なので攻撃を行います"
elsif hp == 0 && action == "attack"
  game.logger.warn "HP0なのに攻撃しようとするのは誤った処理です"
end


speak関数と同じ要領で利用することができますが、画面上に出てこないため、広範囲の調査をスムーズに行うことができます。

※ ただし、ループ中などに記述すると、処理が遅くなったり、ログファイルが巨大になったりします。注意してください

Loggerの詳細については、以下のドキュメントを参照してください。


その他の方法


スプライトのテキストに書きだして画面上に表示するという方法もあります。
スプライトの詳細に関しては以下を参照してください。




サンプル一覧

チュートリアル1 - ようこそ、Rmakeの世界へ

アニメーションとモーション
あたり判定の初歩、タップすると話すキャラ
あたり判定の応用、キャラクタ同士の衝突
弾を打つキャラクタ
ソースのロードとライブラリのロード

サンプルゲーム

サンプル - 脱出ゲーム
脱出ゲームのサンプルです。

サンプル - シューティング
弾幕シューティングゲームのサンプルです。

まじたいスリーマッチパズル
スリーマッチパズルゲームのサンプルです。

お知らせ

2014/03/04 ver. 0.1.39 を公開しました!
・0.1.36でWindowsで起動しない問題を修正しました
(Android版はバージョン番号のみの変更です。)

2014/03/04 ver. 0.1.36 を公開しました!
・アプリケーションアイコンを変更しました
・セーブ・ロードを繰り返すとアプリが強制終了する問題を修正しました
・他、重大なバグを修正しました

ダウンロードはこちらから。

2013/07/17 Code on Rmakeをα公開しました!