実践ガイド

【Godot 4.7】Brotato風ゲームのセーブを自動テストし、履歴を確認する

【Godot 4.7】Brotato風ゲームのセーブを自動テストし、履歴を確認するのアイキャッチ

セーブ処理は、手動で1回動いたことだけでは安心できません。保存と復元、バックアップ、チェックサム不一致、未対応バージョンを一括検査し、結果を画面と履歴で確認できるようにします。

テスト用ファイルを分ける

自動テストは本番スロットを使わず、専用の一時ファイルへ書き込みます。統合版ではテスト開始時と通常終了時にテスト用ファイルを削除します。テスト用のパスは本番スロットとは別です。ただし強制終了時は後片付けが保証されないため、次回実行時や手動で残存ファイルを確認してください。

結果を辞書の配列で返す

テストランナーは、表示用の文章ではなく構造化された結果を返します。

return {
    "id": "round_trip",
    "status": "pass",
    "detail": "保存した値を読み込み後に比較できた",
}

統合版の自動テストは一時ファイルの保存・読込、バックアップのコピー作成、チェックサム一致・不一致、未対応バージョンの拒否を調べます。バックアップから実スロットを復元する流れは自動テストに含まれないため、別途確認します。履歴の保存失敗を明示的に警告する機能も追加検討が必要です。

JSON Linesへ履歴を追記する

1回分のテスト結果を1行のJSONへまとめ、履歴ファイルへ追記します。既存ログを毎回上書きしないため、Godotを終了した後も過去の結果を確認できます。統合版ではJSONとして読めない行を警告します。ただし、正しいJSONでも期待する辞書形式でないデータの検証は追加実装が必要です。

結果を色と文字で表示する

成功・失敗は色と文字で表示します。壊れた履歴行は[WARN]の文字で表示します。統合版では失敗行を先頭に並べ替える機能はないため、必要なら追加します。パネルが長くなるため、スクロール領域と高さも確認します。

フィルターと履歴ビュー

統合版のフィルターは、保存されたテスト履歴を全件または失敗を含む回に絞って表示します。統合版の履歴はファイルの記録順に表示されます。新しい順への並べ替えや、選択した履歴の詳細表示は追加の実装が必要です。テスト結果は表示され、履歴ファイルに追記されます。履歴はフィルターボタンで読み直して表示します。

動作確認

  • 本番セーブを変更せずに自動テストが完了する
  • 保存・読込・バックアップ作成・チェックサムを個別に判定できる。バックアップ復元は別途確認する
  • 成功・失敗は色と文字で、壊れた履歴行は[WARN]の文字で判別できる
  • JSON Linesへ追記され、再起動後も履歴が残る
  • 失敗のみのフィルターで対象が絞られる
  • 壊れた履歴行を警告できる。ログ保存失敗の通知は追加実装後に確認する
  • リリース版ではテスト用UIを隠せる

まとめ

テスト結果を構造化し、保存・表示・履歴を分けると、セーブ機能の変更に気づきやすくなります。最後に、ゲーム全体の通し確認と公開前の注意点を整理します。

統合版プロジェクトとの対応

この記事で扱う機能は、企画全体をまとめたauto_attack_final_verified.zipにも組み込んでいます。この記事のコードは段階的に追加するための説明なので、途中の記事と統合版全体のファイル構成は一致しない場合があります。

統合版には後続記事の機能も含まれます。記事の機能を確認するときは該当する操作を先に試し、最後にGodot 4.7でF5起動、入力、セーブ・ロード、再起動後の復元を確認してください。

← 記事一覧・検索