1 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 02:21:01 ID:k4ODtuXP] タスクシステムについての議論、相談、質問、雑談などのスレです part4 pc11.2ch.net/test/read.cgi/gamedev/1233459490/ part3 pc11.2ch.net/test/read.cgi/gamedev/1226199100/ part2 pc11.2ch.net/test/read.cgi/gamedev/1196711513/ part1 pc11.2ch.net/test/read.cgi/gamedev/1173708588/ ・タスクと呼ばれる実装は、非常に多岐に渡ります 古典タスクシステムについての話題は「>>2 」と明示してください そうでない場合はカスタム版タスクであることを明示してください ・人を憎んで言語を憎まず
638 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 00:55:26 ID:cewi3IDn] >>637 その理屈はおかしい。 マルチスレッドのプログラミングでもセマフォで他のスレッド待ったり普通にするじゃん。 処理に順序があろうが無かろうが、並列なものは並列だ。 >>635 が並行と言ってるのは、タスクを実行しているスレッド(プロセス)が通例、 1つだけだという理由からだろう。
639 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:06:43 ID:ZZNOCL1s] >処理に順序があろうが無かろうが、並列なものは並列だ。 並列さんの言ってることは意味が分からん。 処理に順序があれば、同時に実行できないのだから、並列でないだろ。 マルチスレッド≠並列。 煽り専門と名のってたが、嘘ばかりを書き込んでスレの機能を麻痺させる気? 名前変えたら?
640 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 01:17:59 ID:cewi3IDn] >>639 > マルチスレッド≠並列 言葉の定義の問題だから、まあどうでもいいが、まあ普通は マルチスレッドで実行されている以上、並列だし、あるスレッドが他のスレッドを 待っていてスループットが悪かろうが、並列なものは並列。 処理順序が厳密に定められていて、まったく逐次実行しか出来ないなら、 シングルスレッドと同じか、それ以下のパフォーマンスしか出ないけどな。 実際はゲームのタスクはそこまで処理順序に関しては制約が厳しくないので いくらでも並列化できる。
641 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:37:59 ID:ZZNOCL1s] >マルチスレッドで実行されている以上、並列だし、 並列ではない。並列な部分もあるってだけ。 今は、「正確には並行処理じゃないの?」と問われていたわけで、 純粋に並列でないなら、正確には並列とは言えない。 だいたい、マルチスレッド云々は実装レベルでの話しだし。 タスクシステムがアーキテクチャ的に並列処理かどうかとは関係ない。
642 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:42:09 ID:ZZNOCL1s] コーヒー牛乳は牛乳か→YES コーヒー牛乳は正確には牛乳か→NO タスクシステムは並列的か?→YES タスクシステムは正確には並列か?→NO
643 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 01:58:35 ID:cewi3IDn] >>641 > 今は、「正確には並行処理じゃないの?」と問われていたわけで、 > 純粋に並列でないなら、正確には並列とは言えない。 この文章、意味不明だ。この文章、俺の解釈では↓こうだ。 今は、「正確には並行処理じゃないの?」と問われている。 スループットが1以下の並列実行なんて並列実行には含まれないので 「正確には並列」とは言えないので、単なる「並行処理」と見なすべきだから、 この「正確には並行処理じゃないの?」は正しい。 もし、そういう意味で書いているなら、俺は別に反対意見は唱えていない。 しかしそれなら>>637 の書き方が悪い。 「優先順位がつくばあいもあるから正確には並列とは言えない」 だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから 並列とは言えない」と読める。だから俺は>>638 のように反論した。 >>637 は、正しくは 「優先順位がつく場合、並列化が難しく、並列度が極端に低下して、単一スレッドで実行 しているのと変わらないから、並列と呼ぶべきではない」と言うべきだっただろう。 しかし、俺はそうは思わない。 処理に優先順位がついていようが並列度を上げることは十分可能だからだ。
644 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:03:29 ID:LbywpZ2h] コーヒー牛乳は牛乳か→NO
645 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:08:20 ID:cMprZFoi] >>643 見苦しいです
646 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:10:52 ID:cewi3IDn] >>645 見苦しいか?ふむ。 それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。
647 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:23:08 ID:ZZNOCL1s] >「優先順位がつくばあいもあるから正確には並列とは言えない」 >だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから >並列とは言えない」と読める。 優先順位がときどき偶発的について、そのときに限り並列性が落ちることがあるから、 正確には並列とは言えない、であってるよ。 タスクシステムは正確には並列か?という命題に対して、 タスクに優先順位が付く場合を判例に挙げたまで。 処理に優先順位が付く場合、理論的にピュアな並列処理とは言えないからな。 完全な並列性とは、なにをどの順で実行しても構わない場合のみ。
648 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:47:03 ID:ZZNOCL1s] >それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。 自分がまともに日本語を扱えないくせに。 >>643 とか、これ日本語ですか? Q:タスクシステムは正確には並列か? A:タスクの処理の優先順位をサポートするタスクシステムの場合には、 タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。 たったこれだけのことが何で分からないのか。 彼はこの問題を実装レベルの並列度の話に持ち込もうとするが、 そもそも、すべてのタスクを同時に実行できるハードが存在しない現状で、 実装レベルでの並列性をもってして、 「タスクシステムが正確には並列かどうか」を判断するのはナンセンス。 なぜならタスクシステム自体による制限よりも、 ハードウェアによる制限の方が先に現れるから。
649 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:49:57 ID:cewi3IDn] >>647 > タスクシステムは正確には並列か?という命題に対して、 だが、あんたは、>>635 を誤解している。 635は > 正確には並行処理じゃないの? と書いてあって、並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 635を書いた本人は、「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので 「並行処理と呼ぶほうが正しいのではないか」と言ってるわけ。 それなのにそれに対する受け答えとして、あんたは、>637で「スループットがN倍になっていなければ pureな並列とは呼べないので並行ではない」と言っている。あんたが「並列度1.0(そんなもの現実的に 存在しないんだが)ではない並列」を「並列」とみなさないのはあんたの勝手だが、635に対する返答として 637は、おかしい。
650 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:52:08 ID:cewi3IDn] >>648 > Q:タスクシステムは正確には並列か? > A:タスクの処理の優先順位をサポートするタスクシステムの場合には、 > タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。 > たったこれだけのことが何で分からないのか。 Qが間違っている。誰もそんなQをしていない。詳しくは>>649
651 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 03:03:47 ID:cewi3IDn] 俺、もう寝る。 どうか、ID:EEKBitmg ◆HSP4mee/SU は、 ID:ZZNOCL1sの相手をしてやって欲しい。 ID:EEKBitmg ◆HSP4mee/SU の書く内容は、技術的に間違ってることも多々あるし、態度も生意気だけど、 日本語は意味明瞭だし、技術用語の使い方も比較的正しいので俺としてはかなり好感が持てる。 まあ、勉強熱心なんだろうな・・。
652 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:03:00 ID:8u/3vapK] なんか良く分からんが、お前らの並列と並行の定義はこれで合ってるの? docs.sun.com/app/docs/doc/819-0390/mtintro-6?l=ja&a=view
653 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:21:13 ID:ZZNOCL1s] まず並行でないなら並列化できないわけで。 逆に、並列化不可能なら、並行でない。 というか、むしろ今まで並行の意で並列と言っていたのだが。 >スループットがN倍になっていなければ >pureな並列とは呼べないので並行ではない は正しい。 順序がある処理は並行ではない。
654 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:22:50 ID:ZZNOCL1s] journal.mycom.co.jp/articles/2006/05/15/bsd3/ 俺はこっちかな。
655 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:43:57 ID:8u/3vapK] >>652 >>654 同じだとおもうけどw >順序がある処理は並行ではない。 いや、順序があっても並行は並行だろう。 ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、 仰々しく「並行」だの「並列」だの言うな、と主張しているように見えるなあ。 ID:ZZNOCL1sは実践的な話をしていて、 並列さんは字面通りの一般的な並列の定義に沿って話しているだけに見える。 というのは深夜の時点で並列さんも悟っているように見える。
656 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:53:23 ID:ZZNOCL1s] >並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 >「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので 並行化によって待ち時間が減ったりするので、スループットは向上するが、 1倍の基準点が不明。
657 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 10:57:38 ID:cewi3IDn] >>653 > というか、むしろ今まで並行の意で並列と言っていたのだが。 あんたは、全然話にもならない。 専門用語を勝手に本来と違う意味で使っておいて 相手に日本語が読めないだの何だの言うのは本当、勘弁して欲しい。
658 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:06:08 ID:ZZNOCL1s] >いや、順序があっても並行は並行だろう。 順序がある処理は並行化できないよ。 例えば、処理Aと処理Bがあって、 BはAの後でないと実行不可だとする。 この場合、AとBを並行に処理することは出来ない。
659 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:06:20 ID:cMprZFoi] >>655 > ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、 そんな話じゃないでしょうに… あと >並列さん >悟っている なんか気持ち悪いです
660 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:13:36 ID:cewi3IDn] >>658 > 順序がある処理は並行化できないよ。 それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。 ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。 本当、専門用語を勝手に意味を作り替えんなと言いたい。 >>659 気持ち悪いのはお前。お前はいらない子だから死んでくれ。
661 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:17:08 ID:ZZNOCL1s] >>657 お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。 >並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 ↑何に対する1倍かはしらないがな。
662 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:25:40 ID:cewi3IDn] >>661 >>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 >↑何に対する1倍かはしらないがな。 そこが読めてないのお前だけだろう。 「concurrentな処理は、Nコアであっても、単一コアで実行したときの1倍以上のスループットが出ない」の意味。
663 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:31:14 ID:cewi3IDn] >>661 > お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。 どこをどうやればそう読めるのか俺は知りたい。 並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が 単一か複数かの差のみ。そんなことは誰でもわかっている。 その用語を勝手に違う意味に使ってたのはあんただろ。 俺には、頭がおかしいとしか思えない。 その頭のおかしいあんたを唯一擁護しているのは ID:cMprZFoi だけ。 こいつは、あんたが書き込みした直後にしか出てこない。どうせこれもあんただろ。
664 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:36:14 ID:92TsYx3X] カプコンのMTフレームワークみたいなマルチコアでのパフォーマンスに特化した設計の フレームワークなら並列云々の話になると思うが… あれもタスク進化系の一種なのか?ちょっとタスクって守備範囲広すぎ。 あれはコア数がパフォーマンスに直結する造りだね。 順序の依存性のある処理と無い処理をグループ分けして、並列で問題ないケースは複数コアで同時計算。 順序の依存性がある処理との同期スケジューリングをフレームワークが管理って感じで。 ゲーム中には依存性のある処理と無い処理があるから、まぁ複数コアを有効に使おうと思うと こんな感じな設計に行き着くんだろうね。
665 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:40:55 ID:cewi3IDn] ID:EEKBitmg ◆HSP4mee/SUはまだ良かった。 HSP使いのプログラミング経験の浅い世間知らずのクルクルパーだが、 そのわりには用語の使い方はまともだし、勉強もよくしていると思っていた。 俺は専門用語を勝手に俺解釈の用語とすり替えて話す奴とは 面倒くさいので話をしたくない。 このスレはどうせみんな常駐してるようなもんなんだから、みんなコテハン にすればいい。それそれぞれが嫌な奴をNGリストに入れておけばいいと思うんだがな。 そんなわけで ID:ZZNOCL1sは俺をNGリストに入れておいてくれ。 お前と話をするのは疲れる。
666 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:49:53 ID:ZZNOCL1s] >それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。 いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。 実際OSなんかは各スレッド間に依存関係が無いものと見なして並行処理しているわけで。
667 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:52:30 ID:8u/3vapK] >>658 それが実質直列だってことは分かるんだけど。 とりあえず、俺が何を考えているのかと言うと、 動き方が実質直列であっても、それぞれ別のスタック領域を持ってる点が違うだろ? 別々のコンテキストを持っている。 その辺を区別するのに「実行効率ゼロの並行」も俺は並行と呼んでただの直列と区別していた。 要するに俺はコアが何個でそのPCがどこ指してるのって部分だけで並行か並列かって言ってた。 んで、一般的定義はどうなのと思ってググった先を見てみると、 コンテキストがどうのというのは論点じゃ無いような気がしてきた。 もうちょい調べてみるわ。
668 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:05:02 ID:cewi3IDn] >>666 > いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。 あんたの「並行処理」について持ってる勝手なイメージは知らんが、 優先順位がついていてそれぞれのタスクを逐次的に処理していく場合も (そのタスクが終了後に消滅しないなら)「並行処理」と呼ぶ。 en.wikipedia.org/wiki/Concurrent_computing > Concurrent programs can be executed sequentially on a single processor > by interleaving the execution steps of each computational process 「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら シングルプロセッサによって逐次的に実行される」 計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは 何ら関係がない。 ・実行箇所をインターリーブしながら(タスクからリターンしてもタスクは 通例存在していて) ・シングルプロセッサによって(ある瞬間を見たときにつねにひとつの プロセッサしかタスクを実行していない) この二つを満たしているなら、並行処理。
669 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:09:24 ID:ZZNOCL1s] >ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。 どこにそんな定義があるんだ?
670 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:10:23 ID:cewi3IDn] >>667 何を言いたいのかよくわからないが、>>668 の説明は理解できる?
671 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:11:16 ID:cewi3IDn] >>669 >>668
672 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:26:24 ID:ZZNOCL1s] 並行計算 ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E8%A8%88%E7%AE%97 >タスク群は1つのプロセッサ上で動作する場合、複数プロセッサ上で動作する場合、 >ネットワークを介した分散システムで動作する場合が考えられる。 663 名前:並列さん ◆dPfetnROQg [sage] 投稿日:2009/03/07(土) 11:31:14 ID:cewi3IDn 並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が 単一か複数かの差のみ。そんなことは誰でもわかっている。 Wikipediaの人は分かってないみたいですよ。 注意してきたらどうなんですかね。
673 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:42:43 ID:ZZNOCL1s] >>668 >計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは >何ら関係がない。 だから、並行処理では処理の依存性は考えない=依存性は扱わない=依存性は扱えない。 扱わないのは扱えないから扱わないの。 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。 各スレッドを並行と見なして実行する。 処理に依存性がある場合はプログラマが自前で同期オブジェクトとかつかってシコシコやる。 一方、タスクシステムでは処理の依存を優先順位という形で明示的に扱うのが一般的。 各タスクを並行とみなしているわけではない。
674 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:44:25 ID:92TsYx3X] いつのまにか 並行・並列処理の単語の定義のスレになってるな。 自然言語の単語の定義なんてどこまでいっても曖昧なのに… 自分の言う「臭い」と他人の言う「臭い」が同じという保障なんて誰にも出来んよ 確かなのは人工言語で書かれたソースのみ。
675 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:44:25 ID:cewi3IDn] >>672 ざっと見たけど日本語のwikipediaのほうは、ひどいな。 これとか > 並行性のための構造を備えた最も一般的な言語はJavaとC#である。 なんでだよと突っ込みを入れたくなる。 これ書いてる奴は、thread生成が出来るからJavaとC#を入れてるんだろうけどひどいにもほどがある。 C#のyieldによるcontinuationは確かに並行スレッドなんだが、それならJavaを含めるのはおかしい。 日本語のwikipediaの「並行性」の項目もひどいな。なんだよこれ。 ちょっとwikipedia行って暴れてくるわ。
676 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:47:15 ID:cewi3IDn] >>674 > 自然言語の単語の定義なんてどこまでいっても曖昧なのに… 専門用語は、限りなくstrictに定義されてるべき。 そうじゃなきゃ論文とか意味のないものになってしまう。
677 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:50:58 ID:ZZNOCL1s] >>668 wikipediaを引用しているようだが、途中で切れているようだが。 >「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら >シングルプロセッサによって逐次的に実行される」 の後ろには、実際には or executed in parallel by assigning each computational process to one of a set of processors that may be in close proximity or distributed across a network. が続いている。 自分の都合の良いところだけを掻い摘んで引用する根性の悪さ。 結局、 >並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が >単一か複数かの差のみ。そんなことは誰でもわかっている。 は間違い。
678 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:52:11 ID:cewi3IDn] >>673 > 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。 それはダウト。 実際のOSにはプロセスのpriorityがあって、それに従ってスケジューリングされる。 割り込みなんか特にそう。あるプロセスの実行が他プロセスの実行より優先されることは多々ある。 キーボードイベントが発生したら、その処理が優先される。そこには明確な実行順序がある。 そんな機能すらない、もっとprimitiveなOSの話をしているなら、まあそれはそれでいいけど 「実際のOS」と書かれるとWindowsやらLinuxやらを想定しているのかと俺は思ってしまう。
679 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:02:13 ID:ZZNOCL1s] >>675 お前がひどいという日本語版の、 「並行性のための構造を備えた最も一般的な言語はJavaとC#である。」 は英語版のページにある 「Today, the most commonly used programming languages that have specific constructs for concurrency are Java and C#. 」 の訳なわけだが。 そしてその英語版のページを引用して、 「これが並行処理の定義だ!」と言っていたのがお前なのだが。 さらにその引用も自分の都合のいいところだけを引用するという正確の悪さ。 「〜又は〜」と書いてあるのに、「又は」以降をバッサリカット。
680 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:05:44 ID:ZZNOCL1s] >>678 プロセスのプライオリティーは必ずしも守られるわけではない。 あれは、CPUリソースに対する優先順位であって、処理に対する依存関係を表すものではない。 現にマルチプロセス環境だと、プライオリティーの高いものと低いものが同時に実行される。
681 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:05:45 ID:cewi3IDn] >>677 それなぁ、「executed in parallel」以下は敢えて省略した。 これを「根性の悪さ」と言われるのはわからないではないが、いま俺が問題としているのは、 「concurrent thread」 とか「parallel thread」というときのconcurrentとparallelの意味の違いだ。 「concurrent computing」という学問分野があって、その学問分野は広範で いわゆる分散コンピューティングみたいなことまで研究対象としている。 本来、concurrentの定義にparallelとか出てくるのはおかしいのだが(それだとconcurrentとparallelとの 差が無くなってしまう)、「concurrent computing」の分野においては、「concurrent program」の意味は、 かなり拡大解釈されている。だから、その部分をはしょった。 「concurrent computing」のconcurrentを援用するのがあまり良くなかったと言われれば、まあ、それはそうなのだが。
682 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:09:34 ID:Fbn5zOAB] 並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。 んじゃないの? 独立した概念(関連はあるけど)なんだから、>>660 の >ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。 はおかしいと思う。 concurrentに作っておけば、parallelに実行しやすいんだし。
683 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:17:17 ID:cewi3IDn] >>680 うむ、それは正しい。 >>682 ああ、そうか。そういう意味では、660はおかしいし、書き方が悪いな。 これについては反省。すまんかった。> ID:ZZNOCL1s
684 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:19:11 ID:ZZNOCL1s] 用語の定義をめぐって、wikipediaと格闘するような人とは議論したくない。
685 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:20:00 ID:ZZNOCL1s] お互い疲れたと見える
686 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:24:11 ID:cewi3IDn] >>682 > 並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 > 並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。 この定義に基づいて古典的なタスクシステムのタスクについて語ると ・古典的なタスクシステムのタスクは、「並行」。 ・実行順序に厳しい制約があるとみなすなら、「並列」化はできない。 ところが実際のゲームでは、タスク間に依存関係がない部分が結構あるので 部分的に「並列」化できる。 この「並列」化によって、コア数N×0.7ぐらいのパフォーマンスは出る。 で、この「並列」化を古典的タスクシステムを進化(?)させて書けるようにすれば いいということだな。
687 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:24:58 ID:cewi3IDn] >>684 俺のことは、NGリストに入れておいてくれ。 最初に682のように書いてもらえれば、俺はすぐに理解できたのだが。
688 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 14:32:04 ID:NOayWFQU] これにて一件落着
689 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 14:39:01 ID:ZZNOCL1s] おれは、>>682 と同じ意見ではない。 >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、 必要だと考えている。 並行性 ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E6%80%A7 だから、 1.並行でなければ並列化できない。 2.タクスの処理順位を考慮するようなタスクシステムは、すべてのタスクが互いに並行というわけではない。 3.ゆえに、タスクシステムを並列化するならば、並行なタスク同士を抽出する必要がある。 と考え、 さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。
690 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:29:42 ID:8u/3vapK] >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 俺もこう思ってた。 んでそうハッキリ書いてある資料を探してるんだけど、見つからない。 >並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、必要 次からこっちの定義で話すわ。
691 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:37:28 ID:92TsYx3X] >>689 >さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。 MTフレームワークは処理順の依存の有無でタスク分けてマルチコアで同時に複数タスク動かしてるけど これは処理順位を考慮するシステムだから「並行でない」のかな?
692 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:42:35 ID:ZZNOCL1s] だいたいちょっと考えれば分かることだが、並行の定義が、 >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 だと、いわゆるオブジェクトと呼ばれるものは全部並行ってことになっちまうだろ。 コンテキストが同時に存在できないオブジェクトなんて、まあ無いからな。 言葉としての意味が無くなる。
693 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:56:08 ID:ZZNOCL1s] >>691 もしはじめから並行なら、MTフレームワーク自体いらないでしょ。
694 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 16:00:29 ID:92TsYx3X] >>693 >もしはじめから並行なら どこにそんな前提が?
695 名前:名前は開発中のものです。 [2009/03/07(土) 16:36:27 ID:E0xOAlNR] >>689 >これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、 ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの? >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 と同じ事を言ってるだけのような。 >1.並行でなければ並列化できない。 は違うと思う。 並行でない命令列も、依存関係が無ければ並列化できる。 現にCPUの中でシリアルセマンティクスを満たしつつ並列実行が普通におこなわれている。 そういう命令列は本質的に並行だった?違うでしょ?スーパースカラで並列に実行される命令は、 異なるコンテクストを持ってるわけじゃないんだから。 あと細かいことだけど、順位と順序は全然意味違うんだから、 ちゃんと使い分けてくれないと読み辛いよ。
696 名前:名前は開発中のものです。 [2009/03/07(土) 18:22:05 ID:UcXZ5wF9] でも依存関係があるかないかなんて並列で実行してんのにどうやってわかんだろね くる値によって依存関係があるかもわからんしないかもわからん ごった煮だとそういうソースになってしまうな
697 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 18:30:21 ID:rbzzI5lu] ID:UcXZ5wF9 ↑(・∀・)↑ ウンコちゃんインしたお
698 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 18:34:25 ID:ryll+mdy] >>695 > >これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、 > ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの? > >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 > と同じ事を言ってるだけのような。 例えば、コンテクストが共有されている場合などでは、 コンテクストは同時に存在できるが、同時に実行はできない。 具体的には、オブジェクトAがオブジェクトBの参照を内部に保持している場合など。 オブジェクトAはオブジェクトBとコンテキストを共有しているということになり、 オブジェクトAとオブジェクトBは同時に存在できるが、同時に実行は出来ない。 >並行でない命令列も、依存関係が無ければ並列化できる。 並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。 並列化とは、並行に処理することだから、並行な処理しか並列化できない。 自動並列化 ja.wikipedia.org/wiki/%E4%B8%A6%E5%88%97%E5%8C%96 >プロセッサで「並行」に実行されるようにする。 スーパースカラ ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9 >プロセッサ内の冗長な実行ユニットを使って「並行」して処理される。
699 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 18:39:37 ID:ryll+mdy] >>694 ヒント:背理法
700 名前:698 mailto:sage [2009/03/08(日) 19:26:02 ID:ryll+mdy] 訂正するけど、 コンテクストが共有されていても、read-onlyな場合は並列化可能だね。 書き込みするとアウトだけど。
701 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:27:58 ID:0j+yjPij] >>698 なんか色々と変だよ。 >例えば、コンテクストが共有されている場合などでは、 >コンテクストは同時に存在できるが、同時に実行はできない。 共有されているのに同時に存在するってどういう意味? コンテクストはいくつあるの? >具体的には、オブジェクトAが(以下この段落略) オブジェクトとコンテクストがごっちゃになってる。 オブジェクトAがオブジェクトBへの参照を内部に保持していても、 コンテクストがいくつあるのかという問題とは関係無いよ。 オブジェクトAとBを同時に実行はできない?オブジェクトを実行するってどういう意味? この辺は、>>692 の勘違いと同じ匂いがする。 てか>>692 さんなのかな。
702 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:30:14 ID:0j+yjPij] んが。改行多過ぎ言われた。 701の続き。 >並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。 「依存関係が無い部分」を「並行な部分」とは呼ばないよ。 いや呼ぶのは自由だけど、少なくとも聞いたことないよ。 いや聞いたことないだけかもしれないけど。 >並列化とは、並行に処理すること(以下略) ×。 もうちょっと詳しく言うと・・・ 「並列化とは、並行に処理すること」 という言葉それだけを見るなら、○。 でも、そこに出てくる「並行」という言葉は、並列という言葉を説明するための 「(同時)並行」という意味であって、このスレでここまで長々と議論してきた 並行(concurrent)とは意味が違うよ。 (「並列」を説明するのに「並列」と言っても仕方が無いからね) 二つ挙げてくれたwikipediaの説明に出てくる「並行」も、同じように「並列」を 説明するための「並行」であって、ここに引っ張り出してきても意味が無いよ。
703 名前:名前は開発中のものです。 [2009/03/09(月) 12:41:05 ID:2btSBxrR] 大変だ!タスク信者が息してないぞ!
704 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 13:31:41 ID:+h98nuCN] つまらん煽りイラネ
705 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 14:16:42 ID:EugqMYhT] 本人は面白いと思って書いてんだろ
706 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:19:32 ID:W7jNDZ1N] 厨は『並行処理』という言葉を使ったけど、ノートを読み返したら『並行動作』となっていた。 =『擬似並列動作』のことを云いたかったの!微妙に書き間違えてた?と書こうと思ったら >>637-以降で怖いおじちゃん達が深夜の泥沼バトルが展開されてあれよあれよと言う間に みんな深淵の彼方へ飛んでいってしまった。ニーチェの警告に耳を傾けない者はみんな 闇に飲まれちゃうんだ。恐ろしいことだ
707 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:20:59 ID:W7jNDZ1N] 俺は元々>>2 の話をしてて、これはどこをどうひっくり返しても逐次処理・直列処理してる。 ところが>>632 のタスクシステムは直列処理ではなくどっちかっつーと『並列』らしい。 たぶん>>632 の云うタスクシステムは>>2 とは別物か、あるいは並列ではなくて 『擬似並列動作』とか『並行動作』のことをいってるのかなーとESPした。それが>>635 >>2 の『システム(笑)』部分が提供するものは ・粗末な侵入式の連結リスト ・それを周期的にナメナメしてディスパッチするショボイ仕掛け だけ。>>2 はこの『システム』部分をユーザー定義の逐次処理・直列処理に使ってるけど ユーザー定義の並行動作に使うこともできるっちゃできる 例えば組み込みシステムでは、異なる割り込みハンドラからの指示でスリープ状態から 復帰するタスクとかあるからね
708 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:36:39 ID:W7jNDZ1N] あるいは、敵をやっつけた時の爆発エフェクト。これの破片・パーティクルの一個一個を タスクとして登録してるとする。(そんな無駄なことしたくないけど、する奴もいるだろう) 破片・パーティクルのタスクは他のタスクとの作用なんてないとする。ならばこれらは 確実に並行動作してる 逐次処理・直列処理で並列動作してる。だが並列動作じゃない
709 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:37:17 ID:W7jNDZ1N] >>708 ×逐次処理・直列処理で並列動作してる。だが並列動作じゃない ○逐次処理・直列処理で並行動作してる。だが並列動作じゃない
710 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 02:18:01 ID:W7jNDZ1N] >>2 のシステム(笑)はなんで並列動作できないの? 一本の連結リストにみんなチャンポンにしてぶち込んでる時点で 別スレッドで同時並行的に弄繰り回されるということを考えてないだろ タスク間通信に必要な同期のメカニズムを提供していないのもそう シングルスレッドで逐次処理するという前提だからバッサリ省いてる 次に、>>2 のTCB(笑)とかいう構造体のプライオリティというパラメータは priority-rankingではなくpriority-sequenceとして使われており、異様。 これは処理順序を表しており、この順序でソートして順次処理される そういう前提でタスク(ジョブ)の内容を記述してる。順序が狂ったら動かない
711 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 12:53:53 ID:GPL7IZe+] >>707 >ユーザー定義の並行動作に使うこともできるっちゃできる できるっちゃできる、じゃなくて、ゲームオブジェクトの並行動作を記述することが そもそもタスクシステムの目的なんじゃないの? オブジェクトごとのデータとコンテクストをひとまとめにして自律的な行動を 自然(←人によって感じ方は違うだろうけど)な形で書ける(気分になれるw)ことと、 オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること、 の2点を、素朴な形で実装したのがタスクシステムの良い点だったと思うんだけど。 >>710 >>>2 のシステム(笑)はなんで並列動作できないの? 特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、 それらを並列動作させることはできるんじゃないの? (そういう番号をプライオリティと呼ぶことの是非は別として) 別に誰も、全てのタスクを並列動作させることなんか最初から期待してないと思うけど。 かなり上の方に出てた自動的に並列動作させる云々の話も、そういうプライオリティの タスクに限って、プロセッサ数に合わせて並列でディスパッチするような拡張も考えられる のではないか、という話だったと理解してたんだけど。
712 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 14:14:14 ID:arIRXx6m] pc.watch.impress.co.jp/docs/2009/0305/kaigai493.htm > ゲームプログラム本体のコードは、OSのコードと同じように、 > 整数演算中心で小さな範囲での並列しかできず、 > 基本的には逐次実行しなければならないコードがほとんどだ。 これが古臭いタスクのことを指しているとは考えられないし 並列ネタはタスク関係無くね?
713 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 17:38:59 ID:DtkxsGym] マルチプロセッサでマルチスレッドしたいならそう拡張すればいいんとちゃう? シングルプロセッサが前提の時代に書かれた物に難癖つけるのも大人げないと思う ていうか俺は現在でもマルチスレッドなんてやりたくない
714 名前:名前は開発中のものです。 [2009/03/10(火) 18:22:37 ID:9N7ATqdV] 別にマルチスレッドなんて必要ならやりゃいいじゃん 裏でローディングしながらゲーム動かすなんて別に難しくもなんともねーし ただ、ゲームオブジェクトにやる意味は無さそうだけどね
715 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 18:42:31 ID:+MsrlA3X] そういやフルにディスクアクセスしてても重たくなったりカクついたりしないのかね?
716 名前:名前は開発中のものです。 [2009/03/10(火) 19:16:57 ID:9N7ATqdV] >>715 やってみりゃいいじゃん
717 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 19:47:23 ID:+MsrlA3X] >>716 やってみた ガックガクになった
718 名前:名前は開発中のものです。 [2009/03/10(火) 20:01:50 ID:9N7ATqdV] そうか市販のゲームは普通にできてるのに不思議だな
719 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 21:27:13 ID:LXtgug0h] 裏でローディングなんてDMA時代からとっくにやってます。
720 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 22:07:24 ID:OHC3eltB] >715 普通非同期アクセスするだろ。 JK
721 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 22:48:52 ID:GPL7IZe+] >>711 >特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、 は、オブジェクト群じゃなくてタスク群と書くべきだったね。 なんか混ざっちゃった。 >>715 自分も昔から気になってた。 ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、 消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。 それともDMAとかで消費されるバンド幅は、割と安定して予測できるもんなんだろうか。 その辺を実際にいじった経験が無いし、Web上でも情報を見た覚えが無いから分からないんだ・・・。
722 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 23:19:25 ID:DFTfic3i] >>721 > ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、 > 消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。 もちろん、なる。 だから RPG のように「どうしても間に合わなかったらフレーム描画をスキップしてもおk」な ゲームでは使うが、対戦格闘とかだと避ける。
723 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 23:58:04 ID:OHC3eltB] フルにディスクアクセス行ったところで、光学ドライブからの転送量なんてたかが知れてるからな。
724 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 00:28:43 ID:xmrBPpjK] >>711 厨はそもそものタスクシステムなんて知らないから、そもそもの目的も知らない 厨が目にすることができる資料から分かること。それは ジョブ1を分割したものをタスクT11,T12,T13,…,T1jとし、ジョブ1を逐次処理したい ジョブ2を分割したものをタスクT21,T22,T23,…,T2jとし、ジョブ2を逐次処理したい ジョブ3を分割したものをタスクT31,T32,T33,…,T3jとし、ジョブ3を逐次処理したい ・・・ ジョブi を分割したものをタスクTi1 ,Ti2 ,Ti3 ,…, Tijとし、ジョブi を逐次処理したい ──順次処理─→ WAIT_VBLANK then execute[T11,T21,T31,…,Ti1] │逐 WAIT_VBLANK then execute[T12,T22,T32,…,Ti2] │次 WAIT_VBLANK then execute[T13,T23,T33,…,Ti3] │処 … │理 WAIT_VBLANK then execute[T1j ,T2j ,T3j ,…,Tij] ↓ 以上が>>2 の『システム』部分がやってくれること
725 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 00:38:10 ID:xmrBPpjK] >>724 これだけ見ると協調的に並行動作させることが「できる」仕組みと分かる でも、>>2 で紹介されるこれの使い方のお手本、つまりタスクの中身を見ると 何か怪しげなことしてる。走査回数とメモリ消費をケチるためにプライオリティ というものを使ってる。以前に出てた話だけど、something(t+Δt)を求めるために 参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる 本来なら並行であるはずの関係を直列の関係にしてるというか、なんていうの? 並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ 並行動作というかフェイク並行動作してるんだよね
726 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 00:58:38 ID:xmrBPpjK] >>711 >オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること これって何?GCしてるの?どういうタイミングで? それってメモリアロケータの都合じゃないの?関係ねー気がする
727 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 01:12:12 ID:xmrBPpjK] まぁ、なんだ。厨的に思うのは > ──順次処理─→ >WAIT_VBLANK then execute[T11,T21,T31,…,Ti1] │逐 >WAIT_VBLANK then execute[T12,T22,T32,…,Ti2] │次 >WAIT_VBLANK then execute[T13,T23,T33,…,Ti3] │処 >… │理 >WAIT_VBLANK then execute[T1j ,T2j ,T3j ,…,Tij] ↓ タスクシステムとか仰々しい名前の割りに、それが提供する機能を分析すると ↑みたいな、限りなくどうでもいいことしかしてないということがわかる これがやりたいなら初めからそう書けばいい。>>2 みたいなチンポコリンな実装を 21世紀にもなってタラタラ書くなバーカって思う。寝る
728 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 02:02:53 ID:xmrBPpjK] 起きた。なんか間違えた。まぁいいや。逐次処理って違うや。もういい
729 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 02:51:56 ID:QLymkmBo] >>724 >厨はそもそものタスクシステムなんて知らないから、そもそもの目的も知らない えっとまず始めに確認したいんだけど、「厨」ってのはID:EEKBitmgさんのことでいいのかな?(違ってたらゴメン) で、「そもそものタスクシステム」の話なんてしてないよ。知ってても知らなくてもどうでもいいよ。 でも「そもそもの目的」は>>2 を見れば理解できるでしょ。どれもすごく丁寧で分かりやすい記事だし。 以降、改行箇所は適宜勝手に変更する。ごめん。 >>725 >走査回数とメモリ消費をケチるためにプライオリティというものを使ってる。 いや、走査回数とメモリ消費をケチるためにプライオリティを使ってるわけじゃないと思うんだけど・・・。 >以前に出てた話だけど、something(t+Δt)を求めるために >参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる これはつまり、タスクAの処理結果を見てタスクBの処理をしないといけない場合、タスクシステムだと AとBのどちらが先(>>724 の図で言えば左)にくるのか分からないので困る、って意味かな?(違うかな?) でもタスクシステムには、Aを必ずBより先に実行させる方法があるよね。それは分かってるよね? で、タスクBがタスクAに依存してるのだとしたら、それはタスクBの問題(あるいは性質)であって、 タスクシステムの問題とは全く別の話だよ。 >並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ なんで突然、並列化の話が出てくるの? タスクシステムの目的は並行動作だよね。 これは>>710 のおかしい点でもあるんだけど、>>2 では最初から並列動作なんか考えてないんだから、 同期処理とかが組み込まれてないのは当たり前だよね。 >並行動作というかフェイク並行動作してるんだよね 並行とフェイク並行の違いって何なんだろう。なんか並行と並列の違いを理解してない匂いがする。
730 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 02:53:04 ID:QLymkmBo] 続き。 >>726 >これって何?GCしてるの?どういうタイミングで? え、ちょっと待って、>>2 の話をしてるんだよね? 本当に>>2 読んだ?? ID:EEKBitmgさんの言う>>2 って、>>2 のうちのどれのこと? >>2 を読んだのかどうかって話で思い出した。>>464 の、この部分。 >『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は > 高速化されるという先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素な > CPUアーキテクチャに依存した公式に過ぎない。定理ではない』 断言してもいいけど、ID:EEKBitmgさんとこの助教授さんは>>2 をちゃんと読んでないか、あるいは 頭のネジが足りてないよ。それとも助教授ってこんなもんなのか。知り合いにいないから知らんけど。 ところで課題レポートはちゃんと提出した? >>727 >タスクシステムとか仰々しい名前の割りに、それが提供する機能を分析すると ちっとも分析できてないよ・・・。 >↑みたいな、限りなくどうでもいいことしかしてないということがわかる 全く分かってないよ・・・。
731 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 04:20:03 ID:yoM2Y43z] HSPくんは厨房のくせになかなかどうして要点を押さえてるのう 若干正確さに欠ける点に目をつむって処理を端しょってたことに勘付いたか
732 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 07:22:34 ID:nhOwJy5w] まぁ、学生さんが理想を追い求めるのは悪いことじゃない。 ただ、現実はそれに立ちはだかると言うことは知っておいた方がいい。
733 名前:名前は開発中のものです。 [2009/03/11(水) 07:26:19 ID:NK6nIuY5] タスクシステム完全に終わったな
734 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 08:32:00 ID:74bG+9We] タスクシステムのプレゼン動画 ttp://www.nicovideo.jp/watch/sm2078250
735 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 13:15:27 ID:wSuVQdvJ] ていうか細切れに順番に処理してくれるシステムなら何でもいいんじゃね? 適当にクラス作ってリストにして順番に実行 内部では各自カウンタとステート持って勝手にやる、死んだり生きたりはおかしなことにならないようにシステムでええ感じに処理してねー とまぁ簡単なものならこんなのでいいじゃろ 複雑なのはしらん
736 名前:名前は開発中のものです。 [2009/03/12(木) 07:22:55 ID:7byKm2pB] 誰もそんな話してないし
737 名前:名前は開発中のものです。 mailto:sage [2009/03/12(木) 11:49:54 ID:Rx7RnDpA] しろよ
738 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:06:36 ID:SEPBaONy] >>729-730 >なんで突然、並列化の話が出てくるの? それは『ボクのタスクシステムはどっちかっつーと並列!』と言っていた >>632 のおじちゃんに言ってよね。CodeZineなんて初っ端で並列処理と言い切ってる。 あと生協で逆引きゲームプログラミングとかいう本をパラパラーっと立ち読みしたら 『並列動作システム』とか書いてあったし。『並列処理動作』してるんだって。ゲラゲラゲラー もうさ、ハッタリかましすぎだよね。説明してる内容と、それを一言で表現するときに どこかから引っ張ってきた用語が全く一致してないんだよね。厨房を騙くらかそうと必死でしょ 今さっき覚えてきた単語をとりあえずあててみました。みたいな。ちょっとね、おかしいとおもう その点Logician Lord、White Paper、けんもほろろのページは並列なんて一言も言ってない 上に比べたらまだマシな部類なのかなーと思える。タスクシステム解説つっても千差万別だね
739 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:11:52 ID:SEPBaONy] ただ、まともっつってもなんか変なんだよね。組み込みシステムか何かから引っ張ってきた 知識を広めた人がいたんだろう、というのは厨の俺でもなんとなくわかる。それがギョーカイ とかいうよく分かんない謎の秘密結社みたいな世界で伝播する過程でおかしなことになって ミュータントみたいになっちゃってるんじゃない?この人たちが言ってるTCBとかタスクとか ちょっと変わってるよね TCBって、ゲーム機よりショボい組み込み機器でもプログラムカウンタとかスタック アドレスが入ってる。リエントラントな仕組みを提供すんだよね。だから周期タスクは periodictask() { while(1){ dosomething(); rot_rdq(); } } みたいな感じで書く。タスクは並行動作できるんだ。でも>>2 の『タスク』はできない。 サブルーチンの処理を全て完了しないと処理を返せない。タスク同士は完全に 逐次処理なんだ。擬似並列動作ができない
740 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:24:44 ID:SEPBaONy] でも>>2 の言うタスクってのは、ジョブを時間領域で分割したものだから タスクの作り方によっては、複数のジョブ同士の並行動作はできるかもね >タスクシステムの目的は並行動作だよね。 >>2 の話?んなこと俺が知るかっつーカンジ 俺は>>632 のどっちかっつーと並列とかいう謎のタスクシステムが 並行動作してるのかなーとESPしてみただけだしー。推測でしかないしー >>2 はふたを開けてみればゲームオブジェクトのUpdateメソッドのディスパッチャー 単なるレディキューだからどうとでも使えるわけだしー このメソッドの分け方次第で並行動作もできるんだろうね。でも ゲームオブジェクト一個につきタスク一個とか言ってるページもあるから ちょっと怪しいね。Update()一個じゃあ、>>725 で書いた矛盾にぶつかると思う
741 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:39:16 ID:SEPBaONy] >385 名前:名前は開発中のものです。 投稿日:2009/02/10(火) 01:05:40 D1ATM4io >>384 >厳密にやるならワークをそれぞれ2つ持って、フレームごとにフリップだろ。 >面倒だったら一つ一つ更新して、n+1がnを参照してもn+1を参照しても対して問題が無い様にするさ。 >どこまで誤差を容認できるか知らんけど。 なんか臭いなぁ、と思ってたのがここ。CodeZineはこの誤差を容認するほうを選んでるよね。 具体的にはEnemyとMyShotの関係。これタスクリストとかいうものの中でごちゃ混ぜになってるでしょ 当たり判定のときに、自機弾って移動速度速いからさ、敵と当たったり当たらなかったりすると思うよ ぜったい気持ち悪い現象が起きる理不尽ゲーになると思う
742 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:53:29 ID:SEPBaONy] >>741 × 当たり判定のときに、自機弾って移動速度速いからさ ○ 自機弾って移動速度速いからさ この不快な現象を発生させたくないなら EnemyとMyShotの実行順序をごちゃ混ぜにしちゃ駄目でしょ ごちゃ混ぜのままならせめて当たり判定タスクと移動タスクを分けないと あとさ、必要は無いけど、外部参照されるパラメータは前フレームの状態を 保持したほうがいいよ 例えばロックオンして置き撃ちするときに、targetposition(t)を得るか targetposition(t+Δt)を得るかがpriorityとかいうものによって変わるって おかしいでしょ
743 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/13(金) 00:03:15 ID:w7sHy3uX] >>742 × priorityとかいうものによって変わる ○ タスクリストの前後関係とかpriorityとかいうものによって変わる >>730 >>これって何?GCしてるの?どういうタイミングで? >え、ちょっと待って、>>2 の話をしてるんだよね? 本当に>>2 読んだ?? >ID:EEKBitmgさんの言う>>2 って、>>2 のうちのどれのこと? 俺と同い年の人が書いたと思しき記事だからボコりたくなかったけど 流れでそうなっちゃったから堰を切ったように書いてるけどさ CodeZineの記事は他と比べて相当違うんだよね メモリ割り当てなんて関係ないのにさ、糞みたいなGCかましてるし STGであんな処理をかますフレームが不定期に存在するって変でしょ 糞みたいな自前のメモリ割り当てやってるからあんなGCが必要に なるんでしょ。何のための自前アロケータなんだか分からない 厨的には、あんな糞実装は氏んじゃえって思う
744 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:16:52 ID:kkRWD5W+] タスクシステム擁護派じゃないけどさ・・・ 雰囲気つかむだけのサンプルにアホとか言っちゃうのはどうよ? こういうものは思想だけ頂いて自分の好きなように組んでくれって物じゃないのかね・・・ GCがどうのっていうのも処理落ちしたときにはじめて考えればいい所だし、 ただたんに自分の流儀に合わないから貶すと見えますよ。
745 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/13(金) 00:24:04 ID:w7sHy3uX] >>729 >>>2 では最初から並列動作なんか考えてないんだから、 >同期処理とかが組み込まれてないのは当たり前だよね。 性格悪いレスになるけど書いちゃえ! ぶっぶー。並列動作じゃないから同期処理が要らないってのは間違い >>730 CodeZineの記事のコードってさ、生存中のゲームオブジェクトのアドレスが不定期に変わっちゃうんだよね あのサンプルってさ、あるゲームオブジェクトのレーダーシステムが特定の目標をロックオンして追跡するとき どうすんの? 例えばあのサンプルの敵弾ってさ、毎回Playerをタスクリストから探してるんだよね。バカだからさ priority=1.0のPlayerはタスクリストの一番最後に入ってるのに、先頭からナメて探すの。バカだよね こんな調子で、ロックオンターゲットも、毎フレーム、タスクリストから探し出すわけ? 多目標同時対処能力を保有する機体が入り乱れたら愉快な処理量になりそうだね こんなアホなことになるのはさ、糞アロケータの都合で不定期に糞GCかますからでしょ? あんた>>711 で『デフラグができること』を取り上げて これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ? 明らかに必要ねーことしてるし。バカじゃねーのくたばれバーカバーカって言いたかったけど ずっと我慢して黙ってたんだ。でももう書いちゃった。
746 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/13(金) 00:30:00 ID:w7sHy3uX] >>744 だからずっと黙ってたんじゃん。心情的にはCodeZineの記事は 放置したかったんだけど、擁護派がデフラグデフラグとかいうから 書かざるを得なくなった。HSP使いとしては同じ厨を攻撃するのは遺憾 遺憾の意です。本意じゃありません。ごめんなさい><
747 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:40:01 ID:idYT2cwA] >746 > だからずっと黙ってたんじゃん。 バカには現実を突きつけてやるしかないんだよ。
748 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:45:14 ID:9zwO86zu] >>747 突きつけても、見えない or 見ようとしないけどな。大抵。
749 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 01:00:19 ID:bP/yrlKM] ID:EEKBitmgはCodeZineの記事の作者と同じにほいがする。 ID:EEKBitmgの方が筋は良さそうだが。 >>744 CodeZineの記事は昔論争になったことがあって擁護派らしき人からの批判も多かった。 批判の方が多かったような。 とにかく駄目なものを技術的な説明を沿えて駄目と言うのは良いでしょう。
750 名前:名前は開発中のものです。 [2009/03/13(金) 07:26:08 ID:2Nwh1Ok5] とりあえず並列化の話はやめろよ この仕組みじゃどう味付けしたって並列化なんてできやしねぇから
751 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 10:49:20 ID:t4cURNWA] なんでもタスクで一元管理 まとまってていいね! ぐらいの感覚なんじゃないの? 腕である人ならいい感じにまとめられるでしょうに ギャーギャー噛み付くほどのものかねぇ もしかして、今時のゲームにも導入されたりして被害被ってるの?
752 名前:名前は開発中のものです。 [2009/03/13(金) 12:37:20 ID:2Nwh1Ok5] 腕のある人はこんなもん使わないから(笑)
753 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/13(金) 16:18:33 ID:nlP2vU3h] >>745 > priority=1.0のPlayerはタスクリストの一番最後に入ってるのに、先頭からナメて探すの。バカだよね それは別にhash使えばO(1)で検索できるんだし、本質的な欠陥じゃないと思うが。 > これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ? > 明らかに必要ねーことしてるし。 まあターゲット環境とゲームの規模によるけど、何らかの形でデフラグはあったほうがいいと思うよ。 working setを縮小したほうがプロセッサのcache効率が上がるのが普通だし、 タスクシステムはプライオリティ順にタスクに対してアクセスしていくのだから プライオリティ順にメモリ上に配置されて、アクセスするメモリが連続しているほうが (memory cacheの観点から見て)断然速い。 タスクシステムどうのという話はおいとくとして、ひょっとして、みんなmemoryのcompactionとか処理を書いてないの? これを無用の長物みたいに言われると、もう議論の前提が違うとしか言いようがないんだけど。
754 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:00:36 ID:kAszbGcI] >>738 タスクシステムの構造を見れば、これは並行動作を目的としたものだと分かるよね?(分からない?) その文脈で「並列」という言葉が出てきても、それは並行のことを意味しているとは思わないのかな? それを書いた人が勘違いしてるのかもしれないし、意識してないのかもしれないし、並行と並行の違いを 知らないのかもしれないし、あるいは文脈上区別の必要が無いと判断したのかもしれない。 いずれにせよ、「並列って言ってるけど並列じゃないじゃん」という批判は、「並列」という言葉を 持ち出した人に対しては当たるかもしれないけど、タスクシステムへの批判としては的外れだよね。 それともID:EEKBitmgさんは、誰かがタスクシステムのことを並列だと書いただけで、タスクシステムの 目的が並列動作だと考えたのかな? それってタスクシステムのことを理解したうえで批判していると言えるのかな? あと、用語の使い方が適切でないという点に関しては、ID:EEKBitmgさんも全く人のこと言えないよ。 私自身のスタンスとしては、他人が多少変な言葉を使ったとしてもできるだけその意を汲もうとするし、 逆に自分の言葉はできるだけ分かりやすく正確になるようにしていつもり(あくまでつもりw)だけど、 ID:EEKBitmgさんは全く逆のスタンスなのだろうか? 言葉が不正確なのに、他人の言葉尻は捕らえるよね。 >>739 マルチタスクOS等におけるタスクと、タスクシステムのタスクは設計も目的も意味も違うのに、 それを混同してしまっている、のか混同させようとしているのか分からないけど、このレスはまるまる無意味。 擬似並列動作とかいう怪しげな言葉の意味も分からない。
755 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:03:23 ID:kAszbGcI] >>740 >>タスクシステムの目的は並行動作だよね。 >>>2 の話?んなこと俺が知るかっつーカンジ >俺は>>632 のどっちかっつーと並列とかいう謎のタスクシステムが(以下略) つまり>>2 を読んでも、タスクシステムの目的が理解できなかったってこと? というか、この話の流れを>>729 ,>>725 ,>>724 ,>>711 と遡っていけばID:EEKBitmgさんが>>2 の話を しているのは明らかなのに、いきなり>>632 を引っ張り出してきて言い訳するのは見苦しいと思う。 それとも単に文脈を追えてないの?何の話をしているのか分かってないの? >>>725 で書いた矛盾にぶつかると思う 矛盾ってどれのことだろう。最後の二行のこと? だとしたらやっぱりタスクシステムの動作を理解できてないよね・・・。
756 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:04:17 ID:kAszbGcI] >>741 >>742 全体的に言えることだけど、ID:EEKBitmgさんは>>2 のサンプルコード個別の事例を批判したいんだろうか。 それともタスクシステムのことを批判したいんだろうか。サンプルコードは、単なるサンプルなんだから 色々な不具合や足りない部分があって当たり前だよね。実際に使いたい人が、実際に使えるように 直せばいいだけで。それができないような構造的な欠陥であれば、タスクシステム自体が駄目だという話に なるのだろうけど。(そういう話が聞きたいんだけどなぁ・・・。) で、>>729 に答えてもらえなかったから改めて聞くけど、EnemyとMyShotの実行順序をごちゃ混ぜに したくないなら、ちゃんと順序つけてごちゃ混ぜにしないようにタスクシステムを使うことはできるよね。 その仕組みがちゃんとタスクシステムにはあるよね。それは分かってる?分かってないの?どっち?
757 名前:名前は開発中のものです。 [2009/03/13(金) 21:10:36 ID:2Nwh1Ok5] なんでタスクシステムなんて使わなきゃいけないの? メリットを説明してよ
758 名前:756の続き mailto:sage [2009/03/13(金) 21:35:33 ID:gk02bKgy] >>745 >性格悪いレスになるけど書いちゃえ! >ぶっぶー。並列動作じゃないから同期処理が要らないってのは間違い 詭弁。 「並列動作じゃないから同期処理が要らないってのは間違い」という言葉だけは一般論として正しいけど、 「並列動作じゃないから同期処理が要らない」なんて話は誰もしてないよ。並列動作を前提としていないから 並列動作のための同期処理は書かれていない。一般論としては、並列でなくとも同期処理が必要な場合も あり得るけど、>>2 においてはそういう同期処理も必要無いから書かれていない。それだけの話。 詭弁と分かって書いているのなら、確かに性格が悪いね。 これで反論の体をなしているとでも思っているのなら、悪いのは性格ではなくて頭の方。
759 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:38:57 ID:gk02bKgy] >こんなアホなことになるのはさ、糞アロケータの都合で不定期に糞GCかますからでしょ? >あんた>>711 で『デフラグができること』を取り上げて >これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ? うーん確かに、CodeZineの実装は>>749 さんの言うとおり、賛否両論起こるだろうことは分かる。 一応、>>2 を前提にスレが進んでると思ったから、デフラグもタスクシステムの利点に入れちゃったけど、 得失もあることだし、単純にタスクシステムの利点として挙げるのは無理があったかな。 というかずっと昔に初めてタスクシステムを知ったときには、デフラグの仕組みは無かったなそういえば。 てなわけで>>711 での「タスクシステムの良い点」の記述からは、デフラグの件は除くよう訂正させてください。 素朴って何よ?と言われると困るなぁ・・・。特に高度な管理や複雑な手法を使わず、メモリを直接 いじくりまわすあたりを素朴だと感じたんだけど。人によっては全然素朴だとは感じないかもね。 あと余談というか一つ忠告だけど、GCとコンパクションはきちんと区別した方がいいよ。 ここでならいいだろうけど、真面目な議論の場で混同してたらバカと言われちゃうよ。 >明らかに必要ねーことしてるし。バカじゃねーのくたばれバーカバーカって言いたかったけど 得失の「得」の部分も考えずに、明らかに必要無いとしてしまうのは、考えが足りてないからだよ。
760 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:43:42 ID:gk02bKgy] うーわーもうダメだ。つっこみどころが多過ぎて収拾がつかない。 これ以降はちょっと自重します。みなさん長々と書いてごめんなさい。 あと今読み返して気付いたけど、>>754 の「並行と並行の違い」は「並行と並列の違い」の書き間違いです。 恥ずかしw
761 名前:名前は開発中のものです。 [2009/03/13(金) 21:54:09 ID:2Nwh1Ok5] タスクシステムのメリットを説明してよ
762 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:59:22 ID:idYT2cwA] 本人がメリットだと思わなければ、他人が何を説明したところで無駄な話だ。
763 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 22:59:53 ID:IbELy54y] >>757 ,761 >427
764 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:05:18 ID:lcPBznJ3] >>753 ごめんなさい>< 厨房はガベージコレクションとコンパクションを混同してた。ご指摘どうもありがとう >それは別にhash使えばO(1)で検索できるんだし、 そうだろ?メモリコンパクションの重要な目的のひとつがリニアアクセスによる高速化ならば その利得を殺すようなGetTask()の実装じゃお話にならないよね。初心者用ったってありゃないよ 無い方がマシな盲腸みたいな機能付けといて初心者向けサンプルもへったくれもない サンプルってのは反面教師じゃない。サンプルってのはゴミじゃない あのサンプルはPC用。OSはページング方式で仮想アドレスに実アドレスを割り当ててる ページサイズは4KB単位?で、CPUのキャッシュはキャッシュラインサイズってのがあって これがL3だのL2だのL1だのでいろいろあるんだよね?実際、仮想アドレス上でバランバランでも うろたえるほどの速度低下はない。むしろゴマ粒みたいな小さな処理をごちゃ混ぜ連結リストに 投げ込んで、リストを走査しながら関数アドレスで処理を呼び出すっていう仕組みを捨てる ほうが高速化する
765 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:13:57 ID:lcPBznJ3] >>764 ×むしろゴマ粒みたいな ○高速化したいなら、むしろゴマ粒みたいな
766 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:25:14 ID:lcPBznJ3] だいたいさ、あーいう小粒なSTG作るときに、どうしても自作アロケータ用意したいなら 固定長メモリプールでいいじゃん。boost::poolとかさ
767 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:46:18 ID:lcPBznJ3] >>758 つーかお前、前>>510 だろ。当たってる?当たってたらなんご褒美ちょうだい チョー陰険だし、やたらどうでもいいことで噛み付いてくるし、顔真っ赤になると 言ってること滅茶苦茶になるから多分当たってるだろ。な。陰険アマチュア野郎。タスクシステム=DB君。 俺が性格悪い?まぁアンタほどじゃないよ >>730 みたいな内容ゼロのハッタリゴミクズチンカスレスして悦に浸る中年には適わないね 俺が頭悪い?それ既出ジャン?>>355 で既に認めてっからよく嫁カス。何今更言ってんだ >>>2 では最初から並列動作なんか考えてないんだから ま、この点でアンタとの争点ないのは分かってるから。せいぜい無視したら? あんたさ、それが分かってるのに何でそこんとこで噛み付くの?俺が気に入らないだけだろ
768 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 02:33:21 ID:lcPBznJ3] >>766 続き 連結リストのメモリ配置を整えましたー。速くなりましたーっていうけどさ そんなことするならいっそのこと配列にしてダブルバッファリングしたほうがいい
769 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 02:33:35 ID:nYYNsR/2] 処理の順番追うだけでもうやる気なくなるわー。擬似タスクとか死ねばいいのに。
770 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 02:44:33 ID:JpSKv17w] 構造が単純なのでゲーム毎の仕様にあったカスタマイズがしやすい、ってのもタスクのメリットの一つかなぁ でもこの辺のメリットは”知る”ものじゃなくて”理解”するものだから、実際にゲーム作った経験の無い人には 分からないかもしれん。 なんかアンチタスクって独身スレにいる「結婚のメリット教えてくれ!」ってのと同じ感じ。 「絶対に幸せになる保証が無い限り結婚しない!」ってのがいたけど、あれととても似ている… タスクはゲーム作るときに使うもので、ゲーム作らないならタスクにこだわる必要ないし 実際にタスク以外の方法でゲームつくってるならそれはそれでタスクなんて気にしなくてよい。 アンチはなんでタスクシステムに粘着してるんだろう?
771 名前:名前は開発中のものです。 [2009/03/14(土) 03:17:55 ID:wqRDNWfr] >>770 プロ気取りがしたり顔で出鱈目いっちゃ駄目よん
772 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/14(土) 03:19:14 ID:Nif8vd+k] >>764 > 実際、仮想アドレス上でバランバランでもうろたえるほどの速度低下はない。 その部分に限って言えば、バランバランにメモリをアクセスするのと、 リニアにアクセスするのとでは数倍以上変わると思うけど。 全体に占める割合は…ゲームによるけど、何万パーティクルも表示するつもりなら致命的だと思うけど。 なんか同人規模のシューティングとかしか作ったことのない人が何か言っても説得力ないよ。
773 名前:名前は開発中のものです。 [2009/03/14(土) 03:29:59 ID:wqRDNWfr] 厨房のHSP大好き君は発言内容が粗削りだが目の付け所はまずまずだ ゲームをよく作ってる感じがするのねん
774 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 06:17:22 ID:QgvbbJg3] >>773 なんでおまえはそんな偉そうなんだよw このスレで一番あてにならないのは具体的なことは言わないくせに 妙に偉そうにしてるやつだとおも 擁護アンチ問わず
775 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 13:16:45 ID:nGWrBYC8] >>770 タスクシステムを使って書かれたプログラムを引き継ぐ羽目になって(バグが収束せずに メインプログラマ交代)、散々苦労した。
776 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 16:42:18 ID:TdAuyVy6] >>767 >つーかお前、前>>510 だろ。当たってる?当たってたらなんご褒美ちょうだい ぶっぶー。チョー陰険だから前510だろってのは間違い! 初出は>>682 で、以下ID:E0xOAlNR、ID:0j+yjPij、ID:GPL7IZe+、ID:QLymkmBo、 ID:kAszbGcI、ID:gk02bKgy、かな。抜けてるかもしんないけど多分こんだけ。 てか、あらためてスレを斜め読みしてみたら、ID:EEKBitmgさんて高専の人だったのね。 道理で、知識だけはあっても、考え方も物言いも子供っぽいわけだ・・・。 なんかもうすでにガキの喧嘩の捨て台詞みたいなレスになっちゃってるから、>>767 に いちいち突っ込むのはやめるけど・・・「俺が気に入らないだけだろ」みたいに、 下らない衝動を私に投影するのはやめてね。 上のリスト見れば分かると思うけど、おかしなことを書いてると思った人に対して それはおかしいんじゃない?って書き込みしてるだけだよ。
777 名前:名前は開発中のものです。 [2009/03/14(土) 18:34:28 ID:rFb0Dzvp] ごちゃごちゃいいわけはいいからタスクシステムのメリットぐらい説明しろよ
778 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 19:02:02 ID:DOdjkrEe] メリットはリンスインシャンプーがあることだろ常考・・・
779 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 19:07:02 ID:C4Fq/WX8] >>777 >763
780 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 20:18:24 ID:JpSKv17w] >>775 ”タスクシステム”を”C言語”とか”ポインタ”に置き換えても成立するな。 バグが収束せずにメインプログラマ交代って時点で既に…
781 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 21:24:01 ID:QgvbbJg3] CG板だと、タスクシステムを Shade とか sai に置き換えても違和感無いんだぜ?
782 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 22:13:43 ID:DOdjkrEe] >バグが収束せず ただ単にコーディングレベルの問題ではないか?w
783 名前:名前は開発中のものです。 [2009/03/15(日) 00:16:39 ID:fq8JV7Q3] >>779 は?何もかいてないけど? 馬鹿がわかりもしないでレスつけないでくれない?
784 名前:510 mailto:sage [2009/03/15(日) 02:45:36 ID:4et5xcyh] タスクシステムが並列化に向く向かないで盛り上がっているようだが。 書いてみればすぐ分かること。 タスクシステム並列化版 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8978.zip 各スレッドでタスク群の添え字をInterlockedIncrementしつつループまわすだけ。 なお、並列化に関係ない部分は手抜き実装。
785 名前:510 mailto:sage [2009/03/15(日) 02:57:48 ID:4et5xcyh] 処理順序だとかプライオリティーだとか色々議論しているが、 並列化に処理順序の話を持ち込むのはナンセンスだと考えるが。 並列化しないからといって、処理順序がどうでも良いというわけではない。
786 名前:名前は開発中のものです。 [2009/03/15(日) 06:19:12 ID:fq8JV7Q3] これ並列動作しねぇって VTuneでも使って一度みてみろマジで
787 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 08:59:48 ID:Osu85aea] おいおい お口チャックマンだぜ?
788 名前:510 mailto:sage [2009/03/15(日) 09:15:14 ID:4et5xcyh] いや、並列で動くことは動くんだが、他のところがバグってるね。
789 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 11:45:56 ID:a+EQhixt] 完璧に余談ですが #include <boost/lambda/lambda.hpp> #include <boost/lambda/bind.hpp> #include <cassert> #include <vector> #include <pstade/oven/parallel_for_each.hpp> #include <pstade/oven/forall.hpp> struct test_task{ int m_counter; test_task() : m_counter(0) {} }; int main(int argc, char *argv[]){ namespace ov = pstade::oven; namespace ll = boost::lambda; const size_t N = 10000; const size_t THREADS_SIZE = 4; std::vector<test_task> v(N); ov::parallel_for_each(THREADS_SIZE, v, ll::bind(&test_task::m_counter, ll::_1) += 1); assert( ov::forall(v, ll::bind(&test_task::m_counter, ll::_1) == 1) ); ov::parallel_for_each(THREADS_SIZE, v, ll::bind(&test_task::m_counter, ll::_1) += 2); assert( ov::forall(v, ll::bind(&test_task::m_counter, ll::_1) == 3) ); return 0; } >>784 のmainの動作を真似するだけなら、boostやovenを使ってこう書けたりする。 んで、並行動作するオブジェクト間の依存を上手く消してTBB等のparallel algorithmで一発というのが、 一番簡単な並行プログラミングだろうなと思った。 boost threadはただのマルチスレッドだけどTBBのだと強烈な並列化もしてくれるみたいだしね。 しかし、こういうのは参照透明性の保証が容易な関数型言語の十八番のように思うわ。
790 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 00:25:10 ID:zPsQiR9l] そもそも、なんでタスクとやらを並列化したがるかな。 ゲームに限らんが、並列化しやすい部分としにくい部分がある。描画周りとかパーティクルなどの エフェクト系、モーション計算とかを並列化したほうが、依存関係が複雑で仕様変更が多発する プレイヤーやら何やらを並列化するよりよほど現実的だと思うんだが。
791 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 00:41:01 ID:4SuKIn/y] 並列化は別で話してほしい。 優先順位とグローバル変数(シングルトン含めて)問題の冴えたやりかたを検討しようぜ
792 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 02:18:40 ID:9YyKMei6] >>784 ちょっとちょっとちょっとー。ハッタリ自動並列メタボDBオヤジは本当に大丈夫なの? 『ボクが作ったこのコードにもタスクシステムって名前付けたからこれもタスクシステムですし ついでに言うとこれDBですし自動並列処理もできますしお前らはボクのコードが並列化に 向いてないって言いたいんだろうけどそれは全くの誤りだしどうしてそれが分からないの?』 こういうことなの?頭の中がお花畑なの?公序良俗に反するポピーの花が自生してるの? お前がひりだしたウンコがどう陳列され得るかなんていう前衛美術の話なんて誰もしてないから 安心していいよ それとオッサン、あんたは何で配列にぶち込んだ1万個の鼻糞みたいなちっさな処理を一個一個 処理する度にsleepしたりクリティカルセクションかまして次に処理する要素番号をゲットすんの? スレッドの数で配列を等分して粗粒度並列化でもしときなさいよ sleepなんか噛ましたらインストラクションレベルの自動最適化の妨げになっちゃうじゃないの あんたのコード使うくらいなら直列番長の>>2 のほうがまだ速いよ
793 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 02:40:43 ID:9YyKMei6] あとさ、同一フレーム内で終わらせないといけない処理なのに イベント(シグナル)で同期とったりするのは何の冗談なの? ベンチ取った?アホ? もしかしてワーカースレッドが目覚める前にメインスレッドが全部処理 しちゃったりしてない?あとさ、最初のTASK1(hage)が終わって 次のTASK1(hoge)が始まる頃には何ms経過してるの? なんかもう自動並列とか以前に足元がグラグラのヘボヘボな気がする おやすみ
794 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 02:44:52 ID:9YyKMei6] あと、TASK1(hogehoge)の度にスレッド作るのはサンプルだから? ウソだろ?サンプルだからってこれはないと思う。聳え立つウンコだ
795 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 08:13:22 ID:McZ+hNsy] >>794 よく見たらtasksystemはグローバル変数だからスレッドは使い回してるから そびえ立つウンコてのは言い過ぎか
796 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 13:07:05 ID:ah3HB55u] おっさん言う奴は自分は若いと思ってる20代後半から30代前半の独身男性だな
797 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 21:21:55 ID:JRonhFLP] タスクシステムってあれだろ 雑魚とドラム缶を合わせて4つまでしか画面に表示しないように制限するシステム
798 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 22:00:19 ID:/VT9KBYC] 大体お前の頭の中身と同じだな。
799 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 22:53:40 ID:McZ+hNsy] >>796 俺そんなに大人びて見えるか?もしかして俺褒められてる? このマス掻き童貞夜更かししてないでエロゲでシコって糞して寝てろ、とか 罵倒されるんじゃないかとビクビクしてたんだけど杞憂だったのかな
800 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 00:41:33 ID:0PbiXi36] 「新装版 大規模C++ソフトウェアデザイン」って本を昨日から読み始めたんだけど、 1章を読んだだけでタスクシステムのだめな点が指摘されているような気がした。 「継承」対「階層化」では階層化の勝ちで、 理由は階層化の方がはるかに一般的=依存性が少ないからって話みたい。 タスクシステム(なんちゃってC++版)のタスクは継承使ってるよね。 タスクの次にどこに進めばいいか分からないとか、 抽象的な話に飽きた、デザパタとか眉唾ーって人は これ読むとおもしろいかもよ。おれはおもしろい。当たり前のことが書いてある。
801 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 01:59:53 ID:kxFrGMdG] 包含と継承のことだな。 まあ多態性を使わない場面ならすべて包含でいける。 包含だと結合が緩やかだから見通しが良いって話だなそれは。 何段も深くなければよいんじゃないかね?
802 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 07:25:27 ID:VzljBEPw] なんでもかんでも機能を突っ込もうとするからだ。 delegateのリストでも使っとけ。
803 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 11:28:02 ID:b6S1HRLy] タスクシステムいいじゃん。 範囲指定で自殺してくれるの最高。
804 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 13:49:55 ID:hOnodYrQ] >>803 その範囲は何を意味してるの? 何かの値なんだろうけど。
805 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 14:04:47 ID:eriEEpX/] 親殺せば子も死ぬってことじゃね?
806 名前:名前は開発中のものです。 [2009/03/17(火) 17:56:34 ID:zLwES14L] タスクシステム関係無いじゃん
807 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 21:56:42 ID:kxFrGMdG] >>802 タスクシステムのExecやRunやProcなんかは まさにそういう用途の窓口じゃないのかね?
808 名前:名前は開発中のものです。 mailto:sage [2009/03/18(水) 00:44:43 ID:lM4akpln] >>807 その窓口を誰が用意するかという話。 本人なのか、本人と取り引きする別の人なのか。 どっちがいいかはよくわからん。 もっと条件を絞れば考えやすくはなるが、俺の思考が正しいとは限らん。
809 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/20(金) 00:38:03 ID:0dULYU21] (・∀・)ヘラヘラ クソガキの俺がそろそろ総括しちゃおっかなーっと 結局21世紀にもなってタスクシステムだタスクシステムだなんて叫んでるおじちゃん達って 相当に不勉強なロートルちゃんが混じってるんだよねー。不勉強なまま頭がコチコチに 固まっちゃったガンコなお年寄りに限って声がデカイもんだから迷惑してる人もいるだろうね ・タスクバカは、たかが実行待ちキューに得意げにお名前を付けてることにいつまでも気付かない ・タスクバカは、タスクシステムが何なのか一般化して説明するだけの知能がない。だから、ハハン、 想像力の問題だね、とかハハン、自分で考えな、みたいに居丈高に振舞って誤魔化すしかない。 ・タスクバカは、>>2 で使われてる用語のTASKやらTCBやらが実はOSやらMONITORから拝借されて きた用語であることを知らない。知らないフリをし続ける。指摘されても『アーアー聞こえない聞こえない』 の知能障害で逃げまくる。で、『>>2 はOSとは設計も目的も意味も違うから混同するのはおかしい』 だとか、『OSとの比較は無意味』、だとか臆面も無く言ってのける。もはや介護が必要な知的水準だ ・タスクバカは、>>2 がOSやMONITORの仕組みを劣化猿真似しただけの代物であることを どうしても認めたくない。プライドの高い彼らにとって>>2 とは、タスクシステムとは ボクらのギョーカイが編み出したプライスレスでオンリーワンなミラクルテクノロジー でなければならないらしいのだろう。タスクシステム誇らしいですねホルホルホル
810 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 00:47:14 ID:NOe63qNy] 老害プログラマーに現在進行形でムカついてんならともかく ただの学生なのにここまで熱心に煽れるエネルギーってなんなんだろうw
811 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 00:55:34 ID:S9RgoUXb] ここ以外では話聞いてもらえないんじゃねぇの 人によって場合によって色々前提違うのに、自分の世界の話ばかりだし リアルならお近付きになりたくないタイプ ウザすぎる
812 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:11:51 ID:gGNkZ3FN] >>809 おっさんのタスクバカだが>>2 がOSやMONITORの仕組みを 劣化猿真似しただけの代物と思ってるぜ。良い意味で。 学問的には屑だがシンプルでちゃんと動くぜというか 微妙なたとえかもしれないが大学に対する高専みたいな。
813 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:37:27 ID:7TQPewAA] タスクシステムは1実行単位で必ず1回実行したい処理などを、 実装する窓口を作るのが本来の仕事だと思います。 タスク間メッセージのやり取りなどで汎用化とか考えがちだけど、 結局は時間的コストがばかにならないのでたいてい失敗に終わる。 メッセージのやり取りなら上位の管理役オブジェクトに 取得するメソッドを経由するほうが効率的だと思います。 で、タスクシステムが何を作るのに有用かと言うと、 上で書いたとおり1実行単位で必ず1回実行したい処理です。 たとえばGameの進行を管理するためのGameMaster、 入力機器などのステータスのアップデート、ゲーム内ステータスの表示(UI)、 プレイヤーが操作するキPC、NPCなどのAIなどが一般的。 当たり判定などはこれらを実行しつつあたり判定用の データベース(ハッユや4分木)に登録する。 一通りシステムタスクやキャラクタタスクの実行が終わった後、 当たり判定を行いゲーム内物理に応じた反応を計算。 このあとジオメトリ計算やレンダリングが行われるわけです。
814 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:40:55 ID:7TQPewAA] 実装してみれば分かると思いますが、ゲームシステムにおいて 1実行単位で必ず1回実行したい処理ってのは割りとあります。 いろんな所で使うためおもわず「システム」といいたくなるのでしょう。 ツリー構造や処理依存関係を考慮したタスクの 生存管理を行うとよりシステムらしくなるでしょうね。 まあ、すべてタスクで行うの愚かでしょう、 しかしタスクを全く使わないのも非効率ですね。 パーティクルなどはタスクで実装すると、 非効率なのでべつの処理系を僕は作っています。 弾幕ゲーム程度の弾数ですとタスクで処理しちゃいますけどね。
815 名前:510 mailto:sage [2009/03/20(金) 18:07:47 ID:BbcMOz7M] >>792 普通に仕事してるので、一週間に一回程度しかスレを確認できないから亀レスすまん。 >配列にぶち込んだ1万個の鼻糞みたいなちっさな処理を一個一個 >処理する度にsleepしたりクリティカルセクションかまして次に処理する要素番号をゲットすんの? Sleepを入れているのは、明示的にスレッドの切り替えを発生させ、並列動作をテストするため。 だから、本来は入らない。 それから、クリティカルセクションは使ってない。
816 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/20(金) 20:09:54 ID:CF/qt1oO] >>815 いまさらかも知れないが 名前の「510」は、「前スレ510」とか「タスクシステム改良君」とかにしたほうがいいような気がした。 ところで、>>792 だが、俺もちょっと的外れな気がする。 ID:EEKBitmg は、サンプルプログラムを読み解く力に乏しいのか、ケチの付け方が毎度しょーもない。
817 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 20:40:49 ID:a30Oap5a] 嫌タスク厨にレスする度に、魂がよごれていく気がするんだよな、ハハン
818 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 23:37:12 ID:nTzU835n] >816 > ケチの付け方が毎度しょーもない。 仕方ないよ。知識も経験も乏しいセンセイに教わってる学生サンなんだから。
819 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/21(土) 00:37:19 ID:q+0mNzyT] >>815 クリティカルセクションじゃなくてインターロックだった。なんか書き間違えた >>816 うぜぇよハゲ ちいさな処理をひとつこなしたら排他制御かけて次に処理する要素を決定、とか こんなチマチマとロックをかけるくらいなら thread1 execute task[0〜10000/4-1] thread2 execute task[10000/4〜10000*2/4-1] thread3 execute task[10000*2/4〜10000*3/4-1] thread4 execute task[10000*3/4〜10000-1] のほうがはえーんだけど
820 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 00:47:27 ID:Lt5z4CxY] 当然だけど、すべてがタスクシステムのリストに繋がってると思ってないよね。 大量のパーティクルとかは、1つのタスクに配列を持たせて管理するでしょ。
821 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/21(土) 01:01:55 ID:q+0mNzyT] >>820 てめぇ、質問するときは言葉を選べよボンクラ 俺にタスクシステムの実装を聞いてどうすんだよ >お前らタスクバカはさ、いい加減『ナニを作るのか』具体的に書けよ >何でもツクール目指すから『ナニを作るのか』書けません、だとか >ミラクルドリーマーみたいな事をほざくなよ 何度も何度もいってんだろ。バカが 毎度毎度てめぇのに都合に合わせて俺様実装を引っ張り出して 『当然だけど』、とかほざくなっつってんだよ
822 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/21(土) 01:08:12 ID:q+0mNzyT] というのは不毛なので >>820 >>2 のタスク一個一個でパーティクル一粒一粒を作るようなことをせず 配列でやるというのはとても清々しい実装だと思うね。タスカーっつっても色々だね ところでそれはタスクシステム派としては多数派の意見なの? 全てをタスクにしないと気がすまない人がいたような気がするんだけど
823 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 02:41:56 ID:NSoih+ib] 相手によって発言内容変えてくるクズだろ? まともに相手にしてんなよ
824 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 10:47:01 ID:pH6WTk/t] >ところでそれはタスクシステム派としては多数派の意見なの? >全てをタスクにしないと気がすまない人がいたような気がするんだけど お前の頭の中に仮想敵作って必死にどっかの誰かと戦ってますね
825 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 10:52:49 ID:NSoih+ib] でもすべてごった煮にしてないとせっかくまとめたのにアクセスできないオブジェクトができるよね? タスクシステムなんて使ってるアフォからしてみたらそれはすごく面倒なことなんじゃないの? 引数作ってもってくるみたいなことしてるとも思えないし
826 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 12:14:38 ID:hWHfUpnE] >>821 >毎度毎度てめぇのに都合に合わせて俺様実装を引っ張り出して >『当然だけど』、とかほざくなっつってんだよ てめぇの都合に合わせて俺様実装するのが当たり前だろうが そういうのが当然だっつってんだよ お前本当に高専か? 老害連中より頭固いじゃねぇか 教科書読むしか能の無いサルは社会に出てくんなよ迷惑だから
827 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 13:37:52 ID:Lt5z4CxY] >>822 他の人がどうしてるか知らないけど、普通に考えて、 数千、数万のリストを作る人はいないと思う。 >>825 1つのタスクの中に、複数のオブジェクトのデータがあるだけだよ。 アクセスは引数使ってもできるし、引数なしでもできる。
828 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 16:58:12 ID:aPX2P6NL] パーティクルの一粒一粒が他のタスクに何らかの影響を与えて相互に作用する必要がないなら全部まとめて1タスク内で処理するよな 処理の単位がタスクなだけであって、すべての要素がタスクな訳じゃないだろ
829 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 17:09:54 ID:NSoih+ib] >>827 でもわざわざ引数なんて使いたくないんでしょ?
830 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 21:25:16 ID:xOJ60zOt] 引数ってなんの話だっけ 俺的にはメソッドに常に self を渡すのは当然
831 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:18:44 ID:TvrDIaqh] >>829 何かアンチタスクは思い込みの激しいタイプみたいだな…
832 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:30:54 ID:0jTqsTen] >>831 引数使う人間がごった煮をメリットだと思うかね・・・馬鹿かね君は
833 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:32:36 ID:5NogUcs2] ごった煮ってこのスレでよく見かける言葉だけど、 どんな状態なんだろうか
834 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:37:34 ID:TvrDIaqh] 引数つかわない、ごった煮… やはり何かに取り付かれてるな 見えない何かと戦うのは疲れないかい?
835 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 10:27:25 ID:2tpyojUU] インターフェースを使った抽象化をごった煮とはこれいかにw
836 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 11:10:41 ID:0jTqsTen] >>833 それは>>2 を読んでないな とりあえずこのスレのタスクシステムは>>2 なんだから会話に参加するなら まず>>2 を読むべき
837 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:18:05 ID:5NogUcs2] 面倒だからググったらやねうらおの記事で使われてる言葉だったのか
838 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:21:33 ID:0jTqsTen] 日付と過去ログを合わせればここで使ってたほうが早いぞ 奴は議論の過渡期にわざわざ見当違いな記事書いて意味不明なフェードアウトしただけ
839 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:34:52 ID:2tpyojUU] タスクシステムなんて記憶をたどると15年位前から使われてる。
840 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:41:41 ID:NwxqzLgy] >>836 タスクシステムは>>2 にあるものがすべてって考えはどうかしてる。 ゲームに合わせて実装は変えるのが普通。 教えられた通りのことしかできないプログラマはゴミ。
841 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:49:52 ID:IncocYZR] というか、実行巡回リストのみしか存在しない、それ以外のコレクションが存在しないとか考えてて、 なんでもかんでもごった煮リスト(wに頼らないとやっていけないとか考えてるお子様が未だに存在する というのがちょっとした脅威。
842 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:51:32 ID:DNLKor45] アンチ君はプログラマではなくてただの学生みたいだから そこまで想像できないんだろう。
843 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:18:45 ID:0jTqsTen] >>840 だったらまずは>>2 のメリットデメリットを説明した上で 自分の改良版の>>2 との相違点を説明するべき それがこのスレに参加する条件だろ
844 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:44:30 ID:B5iuRYmF] 別に相違点だけでいいんじゃね?
845 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:50:58 ID:IncocYZR] >843 人に教えてもらったところで、それを理解できなければ意味が無いだろwww
846 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:51:40 ID:DNLKor45] タスクってゲーム毎に手を入れて使うのが普通だし、プラットフォームとかジャンルとか前提条件によって使い方も異なるから 具体的な前提条件が無いとメリットデメリットの説明は抽象的なものにしかならんだろうなぁ… まぁ、抽象的なものでも経験のあるゲームプログラマならだいたい暗黙知で分かるんだけど タスクの仕組みを聞いただけではその辺がまったく想像すらつかないってレベルなら、 理解できるだけのプログラム能力や経験が不足してるか、そもそもプログラマとしての適正がないんでないかな。かわいそうだけど。
847 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 16:32:43 ID:0jTqsTen] >>846 一番PGとして適正のない人間ってちゃんと比較検討ができない人間だと思うぜ 数字出してちゃんとメリットとデメリットを掲示できない、 ちゃんと検討もしたことないのに勘でいいものだと信じる あたりを見回して楽に手の届くところにあるもんをテキトーにつまんで 勉強した気になってるような奴は詐欺師に騙されてしまう ソフトウェア工学はクズが多すぎたよ 海外の人間からいってウンコみたいな奴等ばっかりだし グローバル変数・関数が平気で使ってあるもんが褒め称えられてる異常事態 ちゃんと自分で判断できる人間が周囲にいるかどうかも正直微妙だしね 環境によっては糞を受け付けられてしまってもしょうがない
848 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 16:42:26 ID:qn7xQRxP] PGには独善的な連中も多いようだな 他人にキャンキャン噛み付いてるのを見てると結構面白い
849 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 16:45:24 ID:eDzO8au2] >>846 抽象的な説明に、ひとつの具体例でもついてれば十分だよ。 デザインパターンの説明なんて、みんなそんなもんだ。 抽象的な説明にしかならないからって、説明しない理由にはならないよね。
850 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 17:09:32 ID:iwp01Fau] 俺自身は、タスクシステムが良いとか悪いとか言うつもりは無いんだが・・・ このスレ見てると、いつもアンチ側がタスカー側に対して、 説明しろだの具体例を挙げろだのと一方的に要求してるよな。 アンチ側は、自分の方からタスクシステムより良い具体的な実装例を挙げて、 これこれこうだからタスクシステムは駄目なんだ、っていう比較をしようとは思わないのか? なんか見てて不思議なんだが。
851 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 17:13:17 ID:2tpyojUU] >>850 すべて個別に実行用のメソッドをもったオブジェクトを、 用途に合わせたコンテナに突っ込んでまわすとかいってた希ガス。
852 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 17:31:36 ID:OM4BCGYz] メリットやデメリットは何かと比較したときに初めて出てくるもので 比較対象の無い文脈でメリットやデメリットを問うのは論理的におかしい。 >846ば偉そうにしてる割にそんなこともわからんのか。 >>849 デザインパターンの説明は目的と構造だけだろ。 例えばVisitorパターンのメリット、デメリットは?と問われて答えられる?
853 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 18:26:41 ID:eDzO8au2] そうか比較対象が明らかじゃないのか。すまんかった。 じゃぁとりあえず個人的な興味で、話の流れに合ってるかどうかは知らないけど、 ↓の比較で前者の方針にメリットがあるのかどうか、教えてもらえるとうれしい。 - 「タスクシステム」的方針 まず、毎フレーム実行される処理のコンテナ(リストなど)が在ることが前提。 毎フレーム実行される処理はまず「タスク」と考え、上記のコンテナに登録する。 大量のパーティクルなど、不都合が現れた場合は「タスク」としない。 - そうでない方針(個人的にはこっちが「ふつう」) とりあえず必要な処理は関数呼び出しで並べる。 動的な寿命や複数インスタンスの一括処理などが必要になったら リストなどのコンテナを必要な場所に用意して使う。 ここで「アンチタスク」として書き込みしている人は、たぶん前者の方針が 我慢できないんだと思うんだ。
854 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 18:46:43 ID:mHB0TcPP] >>853 それってどっちにしても毎フレーム実行コンテナは使ってんだな。 つまり ・常に毎フレーム実行コンテナ ・必要になったときに毎フレーム実行コンテナ この2派がここまで醜い争いしてんの?w
855 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 19:20:29 ID:eDzO8au2] >>854 個人的にはそういうことだと思って見てる。たぶんシューティングゲームや アクションゲームを作れば結果として同じような構造が(必要に迫られて)現れるだろう と思う。 タスクシステムが「どんなゲームでも基本になる」とか「(メリットが)暗黙知」とか言う人は、 きっとシューティングゲームやアクションゲームなどを作った割合が多いんだろうな、とか。 ただ、後者であればコンテナは複数種使うのがあたりまえだし、ましてグローバルでは ありえない。 これに対して前者では単一のコンテナ(これが「タスクシステム」と呼ばれたり)だったり、 それがさらにグローバルになったりしやすい。
856 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 19:30:04 ID:mHB0TcPP] おまいら全員毎フレーム実行コンテナを使わないことにすれば 論争は解決するんじゃね
857 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 22:42:54 ID:DN2untcT] >>853 >動的な寿命や複数インスタンスの一括処理などが必要になったら 同じような構造がプログラム中に複数表れる場合は 共通化できる部分を抽象化して共通のシステムにできないか、と考えるのが普通だと思うが アンチは必要な箇所全てにコピペなりで同じような実装を個別に持つのがいい、という理屈か? まぁ共通化できそうな箇所が2箇所ぐらいならいいけど、アクション系ゲームとかではかなり出てくるだろうし そーなると共通化したほうがマシでない?
858 名前:名前は開発中のものです。 [2009/03/22(日) 22:49:10 ID:IncocYZR] 確か継承も否定してたぞ>アンチタスク厨
859 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:14:54 ID:eDzO8au2] >>857 同じ構造のコードを共通化することに異論は無いよ。 共通化できるはずということ(なのかどうか知らないけど)で最初から根っこにひとつ 「タスクシステム」が存在してるのが >853 でいう「タスクシステム」的方針。 共通化できる部分を見つけてから実装を括りだすのが >853 でいう「ふつう」の方針。 前者だと何か構造的な変更を考えたときに、根っこをいじることになって影響が 広がりやすいというデメリットが考えられる。別の言い方をすると、たくさんの プログラムから共用されているということは変更が難しくなる、という至極当然の話。 これに対して、大きなメリットは思い当たらない。
860 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:22:45 ID:IncocYZR] >859 > 前者だと何か構造的な変更を考えたときに、根っこをいじることになって影響が > 広がりやすいというデメリットが考えられる。 いわゆる『タスクシステム』も含めて、それらはただの実行巡回コレクションなのだから、それ以上の 機能を持たせようとするのが間違い。なんでもかんでも一つの構造に押し込めるのがおかしい。 実装をくくりだす後者の場合でも、当然共用されているところに変更が入ったらその機能の調停に 手間がかかるのは同じだ。 機能を絞り込めないなら、前者でも後者でも変更が難しくなるのは変わらないよ。
861 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:24:30 ID:eDzO8au2] 局所的な要求に対して個別のコンテナを置く(作る)のが難しかった(面倒だった) C++ 初期以前の時代なら、すべての要求に対する単一のコンテナをあらかじめ 持っておくという方法に大きなメリットが感じられたのかもしれないけど、今となっては 基本的なコンテナは標準テンプレートから即座に作れてしまうわけで、大きな違いには ならない。 C++ 標準コンテナの利用という点にメリット・デメリットの感じ方の分岐点があるのだと 考えれば、 C++ 標準コンテナのゲームプログラマ内での普及率とあわせて、 タスクシステムの恩恵を感じる人が多いことも納得できる。
862 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:24:32 ID:DN2untcT] >>859 >共通化できるはずということ(なのかどうか知らないけど)で最初から根っこにひとつ >「タスクシステム」が存在してるのが >853 でいう「タスクシステム」的方針。 タスクシステムの定義に根っこ一つなんてあったかな? 前々スレあたりに出てた メイン遷移状態・メニュー階層・ゲームオブジェ・エフェクト… って粒度単位で分かれてる階層タスクシステムってのもあるみたいだけど。 >共通化できる部分を見つけてから実装を括りだすのが >853 でいう「ふつう」の方針。 そこで括りだされた共通実装って一般にタスクシステムと言われるものでは?
863 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:27:38 ID:2tpyojUU] >>859 >たくさんのプログラムから共用されている 継承が浅ければたいした問題じゃないよ。 その理論からいったら.NETが提供する「Object」なんて、 すべてのオブジェクトから継承されるので論外って話になるんじゃないかね?
864 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:34:22 ID:eDzO8au2] >>860 > いわゆる『タスクシステム』も含めて、それらはただの実行巡回コレクションなのだから、それ以上の > 機能を持たせようとするのが間違い。なんでもかんでも一つの構造に押し込めるのがおかしい。 そういう立場で言うと、「タスクシステム」と呼ぶほどの構造はどこにも現れないはず。 つまり「タスクシステム」が存在していること自体が、なにか不適切な機能の押し込みの 存在を示している(或いは感じさせる)ということになる。 > 実装をくくりだす後者の場合でも、当然共用されているところに変更が入ったらその機能の調停に > 手間がかかるのは同じだ。 後者の方針では、共用されていることで変更が面倒になるようなら共用しないという選択が 簡単にできる。だって元々共用することが前提じゃなかったんだから、元に戻すだけの話。 括りだした実装を、結局ひとつの場面でしか使わないことになったとしても何も問題は無い。
865 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:41:47 ID:eDzO8au2] >>862 根っこにひとつという定義は無いと思う。逆に、根っこにひとつとか、共用が前提とかいう 方針でなければ「タスクシステム」と名前がついていても、あまり否定するポイントは無いよ。 名前を改めることを強くお勧めする程度。
866 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:42:38 ID:IncocYZR] >864 オマエの頭の中には、機能の階層構造が『タスク』と『タスクを継承した何か』しか無いのか? そもそも『タスクシステム』なんて仰々しい名称が付いてるが、あんなのはただのイディオムでしか ないぞ。教条的に従うものでもなんでもない。 > そういう立場で言うと、「タスクシステム」と呼ぶほどの構造はどこにも現れないはず。 『タスクシステムとよほどのもの』は無いかもしれないが、そういう『構造』は確かに存在するし、 >859の後者の方針だって、例えば敵なら敵でまとめてコレクションを作って実行巡回する んだろ? それは敵という機能をベースにした「タスク」のコレクション以外の何だというんだ?
867 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:43:24 ID:IncocYZR] ×『タスクシステムとよほどのもの』 ○『タスクシステムと呼ぶほどのもの』
868 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:44:55 ID:2tpyojUU] >>864 実行巡回リストに、実行の依存関係の解決や、 ライフタイムの管理などを加えてやるとシステムといって良い物になるともうけどな〜。 上記のような実装があると便利な処理にはこれを継承させるといいよ。 割と継承する機会が多いから「システム」と呼んでいるんだと思うのだが・・・。
869 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:48:03 ID:eDzO8au2] >>863 比較して欲しいのは、共用が前提になっている方針とそうでない方針のメリット・デメリットね。 共用を前提にしたうえで「たいした問題じゃない」と言われても「はぁそうですか」としか言えない。 .NET が提供する Object は、明確な目的があって共用されるべく作られたのであって、 これがなければいろいろ困るというのはすぐわかる。これがあるから「タスクシステム」も 同じことだ、なんてまるで思えない。
870 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:56:38 ID:eDzO8au2] >>866 > 『タスクシステムとよほどのもの』は無いかもしれないが、そういう『構造』は確かに存在するし、 > >859の後者の方針だって、例えば敵なら敵でまとめてコレクションを作って実行巡回する > んだろ? それは敵という機能をベースにした「タスク」のコレクション以外の何だというんだ? ??? 「敵のコレクション」に決まってる。 どこから「タスク」が出てくるの?自分で言ってておかしいと思わないの?
871 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:09:13 ID:LvfAcAqg] >870 > ??? > 「敵のコレクション」に決まってる。 > どこから「タスク」が出てくるの?自分で言ってておかしいと思わないの? 頭の悪いレス返すなよw 『敵のコレクション』のなかに、『タスクのコレクション』と同質な構造を読み取れないなら プログラマとしての才能無いよ。
872 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:10:00 ID:V2ED/dbE] >>868 うん。そこまでいくと「〜システム」と名を付けてもいいかもしれないと思う。 で、そこまで手の込んだものを全体で共用するという方針を採ってしまうと、 >859 で挙げたデメリットが出てくる。ってことで >853,859 の話に戻ってね。
873 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:10:18 ID:LvfAcAqg] 結局、『敵』という機能単位で実行巡回コレクションを持ってるなら、それは同じことだ。 名前に惑わされてるだけ。
874 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:20:29 ID:EDktN1ia] 古参のゲームプログラマが「敵のコレクション」とやらを見れば 「あぁ、敵タスクの集まりね」って言うだろうし。 結局タスクなりコレクションなりの方言の違いだけで内容はたいして違わないような… でも「敵」とか「アイテム」とかの単位で括ってしまうのは仕様変更したとき地獄を見そうだから嫌だな おえらいゲームデザイナー様の頭の中にしか無い仕様次第で、「この敵はイベント起こるとアイテム扱いで取得できるようになるから」 とか仕様ころころ追加されるし。 移植みたいに仕様が完全に動かないものなら初めから分類して設計できるけど、一般的にゲームはマスター寸前でも つまらないと基礎構造からちゃぶ台返しがあって入れ替わりがあるから、そんなガチガチに固定した構造で作るのはかえって危険。
875 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:27:49 ID:V2ED/dbE] >>874 仕様追加されてから変更すればいいじゃん。 誰も予知能力なんか期待してないってのに、そのために不要な依存関係やバグを 増やすのは嫌だよ。 www.google.co.jp/search?q=YAGNI
876 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:31:25 ID:LvfAcAqg] >874 > 一般的にゲームはマスター寸前でも > つまらないと基礎構造からちゃぶ台返しがあって入れ替わりがあるから、 今まで面白いと勘違いしてきたクソ仕様を、そんな土壇場でひっくり返した糞プランナーに 唯々諾々と従うのはただのバカだ。 仕事なら、キチンとその糞プランナーに責任取らせろ。趣味で作ってるなら、バカにはきちんとバカと 逝ってやれ。 > そんなガチガチに固定した構造で作るのはかえって危険。 敵である『敵』と、アイテムである『敵』は、別に別タスクでも問題ないだろ。内部で参照しあって リンクしてるとか、双方を子に持つ親が居るとか、色々管理方法はあるだろ。 しかしそんな『敵』であり同時に『アイテム』でもあるような敵が居るなら、そんなクソ仕様で本当に 面白いのかどうかプランナーを小一時間問い詰めたいところだな。
877 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:35:14 ID:bJ5OKMfv] >『敵』であり同時に『アイテム』でもあるような敵 ありがとう、なんか閃いた! このスレ見てて初めて新しい何かに触れた
878 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:38:56 ID:LvfAcAqg] >877 礼を言われるようなことは何も書いてはいないが、その閃きが何か形として昇華されることを望むよ。
879 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:42:42 ID:lCjH8IyB] >『敵』であり同時に『アイテム』でもあるような敵 そしてマップでも背景でも障害物でもあるんだな そしてごった煮ができたと
880 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 01:00:17 ID:EDktN1ia] >>876 君はゲーム会社でのプログラマの地位をわかっていないな… 普通よほど小さい会社でもない限りプログラマがゲーム仕様に口出しなんて出来んよ。 ごった煮が見苦しいことは作ってるプログラマが一番よくしってるんだけど 仕様が固まらないまま「とりあえず今あるだけの仕様を作って、細かいことはそれで遊んで決めるから。あ、でもつまんなかったらチーム解散ね。」 とか言われると、基礎システムは変えずに何でもできちゃう「ごった煮」以外の選択肢が無かったりするんだよね… 大作作ってる大手とか、外注に仕事投げる元受系はきっちり仕様書切るみたいだけど、 ゲームデザイン用のプロトタイプとかを本編と別に作れるほど人員も期間も無かったりする中小の中途半端なゲーム開発ではそういうこともあるってことで。
881 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 01:04:52 ID:UXdp0kDT] >>880 おれの会社は小さいからプログラマーの地位が一番いいよ。
882 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 01:22:45 ID:LvfAcAqg] >880 そんなクソな会社辞めちまえ。 ウチは500人以上社員が居るが、糞プランナの言うことをホイホイ聞くようなプログラマも デザイナもサウンドもディレクターも居ないぞ。
883 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 03:23:53 ID:pfOFwfs9] プランナが仕様を切ってそれをプログラマが実装する、というのは、 単なる役割であって、地位が高いとか低いとかって話じゃないよね。 >>880 の会社は単にプランナが仕事してないだけって気がする。 というか、例が下手なせいで話がずれてるが、プログラマの地位(というか 発言力?)の高さと、「仕様変更」が発生するかどうかは関係ないと思うが。 元仕様の不備だろうが、実際に動かしてみて生じた新しいアイディアだろうが、 ゲーム製作において(まともな)仕様変更は普通にあり得るし、それを 「そういう作りじゃないので変更は出来ません」と突っぱねるわけには行かないわけで。 で、その仕様変更に対してタスクシステムが有用かどうかということだけど……。 俺の経験上、同じような変更であっても、多少、修正する箇所が少なくて済むような気が するけど、「仕様変更に備えるためにタスクシステムを使う」というほどの差はないと思う。 どんな方法だろうと、大抵の記述はオブジェクトやシーン単位で完結してるし。 >>875 この場合YAGNIは的外れじゃないか? タスクシステム(>>2 だろうがそれの発展系だろうが)を使って組んでいるなら、 既にタスク周りのコードは組みあがっているわけで、依存関係やバグが増えることはないよ。 タスク処理そのものを新しく作るとしても、初期仕様からそれを利用するわけだし。
884 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 08:30:26 ID:5GNmNI21] >>862 > 前々スレあたりに出てた > メイン遷移状態・メニュー階層・ゲームオブジェ・エフェクト… > って粒度単位で分かれてる階層タスクシステムってのもあるみたいだけど。 何でもかんでもタスクシステムと呼ばないで欲しい。タスクシステムとか 名前付けるほどのものではなくて、普通に書いたらああなるという例だから。 アレにたいそうな名前付けたら、それこそ for ループに○○システムとか 呼び始めることになるぞw
885 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 01:03:10 ID:Rj9TsTRs] >>884 タスクシステムを改良した物で作った本人が階層タスクシステムと命名したなら 別にタスクシステムって名前がついててもいいんでない?
886 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 05:58:46 ID:U0cCvZZ8] >>885 だったら、>>2 との相違点を説明するべきだよね? 少なくともこのスレでいきなり出すのはNGだと思うね
887 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 06:34:43 ID:okF9YnFL] >>883 > この場合YAGNIは的外れじゃないか? > タスクシステム(>>2 だろうがそれの発展系だろうが)を使って組んでいるなら、 > 既にタスク周りのコードは組みあがっているわけで、依存関係やバグが増えることはないよ。 それは既存の「タスク周りのコード」への依存を増やしているということ。 そういった共用コードが >840,846 が言うようにゲーム合わせて変更を 加えられていくと考えると、やっぱり >859 みたいなデメリットにつながる ことが考えられる。 >874 で、そのデメリットをあえて受け入れる理由が「ちゃぶ台返し」への 予防策だというのだからまさに YAGNI の出番だ(そんな予防策は要らない)、と。
888 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 06:36:03 ID:okF9YnFL] 結局 >853 で挙げた2つの方針について、前者の「タスクシステム」的方針に メリットを挙げる人は居ないみたいだ。 個人的には後者が「ふつう」だと思ってたんで驚くべき結果じゃないんだけど、 過去に見てきた「タスクシステム」の実例のせいで、「タスクシステム」と聞くと やたらごてごてといろんなゲームや画面の都合が押し込められた 自作コンテナクラスや、さらにそいつがグローバル変数になってる状態を 想像して嫌な予感しかしないのが正直なところ。 現存する「タスクシステム」は名前がおかしいだけで、構造としては 挙げたような問題を持たないようなものだけが生き残ってる、ってことだと 理解しておくよ。
889 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:08:53 ID:bIbLUBOz] >888 全部ID:okF9YnFLの個人的感想と推測でしかないな。
890 名前:884 mailto:sage [2009/03/24(火) 07:18:50 ID:0pAn0US9] >>885 その本人ですが…
891 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:21:57 ID:bIbLUBOz] 実際の話、>2のような『タスクシステム』も含めて、何らかの共通の構造をコレクションした 実行巡回リストを作って統一的に運用している会社が殆ど。 今まで20社以上の下請けにソースコード納品させてて、それで確認しているから、すくなくとも その範囲内では間違いない。 毎回毎回基礎部分からワンオフで作ってる時間も予算も、下請けにはないからな。判ってる 人たちだけで使うなら、基礎部分を固めてその上で工夫する方がよほど効率がいいという ことだ。
892 名前:名前は開発中のものです。 [2009/03/24(火) 07:34:12 ID:lE32YVAM] 話のまとめがタスクシステム云々と関係無いじゃん 日記帳に書いてろよ
893 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:37:26 ID:bIbLUBOz] その中では、普通に>884が言うような『階層的タスクシステム』というような構造も存在するよ。 いわゆる『シーンタスク』には継続機能を持ったものを使って、できるだけシーケンシャルに記述 できるように、ゲーム内オブジェクトはFMSを使用、といった具合に使い分けてる。
894 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:57:17 ID:bIbLUBOz] >884じゃねぇな、>862だ。 ソース公開されてる海外のゲーム見ても、普通にこういう構造は使われてるぞ。 EntityとかActorとかいった構造を内包するか継承するかしてコレクションしてる。
895 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 03:06:34 ID:L7D8ecXi] YAGNIの考え方からいけばむしろごった煮のほうがYAGNI的じゃないか? 敵とかアイテムとか地形とかの仕様上の扱いは最後まで決まらないんだから 敵でも何でもタスクてごった煮実装して、最後に仕様が固まって分類わけできる ような仕様に落ち着いたなら、その段階で初めて分ける作業をすればいいわけで。
896 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 04:07:28 ID:Lr2HI9E7] >>895 > 敵とかアイテムとか地形とかの仕様上の扱いは最後まで決まらないんだから ここが間違い。 本当に決まっていないのであれば、そもそもコードを書くべきじゃない。
897 名前:名前は開発中のものです。 [2009/03/25(水) 07:51:20 ID:4mzxhtmM] 全くだな 手を動かしてる方が進んでる感あるから決まってない仕様には触れずに色々やり出すんだろうけど 明らかにこれが間違いの元 現実には全く進んでないし余計なコードを入れただけ 本当にやらなくてはならないことは、決まっていないから早く決めて欲しい仕様リストの作成と それに対する仕様の提案や仮に決まらなかったときの強行策の練り上げ等であって プログラムを組むことではない すべてをやりつくしたら昼寝でもして待つか仕様が決まっている箇所のバグ潰しが仕事 プログラムを組むことではない プログラムを組む仕事に逃げるなと言いたい
898 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 11:24:38 ID:CbSm4PZy] ここの偉そうに語ってる連中のどれだけがプロなんだか
899 名前:名前は開発中のものです。 [2009/03/25(水) 12:49:30 ID:4mzxhtmM] じゃ、はっきりいうけど 現場で一番使えない奴はプログラミングしかしてない奴 出世もしないし心当たりない奴は働いたことないだろ
900 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 23:53:40 ID:pW6Hh/Rg] で? タスクシステムと何か関係あんの?
901 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 00:04:17 ID:koP5FPqt] スレタイも読めない子供なんだろ
902 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/26(木) 01:24:52 ID:B4kinADx] >>900-901 くっくっく
903 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 01:30:56 ID:JMiA0s09] 予想通りに釣られるやつだな
904 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 19:29:08 ID:5m/Hn+Tm] >>899 一番使われてるじゃんw
905 名前:名前は開発中のものです。 [2009/03/26(木) 20:42:18 ID:t4iRSZvE] でもほぼ無駄 ある程度は数字で行動が決定できない人間じゃないと邪魔にしかならない
906 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 21:24:16 ID:5m/Hn+Tm] 数字で?行動? 言いたいことは分かるが、その表現は適切なんでしょうかww
907 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 21:27:34 ID:sNdn6b+Y] >>906 わかったならいいじゃん お前なんか何が言いたいかわからないし タスクシステム流行らせたいの?
908 名前:名前は開発中のものです。 mailto:sage [2009/03/27(金) 15:45:50 ID:iW3jYp68] 今日も見えない敵と戦うヒトがひとり
909 名前:名前は開発中のものです。 [2009/03/27(金) 19:28:50 ID:82f41tp0] 弾幕 最強のシューティングゲームを作る! www.sbcr.jp/books/products/detail.asp?sku=4797352290 また出るよ
910 名前:名前は開発中のものです。 mailto:sage [2009/03/27(金) 22:56:31 ID:RoIWJt/F] BulletML紹介して終わりじゃね?
911 名前:名前は開発中のものです。 [2009/03/28(土) 07:13:43 ID:3WHtXnJb] 「変更の必要ない完璧な仕様が出来るまでコードはかかない」 そんなふうに考えていた時期が俺にもありました
912 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 10:04:32 ID:GGppowTV] >>911 >>896 以下ループ 書くべきじゃないと思うよ っていうか書いても意味がない PG経験10年だけど俺も未熟な頃は色々できることないか考えてたけど ソースに関してはまるで意味がない 絶対に書いてはダメ それより「決まってないから決めてくれ仕様リスト」の作成に力を入れろ
913 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 10:09:25 ID:8c8Vy+u+] 仕様が決まってないうちは自分のライブラリ整備に時間を入れる時期じゃね? 俺はこういう空白時間はそう使ってる。
914 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 12:19:58 ID:iRlTudQl] 仕様が決まる前に退社しろよ
915 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 13:29:16 ID:Sx0Nlejd] 決定したはずの仕様が覆るのはよくあること
916 名前:名前は開発中のものです。 [2009/03/28(土) 14:08:59 ID:3WHtXnJb] >>913 >仕様が決まってないうちは自分のライブラリ整備に時間を入れる時期じゃね? 仕事中に”自分”のライブラリ整備なんてしてたら普通に職務上横領だっての。 学生気分が抜けない新人か?
917 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 14:14:01 ID:8c8Vy+u+] 担当箇所のライブラリという意味だ 趣味のライブラリというわけじゃないぞ
918 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 14:50:06 ID:NO4+g0CQ] >913 社内の機材を使って社内で作成したモノは全て会社の所有物なワケだが、 自分用のライブラリを会社で作るって常識ナシのやることだぞ。
919 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 14:54:47 ID:NO4+g0CQ] おっと、レス更新しておけばよかったよ。 ちなみにうちの会社はタスク使ってるよ。C++の場合はベースクラスの名前がITaskで、Cの場合は タスクの先頭に必ずTCBというものを置くようにルール付けされてる。 まぁ、それでもミリオン逝くソフトは作れるってこと。
920 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 15:22:24 ID:LQ4LeJzd] 最近はミリオンいくソフトなんてあまり聞かないな 売上がミリオン$ってこと?
921 名前:510 mailto:sage [2009/03/28(土) 16:20:14 ID:J75Q9/vX] もう、 タスクシステム = 特定の型のインスタンスを高速に列挙する仕組み + 列挙したインスタンスに対する処理を並列化するためのマクロ群 ってことでいいでしょ。
922 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 17:14:29 ID:u3m/NTOQ] 釣りくさいなぁ
923 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 06:46:59 ID:Yd51Jaj0] アンチが論破されてからレスが静かになったなぁ… やっとタスクがゲーム開発現場で使われ続けてるって現実を 理解できたのかな。
924 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 07:16:40 ID:+VmeKXw4] 春休みも終盤で宿題が忙しいんじゃね? と思ったけど春休みに宿題は無いな
925 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 09:15:00 ID:QIE0mUQn] 飽きただけだと思うが
926 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 11:55:25 ID:A8GBNU1d] >>923 どこで誰が何を論破したって?
927 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 12:36:10 ID:t8KnpuP8] >923 アンチがタスクを理解できなくて、飽きただけじゃね?
928 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 12:47:00 ID:F8b6hXRU] 結局タスクシステムのメリットをあげられる人間はいなかったな
929 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 12:50:48 ID:t8KnpuP8] >928 最初から理解する気の無い者に、何を言っても無駄だからな。
930 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 13:31:46 ID:A8GBNU1d] class ITask や namespace TaskSystem のドキュメントって >929 みたいなのが書いてあるの? 何かしら目的や必要性があって作ってるんじゃないの?
931 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 14:04:25 ID:seNawTSI] ggl code searchで検索したところをいくつか見たら for_eachのようなアルゴリズムで一元的に扱う為のインタフェース みたいなことが書いてあるところが結構あった
932 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 18:03:57 ID:t8KnpuP8] >930 ゲーム制作用のドキュメントには使い方しか書いてないな。 毎フレーム実行するものがあるばあいはITaskを継承してTaskManager::Append()とかでリストに ブッ込めば、次のフレームから実行される、とかいう感じで。タスク同士の関係性やタスクを殺す時 タスクが死ぬ時の注意点なんかも書かれてる。 ゲーム毎に異なる部分と、プロジェクト別でも共通して使える部分を分けるのも目的のうちの一つ だから、技術開発系のドキュメントとゲーム制作系のドキュメントと2つある。
933 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 18:39:55 ID:Yr0oXSYT] >>930 > 何かしら目的や必要性があって作ってるんじゃないの? そういうのはメリットとは言わない。 このスレにある回答らしきものを先に読め。例えば >264,852
934 名前:名前は開発中のものです。 [2009/03/29(日) 21:43:33 ID:Yd51Jaj0] フレームワークやライブラリのメリットすらわからずに 同じ実装いくつもコピペした方がわかりやすいって人間に タスクのメリットが理解できるとは思えんのだが…
935 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 21:44:46 ID:F8b6hXRU] >>934 まあ、とりあえず言ってみろよ どんなご高説が聞けるのか楽しみにしてっからよ
936 名前:名前は開発中のものです。 [2009/03/29(日) 21:52:33 ID:Yd51Jaj0] >>935 最低限フレームワークやライブラリのメリットは理解できる頭はあるのかな?
937 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:03:14 ID:F8b6hXRU] >>936 いいからさっさと説明しろよ
938 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:03:44 ID:A8GBNU1d] >>936 たった一人相手に説明するわけじゃないんだ。みんな待ってんだよ。 誰か一人にでも伝わればいいじゃないか。ほら、たのむよ。おねがいします。
939 名前:名前は開発中のものです。 [2009/03/29(日) 22:06:44 ID:Yd51Jaj0] >>937 つまり、それすら理解できない…と。
940 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:16:03 ID:CEz25h5J] タスクシステムと呼ばれている物の利点は大体こんなもんじゃね? ・1フレームに1回実行すするための窓口提供 ・依存関係の解決 上記の二つはゲーム内のいたる所で 使われるパターンと機能だと思う。 まあこれを基盤にライブラリを構築するところから、 タスク「システム」と呼ばれているんじゃないか?
941 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:24:54 ID:A8GBNU1d] >>940 あなたは >853 の前者の方針をとる人ですか?
942 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:30:58 ID:CEz25h5J] >>941 基本的に前者で構築してるよ。 パーティクル類はタスクにはしないけど。 後者の方針を取ると、似たような処理が いたるところに散乱することになるからね。 早い話タスクパターン(名前は何でも良い)を 適用したほうが良いものはそっちで実装。 ソースは小さく富豪的に書いて速度的問題や、 メモリ的問題が出てからつどそれらについて対応かな。
943 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:38:03 ID:A8GBNU1d] >>942 ありがとう。
944 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 00:01:47 ID:v5MWlQvG] 久しぶりに見たら静かになってるな。 アンチタスクがやっとメリットを理解できたのか?
945 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 03:04:56 ID:GjL5wpHY] >853 移行で挙げられてるような「タスクシステム」的方針のデメリットと、 >891,942 で挙げられてるようなメリットとの大小を自分で見積もって選べ ってことじゃないかな。
946 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 18:16:13 ID:mhRpa/AL] アホの子を自認して今まで20年弱生きてきたけど世界は本当に広いんだなとつくづく思う ネットの普及により、誰もが容易く素早く安価に優良な情報に(情報へのリファレンス)に アクセスできるというのに、それでもなおタスクバカ(頭の悪いほうのタスクシステム擁護者) は殻に閉じこもり世界を見ようとしない。タスクバカというのは停滞し続ける盲目・無知・ 怠惰な人間であると看破する タスクシステムに関する情報は検証可能性ゼロの欺瞞情報にあふれているが、それに 適切に突っ込む存在は彼らの中にはいない。ベテラン風を吹かせてる擁護者がたまに 出没するが、具体性を帯びた有効な反論は全く無く、具体性を加えろというと口を噤む。 それどころか検証可能性ゼロの胡散臭い情報を垂れ流してタスクシステムの存在理由の 補強を試み、初心者を煙に巻こうとする。なんだかとっても残酷な情報封鎖された村社会 次のステップを進めず無駄に年を重ねただ老いさらばえていくだけの老人にとって 後ろからどんどん現れる新手・後続の若者というのはもはや蹴落とすべき脅威でしか ないのだろう。後続を煙に巻くことで僅かでも時間稼ぎをして自己の保身ができればと 努めているのかと思うと、あまりにも哀れで相手する気もなくなる
947 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 18:24:19 ID:cFzYggkl] だったら消えれば? しょせんチラ裏の匿名掲示板に、 なぜそこまでこだわる?
948 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 18:28:37 ID:mhRpa/AL] タスクシステムの擁護をするはずが、いつの間にかタスクを擁護し始めている タスクシステムが攻撃されているのに、彼らはタスクが攻撃されている、という 対立構造に話をすり替えようと試みる 何らかの時間ステップで多数のFSM(VM)をシングルプロセッサで駆動させる プログラム全てにおいて、タスクという処理単位は必ず存在するというのに 彼らは『アンチは処理単位を否定しようとしている』などと叫ぶ 『アンチはフレームワークを否定しようとしている』というふうに話をスライドさせる 手口も同じ。彼らは自分たちが守るべきもの(タスクシステム)が、守るに値しない 守ることが不可能な、存在理由の実に希薄な、実につまらない車輪の再発明 既出の何かの劣化猿真似であることを悟ってしまったから、擁護する対象を 摩り替えることで、自己の立場を確保しようとしているに過ぎない 彼らはもはやタスクシステム擁護者ではなくなっている。彼らが現在守ろう としているものの実態、それは別の何かに換言される。それに タスクシステムという名前を無理やり与え(レッテルを張り)、擁護しているに過ぎない タスクシステムというお名前を擁護しているだけなのだ
949 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 20:15:49 ID:18fDyK6N] >>948 で、結論は?
950 名前:名前は開発中のものです。 [2009/04/02(木) 20:51:49 ID:Qv40Br8C] ないよ。 田原総一郎は噛み付くだけで解決策なんて出さないよ。
951 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 21:19:46 ID:r/tHXhvd] タスクシステムのメリットはもう説明できたの?
952 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 21:23:46 ID:8AeCm7l5] >>951 ログ読んでる?
953 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:13:03 ID:mhRpa/AL] >>874 、>>880 を読んで、あーなるほどこの人は正直な人だなぁと本当に思う タスクシステムの実装上の不合理が、現実の開発プロセスの不合理の上で 成り立っているとこの人は説明しているんだ こういうの見るとタスクシステムを攻撃する気なくすよね。あまりにも正直すぎて 本来なら是正すべき問題が何なのか分かっているけど立場ゆえにできないと。 叔父さん(オヤジの兄貴)が大手自動車会社の下請け部品工場やっていて 実家に遊びに来るたびにオヤジが愚痴を聞いていた なーんにも分かってないクライアントのヒヨッコ担当者から超理不尽な協力とか努力 要求を付き付けられると本当に参ると。理に適った上申・具申をしても相手が 理解できないオツムの人だと全く意味がないと苦笑いしていた >>874 、>>880 は正直であるがゆえにタスクシステム擁護者から攻撃されたようだね タスクシステムを擁護する人ってのは見栄っ張りが多いよね 不合理で悲惨な現実の中で仕方なく編み出された不合理な仕組みを正当化するには 不合理で悲惨な現実を曝け出すしかないというのに、それを嫌がるのだから呆れる 不合理な開発プロセスと無縁な恵まれた境遇の人間(趣味の人、学生の人)にとって タスクシステムなんてものが実は全く無用の長物であることを勘付かれたくないのだろうか 目の前に高速道路が通ってるのに今更こんな草ボーボーの泥道を這いずり回らせよう なんて趣味が悪いよね。スポ根大好きの昭和の人なのかしら
954 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:14:56 ID:yXIvxvr/] >946 真のアホというのはID:EEKBitmgのように『誰かが答えを知っていて、それを自分に教えてくれる』と マジで思ってるヤツのこと。 世の中には答えなんて無いもののほうが圧倒的に多いし、人から言われたことを検証するだけの力が なければ教えてもらうことに何の意味もない。 そのことに気づかないのが真のアホ。
955 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:18:25 ID:mhRpa/AL] 生協の購買部で弾幕何とかという本を立ち読みした。 なーんか胡散臭い。バケットソートしてるだけの手作りコンテナを 回りくどく説明してる。ダミータスクとかアホじゃねーのと思った ただの番兵じゃん。みたいな
956 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:21:39 ID:mhRpa/AL] >>954 バカじゃん。個人的には全く説明してもらう必要性なんて皆無なんだよね たかが実行待ちキューにアホみたいに独自のお名前付けて然もそれが 個性的な、ゲーム業界が編み出した秘術みたいに吹いて回ってるタスクバカが ネタでやってるのか本気でやってるのが知りたいから説明を要求してるわけで
957 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:26:43 ID:yXIvxvr/] >956 オマエにとって『タスクシステム』とやらがその程度にしか見えていないなら、そういうもんだと思っとけwww ただ、その拙い理解で周りに吹聴してまわるとメチャクチャ恥ずかしいけどな。 学生さんらしいけど、『学ぶ』ってことを知らないで学生やってて面白いのか? 世の中には物事を上手く活用出来る人も、できない人もいる。
958 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:31:56 ID:mhRpa/AL] タスクシステム(笑)なんて華麗に無視して颯爽と追い越していく後続は何としても 妨害し、これの足を引っ張り、繋ぎ止め、縛る。そのためにグダグダとエセ科学みたいな 胡散臭い話をし続けるタスクバカに何度も問いかけるよ 『何で何を作るお話なのか、話を絞れ』とずっと言ってるよね。にも関わらず、タスクバカは延々と逃げ続ける 適当でいいから仕様を出しなさいよ。既存の○○(ゲームタイトル)みたいなもの、とかでいいからさ。 開発環境とかターゲットを明らかにしなさいよ。本気で素人を説得する気なら、携帯機器とか 疎結合マルチコアの死にハードなんて引っ張り出すよりは、万人が触れられるもの、5万円以下で 自作できるPC(密結合マルチプロセッサ(マルチコア)な環境)を前提にお話でもしてみたら? >>2 である必要性が微塵も無いことが露見するのをあなた方は恐れているから無理だろうけどね タスクバカは自分が作ってるものが一体何なのかを端的に【説明しない】あるいは【説明できない】 ふたを開けてみれば彼らがタスクシステムだという>>2 は、実につまらない、既存の、既出の、 ありふれたものとして説明されるわけだが、彼らは然もそれが比類ない新規性にあふれたもの であるかのように吹くし、何だかとても怪しげな、とてもセンスの悪いお名前を付ける そうやって後続の初心者を煙に巻こうとしている この手の臭い人間の戯言に惑わされる情報弱者にも聞いてみたいんだけどさ f3a.sakura.ne.jp/radiocontroll/other/globalenergy/globalenergy01.html こういう似非科学の似非理論を吠える詐欺会社にワクワクしちゃうのかな? ちょっとでも物理が分かれば推力重量比1以上なら何でも空を飛べるって分かるよね? これに太鼓判を押してるのが層化大学で講義をしてる胡散臭い弁護士ってのが凄いよね カルトとエセ科学は仲良しなんだよ 『分かる人にしか分からない』だの『信じたがらない人には分からない』などの説明しかしない人は エセ科学提唱者といわれても仕方がない
959 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:37:10 ID:yXIvxvr/] >958 ホントにバカだなw そういう似非科学にワクワクしちゃうのは、自分でものを考えることを知らない人間だろw きちんとモノを考えられるやつは、「自分の作り方には『タスクシステム』は必要ない」とか 「『タスク』として動くものを統一的に扱えれば楽になる場面があるな」とか、利点欠点を 理解して使うか使わないかを自分で決められる。 自分でものを考えられないID:EEKBitmgのようなバカだけが、何時までたっても無用論 ばかり唱えてるんだよ。 選択できるやつは選択すればいい。バカはとっとと去れw
960 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:38:15 ID:mhRpa/AL] GPUは疎結合だけど、タスクバカは固定機能パイプラインの描画にしか 使ってなさそうだし、ここでは横においるよ
961 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:48:31 ID:TJNy3fkt] まぁまぁ、こんな所であまり熱くなっても滑稽に映るだけだぜ
962 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:51:32 ID:yXIvxvr/] >960 > タスクバカは固定機能パイプラインの描画にしか > 使ってなさそうだし バカここに極まれり、って感じで素晴らしいねwww
963 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:52:52 ID:mhRpa/AL] ID:yXIvxvr/さんは 俺みたいな糞ガキがタスクシステムのことをボコボコに貶すのが許せないんだろうね。 そんなに目障りなの?どうして?ずいぶん堪え性のないオジサンだね。何歳なの?
964 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:55:27 ID:mhRpa/AL] >>962 面白いね。自分のことをタスクバカだと思わなければ否定も肯定もできないはずだよね? 俺は明らかに色分けしてるよ? あなたは自分が『頭の悪いほうのタスクシステム擁護者』だと認めているの?正直な人だね
965 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:55:44 ID:yXIvxvr/] 自分はタスクなんか使わずに書いてるよwww 仕事で合わせないといけないときは、タスク使って書いてるよwww 必要に応じてな。 ID:EEKBitmgの学生さんは、センセーに言われたことは何も考えずに真実だと思っちゃう方なのかな???
966 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:57:01 ID:yXIvxvr/] >964 自分が愚かだと知って、初めて分かることもあるんだよwww 若いと気づかないんだねぇwww
967 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:01:38 ID:yXIvxvr/] >958 > タスクシステム(笑)なんて華麗に無視して颯爽と追い越していく後続は何としても > 妨害し、これの足を引っ張り、繋ぎ止め、縛る。そのためにグダグダとエセ科学みたいな > 胡散臭い話をし続けるタスクバカに何度も問いかけるよ > 『何で何を作るお話なのか、話を絞れ』とずっと言ってるよね。にも関わらず、タスクバカは延々と逃げ続ける > 適当でいいから仕様を出しなさいよ。既存の○○(ゲームタイトル)みたいなもの、とかでいいからさ。 > 開発環境とかターゲットを明らかにしなさいよ。本気で素人を説得する気なら、携帯機器とか > 疎結合マルチコアの死にハードなんて引っ張り出すよりは、万人が触れられるもの、5万円以下で > 自作できるPC(密結合マルチプロセッサ(マルチコア)な環境)を前提にお話でもしてみたら? > >>2 である必要性が微塵も無いことが露見するのをあなた方は恐れているから無理だろうけどね > タスクバカは自分が作ってるものが一体何なのかを端的に【説明しない】あるいは【説明できない】 > ふたを開けてみれば彼らがタスクシステムだという>>2 は、実につまらない、既存の、既出の、 > ありふれたものとして説明されるわけだが、彼らは然もそれが比類ない新規性にあふれたもの > であるかのように吹くし、何だかとても怪しげな、とてもセンスの悪いお名前を付ける > そうやって後続の初心者を煙に巻こうとしている > この手の臭い人間の戯言に惑わされる情報弱者にも聞いてみたいんだけどさ > f3a.sakura.ne.jp/radiocontroll/other/globalenergy/globalenergy01.html > こういう似非科学の似非理論を吠える詐欺会社にワクワクしちゃうのかな? > ちょっとでも物理が分かれば推力重量比1以上なら何でも空を飛べるって分かるよね? > これに太鼓判を押してるのが層化大学で講義をしてる胡散臭い弁護士ってのが凄いよね > カルトとエセ科学は仲良しなんだよ > 『分かる人にしか分からない』だの『信じたがらない人には分からない』などの説明しかしない人は > エセ科学提唱者といわれても仕方がない
968 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:03:04 ID:yXIvxvr/] すまん、間違えたwww >967は忘れてくれ。 ID:EEKBitmgよ、ホントにスマン。 他意はないんだ。ちょっと手違いでヤラカシタ。
969 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 23:04:51 ID:mhRpa/AL] >>965 なんだ >自分はタスクなんか使わずに書いてるよwww >仕事で合わせないといけないときは、タスク使って書いてるよwww タスクってのはタスクシステムのこと? 要するに使いたくて使ってる人じゃないわけか 君との間には争点は見出せないから君はどうでもいいよ 噛み付いてほしい標的じゃないから、ヨシヨシイイコイイコ飴あげよ あっち行ってなさい
970 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:10:41 ID:r/tHXhvd] で? タスクシステムのメリットはまだ説明できないの?
971 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:11:27 ID:QOxGW0vq] ここまで煽りに反応する人久しぶりに見たわ スレが恥ずかしい空気になっちゃったじゃない
972 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:14:00 ID:r/tHXhvd] なんだかごちゃごちゃレスが長くウザくなってきたら 「で?タスクシステムのメリットは説明できたの?」 この一言で元に戻す これでこのスレは安定する
973 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:26:39 ID:8AeCm7l5] >>972 ログ読んでる?
974 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:33:15 ID:r/tHXhvd] >>973 ログどころかずっといるっての いままで一度もタスクシステムのメリットを説明できた奴はいない タスクシステム(?)のソースに対して、タスクシステム使わないソースを上げてやったの俺だし
975 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:47:26 ID:8AeCm7l5] ・1フレームに1回実行すするための窓口提供
976 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:49:17 ID:yXIvxvr/] >969 > 君との間には争点は見出せないから君はどうでもいいよ > 噛み付いてほしい標的じゃないから、ヨシヨシイイコイイコ飴あげよ ハイハイ、学生さんは教わった知識をひけらかしたいだけなんですねwww >974 理解力の無いヤツにナニを言っても無駄だろwww
977 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 00:07:51 ID:OC5t9pnG] 俺はタスクシステム好きだぜ。 面白いじゃん、関数ポインタひとつで、単なるメモリブロックに 「クラス」と「状態」の両方の意味を与えてしまうあたりが。 状態に関しては、今ならStateパターンとかStrategyパターンとかって話に なるんだろうが、昔はそんなの無かったしな。 関数ポインタで状態を表せることはタスクシステムの重要なメリットの一つだと 思ってるんで、>>2 の3番目のリンクのやつは俺的にはタスクシステムとしては 激しくイマイチだなぁ感じる。
978 名前:並列さん ◆dPfetnROQg mailto:sage [2009/04/03(金) 00:15:00 ID:IkOXRAA5] >>974 > いままで一度もタスクシステムのメリットを説明できた奴はいない >103で十分だと思うけどな。
979 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 00:37:37 ID:faWc9wkq] >>972 とりあえずお約束の >264 この一言で再び荒れるw
980 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 00:51:02 ID:i6WUMFvg] >>978 それだとループはずしたのと行数がちょっと少なくなる程度だけど なにか思想的なことでメリットを主張する心算だったんじゃないの?w
981 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/03(金) 01:30:12 ID:hG/oV8+g] >>975 このスレを窓口で検索かけると分かるが、窓口云々と言ってる人は 『これは周期タスクを突っ込んだレディキューですよね』と言ってるわけ タスクシステムなんて超胡散臭い言葉を全く知らなくても使わなくても全く問題ないわけ 別の言い方をすれば、OSやらMONITORやらの実行待ちキューを何だか訳の分からない 独自用語を交えながらタラタラともったいぶって語るのがタスクバカってことなわけ 既存の何かとの対比をできないのか、したがらないのかよく分からないが 前者ならばただの無知(タスクバカ)であるし、後者は科学を否定するカルト野郎ないし詐欺師だ タスクバカは知ろうとしないよね。むしろ知ることを恐れる。まるで、自分が何かの先駆者であるか のような、誰も知らない宝石の所有者であるかのような、心地よい気分(錯覚)に浸り続けたいがために その酔いを醒ましてしまうような、冷や水ぶっ掛けられるような既出情報には目耳を塞ぐ奇異な行動を取る。 不当な搾取を受け続けても偽本尊の写しを有難がってナンミョーホーレンゲーとブツブツ念仏を唱え続ける 盲目のカルト信者の行動が理解できないのと同じで、タスクバカの行動原理というのは全く理解できない 人類が営々と積み上げてきた知の蓄積を無視し続けるというのは科学の否定に等しい。カルト万歳
982 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 01:48:18 ID:sMcFBzq3] ここで言われているタスクシステムって、ごく簡単に言えば、ゲーム中に何かを登場させたいときに、 そのなにかのインスタンスを作成してコンテナに登録すれば、後のことは気にしなくても そのインスタンスがなくなるまで面倒見てくれるシステムのことじゃないの?
983 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 01:54:30 ID:jmB/LurD] 過去ログ見ればタスクのメリットと使わない場合のデメリット、いくらでも見つかるけど 見たいものしか見れない人には無意味だね… d.hatena.ne.jp/shi3z/20090304/1236180285 あたりがアンチタスクの本質を突いてるね。 「メリット説明して」って聞くだけで理解できると思ってるあたりが。
984 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 02:12:41 ID:toGlOB+O] 記述の手間を省くためのものだと、このスレでようやくわかった。 プロジェクトをまたぐ場合は「タスクシステム」をコピペしてカスタマイズするのが前提みたいだし。 モジュールの独立性や最小の依存関係なんかを重視する人には受け入れられないだろうね。 大規模になるほど問題が起こるというのも >859 に挙げられた点から考えれば自然なこと。
985 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 02:44:45 ID:FLft9qyr] 「タスクシステム」って名前を使うと荒れるからちゃんと「>>2 」って呼ぼうぜ
986 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 03:12:29 ID:cWMM7gIH] そだな よし、まずは>>1 を読んでから語ろうか
987 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/03(金) 06:07:32 ID:hG/oV8+g] >>983 清水さんて誰?やねうらおさんみたいなスーパーハッカーオジサンなのかな。よく知らないけど 口先だけのハッタリ野郎であるタスクバカの本質をよく突いてる文章だと思う。厨房だからすごく分かる。 >>2 とか、訳の分からないCodeZineの情報を見て感動に震えてタスクシステムすごいすごいって思い込んで 疑うことも知らずに天下り式に猿真似てるだけで偉くなった気分になれるタスクバカって羨ましいよね 彼らは頭の中には糞でもつまってるのかしら。とても真似できない。すごいすごい 通常弾みたいな小さなタスクを手作りの線形リストに入れてなめるのは何故?バカだからだろうね 何でもチマチマとサブルーチンアドレス経由で処理を呼び出すのは何故?動的バカだからだろうね 実測したことないと分からないだろうなぁ。こういう言われ方されると不愉快だろうなぁ タスクバカは測定しようとしないよね。むしろ測定することを恐れるよね。ベンチ結果が怖いんだろうね 関数ポインタを知っただけで嬉しくなっちゃって使いどころも分からず至るところで状態変数代わりに 使っちゃってるんだろうね。速いと信じてさ。無駄にあちこちにリフレクティブな仕掛けを入れ込みまくって 糞重い糞コードいっちょうあがりっと
988 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/03(金) 06:09:04 ID:hG/oV8+g] メモリコンパクションが必要とか吠える奴が混じってるのは何故?バカだからだろうね 大してサイズの変わらないチマチマした短命オブジェクトを生成するために腐れ可変長アロケータを わざわざ自作して使うから不定期にメモリコンパクションなんて必要になるだけなのにね 固定長メモリプールを使うとか、ヒープから確保した後に使用済みになったオブジェクトをプールして 使いまわすとかすればいいだけなのにさ。Linuxのスラブアロケータの真似でもすればいいのにさ。 チマチマした短命オブジェクトのタイムクリティカルな処理をするのに不定期なメモリコンパクションを かけるなんてイカレてる。こんなもんがゲームプログラムに必要だなんて欺瞞情報の最たるものだ。 根っこから設計が腐ってんのにリニアアクセスによる僅かな高速化に期待しようだとかバカにも程がある パーティクルはタスクにしないとか言ってる奴が混じってるのは何故?バカだからだろうね どう組もうが何らかの時間ステップでパーティクル一粒一粒の更新処理はしなくちゃいけないわけで つまり一粒一粒の処理ステップ(タスク)というのは必ず存在するわけ。なのにタスクは使わないんだとさ。 タスクバカは独善的な解釈を振り回す視野の狭い連中だからどうせ配列に入ってるものはタスクじゃねーだとか 連結リストに登録されない処理単位はタスクとは呼べない!だとか訳の分からないヘンテコ理論が 頭の中にウンコみたいにこびり付いてんだろうね 実行待ちキューのコンテナは連結リストだけだと思い込んでるようなこの手のバカが信奉するタスクシステム ってのはちょっとした脅威。もう存在自体が毒素。この世から消えてなくなったほうが世のためだと厨房は思う
989 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 07:15:49 ID:4ENq10VK] >988 > 実行待ちキューのコンテナは連結リストだけだと思い込んでるようなこの手のバカが信奉するタスクシステム > ってのはちょっとした脅威。もう存在自体が毒素。 バカはどうでもいいけど、この点だけは賛同する。なんでリストに突っ込もうとするんだろうね。問題を 解決するのに最適だとおもわれるコレクションはリストじゃないだろうに。 しかし>987,988は全然モノを理解して無いな。>2とかcodezineとか松浦本とか見て全部判った気に なっちゃってるオバカが、間違った方向に向かって有頂天になってるだけだ。
990 名前:名前は開発中のものです。 [2009/04/03(金) 07:49:04 ID:VHS30Mzg] よし、じゃあ、まず、タスクシステムのメリットをあげてみようか?
991 名前:名前は開発中のものです。 [2009/04/03(金) 07:55:33 ID:VHS30Mzg] それができたら今度はタスクシステムのメリットをあげて 最後に時間があったらタスクシステムのメリットもあげようか
992 名前:名前は開発中のものです。 [2009/04/03(金) 08:52:33 ID:cHfo63oC] これ、もっとクエン酸入れたらどうっすか?
993 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 09:56:59 ID:FLft9qyr] ところで>>987 は実測したことあるんだろうか
994 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 10:32:10 ID:gSS0RY6A] 結論ありきの話しかできないID:EEKBitmgって、 一部の反戦平和団体と同じ臭いがプンプンしてるな。 自分の「正義」にたてつくヤツが許せないんだろうな。 ID:EEKBitmgは自分で自分のことをアホの子と言ってるが、 別にアホの子ってわけじゃないんだよな。 あえて言うならダメな子だな。あるいは残念な子か。
995 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 11:27:40 ID:aSgRO8Wl] 次スレ pc11.2ch.net/test/read.cgi/gamedev/1238725539/l50
996 名前:名前は開発中のものです。 [2009/04/03(金) 14:57:30 ID:OlKoVEZp] まだ続くのか。
997 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 16:41:27 ID:/shhFFlc] そして過去ログ読めなくて、また同じ議論が続く。
998 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 17:26:47 ID:aSgRO8Wl] 2ちゃんねるって、そんなとこだろ。 文句があるなら過去ログ倉庫作ってくれ。 俺は過去ログとっといてないし、●も持ってないから協力できんが。
999 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 19:38:34 ID:O7VpCXAX] Cやアセンブラ時代のテクにC++時代のお手軽コンテナクラスを使った実装を出して、タスクシステムなんて〜って言うのはズレてると思うよ
1000 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 19:41:58 ID:R7m6K7QE] ∧_∧ ∧_∧ ( ・ω・)=つ≡つ);:)ω・).,,'; (っ ≡つ=つ ⊂ ⊂) __ (⌒(⌒ )ババババ(⌒(⌒ ) /\ ̄ ̄し' ̄ ̄ ̄ ̄ ̄ ̄し' ̄ ̄ ̄\  ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄ / \ / \
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。