diff --git "a/docs/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/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 ec0e55c..9920b53 100644 --- "a/docs/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/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" @@ -52,7 +52,7 @@ │ ├── constants.ts # 定数 (マップサイズ,速度,FPS) │ ├── types.ts # 型定義 (パケット構造,ステート) │ ├── physics.ts # 物理・移動判定ロジック - │ └── schema.proto # Protocol Buffers 定義 + │ └── binary.ts # バイナリシリアライズ処理 (DataView Wrappers) └── tsup.config.ts # ビルド設定 ※ shared は client/server 両方から import して使用する. @@ -65,9 +65,9 @@ ・Runtime: Node.js (v20 LTS 以上) ・Package Manager: pnpm ・Build Tool: tsup (高速で軽量なTypeScriptバンドラ) - ・Serialization: protobufjs (Google Protocol Buffers) - - 採用理由: 通信量削減(仕様書要件: 下り30KB/s以下)のため,JSONではなくバイナリを使用. - - 用途: 座標データの圧縮,イベント通信. + ・Serialization: Custom Binary (Standard DataView API) + - 採用理由: ライブラリ依存をなくし、仕様書要件(30KB/s以下)を満たす最適化を行うため。 + - 用途: 座標データ、入力情報の圧縮通信。 3-2. フロントエンド (Client) ・Build Tool: Vite diff --git "a/docs/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206\346\233\270.txt" "b/docs/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206\346\233\270.txt" index abe6e4e..48b1b60 100644 --- "a/docs/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206\346\233\270.txt" +++ "b/docs/ENV_02_\347\222\260\345\242\203\346\247\213\347\257\211\346\211\213\351\240\206\346\233\270.txt" @@ -14,15 +14,22 @@ 開発を開始する前に,以下のツールをインストールしバージョンを確認する. 1. Node.js (v20.x LTS) - ・公式サイトよりLTS版をインストールする. + ・Nodesource リポジトリを使用してインストールする. + # リポジトリのセットアップとインストール + $ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - + $ sudo apt-get install -y nodejs + ・確認コマンド: - $ node -v + $ node -v # v20.x.x と表示されること 2. pnpm (Package Manager) ・Node.js 標準の npm ではなく pnpm を使用する. - ・Corepack (Node.js同梱) を有効化するか,スタンドアロンでインストールする. + ・Corepack (Node.js同梱) を有効化してインストールする. + $ sudo corepack enable + $ corepack prepare pnpm@latest --activate + ・確認コマンド: - $ pnpm -v + $ pnpm -v 2. プロジェクト初期化 (Project Initialization) @@ -78,7 +85,7 @@ 1. 初期化とビルドツール導入 $ cd packages/shared $ pnpm init - $ pnpm add -D typescript tsup protobufjs + $ pnpm add -D typescript tsup 2. 設定ファイルの調整 (package.json) ・name: "@repo/shared" と命名する(推奨). @@ -91,11 +98,14 @@ 1. プロジェクト作成 $ cd ../../apps/client $ pnpm create vite . --template preact-ts + ※ 実行中に表示される選択肢には以下のように回答すること: + ? Use rolldown-vite (Experimental)? » No + ? Install with pnpm and start now? » No 2. 依存ライブラリのインストール - ・Pixi.js (描画エンジン) と protobufjs (通信) を追加する. + ・Pixi.js (描画エンジン) を追加する. ・共通ライブラリへの依存を追加する. - $ pnpm add pixi.js protobufjs + $ pnpm add pixi.js $ pnpm add @repo/shared --workspace 3-3. バックエンド (apps/server) @@ -106,10 +116,10 @@ $ pnpm init 2. 依存ライブラリのインストール - ・ws (WebSocket), protobufjs (通信) を追加する. + ・ws (WebSocket) を追加する. ・開発用ツール (tsx, typescript, @types/node, @types/ws) を追加する. ・共通ライブラリへの依存を追加する. - $ pnpm add ws protobufjs + $ pnpm add ws $ pnpm add -D tsx typescript @types/node @types/ws $ pnpm add @repo/shared --workspace