2008年7月18日金曜日

タスクシステムって駄目なの?



以下の2chスレッドの話題。



【タスクシステム総合スレ part2】
tp://pc11.2ch.net/test/read.cgi/gamedev/1196711513/

なんだかこのスレを読んでると




  • タスクシステム信者 → 素人ダサ!

  • タスクシステムを否定するもの → タスク以外のやり方選ぶ俺様すげーw


って感じで相変わらず2chらしいw


昔から2chのゲ製技版は俺様気質のやつが多くてなぜか気分が悪くなるのですよ。


だからあんまり読まないんだけど久しぶりに読み漁ってしまった。面白かったーw。


とりあえずPACというアーキテクチャ知らなかったorz。勉強になったよw。





で、このスレだけ読んでるともうタスクシステムは使われてないという向きが多いけどどうなんだろ?


俺が働き始めた頃の10年前から普通にタスクってシステムはあったけどそのころはCがメインだったからな。


C++がメイン(と思われる)今の現場ではやっぱり古いのか。





Cで組む場合、リストのなかに関数ポインタおいてワーク領域に構造体あてはめて状態もってという仕組みなわけだけど、C++でこの仕組みをそのまま持ってくるのはどうかと思う。Taskクラスを基底クラスとした場合にnewをオーバーロードして固定で領域確保して派生クラスにキャストして…。さすがにこれはオブジェクト指向に反した、なんだか気持ち悪い実装なのでもっといい方法が欲しいよね。ただどうすればいいのかわからんがw





Gemsとか読んだり海外のサイト漁ったりしてると、C++とかで組む場合、Taskという言葉を使わずにGameObjectとかGameEnttiyとかActorとかが多い(海外だからあたりまえか。本来Taskはスレッドみたいにコンテキスト切り替える仕組みなわけだし)。それに習ってか最近のゲームシステムではタスクではなくて別名が多いとか?(2ch情報)。実際どんなシステムなんだろう?最近はスクリプトで実装部を組むことが多いみたいだから、この辺にGameObjectの実装を組み込んでいくのかな?Luaとか流行ってるみたいだけど、コルーチンとかがあって並列っぽい処理ができるとのこと。面白ろそうだ!





俺も一応ochaglという自前フレームワークつくってるけどオブジェクト指向でまじめにゲームのフレームワーク組むのはこれが初めてだからなんかいまいちなんだよなw。一応Taskクラスも実装してるけど、ゲームをひとつも完成させてないから使い勝手がいいのか悪いのか全然わからねーw。ライブリが完成しないからゲームができないという、まさに目的と手段が入れ替わった状態w。とりあえず簡単なヘボシューでも作るか…。まずはTaskクラスの名前をEntityにしようwww。


それにしても、最近のモダンなタスクシステムがどうなってるのか知りたくなってきた!なんかいいソースないかな~。ゲーム業界もオープンソース化しようよw





0 件のコメント: