[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 09:54 / Filesize : 120 KB / Number-of Response : 355
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

タスクシステム総合スレ



1 名前:名前は開発中のものです。 [2007/03/12(月) 23:09:48 ID:8bV5Boxt]
どうぞ

125 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:26:33 ID:vUHs3Nla]
>>123
メガマウスの具体的な例をお願いします…。
ぱっと見だけど、かなり場数を踏んでる(プロの)方?


126 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:35:14 ID:Pm183gqV]
>>125
メガマウスってでかいんだぜ。
ジンベエザメよりも、シロナガスクジラよりもでかいんだぜ。
でもイソギンチャクって小さいんだぜ。
あと俺みたいな奴がプロだったら
日本はもっとデフレ状態になっても誰も就職に困らないだろうな。

127 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:36:33 ID:Pm183gqV]
あ、メガマウス小さかった。
なんだったけな、最大の海洋生物って。

128 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:54:09 ID:EeW/BzCK]
>>123
タスクシステムは特定の実装方法を指すものではない。
 
「古代の究極奥義、ダイエットシステムでこんなに痩せた!」
 
とか言わないのと一緒。


129 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 08:09:39 ID:E/KhOlb0]
>>123
コンテナクラスを内包したEnemyFactoryを作って
処理ループではメンバ関数一つ呼べば管理が楽にならん?
Class EnemyFactory {
Vector<CEnemy> EnemyArray;
(略)
public:
func(CPlayerCtrl& player)
}

enemyfactory.func(&player);を一回呼び出せば全てを処理してくれるように。
って、これがタスクシステムなのか?

130 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 14:16:22 ID:KkZ4qP8H]
だからさー、お前の脳内定義でのタスクシステムに必須条件って何よ。
ダンボール紙の盾をイージスシステムと名付けるのはお前の自由だが
他人に同意を求めるような話じゃねーだろと。

たかがローカル用語に、具体的な実装も含めた意味付けをして
再定義して普及させようとする仕切り行為は全て徒労に終わる。
 
ゲームプログラマは基本的に天邪鬼だからな。

131 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 21:20:45 ID:I+5EKnEr]
>>127
スレと関係ないけどメガロドンじゃね?大昔の巨大サメ。

>>130
>必須条件
これじゃ駄目なのか?

en.wikipedia.org/wiki/Task_%28computers%29

>A task is "an execution path through address space".In other words, a set of program instructions that is loaded in memory.
>タスクは「アドレス空間を通る実行パス」です。言いかえれば、メモリにロードされるプログラム命令のセット。

風呂桶でも紙コップでもなくて「入れ物」に相当する用語がタスクなんだけど、
それを「俺んちの風呂桶」の意味で使う奴がいるのが問題なんじゃないかと思う。

132 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 21:56:37 ID:let+IdBl]
そういうこったな。
taskはprocess並に汎用的な技術用語。
そのケツにsystemを付け加えるだけで

>タスクシステムを最初に見たときは、オブジェクト指向とは全く違う
>自由度と再利用性の高い汎用的な管理の仕方だなと感心したよ。

↑こんな胡散臭い話になる。マジでお勧め。
「去年まで金無し君だったけど」の改造コピペ文が作れるな

133 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:42:06 ID:EeW/BzCK]
>>123
なんか釣りっぽいが、君の言うタスクシステムってのはこんなやつ?
codezine.jp/a/article.aspx?aid=297
 
これ、ゲームプログラミングの基礎教材としては優良だとは思うが
タスクシステムという単語の使われ方はキッパリ忘れたほうがいい。
 
これ読んで「タスクシステムすげー!」「マジ感動!」
と歓喜して許されるのはリア厨、リア工まで。

それ以上なら技術者(の卵)として最低限のリテラシーが
欠けてるかもしれないと疑ったほうがいい。

何でもいいからオペレーティングシステムの教科書でも
一冊買ってみて読んだほうが遥かに勉強になると思うよ。



134 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:47:04 ID:Pm183gqV]
リア工なので許されるという

135 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:48:45 ID:EeW/BzCK]
アンカーミス。>>132じゃなくて>>129

136 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:49:58 ID:EeW/BzCK]
>>134
RTOSの本が面白いと思うよ。

137 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:58:21 ID:let+IdBl]
>>135
俺かいw

つーのは冗談として。。。
組み込み系の書籍はたしかに参考になるな。

