ハンドル欲しいMobile系、Direct3DやShaderなどについて書いています。commentほとんどのゲーム開発では、一般的にタスクシステムと呼ばれる独自のフレームワークを使用しています。ドキュメント化されたり表に出ることが無いものの、プロジェクトを通じてプログラマ間に秘伝的に伝播していくので実に多くのバリエーションがあります。プロジェクトの数だけ存在するといっても良いかもしれません。基本構造と目的はほぼ似通っており、セガタスクと呼ばれることもあります。時間を細かく分割していく仕組みです。ゲーム開発で特徴的なのは、すべての処理をフレーム単位で管理することです。決まっているので、この中でそのフレームに必要なタスクを、全部一巡しなければなりません。・モジュール分割や作業分担といった開発時の利便性のためゲーム中必要な処理は能動的に変化します。追加や削除など、動的な処理単位の変化を効率よく管理することが求められます。オブジェクトだけでなく、ゲームやシステム全体の動作自身もタスク化することができます。各種モジュールやサービスなども、ゲーム進行やモードの遷移にあわせて組み換えが可能となるわけです。オブジェクトのような細かい単位と、ゲームシーン等の大きな処理単位では、規模も目的も異なります。持たせて凝った構造にしているものもあります。この辺の考え方や設計はそのプロジェクトの方針に依存します。ゲームの開発規模も、今ではプログラマで10数人規模とかなり大きくなっています。オブジェクトの増減といったプログラム処理上の都合だけでなく、分業化におけるフレームワークとしても非常に重要な役割を持っています。ある意味人間も管理するわけです。各タスクは独立しているため作業分担が比較的容易で、システムがきちんとしていれば、お互いの干渉衝突を最小限にしつつ開発を進められることになります。(でも終盤はそうも言っていられません)上で述べたように、1フレームの処理を切り分けながら処理を組み立てていきます。各タスクは1フレーム内で順番依存を持っており、実行順をある程度明確にしなければなりません。さまざまな手法がありますが、例えば各タスクに割り当てたプライオリティ値を元に、実行順番を決めるものもあります。削除はあっても、動的にプライオリティが変わることがほとんどありません。呼び出しが行われています。できないか考えてみました。ベースのまた違う手法を使っています。