回答:
Intel のDo n't Dread Threadsシリーズは非常に優れています。3つの部分があり、基本は最初の1.5でカバーされています。
最初の1.5で扱われた内容の要約:
まず第一に、彼らは機能的分解の使用を思いとどまらせます。機能の分解は、「AIを1つのスレッドに置き、オーディオを別のスレッドに置き、グラフィックを3番目のスレッドに置く」だけです。
こんな感じ
だからそれは悪いです ™。代わりに、データ分解を使用します。
データ分解とは、ゲーム内のあらゆるものを小さな達成可能なタスクに分割することを意味します。4つのスレッド、たとえば4つのスレッドを生成し、4つのスレッドのそれぞれについて、タスクの山からタスクを継続的に取得し、完了するまで作業を続けます。
ピザを食べている人の集まりのようなものです。ピザが完成するまで誰もがスライスを取ります。
もちろん、今はお腹がすいています。
マルチスレッドエンジンアプローチの概要。ガマスートラの救助。
これがタスク管理の実用的な例を提供するブログ投稿です。並列エンジンの設計に関するある程度の知識があることを前提としていますが、それでも「上級読解」として役立つことがわかるかもしれません。
タスクベースまたはジョブベースのアプローチを検討する必要があると思います。
Game Engine Gemsには、このテーマに関する2つまたは3つの記事があります。
さまざまな会議などでこのテーマに関するプレゼンテーションがいくつかありました。
たとえば、Johan Anderssonによる「ゲームエンジンの並列先物」
また、GDC Vaultをご覧ください。無料セクションのテーマに関するプレゼンテーションと完全なビデオが多数あります。 http://www.gdcvault.com/
追伸 新しいユーザーであるため、これ以上直接リンクを投稿できませんでした。ds。
ゲームエンジンアーキテクチャの本には、マルチスレッドをサポートするゲームエンジンの設計方法に関する情報も含まれています。