このブログでは、今まで公開された記事の中で、Unreal Engineに関する記事を取り上げ、UE4ガベージコレクション実装原理や実際の応用、そしてUE5の新機能LumenとNaniteの簡単紹介と実装原理、などの記事をまとめます。
まずはUE4ガベージコレクション、この記事の著者は南京周潤發で、今は杭州某ゲーム会社のクライアント開発を従事しています。2017年にゲーム開発業界に参入し、MMOやバトルロイヤルゲームの制作に参加。現在、UE4 のモバイル ゲーム開発に携わっており、技術的な学習が大好きで、UE4 と Lua の両方について研究しています。
著者の分析に従って、一緒にUE4ガベージコレクションの実装原理を深く分析しましょう。
この記事では主に UE4 のガベージ コレクション システムの実現原理を紹介しました。 UE4 は C++ でオブジェクト システムをカプセル化し、リフレクションを追加して C++ ベースのガベージ コレクションを実装します。そのため、開発者は、UObject を使用するときにメモリを手動で管理する必要はありません。効率と利便性を考慮しました、
UE4は「Mark Sweep」というGCアルゴリズムを採用していますが、記事ではまず「Mark Sweep」の基本原理を紹介します。 UE4 の GC アルゴリズムは、マーキングとスイープの 2 つの段階に分けることができます。
1)マーキングステージ
マーキングは、GC アルゴリズムの重要な部分です。 UE4 は「ルート セット」から開始し、参照関係に従ってメモリ内の到達可能なすべての UObject を検索します。検索を高速化するために、一方ではマルチスレッド テクノロジを使用して並列に検索し、他方では ReferenceTokenStream をリフレクションによって生成して、UObject 参照関係をトラバースする効率を向上させます。
2)スイープステージ
到達可能なすべての UObject はマーキング段階で収集され、残りの到達不能な UObject はガベージと見なされ、UE によって削除され、メモリが解放されます。ガベージの後に到達可能になることは不可能であるため、UE はフレームごとにそれらをクリーンアップして、ストールを回避できます。
この記事は中級レベルのコースであり、UE4 開発に関心のある読者に適しています。
関連コース:
説明:
全文は約5,500ワード、読了時間は約40分です。
コースのリリース時間: 2020 年 11 月 4 日
適した読者:
UE4開発に携わるプログラマー
C++の知識があり、C++をベースにGCを実装したい開発者
UE4 オブジェクト システムとリフレクションに関心のある読者
得られる知見:
UE4 GC 原理の分析
関連コードの詳細説明
UE4の使用スキルとプログラミングスキル
目次:
UE4GCの概要
UE4GCのプロセス
スイープのプロセス
理論的な記事の以外、以下のような実用的な記事もあります。
投稿者:落月満江樹
著者のホームページ: https://www.zhihu.com/people/luo-yue-man-jiang-shu-38
UE5に関する記事は以下のよう示します。
投稿者:洛城
現在 Tencent のゲーム R&D 効率部のエンジンミドルプラットフォーム部門で働いています。
著者のホームページ: https://www.zhihu.com/people/luo-cheng-11-75、
投稿者:Jiff
著者のホームページ: https://www.zhihu.com/people/jeff-wong-92
今まで公開されたUnreal Engineに関する記事は以上です。これからもより多く有益な記事を共有しますから、期待してください。
UWA公式サイト:https://jp.uwa4d.com
UWA公式ブログ:https://blog.jp.uwa4d.com
UWA公式Q&Aコミュニティ(中国語注意):https://answer.uwa4d.com