リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: RPGストーリーフォージ AI風ドット絵冒険
マップ移動Ajax応答の差分化(フルstate送信の廃止)による移動速度アップ
1. 目的:
マップ移動時に毎回シナリオ全体・パーティ全データ・訪問済みタイル全体を含むJSONを送受信していると推測される部分を軽量化し、特に256×256の広大なワールドマップでの移動体感速度をさらに向上させる。既存の「Ajax即時返却+バックグラウンド保存」「戦闘コマンドの差分応答化」の考え方をマップ移動APIにも適用する。
2. 具体的な仕様:
- マップ移動を処理するAjaxエンドポイント(例: ajax/move.php 相当の処理)のレスポンスペイロードを見直し、以下のみを返す軽量フォーマットに変更する:
a. プレイヤーの新しい座標・向き
b. 新規に視界へ入った/既訪問化したタイル座標の差分リスト(visited_deltaとして、既にクライアントが保持済みの座標は含めない)
c. 発生したイベント種別(NPC接触・宝箱・店入店・エンカウント発生・ランダムイベントタイル)とその最小限の詳細データのみ
d. HUD更新に必要な最小限のステータス(HP/MP/レベル/ゴールドなど、変化があった項目のみ)
- レスポンスJSONに `"delta": true` フラグを付与し、クライアントJSはこのフラグを見て既存のローカル状態オブジェクトにマージする処理に切り替える(フラグがない/古い形式のレスポンスの場合は従来通りフルセットとして扱うフォールバックを残す)。
- クライアント側では既訪問タイル集合をlocalStorageまたはJSのメモリ配列(Set)で保持し、サーバーからは新規タイルのみ受け取って追記描画する。ミニマップ描画も差分追記のみで再構築しない。
- ページ初回ロード時(play.php本体表示時)や手動セーブ/ロード時は従来通りフルstateを返す。差分化するのは「移動」操作の応答のみに限定する。
- サーバー側で万一クライアントとサーバーの視界データがズレた場合に備え、一定回数の移動ごと(例: 20回に1回)または明示的な「再同期」ボタン押下でフルstateを再送する保険処理を入れる。
3. 既存機能との整合:
- セーブ/ロード、共有URL再生、冒険の書スロット、性格診断、旅の記憶帳、図鑑、ショップ購入など他のAjax/画面遷移には影響を与えない。
- 既存の「Ajax応答の即時返却+バックグラウンド保存」の仕組みはそのまま維持し、今回はレスポンスのペイロードサイズ縮小のみを追加する。
- 差分フォーマットに未対応の古いキャッシュ済みJS(Service Workerキャッシュ)が万一残っていても、レスポンスに`delta`フラグがない場合は従来のフル処理ロジックにフォールバックするため後方互換を保つ。
マップ移動時に毎回シナリオ全体・パーティ全データ・訪問済みタイル全体を含むJSONを送受信していると推測される部分を軽量化し、特に256×256の広大なワールドマップでの移動体感速度をさらに向上させる。既存の「Ajax即時返却+バックグラウンド保存」「戦闘コマンドの差分応答化」の考え方をマップ移動APIにも適用する。
2. 具体的な仕様:
- マップ移動を処理するAjaxエンドポイント(例: ajax/move.php 相当の処理)のレスポンスペイロードを見直し、以下のみを返す軽量フォーマットに変更する:
a. プレイヤーの新しい座標・向き
b. 新規に視界へ入った/既訪問化したタイル座標の差分リスト(visited_deltaとして、既にクライアントが保持済みの座標は含めない)
c. 発生したイベント種別(NPC接触・宝箱・店入店・エンカウント発生・ランダムイベントタイル)とその最小限の詳細データのみ
d. HUD更新に必要な最小限のステータス(HP/MP/レベル/ゴールドなど、変化があった項目のみ)
- レスポンスJSONに `"delta": true` フラグを付与し、クライアントJSはこのフラグを見て既存のローカル状態オブジェクトにマージする処理に切り替える(フラグがない/古い形式のレスポンスの場合は従来通りフルセットとして扱うフォールバックを残す)。
- クライアント側では既訪問タイル集合をlocalStorageまたはJSのメモリ配列(Set)で保持し、サーバーからは新規タイルのみ受け取って追記描画する。ミニマップ描画も差分追記のみで再構築しない。
- ページ初回ロード時(play.php本体表示時)や手動セーブ/ロード時は従来通りフルstateを返す。差分化するのは「移動」操作の応答のみに限定する。
- サーバー側で万一クライアントとサーバーの視界データがズレた場合に備え、一定回数の移動ごと(例: 20回に1回)または明示的な「再同期」ボタン押下でフルstateを再送する保険処理を入れる。
3. 既存機能との整合:
- セーブ/ロード、共有URL再生、冒険の書スロット、性格診断、旅の記憶帳、図鑑、ショップ購入など他のAjax/画面遷移には影響を与えない。
- 既存の「Ajax応答の即時返却+バックグラウンド保存」の仕組みはそのまま維持し、今回はレスポンスのペイロードサイズ縮小のみを追加する。
- 差分フォーマットに未対応の古いキャッシュ済みJS(Service Workerキャッシュ)が万一残っていても、レスポンスに`delta`フラグがない場合は従来のフル処理ロジックにフォールバックするため後方互換を保つ。
💬 返信 (3)
🛠 開発を開始しました (機能追加 rpg-story-forge)
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「RPGストーリーフォージ AI風ドット絵冒険」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rpg-story-forge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rpg-story-forge/
ご利用ありがとうございます!
ご要望いただいた「RPGストーリーフォージ AI風ドット絵冒険」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=rpg-story-forge
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/rpg-story-forge/
ご利用ありがとうございます!
Echo
Iris