俺も井の中の蛙にならんように精進せんと。

138 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:00:12 ID:GlQD7rdS]
タスクシステムってメモリに対して最適化した設計スタイルなんじゃねーの?
ギャラガとかの古の時代の産物なんだから、言葉自体を葬った方がいいんじゃないかと。

139 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:02:37 ID:let+IdBl]
>>138
>タスクシステムってメモリに対して最適化した設計スタイルなんじゃねーの?
>タスクシステムという言葉自体を葬った方がいいんじゃないかと。

本来はタスクシステムのローカル定義

140 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:04:29 ID:let+IdBl]
途中で送信しちまった。
 
>タスクシステムってメモリに対して最適化した設計スタイルなんじゃねーの?

そのタスクシステムのローカル定義を葬ったほうがいいのであって
タスクシステムという言葉自体に罪は無いぞ。立派な技術用語だ。

141 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:37:23 ID:EeW/BzCK]
「ギャラクシアン」「タスクシステム」でぐぐると
ナムコ信者とかレトロゲーマニアの知ったかウンチク話として
「タスクシステム」が再定義され広まったのがよく分かる。

こういう出典不在&伝聞のみで造られたゲームファン用語を
真に受けた素人がCマガの記事を書いて更に広めたのは
致命的だったね。

142 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:54:13 ID:9JdMu3w7]
どっかのスレで「古典タスク」とかいう謎の言葉を見かけたな。
あとは「タスクシステムはもう古い」とかいう珍発言もたまに見る。

ゲームファン用語というより知ったかワナビー用語だろ。

143 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 00:01:20 ID:cgQq0Bo+]
ローカル定義だけ葬るのはもう無理か。
ゲームエンジンでいいよもう。

というわけで関数アドレス+汎用ワークメモリのリンクリストが〜とか
どうでもいい仕掛けを車輪の再発明して延々その素晴らしさを語ってる
オナニストが作ってるのはセンズリシステムでいいよもう。

Irrlicht使おうぜ。



144 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 00:16:48 ID:65Qprn+K]
俺はCrysis Engineを触りたい。

145 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 02:10:06 ID:cGzgTfv7]
しかしデリゲートをベクターコンテナにぶち込んで使う

146 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 03:42:12 ID:RUahNebB]
オレはIrrlichtに自前のタスクシステムを乗せるよ。

147 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 07:42:04 ID:ZqUifK9K]
関数ポインタだとか汎用ワークメモリだとかは
初心者にとって勉強になるから再発明上等なんだが、
その程度のレベルの奴が悟った気になって
中途半端な理解で解説を書いて広めるからタチが悪い。

148 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 11:42:46 ID:EI0MmUU2]
>>147
そこまでおっしゃるんなら
是非みんなの目が覚めるような解説サイトを作ってください
ID:ZqUifK9K先生!

149 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 12:17:21 ID:ohBEpQ/x]
タスクシステムを紹介してる人を叩くスレはここですか

150 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 13:19:25 ID:J62A1B0A]
また>>82が来たのか

151 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 13:44:21 ID:EI0MmUU2]
また>>90が来たのか

152 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 14:51:16 ID:ignHfO5a]
確かにタスクシステムは可用性の高いやり方ではあると思うけど、
実態は単なるリストのデータ構造なので(勿論それから拡張された高度なものも存在するけど)、
「タスク」やら「システム」やらの単語は不似合いに思えないことも無い。
そしてそういう単語で付け上がるような中二病野朗は非常にたちが悪い。
死んでくれとは言わないけど、考えを改め直して現実を見て欲しい。

153 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:30:26 ID:RUahNebB]
というかC++でいうオブジェクトをリスト管理するのが
タスクシステムなんだよ。

アセンブラだけで開発してた頃に使ってたから割と
いい発明だったんだよね。



154 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:38:17 ID:EI0MmUU2]
>>153
>というかC++でいうオブジェクトをリスト管理するのが
>タスクシステムなんだよ。

なんかちがわね?

155 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:39:36 ID:VkPjbBgj]
もうタスクじゃない別の呼び名をつけてあげたら?

156 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:44:06 ID:KK8Da6ng]
重要度思考設計とか?

157 名前:名前は開発中のものです。 [2007/04/20(金) 21:32:26 ID:fGL33psr]
タスクシステムを古いとか古典とかいう人は、
どうやって実装しているの?
XXというフレームワークとか開発キットをつかっている、という答えでもいいけど、それ自体はタスクシステムをつかっていないの?

