Chiharu の日記

絵描き C/C++ プログラマーの日記です。

Gaming Stage 〜ゲーム ループと描画処理

先日の日記の続き。
Gaming Stage のシーケンス図を書いてみました。

Gaming Stage ではスクリプト処理とポーリングによる UI 処理、それに伴うスプライト操作を実施します。一般にいうゲーム ループですが、大きな相違が 1 点あります。それは自ループ内における描画処理の有無です。
一般*1のゲーム ループが『スプライトの描画』をループ中で実施するのに対して、Gaming Stage は『スプライトの描画』を実施せず『描画タスクの構築』を実施します。構築されたタスクの描画は Rendering Stage で実施します。これはスプライトをスクリーンに直接描画するのに対して、若干のオーバーヘッドを伴いますが、スプライトを描画タスクへと変換し、描画処理とスプライト処理を完全に切り離すことで、Rendering Stage における非同期の描画処理を可能とします。
――次は Rendering Stage だなぁ。こっちは作図にハードルがありそうです。

*1:3D ゲームだとそうでもなさそうですが、単純な 2D ゲームの場合、描画処理を非同期化しているものを Chiharu は寡聞にして知りません。OSS であったら誰か教えてください。コードを見てみたいです。