ライブホットリロードプレビュー + セッションリプレイ
この日は、「言って、見て」という感覚を完全に終わらせました。ゲームのファイルを編集すると、センターのプレビューが自動的に更新されます。セッションを再開し、以前の前後のリプレイを完全に再開します。それに加えて、シェーダーをファイル間で構成してホットリロードすることができ、新しいゲームには実行可能なスターターが同梱され、エージェントはユーザーがどのゲームに取り組んでいるのかを常に認識します。
賭けから筋肉の記憶へ: 「言う、見る」を反射的にする
これまでは、「会話によって実行可能なものを構築できる」ことが証明され、レンダリング、アセット、安全性の基礎が強化されました。この日のテーマは、そのループを「1 回実行」から「快適に使用できる」ループに磨き上げることです。変更は即座に表示され、履歴は失われることがなく、エージェントがどのターゲットに作用しているのかを混乱することはありません。これらはすべて「うまくいくはず」のエクスペリエンスのように聞こえますが、それぞれの背後にはエンジニアリング上の実際のギャップが埋められています。すべてが埋まって初めて、プラットフォームは「デモできる」状態から「何時間も座って使用できる」状態になります。
ライブホットリロードプレビュー: ファイルを編集すると、画像が自動的に変化します
この日は、センター プレビューを「ホット リロード ブリッジ」に接続しました。ゲームのファイルが変更されると、手動でリロード クリックすることなく、プレビューが自動的に更新されて最新のものが表示されます。これは、バックエンドがゲームのディレクトリ内のファイルの変更を継続的に監視し、何かが変更された瞬間にリアルタイム チャネル経由でフロントエンドに通知し、プレビューをリロードすることによって機能します。これは「クリックを節約する」ように見えるかもしれませんが、「言って、見てみる」ループの重要なリンクです。エージェントが編集を完了すると、ほぼ即座に結果が画面に表示され、会話と画像の間の待ち時間が最小限に抑えられます。何時間も座ってゲームを作る人にとって、この「変更した内容が表示されたものになる」という即時フィードバックは、インスピレーションを実装に結びつけるものです。
セッションリプレイ: セッションを再度開くと、やり取りが戻ります
AI と十分に長くコラボレーションすると、提起した要件、AI が下した決定、迂回した迂回路など、セッション履歴が貴重な資産になります。この日は、セッション履歴を耐久性のある「台帳」に永続化し、そこから以前のやり取りをリプレイしてセッションを再開できるようにしました。技術的な微妙な点が 1 つ処理されました。リアルタイム イベント ストリームは、フルテキストではなく、「何が起こったか」の軽量の記録のみを伝送するため、リプレイではイベントを単純にリプレイするのではなく、台帳から実際のコンテンツを再構築する必要があります。重要性: 閉じて戻っても、コンテキストは失われません。一連の歴史はいつでも、起こったとおりに再訪することができます。これにより、毎回白紙のページから始めるのではなく、「長期にわたって、何ラウンドにもわたってプロジェクトに取り組む」ことが可能になります。
コンポーザブル シェーダ + ファイル間ホットリロード
このエンジンは、今日シェーダーに「コンポーザブル」機能を提供しました。シェーダーは、すべてのコードを 1 つのファイルにまとめるのではなく、相互にインポートし、フラグメントを共有し、マクロ定義でパラメータ化することができます。さらに良いことに、ファイル間のホットリロードをサポートしています。他の人が参照している共有フラグメントを編集すると、それを使用しているすべてのシェーダーが即座に更新されます。視覚効果を作成する人にとって、これはシェーダ コードをビルディング ブロックのように整理することを意味します。共通の照明、ノイズ、色の処理を、どこでも参照される再利用可能なモジュールに組み込むことができます。 1 つ変更すると、どこにでも反映され、一度に確認できます。これにより、「エフェクトの作成」が「1 つの大きな blob に対する試行錯誤」から「再利用可能なモジュールの構成とライブ調整」に変わり、レンダリング表現力が真に拡張されます。
統合されたエンジン コンソール: 1 つの実行チャネル、どこでも一貫性のある
このエンジンは、「コンソール」デバッグ/検査チャネルを単一の抽象化に統合しました。バックエンドは 1 つの実行チャネルに収束し、コマンドライン側は軽量の読み取り専用検査エントリを提供します。統合の利点は、一貫した動作とよりシンプルなメンタル モデルです。どこで検査または実行を開始しても、それぞれの場所でわずかに異なる独自のバージョンが存在するのではなく、同じ秩序あるパスをたどります。このような抽象化の収束は通常、ユーザー側では目に見えませんが、機能が積み重なるにつれてシステムがさらに乱雑になるかどうかは、それによって決まります。 「コンソールの動作方法」を 1 つの権威あるチャネルに早期に統合すると、後でコンソールに接続されるすべての機能に同じルールが設定されます。
新しいゲームには実行可能なスターターが同梱されており、エージェントはどのゲームを知っているかを常に把握しています
この日は「ゲームを作る」をよりスムーズにするための2つの内容を詰め込みました。 1 つ目: 新しいゲームには直接実行可能なスターター (回転キューブの開口部) が同梱されているため、ゲームを作成した瞬間に、空白を見つめて最初から書き込むのではなく、絵が表示されます。 2 つ目: 「現在どのゲームに取り組んでいるか」というコンテキストがエージェントのシステム プロンプトに明示的に入力されるため、コードを書き込むべきゲームが明確にわかります。後者は、危険な落とし穴を修正します。複数のゲームが共存しているため、現在のターゲットがわからないエージェントは間違った場所を簡単に編集してしまいます。 「アクティブなゲーム」を明示的で確実に渡されるコンテキストにすることは、エージェントに間違った方向を指さないコンパスを与えるようなものです。
バックエンドはそれを堅固に保ちます: より多くのテスト、パスの編集、名前の検証
バックエンドは「テストで動作を抑制する」というリズムを維持し、エンドツーエンドのプローブと単体テストの大規模なバッチをさらに追加しました。いくつかの焦点は、ゲームとプロジェクトの命名規則を多くのケースでロックすること (どの名前が有効で、どの名前が拒否されるべきか、テストによってすべての境界が保護される)、外部応答でユーザーのホーム パスを編集し続けること (マシンの実際のパスが漏洩しないこと)、システム プロンプトを純粋な個別にテスト可能な関数に構築するなどの重要なロジックを抽出することです。これらはどれも派手な機能ではありません。彼らは「信頼に値するファイル編集システムを作る」という日々の仕事なのです。注目すべきことに、この日は別のコーディング バックエンドのイベント形式にも適応し、より多くのモデル駆動オプションの統合がスムーズになり、選択肢が 1 つ増え、一貫したエクスペリエンスが得られました。
この日が意味するもの
一緒に見ると、一貫した方針は明らかです。「会話しながら構築」を可能にするだけでなく、スムーズに行うことです。変更は即座に表示され(ホットリロード)、履歴は完全に回復可能(セッションリプレイ)、ビルディングブロックのように整理されたエフェクト(コンポーザブルシェーダー)、エージェントが間違ったターゲットを編集することはありません(アクティブゲームコンテキスト)、信頼に値するバックエンド(テストとリダクション)、それぞれがフローを中断する可能性のある小さな摩擦を取り除きます。ツールが使いやすいかどうかは、多くの場合、そのツールが 1 つの大きなことを実行できるかどうかよりも、日常的な 100 の小さなことをどれだけスムーズに実行できるかによって決まります。この日に記入されたのは、その 100 件のうち最も重要なもののいくつかでした。