========================================================================
Pixel Paint War - プロトタイプ実装計画 (Prototype Implementation Plan)
========================================================================

1. 概要 (Overview)
------------------------------------------------------------------------
本ドキュメントは，「SPEC_03_プロトタイプ_移動テスト.txt」で定義された50人同時接続テストを達成するための段階的な実装ロードマップである．
複雑性を排除するため，最小構成から機能を積み上げる（Step-by-Step）方式を採用する．


2. 実装フェーズ定義 (Implementation Phases)
------------------------------------------------------------------------

2-1. Step 1: クライアント単体移動 (Local Movement)
    ■ 目標
    サーバーを介さず，ブラウザ上でジョイスティック操作によりキャラクターが移動・描画されること．

    ■ 実装対象
    ・packages/shared/
        - src/config/gameConfig.ts: マップサイズ，移動速度等の定数定義．
        - src/utils/math.ts: ベクトル計算，移動ロジック (Pos += Vel * Speed * DT)．
    ・apps/client/
        - src/input/Joystick.ts: タッチ入力の正規化，デッドゾーン処理．
        - src/entities/PlayerSprite.ts: 描画更新処理．
        - src/core/GameLoop.ts: Pixi.js Tickerを用いたメインループ．

2-2. Step 2: サーバー開通・単体通信 (Single Player Network)
    ■ 目標
    WebSocketサーバーと接続し，バイナリパケットの送受信（エコーテスト）に成功すること．

    ■ 実装対象
    ・packages/shared/
        - src/protocol/schema.ts: DataViewを用いたバイナリエンコード/デコード処理．
    ・apps/server/
        - src/index.ts: WebSocketサーバー起動 (wsライブラリ)．
        - src/network/Connection.ts: 接続管理．
    ・apps/client/
        - src/network/SocketClient.ts: バイナリ送受信の実装．

2-3. Step 3: 複数人同期・補間 (Multiplayer Sync)
    ■ 目標
    2つのクライアント間で位置同期が行われ，他プレイヤーの動きが補間により滑らかに表示されること．

    ■ 実装対象
    ・apps/server/
        - src/managers/RoomManager.ts: 接続IDと座標の管理．
        - src/network/PacketHandler.ts: 全員分の座標スナップショット作成とブロードキャスト．
    ・apps/client/
        - src/entities/RemotePlayer.ts: 他プレイヤー描画クラス．
        - src/network/Reconciler.ts: 線形補間 (Lerp) ロジックの実装．

2-4. Step 4: 50人規模最適化 (Optimization & Scaling)
    ■ 目標
    パケットサイズを削減し，50人同時動作時の帯域負荷を仕様内（30KB/s以下）に抑えること．

    ■ 実装対象
    ・packages/shared/
        - src/utils/quantization.ts: 座標の圧縮 (Float -> Uint16)．
    ・apps/server/
        - src/core/ServerEngine.ts: ループ処理の最適化，必要に応じたAoI（関心領域）判定．

2-5. Step 5: メタデータ・UI実装 (Meta Data & UI)
    ■ 目標
    ゲーム開始前のロビー画面およびUIを実装し，ゲームサイクルを完成させること．

    ■ 実装対象
    ・apps/client/
        - src/scenes/TitleScene.ts: 名前入力とスタート処理．
        - src/ui/UIManager.ts: DOMベースのUIオーバーレイ．
    ・packages/shared/
        - src/types/index.ts: ロビー用JSONメッセージの型定義．


3. 開発ルール (Development Rules)
------------------------------------------------------------------------
・ロジックの共通化:
    移動計算式や衝突判定は必ず `packages/shared` に実装し，Client/Server間でコードを共有する．
・検証優先:
    各Step完了ごとに動作確認を行い，バグを次工程に持ち越さない．