あと、たとえばマルチスレッドを使うとタスクシステムはいらなくなる?





158 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:05:53 ID:UGzQxCti]
>>157
その前におまえの脳内定義上のタスクシステム
について説明したまえよ。

>それ自体はタスクシステムをつかっていないの?

お前の言うそのタスクシステムとやらの定義によるな。

>あと、たとえばマルチスレッドを使うとタスクシステムはいらなくなる?

お前の言うそのタスクシステムとやらの定義によるな。
で、お前の定義したタスクシステムを前提にした場合の
上記質問事項についてのお前の経験に基づく見解を聞かせてくれよ。

159 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:42:39 ID:RUahNebB]
便利なものはすべてタスクシステムだ!

160 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:49:49 ID:cGzgTfv7]
マルチスレッドプログラミングもタスクシステムの一種?

161 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:53:22 ID:KC13gbVA]
Q. タスクシステムって何?
A. 言語仕様の進歩により実体を失なうシステムのこと。

162 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:55:47 ID:0083p4+e]
関数ポインタ+汎用ワークのリンクリストをタスクシステムと呼ぶのは個人の自由だし
木製骨格+羽布張り+マキシム機関銃の飛行機をステルス戦闘機と呼ぶのも自由だけど
声を大にして言うとキチガイと思われるから気を付けようね、というごく基本的な話。

163 名前:90 mailto:sage [2007/04/20(金) 23:58:56 ID:0083p4+e]
>>151
それは被害妄想だよ。



164 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:01:14 ID:ohBEpQ/x]
ガンダムみたいなIDだな

165 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:18:39 ID:b9DOuvNS]
>>118
遅レスでやんすが
熱い論争が巻き起こるものの、結局結論が出ないので不毛この上ない
という意味でござんす。

166 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:26:45 ID:ohzUMwwU]
リフレッシュレートは、3倍して計算というナイスな結論が出てた様な気がするけど、
あの後まと話がこじれたのかいな?

167 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:57:21 ID:Cncyo4d6]
だいたい液晶はリフレッシュしてないし。

168 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 03:08:49 ID:96E91bg8]
現状を憂うのは大変結構な事だけど
意見をまとめたコラムをどっかに投稿したり、サイト作ったりしないの?
掲示板の書き込みを追っていくのは辛い

169 名前:名前は開発中のものです。 [2007/04/21(土) 08:33:00 ID:qfI0z2jN]
>>158
たとえば↓この本で書かれているタスクシステムを「タスクシステム」と定義してみるとどうだ?
cgi32.plala.or.jp/higpen/book/shtPro/shtPro.shtml




170 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 09:31:26 ID:rc3MbHen]
>>169
その本を書いた松浦健一郎が大混乱の元凶なわけだが

171 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 09:40:41 ID:FI1lzfn8]
で、その本の中では何て定義してるの?

172 名前:名前は開発中のものです。 [2007/04/21(土) 10:35:11 ID:qfI0z2jN]
>>170
おいおい、やっとタスクシステムを定義しようと努力して、これから
マルチスレッドとか他の実装方法との比較を論じようとしているんだから、
「大混乱」とか結論ありきのワンセンテンスメッセージはやめようよ。

おれは、この本のタスクシステムをみたとき、ふつうにマルチスレッドでキャラを動かせばいいじゃない
(わざわざオブジェクトをNEWしてリストに組み込んでいかなくてもいいのに)
と思った。
開発効率とか品質(スピード)などからの面でどのくらいメリットがあるのか、疑問におもった。

その辺の意見をききたい。
自分ではこの本と同じものをマルチスレッドで書いたりする余裕もないからね。

173 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 11:09:21 ID:laYGd4sA]
読み進めたけど話が進まないね
タスクシステムってなんなのか調べてみた

ttp://www5f.biglobe.ne.jp/~kenmo/program/task/task.html
ttp://www5f.biglobe.ne.jp/~kenmo/program/task/task2/task2.html
ttp://homepage3.nifty.com/moha/prog_task.html

わからなかった


                      糸冬 わ  り



174 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 11:17:18 ID:Cncyo4d6]
>>172
そんなことしたら、シングルコアCPUなら普通に動くけど
マルチコアCPUにするとまともに動かない素敵なシステムになりますよ。

