diff --git a/README.md b/README.md index 4812114..8ad1338 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ # SkillSemiWebGame + +設定値(config)の配置ルールと定数一覧は [packages/shared/src/config/README.md](packages/shared/src/config/README.md) を参照してください。 diff --git a/packages/shared/src/config/README.md b/packages/shared/src/config/README.md new file mode 100644 index 0000000..bce6cce --- /dev/null +++ b/packages/shared/src/config/README.md @@ -0,0 +1,70 @@ +# Config README + +このファイルは config 定数の管理台帳です。 +配置ルール・責務境界・定数一覧はここを正とします。 + +## 配置ルール + +- shared契約(client/serverで一致が必要): [packages/shared/src/config](packages/shared/src/config) +- client表示・操作系: [apps/client/src/config/index.ts](apps/client/src/config/index.ts) +- server運用・受け入れ系: [apps/server/src/config/index.ts](apps/server/src/config/index.ts) + +## 定数一覧 + +### shared + +対象: [packages/shared/src/config/gameConfig.ts](packages/shared/src/config/gameConfig.ts), [packages/shared/src/config/networkConfig.ts](packages/shared/src/config/networkConfig.ts) + +- `GAME_CONFIG.GAME_DURATION_SEC`: 1ゲームの制限時間(秒) +- `GAME_CONFIG.PLAYER_POSITION_UPDATE_MS`: プレイヤー座標を同期送信する間隔(ms) +- `GAME_CONFIG.GRID_COLS`: マップ横方向のグリッド数 +- `GAME_CONFIG.GRID_ROWS`: マップ縦方向のグリッド数 +- `GAME_CONFIG.PLAYER_RADIUS`: プレイヤー当たり判定半径(グリッド単位) +- `GAME_CONFIG.PLAYER_SPEED`: プレイヤー移動速度(1秒あたりのグリッド移動量) +- `GAME_CONFIG.BOMB_RADIUS_GRID`: 爆風半径(グリッド単位) +- `GAME_CONFIG.BOMB_FUSE_MS`: 爆弾設置から爆発までの時間(ms) +- `GAME_CONFIG.BOMB_COOLDOWN_MS`: 次の爆弾を置けるまでの待機時間(ms) +- `GAME_CONFIG.TEAM_COUNT`: チーム総数 +- `TEAM_NAMES`: `teamId` 順の表示名配列 +- `validateTeamConfig`: チーム関連設定(件数整合性)を検証する関数 +- `assertValidTeamId`: `teamId` が有効範囲内かを検証する関数 +- `NETWORK_CONFIG.SOCKET_IO_PATH`: Socket.IO 接続パス(client/server共通契約) + +### client + +対象: [apps/client/src/config/index.ts](apps/client/src/config/index.ts) + +- `GAME_CONFIG.TIMER_DISPLAY_UPDATE_MS`: 画面の残り時間表示を更新する間隔(ms) +- `GAME_CONFIG.JOIN_REQUEST_TIMEOUT_MS`: ルーム参加要求のタイムアウト時間(ms) +- `GAME_CONFIG.PLAYER_LERP_SMOOTHNESS`: リモートプレイヤー補間の追従係数(大きいほど追従が速い) +- `GAME_CONFIG.PLAYER_LERP_SNAP_THRESHOLD`: 補間終了時に目標座標へ吸着する閾値 +- `GAME_CONFIG.GRID_CELL_SIZE`: 1グリッドの描画サイズ(px) +- `GAME_CONFIG.TEAM_COLORS`: `teamId` 順の描画色(16進カラー文字列) +- `GAME_CONFIG.MAP_BG_COLOR`: マップ背景色(Pixi用16進数) +- `GAME_CONFIG.MAP_GRID_COLOR`: グリッド線の色(Pixi用16進数) +- `GAME_CONFIG.MAP_BORDER_COLOR`: マップ外周線の色(Pixi用16進数) +- `GAME_CONFIG.MAP_WIDTH_PX` (getter): マップ横幅(`GRID_COLS * GRID_CELL_SIZE`) +- `GAME_CONFIG.MAP_HEIGHT_PX` (getter): マップ縦幅(`GRID_ROWS * GRID_CELL_SIZE`) +- `GAME_CONFIG.PLAYER_RADIUS_PX` (getter): プレイヤー半径の描画サイズ(px) +- `NETWORK_CONFIG.DEV_SERVER_HOST`: 開発環境の接続先ホスト +- `NETWORK_CONFIG.DEV_SERVER_PORT`: 開発環境の接続先ポート +- `NETWORK_CONFIG.DEV_SERVER_URL` (getter): 開発環境の接続先URL(host + port) +- `NETWORK_CONFIG.PROD_SERVER_URL`: 本番環境の接続先URL +- `NETWORK_CONFIG.SOCKET_TRANSPORTS`: Socket.IO の許可トランスポート種別 +- `NETWORK_CONFIG.SOCKET_IO_PATH`: Socket.IO 接続パス(shared契約を再利用) + +### server + +対象: [apps/server/src/config/index.ts](apps/server/src/config/index.ts) + +- `GAME_CONFIG.MAX_PLAYERS_PER_ROOM`: 1ルームに参加できる最大人数 +- `NETWORK_CONFIG.DEV_SERVER_PORT`: サーバー起動時の待受ポート(環境変数未指定時) +- `NETWORK_CONFIG.CORS_ORIGIN`: CORS で許可するオリジン +- `NETWORK_CONFIG.CORS_METHODS`: CORS で許可するHTTPメソッド + +## 追加・変更ルール + +- 変更時に client と server の同時反映が必須なら shared に追加する +- 片側のみで完結する値はその側の config に追加する +- 未使用の定数は原則削除する +- 将来利用予定で残す場合は、このREADMEに理由と予定利用箇所を追記する