タスクシステム総合スレ part9
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。
2009/12/13(日) 18:11:06ID:ESt66YNzpart8 http://pc11.2ch.net/test/read.cgi/gamedev/1250678891/
part7 http://pc11.2ch.net/test/read.cgi/gamedev/1241670786/
part6 http://pc11.2ch.net/test/read.cgi/gamedev/1238725539/
part5 http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/
part4 http://pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/
・タスクと呼ばれる実装は、非常に多岐に渡ります
古典タスクシステムについての話題は「>>2」と明示してください
そうでない場合はカスタム版であることを明示してください
・人を憎んで言語を憎まず
0821名前は開発中のものです。
2010/02/15(月) 02:30:21ID:7o/YpQTXそれは仮想関数を使った多態をコンテナと組み合わせたものだね。
仮想関数は便利だ。派生クラスで好きにデータを追加しながらクラスごとに動作を
記述することができるからね。
コンテナは便利だ。オブジェクトが増えたり減ったりするのを実に素直に書き表す
ことができるからね。
で、これを原型として何を加えると「タスクシステム」になるの?
何か加える必要があるの?
0822名前は開発中のものです。
2010/02/15(月) 02:42:38ID:bh6op2hi何を足すかは知らん。これで全部かもしれん。
つか、うちはほとんどこれっぽいのでやってるので
これをタスクシステムというなら、確かに便利です。
0823名前は開発中のものです。
2010/02/15(月) 02:44:17ID:bh6op2hi0824名前は開発中のものです。
2010/02/15(月) 03:18:22ID:ngtxgrVYこれがタスクシステムというならああそうなのって思うが
そう説明してる「タスクシステム」って少なくとも>>2じゃないな。
0825名前は開発中のものです。
2010/02/15(月) 03:41:44ID:xRwaTxwnいろんな処理をタスクという単位にして
リストで繋いで処理する事にタスクシステムって名前が付いてるだけ。
>>2のWhite Paper - Programming に「処理関数へのポインタ付きワーク構造体の連結リスト」って書いてあるし、
細かく決まりがあるわけじゃないでしょ。
「処理関数へのポインタ付きワーク構造体の連結リスト」な機能があるなら、タスクシステムって言えちゃうんだろう。
OC4y/061とかe+nQn9Mgみたいな人って相手にすると疲れるよね。。。。
0826名前は開発中のものです。
2010/02/15(月) 07:02:37ID:cbly0qco引数なしで統一した方が扱いやすいと思うのだが
それに一々毎回毎回引数渡すのやだな
0827名前は開発中のものです。
2010/02/15(月) 08:33:19ID:ngtxgrVYこれがいらないっていわれてるんだが
0828名前は開発中のものです。
2010/02/15(月) 09:14:04ID:FcwOh6XdC++なら不要だよね
Cでの話じゃない?
0829名前は開発中のものです。
2010/02/15(月) 09:29:03ID:TmV+tuR/<リスト>ならC/C++ともにないと困難。
配列や呼び出しコード列挙もリストといえばリスト。
0830名前は開発中のものです。
2010/02/15(月) 13:54:09ID:vBkTf+IVタスクシステム使うとメモリ使用量も把握しやすいし、複数人で開発もできる
オールアセンブラでそれをやるのは大変
今あえてこのシステムを使う必要はないだろ
0831名前は開発中のものです。
2010/02/15(月) 17:58:56ID:n4qXt3PM0832名前は開発中のものです。
2010/02/15(月) 18:03:04ID:TJaa1Km+シーン管理?
0833名前は開発中のものです。
2010/02/15(月) 22:34:52ID:920Y2zqE> タスクシステムなんてTCBの実行と描画を同時に行っていた時代の遺物
どういう話なのか知らんけど
昔のBGとOBJを表示するハードのことなら、あれラインバッファだから
V-BLANK期間内は描画処理というのはやんないよ。パターンテーブル
(VRAM)の書き換えは毎フレームゴリゴリやるような話じゃないし
> もしも、オブジェクトの移動、当たり判定、描画etc.を別の処理単位に分けるなら
> TCBで全てを済ませるタスクシステムとは相性が悪い
んなこたない。ひとつのオブジェの1フレーム分の差分処理を1タスクで
ドベーっと一気にやる必要はない。むしろそうしないことのが多い
logician lordの記事でも移動と当たり判定のタスクは分けてるでしょ
0834名前は開発中のものです。
2010/02/15(月) 22:45:23ID:l7qhUG1T0835名前は開発中のものです。
2010/02/15(月) 22:55:19ID:bh6op2hi>>2の記事あん♥
0836名前は開発中のものです。
2010/02/15(月) 23:18:11ID:920Y2zqE相変わらず進歩ないな。昨夏から同じこと叫んでるだろ君
プログラマの責任の下でそんなふうに性的に列挙、記述できることばかりなら
それでやってりゃいいんだけどよ、おめーみたいなお気楽な庶民と違って
王様は気苦労が多いんだよ。おわかりになって?
0837名前は開発中のものです。
2010/02/16(火) 08:25:29ID:XV0KdIevトラウマかなんかかな?
高級言語メインの現在でもアセンブラだって知ってる方がおいしいし
古い知識でも無いよりあったほうが飯の食いやすい業界だと思うんだけどな
そりゃ新しい技術の勉強だけで手一杯ってのは分かるけどもさ
0838名前は開発中のものです。
2010/02/16(火) 08:30:08ID:KVp6SKGG0839名前は開発中のものです。
2010/02/16(火) 08:36:11ID:VbGlioXC0840名前は開発中のものです。
2010/02/16(火) 09:36:42ID:ckg3nTQchttp://www.google.co.jp/search?tbo=1&tbs=qdr:y,sbd:1&q=%22%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%22
0841名前は開発中のものです。
2010/02/16(火) 11:54:02ID:xvmuP10b0842名前は開発中のものです。
2010/02/17(水) 01:53:19ID:LQ1cgj9u彼らは裸の王様とか言ってるから自分には何も理解できないと言ってるんでしょ。
つまり、トラウマというより何も無いということにしないと
自分が馬鹿ということになって自我が崩壊しちゃうから
必死になってる、と。
普通のプログラマなら>>2見ても古いやり方だねぇ、程度で終わって
今さら特にこだわることも無いんだけど。
あれを見て何一つ理解できない人たちにとっては、自分は馬鹿という強迫と
見えないゆえに何かすごい秘密でも隠されてるように感じるのかね。
裸の王様ってのはいいたとえだね。逆説的に彼らの馬鹿さを証明してるwww
0843名前は開発中のものです。
2010/02/17(水) 01:55:58ID:HzkflD/c裸の王様読んだことなさそうだなw君w
0844名前は開発中のものです。
2010/02/17(水) 02:09:26ID:UIfPBDxOまだちらほらと新しく「タスクシステム」と名のつくコードが生まれているけども、
全体的に数はあんまりなくて、ゆっくりと絶滅に向かっているようで安心した。
0845名前は開発中のものです。
2010/02/17(水) 02:09:49ID:AreEMr0m>>843みたいに皮肉られてるのすら気づかないレベルではしょうがないのか・・・
0846名前は開発中のものです。
2010/02/17(水) 02:12:15ID:HzkflD/c突っ込んでほしいの?w
0847名前は開発中のものです。
2010/02/17(水) 02:27:19ID:AreEMr0mそれぐらい純粋な人じゃないとタスクシステムのアンチなんて奇特なことは出来ないんだろうね・・・
0848名前は開発中のものです。
2010/02/17(水) 09:09:37ID:4hn/aGE30849名前は開発中のものです。
2010/02/17(水) 17:34:42ID:66llNhrl先人の遺した技術を今更否定した所で誰が得すんだよw
次スレがあるなら
・タスクシステム(>>2)での実装を強要するものではありません
・アンチな話題は専用スレを立ててください
ってテンプレに入れといたら荒れなくなるかも知れんなw
一々明文化せんといけんのがかなりアホ臭いが
0850名前は開発中のものです。
2010/02/17(水) 18:22:34ID:9BJtIeOd0851名前は開発中のものです。
2010/02/17(水) 18:38:01ID:INTDuU9t0852名前は開発中のものです。
2010/02/17(水) 18:41:00ID:4xsUzPyKこのスレの存在意義だろう?
0853名前は開発中のものです。
2010/02/17(水) 19:32:25ID:wwMsnX/i0854名前は開発中のものです。
2010/02/17(水) 19:48:07ID:HzkflD/cフツーだよ
君らはフツーよりメリットがあるからタスクシステムを使うんだから
もちろんフツーがどんなのかなんて説明の必要すらないよね?
ね!
0855名前は開発中のものです。
2010/02/17(水) 20:06:56ID:INTDuU9t0856名前は開発中のものです。
2010/02/17(水) 20:51:30ID:wwMsnX/iふつうってなんだよ
ゲームによって変えるのかね
0857名前は開発中のものです。
2010/02/17(水) 21:38:46ID:l4ndeYei描画エンジンと物理エンジンと当たり判定ライブラリと
サウンドエンジンとメモリアロケータとその他もろもろ集めてきて、
ゲームロジック部と繋ぎ合わせるだけだしなぁ。
0858名前は開発中のものです。
2010/02/17(水) 21:51:29ID:l4ndeYeiだって、仕様が違うんだからしかたない。
仕事の奴はそれが仕事だし、趣味の奴は、それが趣味なわけで。
それしないってんなら、仕事がなくなるというか、作る意味が無いというか。
何も一から作れって言ってるんじゃないぞ。
各種ライブラリはそりゃ利用するんだが、
ライブラリごとにインターフェイスがバラバラだから、
そこの整合性を取ってやる仕事は普遍的に残るだろう、という。
ライブラリの面子が毎回変わるんだから、
まとめ方が毎回変わるのは当たり前というか。
でも、仕事ってそう言うものだろ。じゃないと職失う。
0859名前は開発中のものです。
2010/02/17(水) 22:13:35ID:iS5E9BO2なにか言っちゃあ二言目には「ゲームによって変えるのは当たり前」って
聞き飽きたんだよね
0860名前は開発中のものです。
2010/02/17(水) 22:37:00ID:l4ndeYei1)ゲーム作るよ。仕様ありますよ。プラットフォームも決まってますよ。
2)必要な機能も決まりますよ。使用するライブラリも決まりますよ。調達しますよ。
3)集めてきた材料を繋ぎ合わせますよ。
最後の繋ぎ合わせる部分は自分たちでやらなきゃ仕方が無いじゃん。
そこやらないなら、仕事して無いっていうか。
集めきてはい終わりじゃ素材集じゃん。ライブラリ集じゃん。ゲームじゃ無いじゃん。
ゲーム作るんだから、ゲームの形にするところは自分たちでやるもんだろー。
しかも俺は2)にタスクシステムも分類してあると思ってて、
素材としてタスクシステムは必要かどうか?って話が本筋と思うんだが。
>>856はなんか変なこと言ってるけど、
タスクシステムを使わない人は、「ゲームによって変えるのかね」じゃなくて、使わないの。
料理作るのにニンジンが必要無いって人に、「ニンジンは毎回変えるの?」って返すのはそりゃおかしいだろ。
使わないんだって言ってるのに。
0861名前は開発中のものです。
2010/02/17(水) 22:53:38ID:l4ndeYei料理作るのにニンジンが必要無いって人に、「ニンジンは毎回変えるの?」って返すのはそりゃおかしいだろ。
↓
料理作るのにニンジンが必要無いって人に、「レシピは毎回変えるの?」って返すのはそりゃおかしいだろ。
0862名前は開発中のものです。
2010/02/17(水) 23:10:48ID:4hn/aGE30863名前は開発中のものです。
2010/02/18(木) 01:37:08ID:w5mf6MhDタスクシステムを使わないで書くとどんな感じ?
0864名前は開発中のものです。
2010/02/18(木) 01:46:32ID:aYz67sOH{
if( hoge )
{
shots.push_back( new shot( player.x, player.y, enemies[i].x, enemies[i].y ) );
}
}
0865名前は開発中のものです。
2010/02/18(木) 01:56:16ID:QoZAOaAbタスクシステムを使って書くとどんな感じ?
0866名前は開発中のものです。
2010/02/18(木) 02:00:15ID:ey3FJ+Fd0867名前は開発中のものです。
2010/02/18(木) 02:04:52ID:aYz67sOHmy_container.push( new( my_alloc<shot> ) shot(...) );
こうすりゃ文句無いわけ?よくわからん。
どっちにしろタスクシステムと関係ない。
0868名前は開発中のものです。
2010/02/18(木) 02:08:27ID:aYz67sOHmy_container.push( new( my_alloc<shot>() ) shot(...) );
0869名前は開発中のものです。
2010/02/18(木) 02:12:20ID:ey3FJ+Fd0870名前は開発中のものです。
2010/02/18(木) 02:15:50ID:aYz67sOH0871名前は開発中のものです。
2010/02/18(木) 02:16:30ID:w5mf6MhD0872名前は開発中のものです。
2010/02/18(木) 22:24:04ID:lRtlm7Doあんま違わないってことは違いがあるんだよな?
で、敵が弾をプレイヤーに向けて発射する処理を
おまえのタスクシステムを使って書くとどうなるんだ?
これとても重要な質問なの
0873名前は開発中のものです。
2010/02/18(木) 22:43:35ID:DeTW2Yau0874名前は開発中のものです。
2010/02/19(金) 01:13:58ID:lSpicQWT>864 のコードに由来して特定の環境で受け入れられないオーバーヘッドが発生するとは
思わないんだけど、具体的に何の制限が問題になるの?
まともな C++ コンパイラが使えない( operator new やアロケータのカスタマイズができない)
とかいう事情ならまぁ納得なんだけど、そういうこと?
0875名前は開発中のものです。
2010/02/19(金) 01:26:26ID:mYNzjBiE回避方法は対処療法的なものも含めいろいろあるが
普通考慮するようならあまり自由にnewを呼ばない。
0876名前は開発中のものです。
2010/02/19(金) 01:46:46ID:lSpicQWTそれってつまり、メモリの断片化に対して operator new のカスタマイズでは不可能な、
より適切な対処があるってことだよね?具体的にどうするの?
最終的に使う領域が固定の配列から切られるとしても、記述としては new (...) shot(...) で
いけるようにしといたほうがいろいろ(可読性とかメンテナンス性とかの面で)有利じゃない?
・・・質問ばっかりで悪いとは思うけど、たまには技術的な話を掘り下げさせてもらえると
有意義かなぁと思ったり。
0877名前は開発中のものです。
2010/02/19(金) 01:58:29ID:vNuZTyH7newを使わなければいいんじゃね?
0878名前は開発中のものです。
2010/02/19(金) 02:15:34ID:LbHH2H9z0879名前は開発中のものです。
2010/02/19(金) 08:16:01ID:lTdPeAnA0880名前は開発中のものです。
2010/02/19(金) 14:07:21ID:+Pv/DaT4無駄にトリッキーな処理書かれると忘れた頃に見たときめんどくさい
0881名前は開発中のものです。
2010/02/19(金) 22:22:12ID:ahRx9x2Kまたハードを使い切ろうとするとデータサイズは大きくなる。
可読性重視は同意だが無制限なコーディングはバグを誘発する。
0882名前は開発中のものです。
2010/02/20(土) 01:08:54ID:pCc18cCP何が言いたいのかわからん。たとえば >864 の処理がどう書いてあれば満足なのさ?
0883名前は開発中のものです。
2010/02/20(土) 01:45:22ID:mKYEBXBmハード能力上がったからそれに依存して適当な設計で良いと
言った訳でもなくて、速度・効率重視の部分とそれ以外で
メリハリを付けたいなと
あと可読性重視なら適切なコーディング規約で
細部に至るまで事細かくルール化されてるはずで
無制限なコーディングにはならないんじゃないかな
0884名前は開発中のものです。
2010/02/20(土) 02:06:55ID:EdhnZX120885名前は開発中のものです。
2010/02/20(土) 02:29:36ID:5Did0Msj複数人開発でのソースの読みやすさが担保されるのはコーディング規約だけだ。
あと、1年後の自分にもやさしい。
0886名前は開発中のものです。
2010/02/20(土) 03:04:34ID:7pEDaLzT型とか先頭につけるのまったく意味ねぇ
0887名前は開発中のものです。
2010/02/20(土) 04:07:10ID:5Did0Msj会社の信じるコーディング規約じゃねぇ
お前の信じるコーディング規約を信じろ
0888名前は開発中のものです。
2010/02/20(土) 06:02:00ID:N/T1Cm6Q0889名前は開発中のものです。
2010/02/20(土) 09:59:01ID:U8OIvjqsタスクシステム=コーディング規約の一種
0890名前は開発中のものです。
2010/02/20(土) 11:22:37ID:HOq51Lypで、おまえの規約はどういう規約なの
0891864
2010/02/20(土) 16:17:39ID:sG4G6HXV言ったじゃん、カスタムアロケーターぐらい作れって。
my_vector< shot * > shots( 100 ); //上限100個
my_pool< shot > shots_pool( 100 );
shots.push_back( new( shots_pool.alloc() ) shot( player.x, player.y, enemies[i].x, enemies[i].y ) );
こうなってりゃ満足なわけ?好きにすりゃいいじゃん。
本当に、どうでもいいことばっか着目するよな。
俺はさ、タスクシステム使わないでゲーム作るとどうなるのか聞かれたから、
1) 用途や型ごとにコンテナにオブジェクトを突っ込む
2) メインループから各コンテナ内のオブジェクトを読み出して処理する
をコードで書いたまでで、
アロケーターやプールやコンテナは環境にあったもの用意すりゃいいことぐらい分かるだろ。
0892名前は開発中のものです。
2010/02/20(土) 16:36:36ID:I8cCNujgそれタスクシステムじゃね?
0893名前は開発中のものです。
2010/02/20(土) 16:40:56ID:wqzkd0Z7で、タスクシステム使わない方法があまりに無頓着なコードだったら一言言いたくなるのもわかる。
アロケータ書いても問題が解決しないのならなおさら。
0894名前は開発中のものです。
2010/02/20(土) 16:49:27ID:sG4G6HXV初耳だが。
>>2で言うTCBって固定長なんだろ?分断化しないじゃん。
まー、891とタスクシステムの違いも分からんやつが要るようなスレじゃ何言っても馬の耳に念仏だが。
0895名前は開発中のものです。
2010/02/20(土) 16:56:25ID:I8cCNujgnewするクラスの大きさがまちまちだからメモリ分断化対策が必要ってことだよね?
0896名前は開発中のものです。
2010/02/20(土) 17:02:44ID:sG4G6HXVメモリ断片化対策はアロケーターの仕事だろ。タスクシステムは関係ねぇ。
タスクを基底に持つクラスをnewしたら断片化するってんなら、
class task{};
class my_task: public task{};
new task() ←断片化
そりゃお前、newがしょぼいだけの話じゃねーか。アロケーターがしょぼいだけじゃねーか。
タスクシステム関係ねぇ。
0897名前は開発中のものです。
2010/02/20(土) 17:14:57ID:wE/EVsGpタスクシステム使わずとも問題になると思うのはもしかして俺だけ?
0898名前は開発中のものです。
2010/02/20(土) 17:49:56ID:wqzkd0Z7いや正しい。
しかし通常のタスクシステムは生成消滅タイミングが自由なのでさらに混乱することが多い。
0899名前は開発中のものです。
2010/02/20(土) 17:52:30ID:HOq51Lypウンコの塊にタスクシステムって名前付けたお子ちゃまがいるようだな
893君はさ、「僕ちんの自慢のタスクシステム」の抱える固有の不具合を紹介
するのは別にいいんだが、ちゃんと「僕チンの考えたタスクシステム」の話って
ことを断ったほうがいいと思うんだ
0900名前は開発中のものです。
2010/02/20(土) 17:53:52ID:sG4G6HXVそれも、タスクシステム使わずとも問題になるな。
0901名前は開発中のものです。
2010/02/20(土) 18:21:12ID:wqzkd0Z7いやわかってますよ。まずこれが出来ない奴のほうが多い。
でそれができないままタスクシステム導入してこれまたひどいことになる。
ちなみにこれと同様な現象としてSTL、俺様テンプレートもある。
0902名前は開発中のものです。
2010/02/20(土) 19:07:33ID:gmYFanrZ要出典
0903名前は開発中のものです。
2010/02/20(土) 19:21:22ID:Eoe7/vmk0904名前は開発中のものです。
2010/02/20(土) 19:37:31ID:HOq51Lypえっ
0905名前は開発中のものです。
2010/02/20(土) 20:48:39ID:laHALteFみたいなのが俺様のはタスクシステムじゃねー
とか思ってたからこのスレがあれてただけだったという訳かw
すべてが氷解した
0906名前は開発中のものです。
2010/02/20(土) 23:26:48ID:sG4G6HXVコンテナにオブジェクトつっこんだらタスクシステムなら、
そりゃもう、何でもタスクシステムじゃん。
いまどきのプログラムなら、コンテナや配列の一つや二つは使うもんだろ。
タスク、仕事、つまり制御に関して何らかの仕組みが提供されないことには、
タスクシステムとは言えんよ。
0907名前は開発中のものです。
2010/02/21(日) 00:44:10ID:8GNvhcuQ0908名前は開発中のものです。
2010/02/21(日) 01:08:28ID:p7hH+i8Zなんでもかんでもタスクにするわけじゃないでしょ
0909名前は開発中のものです。
2010/02/21(日) 02:35:59ID:n5tkGGLA0910名前は開発中のものです。
2010/02/21(日) 03:22:11ID:KdEz6TZb単にデータをそう言う風に管理してるってっだけ。
2)処理とワーク領域のセットのリストを逐次実行するのがタスクシステム。
3)ごっちゃになってるのが、糞タスクシステム。通称CodeZine。具現化された糞。
3)が糞というのはコンセンサスの得られるところ。もはや肩を持つものは居ない。
若気の至りというかなんというか、分別がついていないころは、そういうこともしでかすだろう。
生暖かい目で見守ってあげよう。
2)が必要かどうかは状況による。処理順番の動的変更が出来ることがメリット。
マルチコアの普及に従い、脚光を浴びる事に成るかもしれない。
しかし、出来れば使いたくない、というのがプログラマの本音だろう。
1)もタスクシステムの範疇だと考える奴も居る。頭おかしい。
ミカンを果物で実装したために、リンゴの呼び名がミカンになっちゃった人たち。
下手なアップキャストをしたためにダウンキャストで失敗している。
自分の脳内までごった煮リスト状態なのだろうか。
おそらく、3)に1)が含まれているので、そういう勘違いをしてしまったのだろうが、
タスクシステムの本質が2)であることを、良く考えて欲しい。
0911名前は開発中のものです。
2010/02/21(日) 04:33:24ID:8GNvhcuQタスクシステムはごった煮リストじゃないって主張してるの?
0912名前は開発中のものです。
2010/02/21(日) 10:19:21ID:w53qIXyc0913名前は開発中のものです。
2010/02/21(日) 10:42:00ID:n5tkGGLAその背景にあるのは、処理は1本のスレッド上でのみ行われるってことだな。
もしくは、マルチスレッドの各スレッド間同期タイミングをチャート引いて管理出来るようにするかんじ?
0914名前は開発中のものです。
2010/02/21(日) 11:24:53ID:quMpQBzl勝手にタスクシステムを俺解釈して
勝手に脱タスクシステム叫んでるw
0915名前は開発中のものです。
2010/02/21(日) 11:49:33ID:A7aqaieWその記事が間違っているというならどこが違うか指摘してから議論してくれ。
0916名前は開発中のものです。
2010/02/21(日) 15:44:30ID:quMpQBzl0917名前は開発中のものです。
2010/02/21(日) 16:11:48ID:VDZtRAQeもっとちゃんとしたサイト載せろよ
0918名前は開発中のものです。
2010/02/21(日) 16:20:47ID:KdEz6TZbだいたい大昔のアセンブリ時代の化石か、ごった煮リストかのどっちか。
0919名前は開発中のものです。
2010/02/21(日) 16:32:24ID:M35hw2mK0920名前は開発中のものです。
2010/02/21(日) 16:43:43ID:KdEz6TZbレス数が900を超えています。1000を超えると表示できなくなるよ。