175 名前:名前は開発中のものです。 [2007/04/21(土) 12:15:44 ID:3GQIcX1J]
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。

176 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 13:08:27 ID:laYGd4sA]
>>175みたいなネトウヨきもいな
言われなくても分かってるだろ普通に・・・
今まで無知だった自分への恥隠しのつもりか何かか?

177 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 13:13:02 ID:qfI0z2jN]
>>174
つまり、マルチスレッドだとマルチコアCPUの場合、まともに動かなくなる。
軽量スレッドであるタスクシステムだと、CPUのアーキテクチャに依存せずに動作する。
以上のようなメリットがタスクシステムにはある、ということだな。

178 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 13:14:51 ID:Cncyo4d6]
ぜんぜん違いますよ。タスクをマルチスレッドで実装するのは
難易度が高い。

その辺を認識せずにスレッド使えばいいとか言ってるアホには
無理なんじゃねってこと。

179 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 14:16:13 ID:sEVsPTrc]
古典ゲームタスクシステムはリストの任意位置にロギングタスクを仕込むなど
リソース最適化のためのロジックを入れやすい強みがあるからダメダメってわけでもない。

180 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 15:28:49 ID:iSBz72w9]
>ID.qfI0z2jN
ねー、だから>>169の本の中でのタスクシステムは
どういう定義になってるんだい?

181 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 19:46:23 ID:445SE7r4]
今求められているもの

・タスクシステムの定義(俺の見る限りではワーク領域を持ったリスト構造のことを指している事が多い木がする)
・なぜワーク領域のあるリスト構造をタスクシステムと呼んではいけないのかに対する回答
・結局どうやって実装するのがいいのか(一概には言えないっていう答えが妥当ならそれでスレ終了)

182 名前:名前は開発中のものです。 [2007/04/21(土) 22:03:55 ID:qfI0z2jN]
>>181

タスクシステムの定義は>>169のリンク先からサンプルコードをダウンロードしてList3-1と3-2だけみればわかると思う。
List3-1はタスクの構造体、List3-2はそれの実行ルーチンをあらわしている。余裕があったらC++の実装版もみてみるといい。

二番目の回答はどうでもいいような気がする。

で、3番目。
「一概には言えない」でもいけど、マルチスレッドとの比較というテーマなら具体的に比較できると思うぞ。
いまのところCPUをシングルコアという条件で限定すればタスクシステムは、マルチスレッドに対してメリットがあるという答えはでてきてない。

でもマルチスレッドはリソースを多く消費しそうなきがするんだよな。タスクシステムは軽量の自家製スレッドだから
スピードも早くメモリ消費も少ないというレポートがあってもいいように思うんだが。

183 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:08:52 ID:6oOZ9JbV]
>>181
>・タスクシステムの定義(俺の見る限りではワーク領域を持ったリスト構造のことを指している事が多い木がする)
狭義
固定サイズのワーク領域を持った単方向リスト構造でサブルーチンの交換が可能なもの
ギャラクシアンの実装を原典とする

広義
ワーク領域を持ったリスト構造
ギャラクシアンの設計を原典とする

>・なぜワーク領域のあるリスト構造をタスクシステムと呼んではいけないのかに対する回答
ほかの用語(↓)と混同するから
プリエンプティブマルチタスクとは 【preemptive multitasking】 - 意味・解説 : IT用語辞典 e-Words
e-words.jp/w/E38397E383AAE382A8E383B3E38397E38386E382A3E38396E3839EE383ABE38381E382BFE382B9E382AF.html

>・結局どうやって実装するのがいいのか(一概には言えないっていう答えが妥当ならそれでスレ終了)
一概には言えない
……が「あのゲームを俺が実装するならこうするね」的な話は有意義だと思う
もし俺が2DSTGを実装するならリストよりツリー構造を使うよ
親子関係をもつキャラクタを適切な順番でまわすのに適しているし
キャラクタのグルーピングがしやすいので敵キャラだけ舐めたいときなどに無駄な処理が減る



184 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:20:34 ID:Ii4A4TL3]
C++ で言えば、毎フレームの処理を実装したクラスインスタンスのリストだろ?
そんなの画面ごとに std::list<Task*> なりで持てばいい。よく使うなら適当に
ラップしたクラス用意すればいいだろう。

