diff --git "a/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" "b/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" index 8a7a56b..3e34b9e 100644 --- "a/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" +++ "b/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" @@ -95,20 +95,35 @@ │ ├── tsconfig.json # TS設定 │ └── src/ │ ├── index.ts # サーバー起点 + │ ├── logging/ + │ │ └── logEvent.ts # 共通ログ出力 │ ├── domains/ │ │ ├── game/ - │ │ │ ├── GameHandler.ts # ゲーム入出力 │ │ │ ├── GameLoop.ts # 固定ループ │ │ │ ├── GameManager.ts # ゲーム状態管理 + │ │ │ ├── application/ # ユースケース・サービス │ │ │ ├── entities/ │ │ │ │ └── Player.ts # サーバーPlayer │ │ │ └── states/ │ │ │ └── MapStore.ts # マップ状態保持 │ │ └── room/ - │ │ ├── RoomHandler.ts # ルーム入出力 + │ │ ├── application/ # ユースケース・サービス │ │ └── RoomManager.ts # ルーム管理 │ └── network/ - │ └── SocketManager.ts # WS接続管理 + │ ├── SocketManager.ts # WS接続管理 + │ ├── adapters/ + │ │ └── socketEmitters.ts # 送信アダプタ + │ ├── handlers/ + │ │ ├── CommonHandler.ts # 共通WSハンドラ + │ │ ├── GameHandler.ts # ゲームWSハンドラ(中間層) + │ │ ├── RoomHandler.ts # ルームWSハンドラ(中間層) + │ │ ├── game/ # ゲーム中粒度配線 + │ │ └── room/ # ルーム中粒度配線 + │ ├── bootstrap/ + │ │ ├── createHttpServer.ts # HTTP生成 + │ │ ├── createIo.ts # Socket.IO生成 + │ │ └── boot.ts # 起動配線 + │ └── createIo.ts # 互換用ファイル ├── docs/ │ ├── 01_Env/ │ │ ├── ENV_01_環境構築・技術スタック.txt # 環境・技術定義 @@ -188,13 +203,13 @@ - 採用理由: 50人同時対戦時の大量のスプライト描画と60fps維持のため. ・UI Library: Preact (または Vanilla HTML/CSS) - 採用理由: ゲームループへの負荷を避けつつ,軽量なHUDを構築するため. - ・Network: Native WebSocket API + ・Network: socket.io-client 3-3. バックエンド (Server) ・Runtime: Node.js ・Execution: tsx (開発時の高速実行・ウォッチ用) - ・WebSocket Library: ws - - 採用理由: 軽量かつ標準的.uWebSockets.js への移行も視野に入れるが初期は ws で実装. + ・WebSocket Library: Socket.IO + - 採用理由: 接続管理・イベント配線を明確化しやすく,Client 側 (socket.io-client) と整合するため. ・Logic: 独自ループ (20Hz固定) - Physics Engine: 使用しない (shared/physics.ts による独自グリッド判定)