トップページgamedev
1001コメント423KB

タスクシステム総合スレ part7

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/05/07(木) 13:33:06ID:u3YZJr5E
タスクシステムについての議論、相談、質問、雑談などのスレです

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」と明示してください
 そうでない場合はカスタム版であることを明示してください

・人を憎んで言語を憎まず
0774名前は開発中のものです。2009/08/03(月) 01:49:05ID:1PXoi5JF
だれがアンチだとかアンチだからなんだとか、勝ち負けだとかどうでもいい。

技術的な会話をまともにしてほしい。技術的な内容以外は理性的に切り捨ててほしい。
0775名前は開発中のものです。2009/08/03(月) 01:53:35ID:s8hnsN4I
俺は書いたけどねぇ。何も反論ないんだねぇ
0776名前は開発中のものです。2009/08/03(月) 01:54:55ID:si//+0Pb
そしたらタスクシステムなんて採用に値しないだろ
だってメリットねーしw
0777名前は開発中のものです。2009/08/03(月) 01:59:04ID:s8hnsN4I
>>776
シャンプー君は元気そうだねぇ
どのタスクシステムの話なのかねぇ
それによって答えは変わるけどねぇ
0778名前は開発中のものです。2009/08/03(月) 02:23:46ID:MWks6991
>>733
お前自分で、>>755で自分はタスクシステム信派だって自己紹介してんぞ。
貧乏暇なしというが、忙しい人だな。
0779名前は開発中のものです。2009/08/03(月) 02:25:20ID:s8hnsN4I
誰だよそれ
0780名前は開発中のものです。2009/08/03(月) 02:37:24ID:s8hnsN4I
>>733のお話し相手が一体誰なのかなぁとチラ見してみたら
「コルーチンの使いどころが分かんない分かんない」って
癇癪起こして足をバタバタさせてるファイルシステム君じゃないかね
0781名前は開発中のものです。2009/08/03(月) 02:39:19ID:MWks6991
>>774
タスクシステムに技術的話題なんて無いね。共産主義並みに行き詰ってるのに。
後はこのタスクシステムが蔓延してしまっているこの事態をどうやって収束させるか。それだけ。
北朝鮮問題やら派遣問題やらと同じで、どういう風に支援、改心させるか。
でも某国と同じで洗脳教育されているのか自己催眠にかかっているのか知らないが、
あいつ等何言っても聞く耳持たないし、信じようとしないからとても大変だ。
もう放っておけばいいんじゃないかとも思えるが、(←多くの人がそうしているようにな)
このスレ的には、タスクシステム総合と銘打っている以上、
上記の問題に立ち向かっていかなければ存在意義がなくなるしな。
後始末後始末。
07827782009/08/03(月) 02:41:03ID:MWks6991
>>779
レス番号ミスった。
>>733

>>773
0783名前は開発中のものです。2009/08/03(月) 02:43:31ID:s8hnsN4I
おー怖い怖い。怖いから俺寝る
0784名前は開発中のものです。2009/08/03(月) 19:11:25ID:bsXgoH/e
この議論の内容が分かってきたらある程度一人前になったと自覚してよろしいですかね
0785名前は開発中のものです。2009/08/03(月) 20:09:36ID:MWks6991
何言ってるのかわからない
0786名前は開発中のものです。2009/08/03(月) 20:25:07ID:aGDcXuwE
なにそれこわい
0787名前は開発中のものです。2009/08/03(月) 20:26:49ID:Us9TDPt3
2人以上のプログラマのチームでゲーム開発できる人なら
別にこんな所の内容なんてわかんなくてもいいんじゃね
0788名前は開発中のものです。2009/08/03(月) 21:44:12ID:/fSz8E46
このスレのタスク信者が1〜2人だと気付ければ1人前
0789名前は開発中のものです。2009/08/04(火) 02:50:48ID:U0vuhKbG
出向先「タスク系ゲーム開発への興味はお餅でしょうか」
ぼく「えっ」
出向先「タスク系ゲーム開発への興味はお餅ですか」
ぼく「いえしりません」
出向先「えっ」
ぼく「えっ」
出向先「まだお餅になってないということでしょうか」
ぼく「えっ」
出向先「えっ」
ぼく「変化するってことですか」
出向先「なにがですか」
ぼく「興味が」
出向先「ああ使い続けていただければ技術レベルがあがって
    興味が変わりますよ」
