コーディングエージェントとゲームを作る
ゲームを書くのは、あなたのコンピューターで動くコーディングエージェントです。Pocket Studio はエージェントに pocket-studio コマンドを渡します。このコマンドがプロジェクトを作り、PocketJS のコンパイラでビルドし、ゲームの画面をエージェントに見せ、ビルドを部屋のデバイスへ送ります。エージェントは Claude Code か Codex です。
#コンピューターの準備(最初の 1 回だけ)
作業台の Claude Code か Codex のフィギュアをクリックします。カードには 2 つの手順があります。
1. ターミナルでコマンドを実行する。
curl -fsSL https://studio.pocket.nexus/install | sh -s -- claude
Codex の場合は claude を codex に置き換えます。このコマンドは次のことをします。
curlとtar、そしてエージェント自身のコマンド(claudeかcodex)がPATHにあることを確認します。- Bun を探し、なければ Bun 公式のインストーラーで
~/.bunに入れます。 - Pocket Studio のキット(コマンド、スターターゲーム、プラグイン、PocketJS のコンパイラ)をダウンロードし、
~/.pocket-studioにコピーします。 pocket-studioコマンドをPATHに置きます。Bun のディレクトリがホームディレクトリの中にあればそこに、なければ~/.local/binか~/binに置きます。シェルの設定ファイルは書き換えません。そのディレクトリがPATHにないときは、Add ~/.local/bin to PATH to run it as pocket-studio.のように知らせます。- エージェント自身のプラグインコマンドで、Pocket Studio のプラグインをエージェントに入れます。
2. エージェントの新しいセッションにプロンプトを貼り付ける。 カードは選んだデバイス向けのプロンプトを、リンクコード付きで書き出します。
Pocket Studio で PSP 向けのゲームを作ってください。Link code: K7QD-9M4X。ゲーム: <ゲームの内容を書いてください>
<ゲームの内容を書いてください> を作りたいゲームの説明に書き換えて送ります。Link code: の部分はそのままにします。リンクコードはエージェントをあなたの部屋に 1 回だけ、15 分以内につなぎます。エージェントはプロンプトの言語で返事をします。
#エージェントがすること
プラグインのスキルが、エージェントに手順を伝えます。エージェントは次のコマンドを実行します。
pocket-studio link <CODE>:このコンピューターをあなたのアカウントにつなぎます。pocket-studio new --device psp --title "Moon Lander" --agent claude:動くスターターゲームを./moon-lander/にコピーし、部屋にセッションを開いて、最初のビルドをデバイスに送ります。pocket-studio title "Moon Lander" --tagline "…":棚のゲーム名をすぐに付けます。- プロジェクトの
AGENTS.mdを読んでから、ゲームを書きます。 pocket-studio shot --do "<手順>":画面なしでゲームをコンピューター上で動かし、状態ごとに画像を書き出します。エージェントはその画像を読みます。pocket-studio push:ゲームをビルドして送ります。数秒後に部屋のデバイスでビルドが始まり、Moon Lander のビルド 2 が PSP に届きました。のように表示されます。
そのあとエージェントは遊び方を伝え、遊んでみた感想をたずねます。公開するのは、あなたが頼んだときだけです。
#部屋から始める
デバイスのカードの 新しいゲームを作る、または作業台の 新しいゲーム を押すと、ペアリングコード付きのコマンドが表示されます。
pocket-studio create PINE-QWJ6
準備の済んだコンピューターのターミナルで実行します。コンピューターをつなぎ、スターターからプロジェクトを作り、最初のビルドを送り、PATH で最初に見つかったコーディングエージェントをプロジェクトの中で起動します。--agent codex でエージェントを選び、--agent none で起動せず、--no-launch でプロジェクトだけを作ります。コマンドは 1 回だけ、15 分間使えます。新しいコマンドを受け取る で次のコマンドが表示されます。
プロジェクトの中で pocket-studio continue を実行すると、エージェントがもう一度そこで起動します。
#プロジェクト
| ファイル | 中身 |
|---|---|
game.ts | ルール。1 つの Game オブジェクトを扱う関数です。 |
app.tsx | すべての画面と、フレームごとの処理。 |
layout.ts | 画面の形ごとのレイアウト。 |
kit.tsx | デバイスの情報、操作、タッチボタン。 |
main.tsx | アプリを表示します。 |
pocket.json | アプリのマニフェスト。ID、機能、デバイスの系統ごとのビューポート。 |
studio.json | ゲームのカード。タイトル、キャッチコピー、カバーの色。 |
AGENTS.md | エージェント向けのプロジェクトの案内。CLAUDE.md はこれを指しています。 |
.pocket-studio.json | セッションとそのトークン。だれにも渡さず、コミットもしません。 |
新しいプロジェクトは、スターターゲーム(Snack Snake、Twenty48、Boxel)のどれかから始まります。.pocket-studio.json と .pocket/(ビルドと画像)は、プロジェクトの .gitignore に加えられます。
ゲームは PocketJS 向けの TypeScript のプログラムです。JSX がビューのツリーを 1 度だけ作り、シグナルが個々のノードを更新し、Rust のコアが 1 秒に 60 回レイアウトして描きます。プロジェクトに package.json はありません。@pocketjs/framework と solid-js はコンパイラが用意します。
#デバイス
| デバイス | --device | 画面(論理ピクセル) | 入力 |
|---|---|---|---|
| PSP | psp | 480 × 272 | ボタン |
| PS Vita | vita | 480 × 272 | ボタンとタッチ |
| ニンテンドー3DS | 3ds | 400 × 240、その下に 320 × 240 | ボタン、下画面のタッチ |
| iPod touch | ipod-touch | 320 × 480 | タッチ |
| Android スマートフォン | android | 360 × 640 | タッチ |
プロジェクトは一度に 1 台のデバイスにつながります。プロジェクトの中で pocket-studio new --device <id> --dir . を実行すると、ファイルはそのままで別のデバイスのセッションに移ります。
#自分で操作する
同じコマンドは自分でも実行できます。pocket-studio dev は、Ctrl-C で止めるまで、ファイルを保存するたびにビルドして送ります。pocket-studio status はセッションの状態とビルド番号を表示します。すべてのコマンドは CLI リファレンスにあります。
#2 つの作り方
作業台には 2 つの作り方があります。プロ はこのページの方法で、あなたのコンピューターのコーディングエージェントが作ります。どんな大きさのゲームにも向いています。Pocket Studio の AI がページの中で小さなゲームを作る カジュアル は、近日公開です。