Skip to content

はじめに

UZU PlayScreen v3 SDK を使ってマルチプレイ対応の Web ゲームを作成する手順を説明します。

前提条件

ツールバージョン
Node.js20+
TypeScript5.7+
Vite6.0+

パッケージの取得

GitHub Packages npm レジストリからインストールします。~/.npmrc を作成してレジストリを設定してください。

bash
//npm.pkg.github.com/:_authToken=<GITHUB_PAT>
@uzupj:registry=https://npm.pkg.github.com

プロジェクトの作成

CLI コマンドでプロジェクトを生成します。

bash
npx @uzupj/uzu-cli create-2d-game my-game
cd my-game
npm install

生成されるファイル構成:

my-game/
├── manifest.json       # ゲームメタデータ
├── package.json        # npm 設定
├── tsconfig.json       # TypeScript 設定
├── vite.config.ts      # Vite 設定
├── index.html          # エントリー HTML
└── src/
    └── main.ts         # エントリーポイント

manifest.json

ゲームの ID や名前などのメタデータを定義します。詳細は manifest リファレンス を参照してください。

json
{
  "id": "my-game",
  "build": "npm run build",
  "output": "dist",
  "playerCount": 1
}

開発サーバーの起動

bash
npm run dev

ブラウザで http://localhost:5173 を開くとゲームが表示されます。roomId パラメータがない場合はローカルモードで動作し、サーバーなしでゲームロジックをテストできます。

マルチプレイをテストするには URL に ?__dev=2 を付けてください。2 画面の iframe が並んで P2P でマルチプレイをシミュレートできます。

パブリッシュ

bash
npx uzu publish

manifest.json を読み取り、ビルド → ZIP 化 → R2 アップロード → リビジョン登録まで自動で行います。--skip-build でビルドをスキップできます。

パッケージの役割

パッケージ役割
@uzupj/uzu-sdkマルチプレイ通信・状態同期・ボイスチャット・サウンド再生
@uzupj/engine-2dCanvas 描画・アニメーション・入力・物理演算 (推奨ランタイム)
@uzupj/uzu-cliプロジェクト生成 (create-2d-game) とパブリッシュ (publish)

次のステップ