ぼく「そうなんだすごい」
出向先「ではお教えいたしましょうか簡単ですよ」
ぼく「くさったりしませんか」
出向先「えっ」
ぼく「えっ」
0790名前は開発中のものです。2009/08/05(水) 16:20:46ID:Quw15W/S
いまいちどころか、いま8くらいだな。
0791名前は開発中のものです。2009/08/05(水) 23:34:57ID:eFoOCYvk
己の寒さに耐え兼ねて自己レスするスレッドストッパーって…
0792名前は開発中のものです。2009/08/07(金) 23:27:13ID:OCgbN7PJ
なんか元気ないから保守age
0793名前は開発中のものです。2009/08/08(土) 14:22:28ID:SPaTpHk9
誰か何か書きこめよ。
もう誰もいなくなったか?それは結構なことだ。
0794名前は開発中のものです。2009/08/08(土) 15:15:38ID:6o509XBx
やねうらおがこないともりあがらないんだろう
奴しかタスク派いねーし
0795名前は開発中のものです。2009/08/08(土) 16:05:25ID:SPaTpHk9
仕方がないから、個人サイトでも漁るか。
googleでタスクシステムで検索。以下上位サイト。

「その3 タスクシステムと「ゆるゆる」なキャラクタ」
ttp://marupeke296.com/GDEV_No3_TaskSystem.html
ゆるゆる

