デバッグ
概要
1. シミュレータでのデバッグ(基本)
- A. Console(コンソール)
- 最も基本的なデバッグ方法です。print() 関数を使うと、シミュレータ内のコンソールウィンドウに内容が表示されます。
- ショートカット: Command + Shift + C (Mac) / Ctrl + Shift + C (Windows)
- 便利な使い方: テーブルの中身を確認したい場合は printTable(myTable) を使うと、構造を綺麗に展開して表示してくれます
- B. Playdate Simulator Menu
- シミュレータのメニューバーには、開発に欠かせない項目が並んでいます。
- System Event Log: システムレベルのエラーや警告を確認できます
- Sampling: どの関数がCPU負荷を高くしているかを計測できるプロファイラです
- Highlight Screen Updates: 画面のどの部分が書き換えられているかを可視化します(無駄な描画を減らすのに最適)
2. コードレベルのデバッグ手法
- playdate.debugDraw()
- この関数を定義しておくと、通常の描画処理の後に呼ばれます。当たり判定(スプライトのRect)などを描画して視覚的に確認するのに便利です。
function playdate.debugDraw()
-- 衝突判定の枠を赤色で表示する
mySprite:drawDebug()
playdate.graphics.drawText("Player X: " .. player.x, 10, 10)
end
- エラーハンドリング
- Luaで実行時エラーが発生すると、シミュレータが停止し、エラー箇所が表示されます。
- assert(condition, message): 条件が偽の場合にエラーを発生させ、デバッグを中断します
- error(message): 強制的にエラーを発生させます
3. 実機(Hardware)でのデバッグ
- Playdate Mirror
- PCに実機を接続し、実機の画面をPCに映し出すツールです。
- 実機で動かしながらPCのコンソールで print ログを確認できます
- 画面キャプチャや動画撮影にも使われます
- デバイス情報の取得
- 実機上でのパフォーマンスを知るために、以下の関数が役立ちます。
- playdate.getFPS(): 現在のフレームレートを確認
- playdate.getStats(): メモリ使用量やCPU使用率を取得
4. C言語でのデバッグ
C SDKを使用している場合は、より低レイヤーなデバッグが必要です。
- LLDB / GDB: シミュレータをデバッガ経由で起動し、ブレークポイントを設定してステップ実行できます
- Address Sanitizer: メモリリークや不正アクセスを検出するために利用されます
デバッグツール・機能まとめ
| ツール/機能 |
用途 |
確認できること |
| Console |
基本ログ |
print の出力、エラーメッセージ |
| Sampler |
パフォーマンス |
関数ごとのCPU負荷、ボトルネックの特定 |
| Debug Draw |
視覚的確認 |
スプライトの枠線、座標情報、当たり判定 |
| Playdate Mirror |
実機連携 |
実機の画面確認、実機ログのキャプチャ |
| Caps (Simulator) |
制限テスト |
意図的にCPU速度を落とし、低速時の挙動を確認 |
- TIP: デバッグのコツ
- Playdateはリソースが限られているため、「ガベージコレクション (GC) の発生頻度」には注意してください。
- シミュレータの Sampler を使い、毎フレーム大量のメモリを確保している箇所がないか定期的にチェックするのが、スムーズなゲーム体験への近道です。
関連ページ
最終更新:2026年04月30日 10:26