タスクシステム総合スレ part9
■ このスレッドは過去ログ倉庫に格納されています
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」と明示してください
そうでない場合はカスタム版であることを明示してください
・人を憎んで言語を憎まず
0706名前は開発中のものです。
2010/02/14(日) 15:05:58ID:ujwt9v5uニート「何それ?ぜんぜんメリットになってないじゃん。
ほら早くメリット教えろよ、自分の言葉で。
やっぱり誰一人メリット説明できねーwww」
って感じ?このスレのアンチタスクとまったく同じ反応。
その程度のメリットならこのスレで過去いくらでも出てるし。
ニート「さ、早く自分の言葉でメリット教えてwww」
0707名前は開発中のものです。
2010/02/14(日) 15:07:18ID:xd0RcPpW過去は知らないんだw すまんw
だから今、誰かにメリットを明言してみてほしいんだが。
0708名前は開発中のものです。
2010/02/14(日) 15:09:38ID:xd0RcPpW> ニート「さ、早く自分の言葉でメリット教えてwww」
うん、じゃあもう一回言うね。
やっぱり俺は賃金をもらえることだと思うよ。
過去スレにもそう言ってた人がいるかもしれないけど、
やっぱり俺は賃金だと思うね。
国が最低賃金を保証してくれてるんだっけ。
だから、どんなに過酷にみえても、
それなりの賃金はもらえるからメリットあると思うよ。
0709名前は開発中のものです。
2010/02/14(日) 15:13:04ID:ujwt9v5uニート「過去は知らないんだw すまんw
だから今、誰かにメリットを明言してみてほしいんだが。 」
これに答え続ける馬鹿いると思う?
0710名前は開発中のものです。
2010/02/14(日) 15:13:06ID:xd0RcPpW国民健康保険よりはお得だったハズ。
まあ、そういう付加的なメリットもあるかもね。
0711名前は開発中のものです。
2010/02/14(日) 15:14:03ID:xd0RcPpW逆に、なんで答えることすら渋るのか不明だね。
0712名前は開発中のものです。
2010/02/14(日) 15:15:30ID:ujwt9v5u>>710
つ >>706
ニート&アンチタスク「さ、早く自分の言葉でメリット教えてwww」
0713名前は開発中のものです。
2010/02/14(日) 15:17:25ID:ujwt9v5uニート&アンチタスク「さ、早く自分の言葉でメリット教えてwww」
渋らずに永遠に相手してくれるんだ。がんばってねwww
0714名前は開発中のものです。
2010/02/14(日) 15:19:42ID:e+nQn9Mgメリットの説明求めるだけで連勝記録さらにアップだよw
0715名前は開発中のものです。
2010/02/14(日) 15:27:09ID:ujwt9v5uニート「だって一度もメリット説明できた人いないもんねw
メリットの説明求めるだけで連勝記録さらにアップだよw
働いたら負け!!!」www
ニートにしろ毒男にしろアンチタスクにしろ、認めなければ負けなしで最強だよね。www
働く能力とか、結婚できる魅力とか、ゲーム作る才能とかが無くても
現実を認めない限り最強だから生きていけるwww
0716名前は開発中のものです。
2010/02/14(日) 15:32:58ID:e+nQn9Mgどうした?
それで終りか?w
0717名前は開発中のものです。
2010/02/14(日) 15:34:32ID:xd0RcPpW>>712
やっぱ賃金かな。一言で言うとね。
>>713
永遠に答えなくて良い。一度で良い。
一度で良いから早く自分の言葉でメリット教えてよw
0718名前は開発中のものです。
2010/02/14(日) 15:34:32ID:ujwt9v5uニート&アンチタスク「どうした? それで終りか?w」
0719名前は開発中のものです。
2010/02/14(日) 15:38:23ID:ujwt9v5uニート&アンチタスク「一度で良いから早く自分の言葉でメリット教えてよw」
0720ハ(ry
2010/02/14(日) 15:38:24ID:OC4y/061低脳すぎてそのことにすら気づかないようだが。
0721名前は開発中のものです。
2010/02/14(日) 15:40:34ID:xd0RcPpW俺が思うに一言で言うと賃金、お金だね。
で、タスクシステムのメリットは?
0722名前は開発中のものです。
2010/02/14(日) 15:44:16ID:ujwt9v5uニート&アンチタスク「早く自分の言葉でメリット教えてよw」
いい加減気づいたら?
0723名前は開発中のものです。
2010/02/14(日) 15:47:43ID:xd0RcPpWうーん。今日はコレで最後だよ。
やっぱね、俺は就職のメリットは賃金にあると思うよ。
だって就職でもしなきゃお金手に入りそうにないし。
株とかするの? あー。それならそれでも十分かも。
でもね、この先ずっとそれで食っていくのって怖くない?
俺ならちょっと怖いなあ。自信が無い。
だから手っ取り早く安定した収入を得たいがために、
俺なら就職するね。
技術と資金があれば起業とかでもいいだろうけど、
そんなにカンタンじゃないだろうし。
やっぱり、消去法かもしれんが、
お金が欲しかったら就職。
就職のメリットは一言で言うと賃金。
他の人の意見とはまた違うかもしれないし、
ほかにメリット出てくるかもしれないけど。
今日はこんくらいで勘弁してね。
で、タスクシステムのメリットは?
0724名前は開発中のものです。
2010/02/14(日) 15:49:58ID:ujwt9v5uニート&アンチタスク「やっぱり誰一人メリット説明できねーwww」
0725ハ(ry
2010/02/14(日) 15:52:19ID:OC4y/061色々な人と関わることが出来る。
分別がつくようになる。
ある程度の更生力がある。
ID:ujwt9v5u みたいにならなくてすむ。
会社、業界選びは慎重に。
0726名前は開発中のものです。
2010/02/14(日) 15:54:54ID:e+nQn9Mg0727名前は開発中のものです。
2010/02/14(日) 16:00:29ID:gpTdAh1n説得力はともかくひとつでたね
でタスクシステムのメリットは?
0728名前は開発中のものです。
2010/02/14(日) 16:02:17ID:xd0RcPpW説得力なくてゴメンねw
まあ、自分の言葉で精一杯説明してみせたつもりだから、
借り物の言葉じゃないから、そこんとこだけ胸を張りたい。
0729名前は開発中のものです。
2010/02/14(日) 16:02:38ID:ujwt9v5uそれが初めから分かってるからねぇ・・・
過去スレでは親切な人も沢山いたけど、学習能力のある人ならもうこんなの相手にしないでしょ。
ROMれば出てくることを聞くしかできない教えて君の相手をしても無駄。
0730名前は開発中のものです。
2010/02/14(日) 16:05:27ID:gpTdAh1n説得は相手のベースがあるから成功するかは限らないが
それなりの論拠があれば賛同者は出てくる。
お前を説得できないから論拠は出せないじゃ>>3てことだよ。
0731名前は開発中のものです。
2010/02/14(日) 16:11:09ID:OC4y/061自己カプセル化となずけよう。(裸の王様現象)
確かにタスクシステムのタスクは他タスクとの関わりが苦手かもしれないけど、
それを自分にまで当てはめる必要は無いんじゃないか。
低能は傷ついてなんぼだと思うがなぁ。
0732名前は開発中のものです。
2010/02/14(日) 16:35:33ID:eAxvOj2xアンチタスクと容認派では、どう見ても容認派の方が正しいとは思うけど
相手しても無駄とか言うなら初めから2chやる必要も無いんじゃない?
肥溜めに入って糞で汚れるから嫌とか言っても説得力無いというか・・・
相手しても無駄とか言いながらアンチタスクのマネして同じように糞まみれに
なってるあんたもアンチタスクと同じくらい馬鹿に見える。
0733名前は開発中のものです。
2010/02/14(日) 16:57:02ID:pjCkL54hここで必要なのは同じメリットでも就職でなくタスクシステムのそれだろ
過去に書いただろとかリンク辿れとか言っても納得させられないぞ
まあ語ったところで納得させられるとは限らないが
少なくともこんなどうでもいい議論続けても埒が明かんだろ
取りあえず次の問題に答えろよ
「タスクシステムのメリットを40字以内で説明せよ。」
0734名前は開発中のものです。
2010/02/14(日) 17:08:46ID:OC4y/0611.実行順番を動的に変更できる
2.実行コードとデータをパッケージ化すると、Cellの糞SPUに仕事振れる
3.仕事している振りが出来る
4.現実逃避が出来る
0735名前は開発中のものです。
2010/02/14(日) 17:25:23ID:eAxvOj2xタスクシステムのメリットは「ゲームが作れる」程度で丁度いいんじゃない。
0736名前は開発中のものです。
2010/02/14(日) 17:26:41ID:gpTdAh1n1.はあまり必要性を感じたことがない
だけどこれがタスクシステムでの一般的なイメージだな。
でこれは必要なら実装したほうがいいんだけど必要ないところでやられると
バグを追跡するのが困難になるというデメリットが残るだけなので困る場合がある。
2.はMTフレームワークで言われてるようなことだろうけど実物見て見ないとなんともいえないな。
それに特化できる実装アイディアを見たことがない。
おれもそういうシステム模索中だけど実用レベルで実装できる人間てそうそういないだろと思う。
並行化のためのシステムや実行順序の最適化・管理はそれなりのアイディアが必要だし。
だからこのネタは議論のネタとして楽しみではある。
で、そこまでやったらおれはタスクシステムとは呼びたくないわ。
だって実装できたのは>>2で言われているようなタスクシステムのおかげじゃないもんw。
3.4.はよく見るけどまわりに迷惑かけるからやめてくれw
0737名前は開発中のものです。
2010/02/14(日) 17:31:15ID:OC4y/061>>733
>>735 (=>>732)
この流れw
糞まみれだな。
0738名前は開発中のものです。
2010/02/14(日) 17:36:45ID:e+nQn9Mg>1.実行順番を動的に変更できる
なにこれ?どこで使うの?
壁判定とキャラ判定が逆になったりするの?
>2、3、4
笑えるほど意味ない
0739名前は開発中のものです。
2010/02/14(日) 17:37:10ID:gpTdAh1nおれは>>2のような「タスクシステム」なしに必要な機能をC++べた書きで「ゲームをつくってる」。
具体的には毎フレーム処理用関数のあるクラスをメインループからベタに呼び出している。
切換はswitch。(FSMっぽくなる。)
これによるメリットはベタに処理が書かれているのでデバッガで直感的にデバッグしやすい。
またベタにコードにかくとコードを見るだけでの理解がしやすい。
このシステムには実行順番の動的変更機能はないがそれにより困ったことはない。おれはね。
これが「金が稼げる」と同じくらいのメリットかどうかはその人次第。
0740名前は開発中のものです。
2010/02/14(日) 17:44:37ID:Q6BMs8gS仕事をしないに対して仕事をするメリットを解けばよくて解りやすいんだが
タスクシステムのメリットはと聞かれても、何に対して話せばいいのかわからんからメリットがあるという説明がしづらいんだよな
タスクシステム自体も曖昧で、例えば実行順序を動的に変更できないものもタスクシステムと呼ばれていることがあるし
就職のメリットだって相手が何者かわからなければ、例えば相手が起業を主張してたり、パチプロだったりする可能性がある場合は
金が得られるじゃ通用しないわけだし
0741名前は開発中のものです。
2010/02/14(日) 17:46:05ID:e+nQn9Mg仕方なく使ってるってことだね?
0742名前は開発中のものです。
2010/02/14(日) 17:48:40ID:eAxvOj2xそれこそ
「就職しなくても株やギャンブルで楽して金稼げるから就職のメリット無し」って
ニートが言いだしそうな理屈だな。
結局ID:ujwt9v5uの言うとおりなんだな。
0743名前は開発中のものです。
2010/02/14(日) 17:52:42ID:gpTdAh1n何のために使ってるかを聞きたいんだよね。
で「ゲームが作れる」ならおれは>>2的なものならデメリットも多いし実際使わずにつくれてるから
疑問視するわけ。
次に言われてる実行順番動的変更ってあまり魅力感じないんだけど
これが「ゲームが作れる」に汎用的なメリットあるなら聞いてみたい。
なにか新しい考えがわかるかもしれないし。
で並行化のためにというならもう少し技術的な実体について触れて欲しい。
もしそれで使えると思ったら敬意を持って「タスクシステム」支持者になりますよ。
だって「タスクシステム」として教えてもらったシステムが有用なんだから。
0744名前は開発中のものです。
2010/02/14(日) 17:53:46ID:fCtHbjFqそれぞれがお互いに絶対依存しないようにする。
(ほかの要素の情報は必ず神様に頼んで取得する)
地形も弾も自機も 同一に見るインターフェースをひとつ用意する。
あとなんかあったっけ?
0745名前は開発中のものです。
2010/02/14(日) 17:58:39ID:gpTdAh1nだから言ってるでしょ。説得は相手の考え方がベースになるから必ず成功するものではない。
>>730
とにかく論拠とそれに対する反論ということに意味があるんだよ。
無駄ジャン。わかりきってるジャン。じゃ情報量ゼロ。
すくなくともおれは
「実行順番の動的変更機能の必要性は低い」「べた書きでゲームつくれるしメリットもある」
といってるわけだからこれら2つが「俺とはまったく違う」「必要性・メリットはこういうときにある」
のどちらか位は情報くれないと意味がない。
「俺とはまったく違う」以上出せないならああそうかここから違うんだなってあきらめるしかない。
0746名前は開発中のものです。
2010/02/14(日) 17:59:14ID:e+nQn9Mgちょっとまって何をしゃべったの?
まさか、メリットの話をしてるわけじゃないよね?
0747名前は開発中のものです。
2010/02/14(日) 18:00:08ID:eAxvOj2x・並列処理をうまい具合に実現できる
・ゲームの流れを自然な形で表現できる
・大規模なゲームも開発できる
・タスクごとに独立しているため、複数人で開発できる
なんでレス元に初めから出てるメリットを出さずに実行順番動的変更なんて
誰が言い出したかわからんへんてこな話をしてるんだ?
0748名前は開発中のものです。
2010/02/14(日) 18:02:54ID:e+nQn9Mg全部根拠ないなw
0749名前は開発中のものです。
2010/02/14(日) 18:05:35ID:eAxvOj2xあんたのいう根拠の基準を説明してくれ。
0750名前は開発中のものです。
2010/02/14(日) 18:05:51ID:gpTdAh1n・ジャンルを問わず様々なゲームに適用できる
これはべた書きにもいえます。
・並列処理をうまい具合に実現できる
これはぜひ教えて欲しいので具体的なヒントください。
・ゲームの流れを自然な形で表現できる
・大規模なゲームも開発できる
・タスクごとに独立しているため、複数人で開発できる
これはそうは思いません。
少なくともべた書きよりデバッグは複雑になります。
これらはクラスベースオブジェクト指向でも同じことがいえるはずです。
(私の解釈ではタスクシステムはクラスの生成呼び出し部分のシステムのはずで
そこがべた書きであってもこのメリットは消えないと思います。)
タスクシステム独自のどこが「クラスベースオブジェクト指向」以上のメリットがあるか
指摘する必要があります。
0751名前は開発中のものです。
2010/02/14(日) 18:09:28ID:hWfbVx4t生産性悪すぎる
0752名前は開発中のものです。
2010/02/14(日) 18:13:22ID:gpTdAh1n実際に書いたことある?
タスクシステム上でも生成・消滅は書くでしょう。
ここをベタに書いたのと生産性が違うと思いますか?
一段抽象化するということはデバッグするとき一段追跡するものが深くなる分面倒になります。
各タスク側自体はクラス記述に比べてなんら生産性の違いはないでしょう。
というかこちらは同じような形になるでしょう。
0753名前は開発中のものです。
2010/02/14(日) 18:13:22ID:e+nQn9Mgそれも根拠ないな
例えば5つのケースをベタ書きするのと
一箇所にまとめて書くのとじゃ
ベタは5箇所単純に手を入れればいいけど
一箇所にまとめた場合はそれぞれの差分がif文で分岐してるだろ
実行してみないとどこ通るかわかんねーぞ
結果として生産性最悪になるかもわかんねーなw
ぶっちゃけ早く帰れるのはベタ書きだぜ
っていうかそもそもタスクシステムがベタ書きの反対の表現に使えるかどうかも微妙だけどねw
0754名前は開発中のものです。
2010/02/14(日) 18:15:57ID:OC4y/061まるでタスクシステムを介した機能モジュール群が
使いまわしに優れているかのような言い方だな。
ベタなコードだからこそ、どこども依存しないから、
切り離しが容易で、ライブラリ化しやすいんだろうが。
0755名前は開発中のものです。
2010/02/14(日) 18:29:24ID:eAxvOj2xつまり、君にとってはべた書きで十分に思えるし並列処理の話はリンク先の
説明読んでも理解できなかった、と言ってるのね・・・
>>753
>ベタは5箇所単純に手を入れればいいけど
>一箇所にまとめた場合はそれぞれの差分がif文で分岐してるだろ
>実行してみないとどこ通るかわかんねーぞ
んー・・・
この考えだとタスクシステム云々以前に、ライブラリや共通処理の関数化とか
構造化プログラムレベルのことを否定しているように見える・・・
なんか同じような処理を少しだけ変えたコピペを量産する典型的なダメプログラマ
の発言に見えて怖いのですが・・・
0756名前は開発中のものです。
2010/02/14(日) 18:30:36ID:gpTdAh1nすごいね並列化の話が>>2に載ってるんだ。
おれは理解できなかったよ。もしよければもう少しだけヒントくれないかな。
0757名前は開発中のものです。
2010/02/14(日) 18:34:02ID:OC4y/061俺は、タスクシステムのメリットっつったら、
まず筆頭が「実行順序の動的な変更」だと思うがなぁ。
じゃなきゃ、
わざわざプログラムを細切れにしてまでリストに突っ込んでる
意味が無いよ。
並べ替える気が無いのに、なんでわざわざプログラムを断片化して
リストに突っ込む必要があるんだ?何のためのリスト?
って話になる。
それこそ支離滅裂で、メリット以前に意味すら無い。
プログラムを使いまわしたいってだけなら、関数で十分だからな。
0758名前は開発中のものです。
2010/02/14(日) 18:45:53ID:eAxvOj2x普通に載ってると思うけど、何か別のページ見てるのかな・・・?
それとも並列処理の定義がこのページに載ってる使い方と君の想定が違ってるとか?
その場合はすまんが君の脳内定義がわからんのでこちらには答えようが無い。
>>757
ま、結局プログラマ個人の受け取りかた次第ということなんだろうけど。
そうなると >>679 のように、使ってる側の方が説得力があるな、個人的には。
0759名前は開発中のものです。
2010/02/14(日) 18:52:00ID:gpTdAh1nいやいやリンク貼ってくださいよ
0760名前は開発中のものです。
2010/02/14(日) 18:52:23ID:fCtHbjFqタスクシステムの設計がゲームによって異なるとしても
根っこになる揺るがない部分ってのは必ずあるはずで、
面倒でもそれって何かというのを書き出していった方が
建設的な議論になると思うんで、続きを書いてほしい。
知識の前提の共通化が先だよね。
0761名前は開発中のものです。
2010/02/14(日) 18:56:08ID:gpTdAh1n見直してみたら
http://codezine.jp/article/detail/297?p=1
>並列処理をうまい具合に実現できる
これのことか・・・
http://ja.wikipedia.org/wiki/%E4%B8%A6%E5%88%97%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0
>並列コンピューティング(へいれつ-、parallel computing、並列計算、並列処理)とは、コンピュータにおいて複数のプロセッサで1つのタスクを動作させること。
じゃないのね。
0762名前は開発中のものです。
2010/02/14(日) 19:02:25ID:hWfbVx4t>
> これはべた書きにもいえます。
これに対して
> べた書きで毎回毎回コード書き直してたら
> 生産性悪すぎる
と返しただけで別にタスクシステムに対してだけ答えたわけじゃないよ
フレームワーク等を利用したほうが生産性あがるでしょ?
コード書き直せばテストが増えてしまうし
0763名前は開発中のものです。
2010/02/14(日) 19:06:24ID:gpTdAh1nこの文脈ではタスクシステムの部分を「べた書きに置き換えても」という意味で書いたから
他の人もそう思ったんじゃないかな。
そりゃなんでも書き散らせば生産性が悪いのは同意しますよ。
0764名前は開発中のものです。
2010/02/14(日) 19:06:43ID:OC4y/061タスクシステムのタスクの実行を並列化するってことは、
どのタスクをどの順番に実行してもかまわないってことで、
だったら、静的にタスクの実行順を決めてしまってもかまわないってことになる。
てことは、普通にtask1();task2();task3()...とベタでコードに書いてしまっても問題ないってことになる。
副作用に依存関係の無いタスク(並列化可能なタスク)
の実行に、
スケジューラ(タスクシステム)
は必要ないわな。
どの順で実行してもかまわないのにスケジューラ?はて、おかしいよな。
何のためのスケジュール?
実際にはどの順で実行して構わなくても、スケジューラは必要なんだけど、
それは>>2には書かれて無いし、話のレベルが違う。
0765名前は開発中のものです。
2010/02/14(日) 19:40:42ID:eAxvOj2xんー・・・
>俺は、タスクシステムのメリットっつったら、
>まず筆頭が「実行順序の動的な変更」だと思うがなぁ。
と誰もメリットとして上げていない実行順序の動的な変更とやらを自分で上げてから
>どのタスクをどの順番に実行してもかまわないってことで、
>だったら、静的にタスクの実行順を決めてしまってもかまわないってことになる。
>てことは、普通にtask1();task2();task3()...とベタでコードに書いてしまっても問題ないってことになる。
とそれを自分で否定してるのは矛盾してるというか錯乱してるというか・・・
君の言ってることって少なくとも>>2で出てるタスクシステムとは直接関係ない話じゃない?
スケジューラ=タスクシステムと限定してしまってるところとか、君の脳内だけにある
何か特定のシステム相手に一人相撲とってるように見える。
0766名前は開発中のものです。
2010/02/14(日) 19:43:42ID:e+nQn9Mgわかりますw
0767名前は開発中のものです。
2010/02/14(日) 19:53:34ID:OC4y/061だったらお前の言うタスクシステムって何なんだ?
もっと言えば、お前の言うタスクシステム内にあるであろう、「タスクのリスト」、
あれはいったい何の為のリストなんだ?
プログラムってのは元より処理のリストで構成されてるのに、
なぜそれを自前で用意するの?なぜ重複して持つの?
func(){ task1(); task2(); task3(); /*←タスクのリスト*/ }
では駄目で、これと同等の物を自前のタスクリストで構成する理由は何?
順番の動的な変更(スケジューラ)目的以外に何があるの?
教えて。
0768名前は開発中のものです。
2010/02/14(日) 20:09:35ID:Q6BMs8gSそもそも>>739ってそれだけの内容じゃわかんない部分もあるけどタスクシステムの範疇なんじゃないの?
実行順序の動的変更は不要だから省いて、関数ポインタは苦手だから使わないように変形したしたってだけで
ゲームオブジェクトって呼べるようなデータの配列なりリストなりはあるんでしょ?推測で悪いけど
実行順序の動的変更は描画に関することでスプライトとかと相性がいんだよ
並列化に関しては関わったことないから知らない
0769名前は開発中のものです。
2010/02/14(日) 20:22:00ID:OC4y/061そりゃ、配列の中に関数ポインタが入ってたらタスクシステム的だがな。
>実行順序の動的変更は描画に関することでスプライトとかと相性がいんだよ
描画エンジンの仕事。
0770名前は開発中のものです。
2010/02/14(日) 20:25:36ID:Q6BMs8gSそれで理解はできたの?
0771名前は開発中のものです。
2010/02/14(日) 20:27:17ID:gpTdAh1nこれをタスクシステムと呼ぶんならそういう立場なんだろうからそれでいいよ。
おれは不自然だと思うから呼ばないという立場だけどね。
まずcodezineの記事はまったく用なしになるね。
少なくともcodezineの記事はタスクリストの切換生成消滅管理技術実装の説明であって
最初に出てくる長所がなぜ生まれてきてるかの説明が一切ない。
この長所は技術的には、毎フレーム処理関数あるクラスによる分割によって生まれている。
これってC++とゲームループというアイディアから自然に生まれるものであって
「タスクシステム」と呼ぶのは不自然だと思う。
事実そのように説明されずタスクリストの管理に解説が割かれている記事になっている。
>関数ポインタは苦手だから使わないよう
この精神がおかしい。必要ないものをなぜわざわざ苦手と表現するのか。
関数ポインタは継承があれば(このレベルでは)必要なくなることくらいは理解してるでしょ?
あとスプライトがライブラリもしくはハードで対応してない状況にお目にかかったことがない。
0772名前は開発中のものです。
2010/02/14(日) 20:33:41ID:eAxvOj2x>だったらお前の言うタスクシステムって何なんだ?
>>2 でいいんじゃない?スレ元のリンクだからこのスレはこれを共通知識として話するんでしょ?
実際には今まで使ったことあるのはこんな単純なコードでは無かったけど、まぁ考え方は共通してるから問題無し。
>プログラムってのは元より処理のリストで構成されてるのに、
>なぜそれを自前で用意するの?なぜ重複して持つの?
その理屈だとJAVAとか.NETのVMとかもレイヤー的に重複してるから不要ってことになるな。
VMはたとえ話だけど、重複してても別に持ったほうがメリットのあるケースってのが存在することは理解できるかな?
重複=不要、では無くメリットがあれば重複も可、ということ。
それが理解できるなら、多人数開発とかゲームオブジェ単位の生成・消滅とか、
ゲーム作るのにあった粒度の単位で切り分けられたほうがいいケースもあるかもね、と想像できそうだけど。
>では駄目で、これと同等の物を自前のタスクリストで構成する理由は何?
駄目、とは言ってないんだけどね。
別にその方法じゃなくても、タスクリスト使ったほうがいいケースもあるんじゃない、といってるだけの話。
その例みたいにtaskが3つしかなくて生存期間も全て一緒、みたいなケースならべた書きの方がいいかもね。
あぁ、あとタスクシステムとか以前にべた書きが最高、と単純に言い切ってしまうようなのは別の意味で・・・
>順番の動的な変更(スケジューラ)目的以外に何があるの?
つ >>747
ちょっと不思議なんだけど、こちらは今まで順番の動的な変更とやらが必要になったケースってあんまり遭遇してないし
タスクシステムのメリットにそんなのが出てるのも見たこと無いし・・・
どうも >>2 とは別物に見えるんだけど、君の言ってるタスクシステムって具体的に何?
0773名前は開発中のものです。
2010/02/14(日) 20:44:12ID:Q6BMs8gSなんで不自然だと思うの?
っていいかたは悪いけど、俺もこのスレは>>2みたいな「古典的」タスクシステムのスレなのかなと思ってたけど
スレの流れとか見ていて、もっと広義にタスクシステムを捉えるスレだと判断した
そもそも>>2は古典であって現在じゃ通じない部分も多いから捉われない方がいいし
タスクシステムをゲームオブジェクトを扱う方法ぐらいで捉える方がいいんじゃないかと提案するって感じだろうか
codezineの記事は読み返してなんか書くことがあったら書くけど、おそらく大したこと書いてないだろう
>>739でswitchって書いてあったからswitch,case文で関数を呼ぶようなものだと思ったんだけどクラスでメンバ関数を呼び出したりもしてるのだろうか?
>>769は関数ポインタつかってたらタスクシステム的だって認めてるし
スプライトに関してはこれだけじゃ解らないかもと思ったから説明するけど
0774名前は開発中のものです。
2010/02/14(日) 20:47:03ID:e+nQn9Mg口を開くたびに>>2とは違う俺タスクを紹介してくれるよね?w
0775名前は開発中のものです。
2010/02/14(日) 20:53:53ID:gpTdAh1n>>739もタスクシステムと呼ぶのならば特に反論はない。
ただ>>2と>>739ではタスクリストの管理実装の有無に差がある。
つまり>>2はあまり必要性のない技術について解説してるってことでいい?
実際この実装が邪魔になることが多いからね。
ただ並行処理に対応するためには>>2でいうタスクシステム的なものが必要になると思われるから
そういう技術はおれもチャレンジ中。
やっぱりひとつ抽象化するために実装・デバッグしづらくなるし
そもそも並行処理のスケジューリングは依存関係の管理など解決が必要な問題がある。
0776名前は開発中のものです。
2010/02/14(日) 21:05:55ID:gpTdAh1n0777773
2010/02/14(日) 21:16:00ID:Q6BMs8gSレイヤー数が4枚とかしかない場合があって、
それ以上の描画優先度(重なっている部分をどう表示するか)を決めたいときには、登録順序でどうにかする必要がある。
そうするとスプライトセットオブジェクトかなんか作って登録前にソートする方法もあるだろうけど、
ゲームオブジェクトを描画優先度順に並べられるようにしとけば処理の中でスプライト登録やっちゃえて簡単に終わる
0778名前は開発中のものです。
2010/02/14(日) 21:29:40ID:OC4y/061> 別にその方法じゃなくても、タスクリスト使ったほうがいいケースもあるんじゃない、といってるだけの話。
随分弱い言い方になったな。ではそのケースとやらを教えてくれ。
.netやJAVAのVMは明確な目的があって使うものだ。
タスクシステムの「タスクのリスト」がどういったケースで有用なのか、
何のために必要なのか。
動的な実行順序変更以外に教えてくれ。
0779名前は開発中のものです。
2010/02/14(日) 21:35:51ID:oYbjKJUB後に纏めて処理できるのがタスクシステムの基本的な部分でしょ。
と、これだけでもタスクシステムの構造的なメリットデメリットがわかる。
この構造的メリットが活きてくるケースは少なくないと思うけどなぁ。
タスクシステムに限らず、活かせないのなら使わないほうが良いですね。
ここでメリットを聞いてる人はそういう人でしょう。
0780名前は開発中のものです。
2010/02/14(日) 21:36:12ID:eAxvOj2x>動的な実行順序変更以外に教えてくれ。
つ >>747
これで3回目ぐらい?
「おじいちゃんごはんはさっき食べたでしょ」って感じ・・・
0781名前は開発中のものです。
2010/02/14(日) 21:50:02ID:OC4y/061仕事のリスト、処理のリスト、プログラムのリストってことで、
データのリスト、ゲームオブジェクトのリストではないぞ。
ゲームオブジェクトやデータを配列やリストで管理するなんてことは誰でもすることだ。
>>780
タスクシステムはいわばVMもどきなんだから、そりゃやろうと思えば何でも出来る。
だから>>747が出来るのは当たり前。でも使わなくても>>747は出来る。
あえて使うのは何故かと聞いているのだが。
>>779
データ構造に関数アドレスを付けるんですか、そうですか。
俺はデータ構造はデータ構造、制御構造は制御構造で別物で、
交ぜるのは泥沼化の入り口だと思うがなぁ。
>この構造的メリットが活きてくるケースは少なくないと思うけどなぁ。
具体的によろ。
0782名前は開発中のものです。
2010/02/14(日) 21:58:56ID:eAxvOj2x>仕事のリスト、処理のリスト、プログラムのリストってことで、
>データのリスト、ゲームオブジェクトのリストではないぞ。
その俺俺タスクシステムの定義は何・・・?
>>2のタスクシステムはデータ、ゲームオブジェクトのリストという機能も普通に含んでるけど。
元々のタスクシステムからそれら機能を勝手に引いた時点で、君の言う”タスクシステム”
の話は君の脳内でしか意味の無い話になってるんですが。
0783名前は開発中のものです。
2010/02/14(日) 22:03:42ID:OC4y/061for(;;)/*メインループ*/
{
obj1.update();
for( size_t i=0; i<obj2_list.size(); ++i )
{
obj2_list[i]->update();
}
for( size_t i=0; i<obj3_list.size(); ++i )
{
obj3_list[i]->update( x, y );
}
for( size_t i=0; i<obj2_list.size(); ++i )
{
obj2_list[i]->update( u, v, w );
}
}
これじゃ駄目な理由はいったいなんだ?
引数だって自由に使えるし、こっちのが良いだろ。
ただ、動的な実行順序の変更だけは出来ないけどな。
お前らの欲しいのって、タスクシステムじゃなくてゲームオブジェクトDBなんじゃねぇの?
0784名前は開発中のものです。
2010/02/14(日) 22:08:26ID:hWfbVx4t"ゲームの流れを自然な形で表現"
することが出来ていると言えるの?
0785名前は開発中のものです。
2010/02/14(日) 22:10:47ID:e+nQn9Mgゲームの流れ?はぁ?
0786名前は開発中のものです。
2010/02/14(日) 22:11:30ID:eAxvOj2xんー・・・
>>782の時点で、君の言うタスクシステムは
君以外の人間にとっては無関係というか・・・
君の脳内タスクシステムを使うよりは>>783の方がいいと君が判断するなら
君にとってはそれが一番いいんじゃない?
としか言えんなぁ・・・
0787名前は開発中のものです。
2010/02/14(日) 22:12:23ID:OC4y/061>>2のタスクシステムは便利と感じ、
俺の言う純粋な純粋なタスクシステムは要らないと感じるなら、
単純に引き算すればよい。
(>>2のタスクシステム)-(純粋なタスクシステム)=(ゲームオブジェクトDB)
for(;;)
{
container = db::select(型名);
for( itr=container.begin(); itr!=container.end(); ++itr )
{
itr->method();
}
}
これが出来りゃ満足なんだろ。
0788名前は開発中のものです。
2010/02/14(日) 22:19:54ID:eAxvOj2x>これが出来りゃ満足なんだろ。
君はいったい何と戦ってるの?
「純粋な純粋なタスクシステム」とやらを勝手に脳内で妄想して
「(俺の考えた)タスクシステムは使えない!」って・・・誰に向かって叫んでるの?鏡?
まさに一人相撲。
0789名前は開発中のものです。
2010/02/14(日) 22:29:41ID:OC4y/061残念ながら、俺の言ってるタスクシステムの方が、
>>2よりも「まだ」まともなんだよ。
>>2は制御構造とデータ構造をごった煮にしてる時点で、
純粋なタスクシステムよりも寄りいっそうたちが悪いんだよ。
タスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ。別のものなのに。
複数のオブジェクト間にまたがる処理は何処に書くんだって話になる。
ゲームオブジェクトとゲームオブジェクトの間をとりもつのが「処理(タスク)」の重要な機能でもあるのに、
それがゲームオブジェクトにくっついてるって変だよね。
>>788
ここまで提示されても、自分の陥ってる状況が分からないって重症だぞ。
純粋なタスクシステムってのは>>2にも含まれてる。
>>2からアロケーターやらtype値検索機能やらを取り除いて
名前どおり、タスクの処理をする部分のみを抽出したのが「純粋なタスクシステム」だ。
それが本当に必要なのかどうかって話だ。
必要ないなら、>>2からタスクの処理をする部分だけを取っ払えばよい。
すると残るものはゲームオブジェクトDBだ。
0790名前は開発中のものです。
2010/02/14(日) 22:32:50ID:e+nQn9Mgごった煮ウンコリストだからなぁ・・・設計とか完全無視の本当のウンコなのに
よくこんなもん使おうとするもんだよ
の割りには設計云々語ろうとするアフォばっかりだな
0791名前は開発中のものです。
2010/02/14(日) 22:33:18ID:gTtOteDI珍しくタスクシステム信者が現れているんだから反転攻勢のチャンスよ?
火力をID:eAxvOj2xに集中したまえよ。いくらなんでもこの程度は倒せるだろ…
0792名前は開発中のものです。
2010/02/14(日) 22:42:41ID:eAxvOj2x>残念ながら、俺の言ってるタスクシステムの方が、
> >>2よりも「まだ」まともなんだよ。
すまんが、いきなり
「俺の妄想の方が一般に言われてるタスクシステムよりまともなんだ」
と言い出して
>ここまで提示されても、自分の陥ってる状況が分からないって重症だぞ。
とか言われても・・・
「そうか、重症なんだな。かわいそうに。」と思うだけというか。
君の脳内では何か「純粋なタスクリスト」について考えがあるみたいだけど
それこそ >>2 みたいに図解つきで説明してくれないかな。
いきなり君の妄想を暴露されても君以外の人間にはチンプンカンプン・・・
0793名前は開発中のものです。
2010/02/14(日) 22:58:37ID:OC4y/061ゲームオブジェクトとタスクの結びつきが無いタスクシステムが
純粋なタスクシステムだ。
各タスクはコンテキストを持つだろうけど、
そこはゲームオブジェクトを入れるための領域ではない。
局所的なFSMの状態変数やゲームオブジェクトへのポインタなどを入れるWork領域。
そこに何を間違ったかゲームオブジェクトそのものを突っ込んで腐った物が>>2。
お前は>>2のtypeが好きらしいが、あれは最も下劣で目も当てられない代物。
ゲームオブジェクトの管理がしたいなら、DB的なものを作ればよいし(データ構造視点)、
実行順序の動的変更や、CellのSPEに仕事投げたいなら、純粋なタスクシステムを作ればよい(制御構造視点)。
>>2の出る幕は無い。
0794名前は開発中のものです。
2010/02/14(日) 22:58:55ID:hWfbVx4tブログに書かれてることを引用しておきながら
人のことをアホ呼ばわりして
設計云々語るとは君はすごいな
0795名前は開発中のものです。
2010/02/14(日) 23:05:41ID:eAxvOj2x>お前以外は皆分かってんだよ。
そーかぁ・・・
>>2のリンク先ページ書いた人はみんな分かってなかったみたいだけど
「僕の考えてることは皆も同じように考えてる」と疑いなく考えちゃう人なのかな・・・
>タスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ。別のものなのに。
これ、純粋にOOPのデータと振る舞いの隠蔽によるカプセル化を否定してる考えみたいに見えるけど
クラスがメンバーとメソッド持つのもごった煮と考える人なのかしら?
0796名前は開発中のものです。
2010/02/14(日) 23:23:24ID:gTtOteDI>君以外の人間にはチンプンカンプン・・・
いや申し訳ないけどそらねーわ
タスク = OBJ、 1タスク = 1OBJ とか、こういう勝手な固定観念に縛られたCodezine状態の
自称システムが古典です古典タスクシステムなんですーとか言われてもピンと来ないなぁ
あーいうお粗末な自作連結リストにオブジェクト格納しましたーみたいなものを
タスクシステムでーすとか喧伝してる人は10年くらい前からちょくちょく見るように
なったのは確かだけどね
ま、ローカル用語、バズワードですから、何をどう呼ぼうが好き好きだし、知ったこっちゃないけど
古典タスクシステムというくらいだから古典があるんだろうね?どれ?Codezineの記事か?w
0797名前は開発中のものです。
2010/02/14(日) 23:27:35ID:OC4y/061> >>2のリンク先ページ書いた人はみんな分かってなかったみたいだけど
タスクシステムの擁護派でも、>>2を擁護できる奴は居ない。お前ぐらいだ。
> >タスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ。別のものなのに。
> これ、純粋にOOPのデータと振る舞いの隠蔽によるカプセル化を否定してる考えみたいに見えるけど
これはちょっと表記がまずかったな。
「全てのタスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ」
と変えとく。
0798名前は開発中のものです。
2010/02/14(日) 23:36:22ID:e+nQn9Mg引用?どこどこ?
0799名前は開発中のものです。
2010/02/14(日) 23:37:10ID:gTtOteDI>>>2のリンク先ページ書いた人はみんな分かってなかったみたいだけど
んなこたーない。>>2の中ではlogician lordを書いた人間はタスクとOBJの区別を
つけている。松○さんとかいう素人の方は理解できなかったみたいだけど
Cマガで特集記事書いたり禿出版で何冊もタスクシステム本を出したりして
アマチュアの学生相手に布教・普及させようと頑張ってたね。その残滓が君か?
0800名前は開発中のものです。
2010/02/14(日) 23:40:06ID:eAxvOj2x>タスクシステムの擁護派でも、>>2を擁護できる奴は居ない。お前ぐらいだ。
やっぱり「僕の考えてることは皆も同じように考えてる」と疑いなく考えちゃう人っぽいなぁ。
>「全てのタスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ」
とりあえず>>2のタスクシステムのどこにも
「全てのタスク(処理)とゲームオブジェクトが密接に結びつく」
という前提は見つからないのだが・・・
全てのタスク云々はどこから生まれた話なんだろう?これも俺俺タスクシステムの脳内定義?
0801名前は開発中のものです。
2010/02/14(日) 23:43:27ID:e+nQn9Mg0802名前は開発中のものです。
2010/02/14(日) 23:45:16ID:hWfbVx4t>505のリンク先
0803名前は開発中のものです。
2010/02/14(日) 23:46:01ID:e+nQn9Mgはぁ?どこ引用したか?って聞いてるんだよ
さっさと出せよボケ
0804名前は開発中のものです。
2010/02/14(日) 23:48:42ID:hWfbVx4tこれは恥ずかしいww
0805名前は開発中のものです。
2010/02/14(日) 23:53:48ID:OC4y/061特にタスクシステム擁護派に相手して欲しい。
お前らの残党だろ。引き取って面倒みろよ。
>とりあえず>>2のタスクシステムのどこにも
>「全てのタスク(処理)とゲームオブジェクトが密接に結びつく」
>という前提は見つからないのだが・・・
http://codezine.jp/a/article.aspx?aid=297
>シューティングゲームを作る場合は「自機」「敵」「敵出現制御」「得点管理」「タイトル画面」など、
>ゲームを構成する全ての要素をタスクとします。
■ このスレッドは過去ログ倉庫に格納されています