「タスクシステム」とか呼ぶ人は、何でもかんでもグローバルだったり、
プログラム全体にこの構造を当てはめる傾向があって嫌い。

185 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:23:05 ID:96E91bg8]
>ほかの用語(↓)と混同するから
JAVAスクリプトみたいなもんか

186 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:37:57 ID:sEVsPTrc]
「タスクシステム」
飽くまで全てをひとつのリストに押し込めようとする努力が多くて、
手段が目的となってる感のあるアプローチのこと。

187 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:00:51 ID:SVESfasi]
マルチスレッドで効率よく使えない技法なぞ過去の遺物じゃ

188 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:31:08 ID:useOh8AV]
>>182
おいおいサンプルのダウンロードなんかできないぞ。

189 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:53:25 ID:useOh8AV]
>>182
>マルチスレッドとの比較というテーマなら

どういう比較をするつもりなのか知らないが、まさかとは思うが
お前の定義するそのタスクシステムのタスクひとつひとつを
スレッドに置換するような形で比較するのではあるまいな。

>タスクシステムは、マルチスレッドに対してメリットが

お前の定義するそのタスクシステムとやらは
マルチスレッドとは排他的な存在のようだから
やはり上記の「まさか」は当たっているということか。


>タスクシステムは軽量の自家製スレッドだから




タスクシステムとマルチスレッドをなぜ排他的な存在


いまのところCPUをシングルコアという条件で限定すればタスクシステムは、マルチスレッドに対してメリットがあるという答えはでてきてない。

でもマルチスレッドはリソースを多く消費しそうなきがするんだよな。タスクシステムは軽量の自家製スレッドだから
スピードも早くメモリ消費も少ないというレポートがあってもいいように思うんだが。


190 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:55:49 ID:useOh8AV]
上は送信ミスだ。

>>182
>マルチスレッドとの比較というテーマなら

どういう比較をするつもりなのか知らないが、まさかとは思うが
お前の定義するそのタスクシステムのタスクひとつひとつを
スレッドに置換するような形で比較するのではあるまいな。

>タスクシステムは、マルチスレッドに対してメリットが

お前の定義するそのタスクシステムとやらは
マルチスレッドとは排他的な存在のようだから
やはり上記の「まさか」は当たっているということか。


>タスクシステムは軽量の自家製スレッドだから

それならファイバーやマイクロスレッドと呼べばいいんじゃないか。

191 名前:名前は開発中のものです。 [2007/04/22(日) 01:11:41 ID:QxI8Jcnw]
だいたいわかった。

>>184
のように、タスクシステムというのはふつうに使われている。
ただし、一部(多数?)の人は、わざわざタスクシステムなんていって仰々しく議論することに違和感がある。
ちなみにファイバーとかマイクロスレッドなどと呼べばまだましらしい。

192 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 03:36:04 ID:gWESM4cO]
>>191
それなんかちょっと違和感が.
前の方はあんま読んでないんだけど,自分の感覚では以下な感じ.
fiberは「非時分割で非プリエンプティブ(協調型)なスレッド」
タスクシステムは「エージェント集合でゲームを作るシステム」
現実には同期問題からエージェント=fiberの実装が多いけど,
スレッドでも同期エージェントを作れば,タスクシステムは成り立つと思う.

fiberの場合のみに限定したとしても,fiberは実装方法であって,
「エージェント集合」が肝であるタスクシステムとは別だと思うんだけど.

#名前付けるほどのことか,という話には納得する面もあるんだけど,名前なんて大体そんなもんだと思う.
#あとワーク領域がうんたらって話は化石過ぎるんじゃないかしら.

193 名前:名前は開発中のものです。 [2007/04/22(日) 04:51:35 ID:YZWy+Lh2]
>>172
> おれは、この本のタスクシステムをみたとき、ふつうにマルチスレッドでキャラを動かせばいいじゃない
無理無理w
キャラクター1000体表示したら、1000個マルチスレッド動かすのかy。

しかも、全部好き勝手、平行に走るんだぜ?
1000体分同期取るんだぜ?