「本場のタスクシステムはスゲェな...」
ttp://www.game-create.com/archives/1299#more-1299
本場ですらスゲェんだな(謎

「萌えプロ タスクシステム基本篇」
ttp://akira812.spaces.live.com/Blog/cns!96B4C8D0C2C59D62!202.entry
。。。
0796名前は開発中のものです。2009/08/08(土) 17:48:55ID:6o509XBx
ざっと見た感じ全員ゲームを完成できる技術もってないな
0797名前は開発中のものです。2009/08/08(土) 19:34:04ID:xyBM8L8Y
イジメ甲斐のあるアンチは全滅か・・・
イジメすぎた?
0798名前は開発中のものです。2009/08/08(土) 19:42:43ID:Phb7PCA5
勝利宣言キタよ
0799名前は開発中のものです。2009/08/08(土) 19:48:31ID:SPaTpHk9
謎な脳内変換と意味のない煽りはタスクシステマーの十八番だからな。
0800名前は開発中のものです。2009/08/08(土) 19:56:05ID:xyBM8L8Y
おぉ、まだ生息してたか!
はやく楽しませてくれよ

引数じゃないとダメとか総合ヘッダとか
アンチらしい話題を早く出しとくれ
0801名前は開発中のものです。2009/08/08(土) 20:28:23ID:Phb7PCA5
会話するつもりがあるなら >498 とか >646 とかに具体的な回答をおねがいします。
0802名前は開発中のものです。2009/08/08(土) 20:54:04ID:phBswR/v
>>796
一番上の人は職業ゲームプログラマーだった筈
0803名前は開発中のものです。2009/08/08(土) 21:03:58ID:xyBM8L8Y
>>801
> 具体的な回答をおねがいします。
どーいう返答なら「具体的」でどーいう返答なら「具体的」でないのかなぁ?
まずそれを「具体的」に説明してくれやww

「具体的」な回答を求める人には当然答えられる質問だよな
0804名前は開発中のものです。2009/08/08(土) 21:12:27ID:Phb7PCA5
>>803
たとえば 498 の「どんなコメントつけてるの」に対して、
「何も書いてない」や「"タスクシステム"とだけ書いてある」なんての具体的な返答。
「いろいろ書いてある」や「それなりのことが書いてある」は具体的な返答ではない。
「何か書く必要あるのか?」とか「いらねーだろjk」とかは返答ですらない。

これでいいですか?
0805名前は開発中のものです。2009/08/08(土) 21:16:21ID:xyBM8L8Y
で、過去レスで一つもそーいう具体的な回答が見つからなかったから
あえてアンカー張って具体的な回答を求めてるのかい?
0806名前は開発中のものです。2009/08/08(土) 21:18:48ID:Phb7PCA5
>>805
はい。そうです。
0807名前は開発中のものです。2009/08/08(土) 21:26:58ID:xyBM8L8Y
具体的な回答には具体的な質問が必要だなぁ
>>498 は具体的な環境や実装が不明だし
>>646 にいたっては自問自答で質問にすらなってない

こんなのに「具体的」に回答できる人間はエスパーだけだww
0808名前は開発中のものです。2009/08/08(土) 21:32:02ID:OnpPfR8B
当初から、なんか646には答えにくいと思ってたらそうだったのか。
「自問自答」で、すでにレスの中で自分の答えに誘導してしまってるんだよな。
0809名前は開発中のものです。2009/08/08(土) 22:00:00ID:Phb7PCA5
>>807-808
特定の環境や実装について知りたいわけではありません。
あなたの知っているタスクシステムと名の付いたものについての返答を
してもらえれば十分だと思っています。

>646 の中に、質問者自身の答えが書いてあるのは確かですが、
その質問者の方とは違う答えがあるのではないでしょうか?
そういった点は >670 あたりでも説明されて回答が促されていますが、
やはり挙がらなかったようです。

まだ何か足りないでしょうか?
0810名前は開発中のものです。2009/08/08(土) 22:02:22ID:xyBM8L8Y
それは「具体的」じゃなく「主観的」だろ
あんたの質問は矛盾してるよ。
0811名前は開発中のものです。2009/08/08(土) 22:11:52ID:Phb7PCA5
>>810
「具体的」と「主観的」とは矛盾しないものと思います。
たとえば「納豆にネギを刻むと旨いんだ」という主張は具体的で且つ主観的なものです。

確かにはじめから客観的で具体的な回答であればより望ましいのですが、
主観的で具体的な回答でも、未だ明らかでない客観的な事実を知るための
手がかりとしては貴重なものです。

主観的なものでもかまいませんので、おねがいします。
0812名前は開発中のものです。2009/08/08(土) 22:18:49ID:xyBM8L8Y
主観的でいいなら
>>674
でこのスレは終わってないか?

主観的かつ具体的、でもこれじゃダメって理由を教えてくれや
0813名前は開発中のものです。2009/08/08(土) 22:22:57ID:Phb7PCA5
>>812
それは質問への回答ではないからです。
0814名前は開発中のものです。2009/08/08(土) 22:25:32ID:xyBM8L8Y
古いアンカーじゃ参照面倒なので
あらためて自分で質問してみな。
アンチの具体的な質問ってやつを。
0815名前は開発中のものです。2009/08/08(土) 22:40:52ID:Phb7PCA5
>>814
以下のようなものでいいでしょうか?よろしくおねがいします。

( >498 の質問から抽出。)
「タスクシステム」の主要な部分となる class Task や TaskSystem などに
どんなコメント(存在意義・使用目的の説明)をつけていますか?

( >646 の質問から抽出。)
「生成消滅が頻繁に発生する」というゲームを作る場合、「タスクシステム」を
使うことで別の方法よりも簡単に実装できるということですが、具体的に何と比較して
どの点が簡単になるのでしょうか?

「オブジェクトごとの挙動が異なる」というゲームを作る場合、「タスクシステム」を
使うことで別の方法よりも簡単に実装できるということですが、具体的に何と比較して
どの点が簡単になるのでしょうか?

「一定間隔で更新と描画を行う」というゲームを作る場合、「タスクシステム」を
使うことで別の方法よりも簡単に実装できるということですが、具体的に何と比較して
どの点が簡単になるのでしょうか?
0816名前は開発中のものです。2009/08/08(土) 22:53:47ID:xyBM8L8Y
>>815
> どんなコメント(存在意義・使用目的の説明)をつけていますか?
”コンストラクタ”とか”デストラクタ”とかコメントつけないのと同じ意味でたぶんつけんけど。
あえてコメントをつけるなら”タスクシステム”

> 具体的に何と比較してどの点が簡単になるのでしょうか?
これは質問がおかしい。
タスクシステムを使う人に対して何かと比較して質問したいなら
質問側で具体的な「タスクじゃない何か」を比較対象として出すべき。
悪魔の証明じゃないんだから。
0817名前は開発中のものです。2009/08/08(土) 23:32:51ID:xyBM8L8Y
> どんなコメント(存在意義・使用目的の説明)をつけていますか?
そもそも存在「意義」・使用「目的」はソースのコメントで書くものじゃないだろ
引数とか戻り値とかの使用「方法」なら書くが・・・
0818名前は開発中のものです。2009/08/08(土) 23:38:26ID:Phb7PCA5
>>816
ありがとうございます。

> タスクシステムを使う人に対して何かと比較して質問したいなら
> 質問側で具体的な「タスクじゃない何か」を比較対象として出すべき。

「何かと比較して質問したい」わけではありません。

何と比較して簡単になると言っているのか、という質問をしているので、
比較対象は回答として挙げられるものと思っています。
0819名前は開発中のものです。2009/08/08(土) 23:41:42ID:Phb7PCA5
>>817
そうですか。コメントとして質問していては望む回答は得られないようですので、
少し質問を変えさせてもらいます。

「タスクシステム」の主要な部分となる class Task や TaskSystem などについて、
どんな存在意義・使用目的の説明をされていますか?

たとえばライブラリのドキュメントなどに記載されるような内容を想定しています。
よろしくおねがいします。
0820名前は開発中のものです。2009/08/08(土) 23:43:07ID:xyBM8L8Y
>>818

> 「何かと比較して質問したい」わけではありません。
> 何と比較して簡単になると言っているのか、という質問をしているので、

自分の質問を見返しておかしいとおもわないかな・・・?
0821名前は開発中のものです。2009/08/08(土) 23:49:50ID:xyBM8L8Y
>>819
> 「タスクシステム」の主要な部分となる class Task や TaskSystem などについて、
> どんな存在意義・使用目的の説明をされていますか?

>>2 のリンク先の方が詳しく図付きで説明してあるんでそっち見てくれ。
これを見て存在意義と使用目的が理解できんなら掲示板で説明しても理解できるとは思えん・・・
0822名前は開発中のものです。2009/08/08(土) 23:51:01ID:SPaTpHk9
俺も質問していい?
PCでゲーム作る場合、ディスプレイのリフレッシュレートってまちまちでしょ。
(最近は液晶が普及したおかげで大概60Hzだが)
でもゲームのロジックは60Hzとかで固定したいでしょ。
(数値解析の精度が変わったり壁抜けしたりするのが嫌だから)
それで、ディスプレイのリフレッシュレートとゲームロジックの周期のギャップを埋める仕組みが
必要だと思うんだけど、みんなはどうしてる?

http://spitfire.client.jp/program/fps.html
0823名前は開発中のものです。2009/08/08(土) 23:54:31ID:Phb7PCA5
>>820
すいません。見返してみましたがおかしいと思うところはありませんでした。
0824名前は開発中のものです。2009/08/08(土) 23:55:07ID:xyBM8L8Y
>>822
ゲームによる。
ゲーム中の計算時間単位をリフレッシュレート側の更新速度にあわせる方法。
リフレッシュレートは無視して固定FPSでやる方法(ティアリングは無視)
ゲーム計算処理は固定FPS、表示だけリフレッシュレート依存。

とかとか・・・
0825名前は開発中のものです。2009/08/08(土) 23:59:03ID:Lca3wy1V
>ゲーム計算処理は固定FPS、表示だけリフレッシュレート依存。

これ面倒なんだよね。
0826名前は開発中のものです。2009/08/09(日) 00:00:17ID:xyBM8L8Y
>>823
すいません。何か人工無能と会話してるみたいであなたと話が通じる気がしません・・・
0827名前は開発中のものです。2009/08/09(日) 00:17:45ID:4TaFdjmk
>>821
ありがとうございます。

改めてひとつずつ見てみることにします。
0828名前は開発中のものです。2009/08/09(日) 00:20:01ID:4TaFdjmk
http://homepage3.nifty.com/moha/prog_realtime.html
> さて、話は前後しますが「処理」の部分を状態によって切り替える手法についてです。
> 最も単純な方法はおそらく、状態に番号をつけてif文やswitch〜case文で切り替える方法でしょう。
...
> そこで、タスクという手法が登場します。

このページで「タスク」の存在意義を示しているのはこの部分のようです。

しかし、これは仮想関数によって解決される問題だと思います。
むしろ仮想関数のほうが言語のサポートによって型安全に書きやすい分、
適切だと思います。

これだけのことのために以下のような注意事項に悩まされてしまうのでは、
まったく割に合わないと思います。
http://homepage3.nifty.com/moha/prog_attention.html
0829名前は開発中のものです。2009/08/09(日) 00:23:59ID:4TaFdjmk
http://www5f.biglobe.ne.jp/~kenmo/program/task/task.html
> タスクシステムを採用すると、以下のメリットが得られます。
>
> * CPUの負荷を減らすことができる
> * メモリの使用量を節約することができる
> * ゲームを開発するのに適したシステムで開発できる
>
> デメリットとしては、
> 現代的なプログラムに比べると、分かりにくい部分があります。
>
> ジャンプ処理や、関数ポインタを使用するので、
> 泥臭いコードになりがちです。

メリット・デメリットがちゃんとまとめられていて助かりますね。

CPU 負荷については、関数ポインタによる分岐が多発する分、最近の CPU では
逆に不利になることが考えられます。

メモリの使用量については、独立したメモリプールの仕組みを使えば、
挙げられているタスクシステムのデメリットは回避しながら望む結果が得られます。

「ゲームを開発するのに適したシステム」については、残念ながら何のことか
わかりませんでした。(誰か解説してもらえますか?)

最後のやつがわからないままではありますが、総じてデメリットのほうが
大きいように思います。
0830名前は開発中のものです。2009/08/09(日) 00:25:49ID:ryu4L4qw
>>828
ここに出てる問題で
仮想関数を使って解決できるのはワークオーバーだけ、ということを理解できたら
だいぶタスクが理解できてる、と言える。

先走って半端な理解のまま結論出さずに、ちゃんと理解してから結論だしな。
0831名前は開発中のものです。2009/08/09(日) 00:27:32ID:LPRNL5Jt
仮想関数もタスクシステムも同類で、まともなやつは使わないんだよなこれが。
0832名前は開発中のものです。2009/08/09(日) 00:29:23ID:CFq+cfTI
> * CPUの負荷を減らすことができる
> * メモリの使用量を節約することができる
> * ゲームを開発するのに適したシステムで開発できる

マジでこれどうやって検証したんだろうか?
0833名前は開発中のものです。2009/08/09(日) 00:36:03ID:ryu4L4qw
>>829
> CPU 負荷については、関数ポインタによる分岐が多発する分、最近の CPU では
> 逆に不利になることが考えられます。
関数ポインタによる分岐と通常関数による分岐、仮想関数による分岐
CPU上でどんな動作をしているのかイメージできてるのかな・・・?

> メモリの使用量については、独立したメモリプールの仕組みを使えば、
> 挙げられているタスクシステムのデメリットは回避しながら望む結果が得られます。
メモリプールを使ってタスクと同じことができるタスクのデメリットが無いシステム
ってやつを君が作ることが出来れば、誰もタスクシステムなんて使わなくなると思うよ。

タスクシステムなんて使ってゲーム作ってる現役ゲームプログラマの馬鹿どもに作ってみせてやりなよ。
君の素晴らしいシステムをww
0834名前は開発中のものです。2009/08/09(日) 00:41:10ID:LPRNL5Jt
>タスクシステムなんて使ってゲーム作ってる現役ゲームプログラマの馬鹿ども
いないから。
0835名前は開発中のものです。2009/08/09(日) 00:43:03ID:ryu4L4qw
>>834
仮想関数もタスクシステムも都市伝説、君か。
久しぶりにアンチらしいアンチが出没したな。
0836名前は開発中のものです。2009/08/09(日) 00:47:59ID:4TaFdjmk
http://codezine.jp/article/detail/297?p=1
>  タスクシステムとは、これら複数のタスクを管理する仕組みであり、現在でも
> プロの現場で用いられています。長所は次の通りです。
>
> * ジャンルを問わず様々なゲームに適用できる
> * 並列処理をうまい具合に実現できる
> * ゲームの流れを自然な形で表現できる
> * 大規模なゲームも開発できる
> * タスクごとに独立しているため、複数人で開発できる
>
>  一方の短所は、タスクシステムの歴史が古いことに起因する、高すぎる自由度です。
> さまざまな実装方法があり、またオブジェクト指向が一般的ではなかった時代の
> 手法なためか、スパゲティプログラムや、データの隠蔽化が不十分なプログラムと
> なっている例も見かけます。

いちおう長所・短所をまとめて書いてくれてはいますが、どれもあまり
具体的ではなく、はっきりしません。

しょうがないので2ページ目まで見られる記事本文を読みすすめて見ました。
0837名前は開発中のものです。2009/08/09(日) 00:49:09ID:4TaFdjmk
http://codezine.jp/article/detail/297?p=1
> このようにタスクの削除にメモリ領域の解放を伴わないことによって自滅も
> 可能となり、プログラムの見通しが良くなる、という利点があります。

delete this できることが最初にあげた「ゲームの流れを自然な形で表現できる」
などの根拠になっているようですが、ここでタスクシステムとして紹介されて
いるような仕組みが無くとも delete this は可能です。

http://codezine.jp/article/detail/297?p=2
operator new/delete の独自定義も行っているのですが、本来メモリ割り当てと
解放しか行わないはずのこれらの処理の中でコンストラクタ・デストラクタ
相当の動作をしており、 C++ のオブジェクトモデルから外れてしまっています。

なにやら「デフラグ」という見慣れない機能があったのですが、実装を見ると
memmove() しています。これでは派生クラスのメンバには POD しか持てません。

どうも、この筆者は C++ に対する理解が不十分なようです。

おそらく std::list<Task> とでもすれば済みそうな仕組みを、標準ライブラリを
知らなかったがために一生懸命組み上げてしまった、その中で、自分が最近学んだ
珍しい機能を使ってみた、というものぐらいにしか見えません。
0838名前は開発中のものです。2009/08/09(日) 01:11:47ID:ryu4L4qw
面白い理解のしかたをするねぇ

その理解で言えば
A)タスクシステム使ったゲームは都市伝説で存在しない
B)タスクシステム使ったゲームを作るゲームプログラマは君よりレベルが低い馬鹿
C)タスクシステムの使いどころを理解できない君が馬鹿

のAかBになりそうだけど・・・
正解はどれだと思う?ww
0839名前は開発中のものです。2009/08/09(日) 01:22:20ID:LPRNL5Jt
ID:4TaFdjmkの言うことは正論のようで正論でない。
本にはわからないだろうが。
0840名前は開発中のものです。2009/08/09(日) 01:23:30ID:LPRNL5Jt
本人にはわからないだろうが。
0841名前は開発中のものです。2009/08/09(日) 01:31:04ID:4TaFdjmk
http://web.archive.org/web/20041012011316/www.hh.iij4u.or.jp/~peto/Games/task_02.html
> タスクとは、いったい何なのでしょう?辞書や用語辞典を引いても、何の手助けにもなりません。
> タスクを一言で説明すると、
>
> ・実行アドレスを含む汎用ワークの連結リスト
>
> となるでしょうか。

仮想関数、標準コンテナの組み合わせで実現するのがよさそうです。

> 冒頭でも述べたように、タスクとは非常に原始的な処理です。
> 非常に少ない(数キロ〜数十キロバイトの)ワークエリアと、
> 至って非力な(数メガヘルツの)CPUパワーを有効活用する為のテクニック、
> それがタスク処理なのです。

そういうことなのでしょう。

関数を切り替えることで状態を切り替えるという手法は今でも適切に応用できる
場面があると思います。しかし、それを実現するためにシステムとして提供する
ところはありません。
0842名前は開発中のものです。2009/08/09(日) 01:42:54ID:LPRNL5Jt
>仮想関数、標準コンテナの組み合わせで実現するのがよさそうです。
何で実現してもタスクシステムはタスクシステムだろうに。
0843名前は開発中のものです。2009/08/09(日) 01:52:03ID:4TaFdjmk
ひととおり読んで、これらのような「タスクシステム」の存在意義や使用目的はすべて
過去のものであると思いました。いずれも古い記事だということからも、そのように
考えられます。

