すべて任意です
Deki に AI は入っていません。エンジンも、エディターも、作ったゲームも、モデルを呼び出すことはなく、アカウントも不要で、どこにも何も送りません。このページに書いてあるのは、すでに使っているエージェントにエディターを操作させる方法であり、そのどれもがエディター上で手作業でもできます。
エージェントを使わないなら、このページは読み飛ばしてかまいません。サイトのほかの部分はこれに依存しておらず、プロジェクトにも何の変化もありません。
Deki の作り方
エンジンとエディターは AI の支援を受けて開発しています。AI エージェントと一緒に作業し、その多くはこのページにあるツールを通して行っています。これは Deki の作り方であって、あなたに求めることではありません。配布されるのは普通の C++ で、それで作ったゲームに AI は入っていません。
エージェントにできること
エディターには MCP サーバーが組み込まれています。接続したエージェントは、エディター自身のコマンドラインと同じツール、約 80 個を使えます。
| 分野 | ツール |
|---|---|
| シーン | オブジェクトの作成、削除、複製、名前の変更、親の変更。移動、回転、拡大縮小。コンポーネントの追加と削除。プロパティの読み取りと設定。元に戻す・やり直し。シーンを開く、保存する、新規作成する。 |
| アセット | アセットの一覧、インポート、移動、作成、オープン。アセットブラウザーでの選択。 |
| プロジェクト | プロジェクトの作成とオープン、プロジェクト設定と起動シーンの設定、パッケージのインストール、コードのリビルド。 |
| ビルド | プラットフォームの選択、ファームウェアのビルド、書き込みやインストール、ツールチェーンの確認、クリーン。 |
| ボード | 接続したボードに映っている画面のスクリーンショット、フレームレートと空きメモリの読み取り。 |
| ウィンドウ | エディター全体やパネル単位のスクリーンショット、連続フレーム、クリック、ドラッグ、キー入力、文字入力、パネルを開く・フォーカスする、ダイアログへの応答。 |
開いているシーン、コンポーネントの一覧、プロジェクト設定は MCP リソースとしても読めます。パッケージは独自のツールを追加でき、それも同じ一覧に並びます。
これでできる一番長いループは、コンポーネントを変更し、リビルドし、シーンを再生し、スクリーンショットを撮り、ファームウェアをビルドし、ボードに書き込み、ボードのスクリーンショットを撮ってフレームレートを読む、というものです。エージェントは人の手を介さずにこれを繰り返せます。このサイトのエディター画像はすべて、これらのツールで作りました。
クライアントをつなぐ
エディターのウィンドウはどれも、そのコンピューターの中だけ(127.0.0.1)でサーバーを動かしていて、トークン付きのリクエストにしか応えません。ステータスバー右下の MCP が、動いていることを示します。
- エディターでプロジェクトを開きます。
- ステータスバーの MCP を右クリックします。トークン込みの接続 URL がコピーされます。
- その URL を、MCP クライアントに SSE サーバーとして渡します。
たとえば Claude Code では:
claude mcp add --transport sse deki "<コピーした URL>"
トークンはエディターを起動するたびに新しくなります。再起動しても使える設定にするには、エディターとクライアントの両方に DEKI_MCP_TOKEN(16 文字以上)を設定し、エディターを --mcp で起動して、固定の URL を使います:
DekiEditor --mcp /path/to/project
http://127.0.0.1:3000/sse?token=<DEKI_MCP_TOKEN の値>
3000 番が使われているときは --mcp-port で別のポートを選べます。ステータスバーの MCP をクリックすると、サーバーは止まります。
MCP なしで
コマンドを実行できるエージェントなら、MCP はまったく要りません。同じツールがエディターのコマンドラインにあります:
DekiEditor --list-tools /path/to/project
DekiEditor --tool get_scene_info /path/to/project
DekiEditor --tool create_object --args '{"name": "Player"}' /path/to/project
--script は JSON で並べた手順を順に実行し、最初に失敗したところで止まります。手順は "as" で結果を保存でき、後の手順でそれを使えます:
[
{ "tool": "create_object", "args": { "name": "Player" }, "as": "player" },
{ "tool": "set_position", "args": { "object_id": "${player.id}", "x": 160, "y": 120 } },
{ "tool": "save_scene" },
{ "tool": "screenshot", "args": { "path": "C:/shots/player.png", "panel": "Scene View" } }
]
そのプロジェクトを開いているエディターがあれば、これらはそのエディターで動き、変更はその場で見えます。なければ、エディターを最小化してフォーカスを奪わずに開き、そのまま開いておきます。--headless は、終わると閉じる非表示のエディターで実行します。CI 向けです。
作業を見守る
エージェントは、あなたから見えるエディターで作業します。何かを変える呼び出しのたびに、紫のポインターがその対象へ動きます。ヒエラルキーのオブジェクトの行、インスペクターのプロパティ、アセット、クリックした正確なピクセル。「Setting SpriteComponent.color」のようなラベルが、何をしているかを示します。ポインターはスクリーンショットには写らず、何もしない時間が数秒続くと消えます。
ポインターのせいで、変更ごとに 0.3 秒待ちます。Editor Settings > MCP > Agent Pointer のチェックを外すと消え、呼び出しはすぐに実行されます。
手元に残るもの
- 元に戻す。 エージェントによるシーンの変更は、あなたの変更と同じ取り消し履歴に入ります。Ctrl+Z で一つずつ戻せます。
- 確認。 エディターがダイアログであなたに尋ねる場面では、エージェントにも同じように尋ねます。エージェントはダイアログを見て、答えなければなりません。勝手に同意されることはありません。
- デスクトップ。 ツールがエディターを前面に出したり、キーボードを奪ったりすることはありません。エージェントが作業している間も、コンピューターでほかのことができます。
- あなたのマシン。 サーバーはループバックでしか待ち受けず、トークンのないリクエストは拒否します。ネットワーク上のほかのマシンからは届きません。