LoginSignup
6
9

More than 5 years have passed since last update.

ゲームのタスク管理 Version 1

Last updated at Posted at 2015-05-06

今回について

  • まず、タスクを作るために完成品だけを投稿はしません。
  • 徐々に完成するためのノウハウを書いていきます。
  • なので、今回はVersion 1を発表します。

タスク管理とは?

  • 各ゲームオブジェクトを1つのタスクにまとめ、そこでUpdateやRenderなどをすること。
  • コマンドパターンに近いかな。
  • ゲーム制作するにあたっては必ずと言っていいほど、必要に技術です。

なんで、そんな管理法が必要なの?

  • 簡単に言うと、ゲームオブジェクト分UpdateやRenderをゲーム管理する部分に書かなければならないから。
  • 最初に登録してしまえば、あとはタスクでやらせるので、効率的に良い。

タスク管理の作り方

1. 基底クラス作成(HierarchyBehavior)

  • まず、タスクでUpdateやRenderなど統一する処理をするゲームオブジェクトの基底クラスを作る。(親クラス)
  • ここで注意点なのが、基底クラスに純粋仮想関数を作るかもしれないが、これは仮想関数のほうがよい。
    • なぜなら、必ず、UpdateやRender等の統一する処理を書かないゲームオブジェクトもあるはずだからです。

2. 派生クラス作成(GameObject)

  • ゲームオブジェクトに先ほど作成した基底クラスを継承する。
  • 派生クラス(ゲームオブジェクト)に基底クラスにある仮想関数を使うものだけオーバーライドする。
  • これでゲームオブジェクトの準備は完了!!

3. タスクになるHierarchyを作成。

  • Hierarchyクラス(タスク)を作る。
  • そこにHierarchyBehaviorの可変長配列を作る。
  • HierarchyBehaviorに書いた仮想関数の関数をここのクラスに書く。
    • なぜなら、1つの関数で可変長配列に入っているゲームオブジェクトを回すからです。
  • 作った関数の中に可変長配列をfor文等を使って、すべて回す。
  • これで一通り完成だ!

4. タスクの使い方。

  • ゲーム管理部分にHierarchyの実態を作る。
  • その実態にゲームオブジェクトを登録していく。
  • そして、HierarchyのUpdateやRender等を書く。
  • そうすれば、登録したゲームオブジェクトが実行されます。

終わりに

  • これで一通り完成です。
  • これは、最初に考えるタスク管理法だと思います。
  • 今後は、もっと便利なタスク管理法を投稿します。
6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9