このような仕組みを現在でも新規で採用するようなことがあるとすれば、これらの
記事に挙げられているようなメリットを自分の対象環境で検証していないとか、
デメリットを無視しているだとか、あるいは C++ による標準的な手法を知らないだとか、
何かしら見落としがあるのではないかと思います。


一連の書き込みについて、「そこは間違っている」だとかいうことがあれば、
具体的にどこが間違っていて、正しくはこうである、というような指摘をもらえると
助かります。
0844名前は開発中のものです。2009/08/09(日) 01:56:32ID:LPRNL5Jt
>あるいは C++ による標準的な手法
↑詳しく
0845名前は開発中のものです。2009/08/09(日) 02:03:19ID:pp4zzkP0
一番肝要そうなところをはしょるね
0846名前は開発中のものです。2009/08/09(日) 02:06:41ID:ryu4L4qw
>>843
「残念ながら何のことかわかりませんでした。(誰か解説してもらえますか?) 」
自分で言ってるように、これが君のタスクに対する理解ってことでいいんでない?

理解できなかったのに結論だけ出るのはおかしいってことも分からないのかも知れないけど
タスクは使えないって結論ありきで、欠点以外は耳に入らないみたいだから誰にも君に解説
できる人は居ない。
0847名前は開発中のものです。2009/08/09(日) 02:08:50ID:4TaFdjmk
>>844
>> あるいは C++ による標準的な手法
> ↑詳しく

switch による分岐が嫌だという時には仮想関数( State パターンなど)を使う。
リンクリストなどの動的コンテナは標準ライブラリなどを使う。
メモリ管理のカスタマイズはコンテナのアロケータを差し替えたり
operator new/delete を独自定義するなどして行う。

一連の記事を読んでて思い当たったのはこんなところです。
0848名前は開発中のものです。2009/08/09(日) 02:18:19ID:AGjKWO87
>>837
そのcodezineの記事は批判が多いことと
仮想関数やstd::listを使ったものも
タスクシステムとみなす一派もいるらしいことを
付け加えとく。

スレ毎に話題がループしてる気がするんだが
このスレの過去ログ倉庫どっかに無いかな。
0849名前は開発中のものです。2009/08/09(日) 02:44:31ID:LPRNL5Jt
>仮想関数やstd::listを使ったものも
>タスクシステムとみなす一派もいるらしいことを

俺のことだな。
だってアーキテクチャ的には同じものだからな。
樹海に行くのに徒歩で行くか車で行くか程度の差でしかない。
どちらにしろ糞は糞ってこった。糞に到達するのが早いか遅いかの議論に興味はないね。

というわけだ>>847

俺の中では ID:4TaFdjmk もタスク一派かな。
なんでかって?そりゃ思考のアーキテクチャがタスカーと同程度だからだ。
だってお前の言ってる事って、要は、STL使ったり仮想関数使った方が、
codezineの記事の方法よりも、もっと早くタスクシステムを作れますよ、って事だろ。
否定的な立場をとりつつも、結局タスクシステムを作るのを手助けしちゃってるじゃないか。
本当はどうしたかったんだ?
タスクシステムの構築を加速させるのがお前の目的だったのか?
でも案外それがお前の本質なのかもな。
こんなスレ覗くぐらいだし、本当はお前もタスクシステムが好きなんじゃないか?
タスクシステマーはお前と同程度の人間だから、みんな暖かいぜ?
朱に交われば赤くなるってやつだな。
0850名前は開発中のものです。2009/08/09(日) 03:38:37ID:3bFXUk1n
俺は下のどっちかで動いるアプリはタスク一派とみなす
(A)毎フレーム処理
(B)コルーチン処理
0851名前は開発中のものです。2009/08/09(日) 04:09:03ID:UdcRWiQZ
std::listで実装する場合って親クラスのポインタを入れるの?
なんかもったいないような
0852名前は開発中のものです。2009/08/09(日) 08:53:19ID:ryu4L4qw
最近のゆとりプログラマ
stlは使えるけど、自分でlist実装できません。ってのが出没して侮れん・・・

昔はlistなんて誰でも同じような実装何度も繰り返して、さすがに無駄だろってstlが生まれたんだが
stl以降のゆとりプログラマにとってはlistは何かすごく高尚なアルゴリズムで自分で実装なんて考えられないらしい。
だからstlに存在しないデータ構造はC++では使えないと思ってる新人プログラマがいたりする。