194 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 08:07:47 ID:KD72KCOk]
素朴な疑問なんだけど、ゲームって条件判断つきのアニメだよな。
パラパラアニメに分岐があるだけだよな。分岐ってか、インタラクティブってか。
入力があって、計算して、描画、音再生して、その繰り返し。たかが、それだけなのに、
なんちゃらかんちゃらカタカナが飛び交うってのも、不思議だと思った。
きょうびのパソコンなら、if文が1万あっても、フレームレートへの影響って
微々たるものではないかと、察するのだが、推測なので、実際分からんけど、
感覚的には、そんな感じで。
だからさ、お前ら、アポだな、と思った。いや、アポなのは俺かも知れないけど、
正直な気持ちとして、そう思ったのだ。


195 名前:名前は開発中のものです。 [2007/04/22(日) 08:29:39 ID:YZWy+Lh2]
誤爆?

196 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 08:36:23 ID:U5lotNIv]
ヒトのやってる事にケチつけないと気がすまないのか?
マジメにやってる奴を馬鹿にするレスは不愉快なだけ。
だいたいここはゲームの技術について語る場所だ。
なんとなく思っただけの事ならチラシの裏にでも書いてろ。
俺の言いたいのは以上だ。
もう二度とつまらん書き込みするなよ。

197 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 09:25:02 ID:ridILpBz]
>>196
おまえもなー


198 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 09:38:30 ID:KD72KCOk]
ぶっちゃけ、俺はタスクシステムが分からない。>>123みたいな実装だな。
つーか、それで、何が問題なのか分からないんだ。具体例はないし、どこ
ぞの信者が、わけわからず布教してるだけなスレだな。いくら、あーたら、
こーたら、書き連ねても、何の生産性もないよね。123がもっと、詳しくそ
の説明ってか、具体的にどう、メガマウスなのか、コードを交えて、解説を
やって欲しいけど、名無し掲示板だと、どうにも議論的な発展がないな。い
ろいろな発言があるようで、大して、書いてる人はいないなら、HNがあるほ
うが、放置ってか逃亡が認識できて終わりが分かるのでいい気がするっす。


199 名前:名前は開発中のものです。 [2007/04/22(日) 10:24:01 ID:QxI8Jcnw]
>>193
サンキュー。やっと具体的な議論ができる発言がでてきたな。
つまりタスクシステムは、

 「同期を取る必要がある数1000にものぼるオブジェクトを対象とする並行処理(1つの処理は短時間)を、
 少ないリソースで実現させることができる。」

というメリットがあるわけだ。
それをマルチスレッドやったら重過ぎると。
たしかに「組込みマルチタスキングプログラミング」という本をよむとマルチタスキングの4つの基本要件として、
@コンテキストスイッチング、Aタスク間通信、B実行優先度、Cタイミング制御
があげられているがこれらを少ないリソースで実現でき、かつ構造化されている手法がタスクシステムということだな。

200 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 14:33:04 ID:lvPS3FuZ]
タスクシステムを構築するのに、内側でマルチスレッドを使っても問題はない。
よってリソースがどうこう言う利点は当てはまらない。
結局は実装方法によりけり。

201 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 14:52:48 ID:f5nllPrq]
>>194>>198は昔からいろんなスレで
阿呆なことばかり言っている奴なので気にしない方向で

202 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:05:20 ID:kFHvjrd1]
所謂タスクシステムとは団子の数が増減する串団子みたいな物だよな

●→先頭
◎→しんがり
○→プレイヤーオブジェクト

ゲーム開始時はこんな感じ
●○◎

敵キャラやらアイテムなどのオブジェクトが必要に応じて生成されると
●○△△△◇×△◎

原始的な手法と言うと語弊があるが、所謂配列型のシステムが
常に一定のメモリを使用するのに対して
所謂タスクシステムは必要な時に必要な分のメモリしか使わない
リソースを使いたい放題の富豪的なプログラミングが許される今となっては
積極的に使用する意味はない

203 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:07:29 ID:gWESM4cO]
>>200
自分もそう思うんだけど,
このスレ的にはfiberな古典実装のみを扱うのかな?

>>199
間違いでは無いと思うんだけど,視点がちょっとずれてる気がする.
それはスレッドとfiberの対比に近くて,利点としては副次的なものじゃないかな.
タスクシステムはエージェント(タスク)集合にすることで
エージェントごとのコードを1箇所に集められるとか,依存性から実装を取り除けるというみたいな,
所謂OO的な利点が主なんじゃないかしらん.



204 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:44:05 ID:KD72KCOk]
富豪的プロぐらっむって、他に、学術的な呼称はないの?


