R4 フロントエンド ランド + ビューポート 2×2 の再設計
この日、エディターで感じられるいくつかの Studio の変更がリリースされました。R4 フロントエンド アプリ (チャット、ワークベンチ、設定、ダッシュボード) は、スリム化されたインターフェイス ストアを使用してブート チェーンに最終的に接続されました。ビューポートは、相互に排他的な編集/再生切り替えから 2×2 実行×表示マトリックスに移行しました。エディターはゲーム パスをハードコーディングしなくなり、代わりに Studio がゲーム レイアウトを挿入します。それに加えて、「bun fx update」には色分けされた構造化レポートが追加され、デスクトップ パッケージ化スクリプトはクロスプラットフォーム ビルド向けに強化されました。
R4 フロントエンド: スタンドアロンのサブモジュールから実際の実行まで
6 月 30 日にチャット、ワークベンチ、設定、ダッシュボードをスタンドアロンのサブモジュールに分割した後、この日はそれらを「有効にする」ということでした。インターフェイス パッケージは、純粋な AppKit レイヤー (バス、ブロードキャスト、ディープ リンク、オーバーレイ) にスリム化されました。 4 つの L2 アプリはそれぞれエージェントの設定を所有し、1 つの大きなストアに混雑するのではなく、バス経由でファイル プレビューを行います。 Studio の main.tsx は、起動時に initAgentPrefs、initFilePreview、bootBroadcast、およびデーモン ティック サブスクリプションを初期化するようになりました。4 つのモジュールはもはや「そこにあるサブディレクトリ」ではなく、エディターの正式な部分です。 R4 は、計画から、毎日開発できる構造へと移行しました。
ビューポート 2×2: 実行モード × 表示モード
この日、エディターのビューポートの 2×2 の再設計が完了しました。以前は、編集と再生は 2 つの相互排他的な状態でした。切り替えるにはビューポート全体を再構築する必要がありました。新しい設計では、「実行モード」(編集/再生) と「表示モード」(シーン/ゲーム) が、2×2 マトリックスを形成する 2 つの直交する次元に分割されています。異なる実行状態によって駆動される、シーン ビューとゲーム ビューの両方を一度に見ることができます。 AppMode は、インターフェイスとエディターのサブモジュールがこのビューポートのセマンティクスに合わせて、唯一の信頼できる情報源になりました。これは、UE5 スタイルの編集エクスペリエンスへの一歩です。前後に切り替えることなく、1 つの画面で編集とプレビューを実行できます。
エディターがゲーム パスを分離 — スタジオがレイアウトを挿入
この日、エディターのサブモジュールはゲーム ディレクトリへのハードコーディングされた依存関係を取り除き、レイアウトに依存しないスタンドアロン パッケージになりました。ゲーム ファイルが存在する場所と URL プレフィックスがエディターによって「ベイク」されなくなりました。ホスト (スタジオ) がそれを挿入します。メイン ビューポート iframe は EditSurfaceProps.gameRoot 経由でパスを取得し、localStorage は同じゲームを指すパネル iframe を保持します。エンジンを起動すると、ディスク スキャン ディレクトリとクライアント URL プレフィックスが渡されます。デスクトップ パッケージ化では、フリーズしたアプリがゲーム アセットを正しく提供できるように、URL プレフィックスもベイク処理されます。 Studio がプロジェクト レイアウトを所有しながら、エディターは独立して進化でき、境界が明確になります。
bun fx アップデート: コードをプルして一目ですべてを確認
開発者が毎朝最初に行うことは、通常、最新のコードをプルすることです。以前は、bun fx update は git pull とサブモジュールの同期をサイレントに実行していました。成功した場合は何も言わず、失敗した場合は不透明なエラーをダンプしていました。この日は、構造化された更新レポートを追加しました。これは、各サブモジュールのプル結果 (成功、スキップ、競合)、現在のブランチ、および最新のコミットの概要を示す色分けされた表です。サブモジュールにスタッシュが必要なローカル変更がある場合は、明示的に通知されます。 1 回更新すると、プロジェクト全体がどのような状態にあるかがわかります。各サブモジュールで git status を 1 つずつ実行する必要はなくなります。
デスクトップ パッケージ化: クロスプラットフォーム スクリプト + バージョン ベイク
この日もデスクトップのパッケージ化が強化されました。build-desktop.ts はテストが追加されたクロスプラットフォーム スクリプトになりました。ベンダーのプラットフォーム io とエージェント ホストをサイドカーにパッケージ化し、実行時にアセンブルするのではなく、lib/version.ts 経由でバージョンをアーティファクトにベイクします。また、bun fx start には、起動前に共通ポートがすでに使用されているかどうかを調べるポートビジー チェックが追加されているため、スタックの半分が実行されているにもかかわらず、その理由がわからないという事態は発生しません。これらはどれもそれ自体は派手なものではありませんが、パッケージ化と起動が Windows と macOS でスムーズに動作するかどうかを決定します。
この日が意味するもの
この日のテーマは「境界着陸」。昨日の R4 スプリットが方向性を定めました。今日、4 つのモジュールが実際にブート チェーンに接続されました。ビューポート 2×2 は、編集とプレビューを相互排他的なものからコンポーザブルなものに変えました。編集者はゲーム ディレクトリの所有権を Studio に戻しました。各作品は同じ質問に答えています。この編集者では、誰が何を所有していますか?境界が明確になると、モジュールは独立して反復処理できるようになります。ワークベンチを再構築せずにチャットに触れたり、Studio のプロジェクト レイアウトに触れることなくエディターを交換したりできます。スタジオは、1 つの大きな泥の塊から、明確な責任を持つ一連のモジュールに移行しつつあります。