車輪の再発明は無駄だが、便利になりすぎると使う人間が劣化するのはどこでも一緒なのかね。
0853名前は開発中のものです。2009/08/09(日) 09:09:15ID:MkGQm79O
シリコンウエハー一枚も満足に作れないような奴が
パソコンで動くソフトウェアを作ろうなんて
ちゃんちゃらおかしいということですね。わかります。
0854名前は開発中のものです。2009/08/09(日) 11:01:23ID:CFq+cfTI
引数の重要性がわかってない人間の使う糞道具
グローバル変数使ってやりとりするのが好きなんだろ?
でもそれってわかってくると恥かしいぜw
08556462009/08/09(日) 11:22:11ID:nFaNv7CH
>>807
>>>646 にいたっては自問自答で質問にすらなってない

まぁそりゃそうだわなー。俺は>>628とお話してたわけだからねぇ
君にとっちゃ関係ないお話なんだからいきなり>>646を引っ張ってきて
質問に答えてって言われても困るだろうねぇ

>>808
君は>>646に返答してくれた>>650かな。もしそうなら
答えにくい話に付き合ってくれてありがとうねぇ
でも答えにくいのは俺が自問自答したからじゃないんだよ
他人に考えを伺う際にこちらの考え(or解釈)も添えただけだからねぇ
俺の考え(or解釈)との一致不一致が答えにくさに作用するはずないよねぇ
考え(or解釈)が一致するから答えにくい  → 嫌われちゃったかねぇ
考え(or解釈)が一致しないから答えにくい → 気にすんな。違って当たり前だ

ローカル用語だからねぇ
0856名前は開発中のものです。2009/08/09(日) 11:27:50ID:nFaNv7CH
>>854
また君か。懲りないねどうも
0857名前は開発中のものです。2009/08/09(日) 11:49:06ID:CFq+cfTI
なんでこんなもん使うかってグローバル変数での受け渡し方法しか知らないからだろ?
普通のプログラムもまともに組めないままPG気取ってる糞がこんなもんに騙される
0858名前は開発中のものです。2009/08/09(日) 12:10:00ID:fXRIrW8W
>>852
HashMapは自分で作れる自信ないわ俺
0859名前は開発中のものです。2009/08/09(日) 15:32:56ID:LPRNL5Jt
>>858
おいおい、せめてB+-treeとかにしてくれよ。
http://pfp7.cc.yamaguchi-u.ac.jp/~ichikawa/lecture/yamanashi-u/01/resume/node10.html

>>854
真性現る。
0860名前は開発中のものです。2009/08/09(日) 15:33:21ID:fNG6Olju
なんでそんなこと言うかってグローバル変数と引数しか受け渡し方法を知らないからだろ?
0861名前は開発中のものです。2009/08/09(日) 16:04:19ID:CFq+cfTI
>>860
それ以外の方法はどうせグローバル変数と似たような問題が発生するので知っていても無意味だよ
引数で渡すか、グローバル変数で渡すか
クラスで強引にまとめてメンバやスタティック変数に別関数の引数から渡して
目的の処理の関数は引数を通さないってのは結局グローバル変数と同じ問題が発生してしまうので考慮に値しない

ちなみにここで問題っていうのは更新するものが呼び出し元から見えなくなってしまう状態な
0862名前は開発中のものです。2009/08/09(日) 18:18:04ID:LPRNL5Jt
プログラム中に予め一つしかないことがわかっている物はグローバル変数で問題ない。
例:C言語の標準入出力
0863名前は開発中のものです。2009/08/09(日) 18:24:35ID:LPRNL5Jt
143 名前:名前は開発中のものです。[sage] 投稿日:2009/06/05(金) 23:54:01 ID:2tFnphs7
もしも、引数君がwin32apiを設計したら。

GetMessage( &dosv, &x86, &win32, &process, &thread, &queue, &msg, NULL, 0, 0 );

めんどくせーし、可読性も落ちる。バグの元だな。
0864名前は開発中のものです。2009/08/09(日) 18:40:25ID:CFq+cfTI
>>862
ダメだろ
あるプロジェクトのソースをあるプロジェクトで使いたいときに
影響範囲がわからなくてまるで木の根っこみたいにプロジェクトにソースがひっついてしまって
カプセル化の意味がまったくなくなってしまう
グローバル変数なんか使ってしまったら必要なデータがなにかわからないだろ
これを引数でいれておけば引数をみるだけで簡単に必要なものが絞れるってわけよ

また、これは別にプロジェクトから移動させるときだけじゃなくて
構造を組み替えなければならないときにも迂闊に分離できない
つまり、仕様変更に弱いプログラムになってしまうんだよ
0865名前は開発中のものです。2009/08/09(日) 18:49:44ID:CFq+cfTI
似たような構造で失敗してるもんに

DirectXのSetRenderState関数があるな
これさセットしたもんが何にどう影響するのかわからないんだよな
だから固定シェーダとか使うなよボケってみんなからフルボッコにされる
0866名前は開発中のものです。2009/08/09(日) 19:58:51ID:LPRNL5Jt
>木の根っこみたいにプロジェクトにソースがひっついてしまって
引数で渡しても引っ付くことには変わりないだろ。
だってそれはそのアプリの仕様なんだから。