205 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:45:03 ID:CSfmZnZe]
>>203
タスクシステムというとなんとなくノンプリエンプティブな気がする。
現在のOSが持ってるスレッドはプリエンプティブだから、
OSの用意したスレッドでタスクシステムを実装するのは不便な気がする。

マルチコアCPUで高速化するために、複数のタスクシステムを
マルチスレッドで並列実行とかならありだと思うけど。


206 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:00:54 ID:29CA+INJ]
PCゲーの場合、CPUコア数なんてばらばらなんだから
スレッドプールでごにょごにょってのは
frame per scondの存在しないゲームくらいでしか有効じゃないと思う

207 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:06:58 ID:4Cp/kF21]
実際に実測して検証したわけじゃないけど

なんとなくポインタ使ったリスト形式のタスクシステム?(名前が悪い!w)
が速いような気がするから1フレーム(60FPSなら16ms位?)におさめるのに性能を重視する
ゲームで使われてるんだと思います

ていうか俺はイメージで使ってるw
なんか、new,deleteとか遅いイメージあるし。
ましてやstdなんてごにょごにょ・・・



208 名前:名前は開発中のものです。 [2007/04/22(日) 16:14:42 ID:YZWy+Lh2]
>>200
ちげーよw
拡大解釈すなw
本来のタスクシステムの話してんじゃねーよ

少なくとも、このスレのタスクシステムはゲームでの古典的な擬似タスク(もうこの単語も鼻水でるが)の話。
だから、基本マルチスレッドは使ってない。


209 名前:名前は開発中のものです。 [2007/04/22(日) 16:17:57 ID:YZWy+Lh2]
>>207
実際に動的生成で、速度駄目かどうかってのは、計った方がいいよ。
動的生成の方が楽できるんだし。

はっきりいって、ゲームによる。キャラクターが少ないなら、動的でいい。
パーティクルとかは、さすがに、動的生成でもプールするけど。


もちろん、高速なメモリマネージャを使うのを前提だけどな・・・


210 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:27:38 ID:4Cp/kF21]
>>209
動的に生成したほうが手軽だし、リソースの管理にしたってクラス作ったほうが楽なのはわかってるけど

なんかゲーム作成となると古典的なCの手法の方が速いような気がするんですよね(これもイメージだけど)w
ちなみにゲームじゃなけりゃ。俺もstd::vectorとかclassとか使いまくります。

まあ、やっぱり一番よいのは実測して問題ない方法を使うことなのかも・・・


211 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:36:46 ID:KD72KCOk]
これは具体的だね。

mkmqwerty.hp.infoseek.co.jp/programing/tips/tips_index.html
「なんだか煩雑なソースになってきました。 実際にはこれに加えて、タイトル画面、
エンディング、スタッフロール等の分岐があり、敵の種類ももっと多いでしょう。 上
記のようなソースでもゲームを、とりあえずつくることはできますが、ソースが読み
づらく管理が難しいです。 そこでタスク処理と呼ばれるものを導入します」

俺は、上記のようなソースでも、作れる。
だから、タスク処理いらない。
なんだ、タスクって、逃げかよ。





212 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:39:05 ID:O3yavdGP]
動的に領域を確保するやり方のなにがいけないの
ゲームによるけど動的に確保するのも悪くないだろ

(いまここ)
やっぱり一番良いのは速度計ったりして検討した方法だね

それならPCごとに差が出てもおかしくないだろ できるだけ汎用性のあるやり方をするべき
領域確保の失敗処理も最初の一回で済むし、逐次的な動的確保より
やっぱりタスクシステム(鼻水でる単語だけど)の方が良いね

(一番最初へもどる)

213 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:43:49 ID:O3yavdGP]
>>211
かるいミニゲームとかならそれで十分かもしれないが、
巨大なものを組むならお前の言ってるつくり方ではまず難しすぎる。
それに複雑な面を組むときは、1フレームごとに数百、数千のifを見なくちゃいけないのか?
いくらなんでもそれは馬鹿馬鹿しい。

というかその言い分はなに?タスク処理からの逃げかよ、と突っ込まざるを得ない。



214 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:54:16 ID:4Cp/kF21]
>>212
うは!不毛だ

コンシューマ機なら一定の性能だけど。。。
パソはね・・・・


215 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:55:46 ID:KD72KCOk]
>>213
CPUからして見れば、数千のif文なんて、目くそじゃんw
人間的には、当該コードだけ眺めればいいわけで、頭からけつまで見る必要
ないしw

「富豪VSタスク」戦争の勃発ですね。(むふー)


216 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:08:03 ID:tSd7SPRg]
ここでいわれているタスクシステムか、
もっと素直なやり方しか知らないってのが大きい気がする。

ってか、他の方法にはどんなのがあるの?

217 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:11:10 ID:O3yavdGP]
ゲームループ中で、膨大な数の弾や敵機の存在フラグをifで見るのは愚行というもの。
ある程度まともで、リアルタイムなレスポンスが要求されるゲームなら、動かすべきものは優に1000を超える。
そしてそういうものはfpsも60以上が相場なので、画面上に何も無かったとしても、
単なる内部処理で1secに60000という条件分岐を処理しなければならない。
条件分岐のコストというのは非常に高く、昔は、1secに60000まではないとしても多くの条件分岐を処理させたのでは
パフォーマンスに関わることが多かった。
そして今でも、高速性が求められるものでは条件分岐のコストを考慮せざるを得ないので、
タスクシステムの需要も無いわけではない。
処理の負担を考慮しない無計画な設計というのは、巨大なゲームを組む時は許されない。
コード全体が失敗した設計に依存してしまうことが多く、取り返しが付かなくなってしまうからだ。
というかそろそろID:KD72KCOkはあぼーんしておいたほうがいいな。馬鹿にもほどがある。どうせ釣りなんだろうが。

218 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:26:48 ID:KD72KCOk]
>>217
たかたが、スーパーマリオのコピーアンドソースも見当たらない、低レベルな
ゲ製作技術板で、そんなこと言われてもなぁ。


219 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:29:32 ID:5nxQbdiI]
タスクシステムで分岐の負荷が消えるかのような書き方は
感心できないね。関数ポインタで分岐してたら根本的には
解決してないだろ。

存在フラグなんてものを全対象分用意した場合にくらべて
処理しない場合の無駄な分岐は削除できるけど、
それは C++ での仮想関数で十分実現できるよね?

220 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:44:24 ID:BUzInjQ8]
多人数で開発する時にシステム化しておくと楽っしょ?
戦闘シーンやフィールド・メニューやショップの処理も、共通のルールで相手がどんな処理(シーン)か知らなくても自由に以降できる汎用性の高いシステムで、わりかし簡単なのがタスクシステムなんじゃないの?
ゲームのオブジェクトだけじゃなく、当たり判定からタイムカウントもシーンの管理も全部タスクに突っ込めるのは楽でいいよ。
いまならそれを発展させて、ツリーでもなんでも好きに作ればいい

221 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:45:43 ID:BUzInjQ8]
あと、処理の順番も優先度で明確に出来るし、フレームごとのきっちりしたエフェクトするのも向くかも
いまのフレームレートに依存しないタイプのゲームではどうなのかわからんけど

222 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 18:06:34 ID:v/ich/HT]
>>220
>共通のルールで相手がどんな処理(シーン)か知らなくても自由に以降(移行?)できる

タスクシステムじゃなくてタスクパターンとでも呼んだ方がわかりやすい気がする。
主観だがシステムというともう少し硬い機械よりなものをイメージするんだよね。

223 名前:擬似タスクw [2007/04/22(日) 18:17:11 ID:aF9z9yRP]
「リフレッシュレートに関する論争」
「タスクシステムに関する論争」

うはwwwwゲームにおけるデータ構造・クラス設計・パターンwwwwwww



224 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 18:30:35 ID:gWESM4cO]
>>ID:O3yavdGP,ID:KD72KCOk
動的/静的とか富豪/貧乏みたいなコスト面で見る事自体が本質を見誤ってる.
>>211の引用の通り,
べた書きは煩雑で管理が難しい->タスクで処理,依存性を分離すると楽
という話.

>>221
>あと、処理の順番も優先度で明確に出来るし、フレームごとのきっちりしたエフェクトするのも向くかも
優先度による同期の代わりに「キャラ全員の移動完了を待って当たり判定タスクを起動」するような同期タスクでもOKでしょ?

225 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 18:41:05 ID:3Cbey4i0]
>>217,220
多態の一言で済む話をタスクだなんだとゴチャゴチャ言ってるから
低レベルとか古臭いとか言われるんだよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<120KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef