今後の展望:UEFN の安定性とイテレーション時間の改善 [thread]

著者:Aurel Cordonnier および Kavita Chodavarapu

フォートナイト デベロッパーの皆さん、こんにちは!

昨年、私たちは UEFN の安定性とイテレーション速度を改善することを約束しました https://www.youtube.com/watch?v=M1F5CimXO_8&t=2492s。私たちの目標は、6 月までにイテレーション時間を 50% 削減することです (あるいはそれ以上を目指しており、ここでは控えめに宣言して、結果で期待を上回りたいと考えています)。この投稿では、リリースの安定性に対処するために実施した内部テストおよび QA プロセスの変更と、イテレーション時間を改善するために今後数ヶ月で導入する一連の初期アップデートについて概説します。

リリースの安定性とテスト

テストのアプローチを変更し、皆さんにとって最も重要な要素、つまりエンゲージメントが高く、永続性が重視される島に重点を置きました。テストの対象範囲に、リグレッションが発生しやすいデベロッパー コンテンツも含まれるようになりました。その結果、デベロッパー エクスペリエンスに影響を与える前に、重大な欠陥を早期に発見できるようになりました。

また、24 時間体制のトリアージ エスカレーション プロセスが導入されました。これにより、問題を発見した場合、これまで以上に迅速に修正することが可能になりました。さらに、起動時間、読み込み時間、ミニゲームの操作などの主要なパフォーマンス ベンチマークを追跡するため、6 つの複雑なデベロッパーの島を週 2 回テストし、リグレッションが発生した場合は直ちにエスカレーションが実施されます。

これまでのところ、結果は良好です。リリース 39.30 では、不具合の 57% がライブ環境への導入を阻止し、リリース 39.40 と 39.50 では、デベロッパー コンテンツまたは永続性に関連する重大な不具合はゼロでした。これは、不具合のトリアージの迅速化とテスト範囲の拡大による直接的な成果です。エスケープ率 (ライブ環境への導入を免れた不具合) も大幅に減少しており、リリース 39.11 時点の 18.5% から、リリース 39.40 ではわずか 4.7% まで低下しました。

私たちは、内部的なメトリクスだけでは全体像を把握しきれないことを理解しています。そのため、コミュニティ チームと協力して月次の安定性アンケートを開始し、デベロッパーの皆さんから直接意見を伺うことで、実際に改善を実感できているかを確認して参ります。このフィードバックを通じて、安定性向上のためにどこに注力すべきかを判断していきます。

安定性とアセット管理ツール

内部 QA プロセスの拡張に加えて、クラッシュやフリーズが発生する前にプロジェクトのエラーを特定して修正するのに役立つ新しいツールとワークフローも追加しています。

  • アセット健全性ツール: 新しいインポート後の監視、レポート、およびプラットフォームごとのメモリしきい値を使用してイテレート処理を行い、アセット検証の問題と「メモリ不足」エラーを解決します。
  • 空間プロファイラの更新:UEFN の拡張プロファイリング機能により、プラットフォームを問わず、重いアセットを素早く特定できるようになります。これには、新しいダイレクト メモリ計算結果と、UObject 分析を備えた新しいライブ アセット ビュー Objects in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community が含まれます。

クッカーの最適化
プレイ セッションのために島を準備する時間を短縮し、イテレーション速度を向上させるため、私たちは UEFN のクッキング・パイプラインをより効率的なものへとリファクタリングしています。「クッキング」 cook (クック) | Fortnite ドキュメンテーション | Epic Developer Community とは、生のアセットを最適化されたクライアントですぐに使える形式に変換し、コンテンツの読み込みや描画を高速化させるプロセスのことです。

これらは UEFN のバックエンド インフラストラクチャにおける内部的な改善であるため、皆さんのワークフローを何か変更していただく必要はありません。

  • Zen DDC (派生データ キャッシュ - Using Derived Data Cache in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community Zen Server システムを UEFN バックエンドに展開し、クックされたスナップショットを導入してクック プロセスの効率を向上させます。これにより、クライアントでプレイ (Play on Client) して確認するまでのイテレーション ループが短縮されます。
  • 増分クッキング:変更されていないデータを再処理するのではなく、プロジェクトからプッシュされた必要なアセットのデルタ (変更) のみを処理するシステムを追加します。
  • 分散シェーダー コンパイル:ローカル マシンに全負荷をかける代わりに、シェーダーのコンパイルをクラウドに分散し、コンパイル時間を短縮します。

ライブ編集の改善:
ライブ編集を拡張し、追加のアセット タイプのサポートと、実行中のセッションを編集するための新しいエディタ内でのワークフローにより、ライブ編集セッション中にイテレート処理を実行するためのより多くの方法を提供します。

  • 拡張アセット タイプのサポート:ライブ編集セッションで直接、より多くのアセット タイプを変更できるようになり、変更をプッシュする頻度が減ります (例:サウンド バス、レベル シーケンスなど)。
  • ゲーム モード中のライブ編集:ライブ編集中にゲーム モードが進行中の場合、UEFN エディタでの編集の一部は、変更をプッシュしたりゲームを停止したりすることなく適用されます。例えば、障害物コースを作成している場合、オブジェクトを変形したり、位置を微調整したりできます。
  • 編集履歴パネル:セッションで実装された変更と、まだ変更をプッシュする必要がある編集が表示されます。このパネルは、セッションの実行中に編集モードとゲーム モードで機能します。

これらのアップデートは、フォートナイト デベロッパー ロードマップ Trello でご確認いただけます。また、UEFN の安定性とイテレーション時間の改善に向けた継続的な取り組みに関する最新情報も、このスレッドで共有していきます。

1 Like