>プロジェクトにソースがひっついてしまって
>カプセル化の意味がまったくなくなってしまう
カプセル化(データ隠蔽)の意味をわかっていない。モジュールの結合度が高まることとカプセル化は関係ない。

>グローバル変数なんか使ってしまったら必要なデータがなにかわからないだろ
わからなくていいからグローバル変数なんだ。
サブシステムというものはそういうものだ。

>また、これは別にプロジェクトから移動させるときだけじゃなくて
>構造を組み替えなければならないときにも迂闊に分離できない
これに限って言えば、グローバル変数使ってるほうが構造の組み換えには強い。
引数の引き回しを考えなくて良いからな。
グローバル変数は柔軟すぎて何でも出来ちゃうからこそ問題なんだろうに。

>DirectXのSetRenderState関数があるな
>これさセットしたもんが何にどう影響するのかわからないんだよな
セットした後、使い終わったら元に戻さないからそういうことになるんだろ。
ちなみにID3DXEffectはエフェクト内での設定を処理後に自動で元に戻してくれる。
自動で元に戻してくれるってだけで、SetRenderStateと仕組みは同じ。
0867名前は開発中のものです。2009/08/09(日) 20:12:00ID:LPRNL5Jt
だいたい、俺らはWin32が内部で持ってる変数なんて知らないし、知る必要もない。
Cの標準ライブラリが内部で持ってる変数ですら知らない。
標準出力の正体なんか知らなくてもprintfは使える。
printpolygon(座標)でポリゴンが描画されたとしてもなんら困らない。
既に我々はグローバル変数的なサブシステムの上で
プログラムを書いているし、走らせているということ。
0868名前は開発中のものです。2009/08/09(日) 21:00:30ID:cWFbq9mK
>>867
それはカプセル化であって、グローバル変数とは違うだろw
Win32が内部でもってる変数を外から書き換えたらどうなるか想像つくだろ
それがグローバル変数ってことだろうがw
0869名前は開発中のものです。2009/08/09(日) 22:02:36ID:ryu4L4qw
>>868
Win32が”内部で”持ってる変数はグローバルじゃないだろ
コンテキストなりで内部状態を持ってるわけだ。

引数で全コンテキスト状態を渡さなくてもコンテキスト変更の入り口と出口さえ押さえられれば
安全に運用できる・・・ってのは引数君には理解できないレベルの話か。
0870名前は開発中のものです。2009/08/09(日) 22:44:53ID:LPRNL5Jt
だから要するに、Win32サブシステム自体が一塊のグローバル変数の如く機能しているという。
だからプログラムのどこからでもWin32APIを呼び出せる。
0871名前は開発中のものです。2009/08/10(月) 00:21:45ID:KNogq/JJ
そうなんだよね
だからWin32apiも呼べるからってどこでも読んじゃダメだ
せめて使う必要のある場所とない場所を区別するために
windows.hを呼ぶソースと呼ばないソースをわけるぐらいはしないと
馬鹿は全部まとめた総合ヘッダーとか作っちゃうけど本当はそんなことやっちゃダメだ
0872名前は開発中のものです。2009/08/10(月) 00:30:39ID:pM60OIe/
ID:xyBM8L8Y は言葉遊びが好きだねぇ

>>810
既に指摘されてるようだが
「具体的」と「主観的」は排他的な関係ではないねぇ

>>812
>主観的でいいなら
>>674
>でこのスレは終わってないか?

うんにゃ。君が>>674の見解に100%の見解の一致があるというなら
それは君と>>674との間の一致にすぎないんだねぇ
権威不在のローカル用語、タスクシステム。これの共通理解は朧げだねぇ

例えばアンチを装う歪んだ性癖のあるファイルシステム君 ID:6uucu48D。
この珍獣は自前のチンカスタスクシステムの常識をこのように述べた(>>765

 『タスクシステム自体もタスク間でのコミュニケーションが苦手という問題を抱えてるが』

実に愉快な「ボクのチンカスシステム固有の事情」を赤裸々に語ってくれたわけだが
君はどう思うね?おそらく見解は異なるだろう

例えばDCAJの調査報告がタスクシステムについて言及したわけだが
玉虫色の内容にならざるを得なかったのは示唆に富んでるよねぇ

あのパートを担当した方はジャンケンで負けたんだろうかねぇ
とんだババを引いて大変だったねぇ
0873名前は開発中のものです。2009/08/10(月) 00:54:11ID:pM60OIe/
>>871
>馬鹿は全部まとめた総合ヘッダーとか作っちゃうけど本当はそんなことやっちゃダメだ

また引数君(総合ヘッダー君)の告解の時間が始まったのか
ここは君の懺悔室かね
■ このスレッドは過去ログ倉庫に格納されています