- 1 名前:名前は開発中のものです。 mailto:sage [2009/12/13(日) 18:11:06 ID:ESt66YNz]
- タスクシステムについての議論、相談、質問、雑談などのスレです
part8 pc11.2ch.net/test/read.cgi/gamedev/1250678891/ part7 pc11.2ch.net/test/read.cgi/gamedev/1241670786/ part6 pc11.2ch.net/test/read.cgi/gamedev/1238725539/ part5 pc11.2ch.net/test/read.cgi/gamedev/1234977661/ 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」と明示してください そうでない場合はカスタム版であることを明示してください ・人を憎んで言語を憎まず
- 274 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 13:26:35 ID:KTZGeiZi]
- タスクシステムはデザインパターンではなくアーキテクチャパターンだろうね。
PACアーキテクチャなんてタスクシステムの親類みたいな感じだし。 アーキテクチャパターンレベルの話にデザインパターンレベルの具体的な実装を 求めても、いろんな実装が出てきてまとまらないのは当然だな。
- 275 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 13:26:49 ID:2Vb1mFFo]
- ここまでタスクシステムへの明白なメリット明言なし。
適切な特性に適切な命名がなされることは、 皆さんご存知の通り、設計としての良い指針。
- 276 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 13:51:16 ID:bsBl9MV5]
- >>274
アーキテクチャパターンでもいいがサンプルは書けるでしょ。 メリットとそのメリットの明確化のためのサンプルがない用語に意味はあるの? 最悪メリット・目的だけでもあればまだ話はできるが。 それすらもないならアーキテクチャパターンですらないのではないのか? PACアーキテクチャのどの部分がタスクシステムとの類似点なの? 「定期的に処理を回す”何か”」より具体性が後退してると思うんだけど。 MVCといわないのならこの差に特徴があるの?そんな議論もあまり見たことないが。
- 277 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 13:56:40 ID:KTZGeiZi]
- 今までいろいろ明言されてるタスクシステムのメリットとデメリットって
PACアーキテクチャのそれとみごとにかぶるな。 タスクシステム≒PACアーキテクチャのゲーム業界方言 と言っても説明が通じそう。 で、実装レベルの理解が限界の一兵卒には設計レベルのメリットは目に入らない、 という感じか… このスレの現状が見えてきた気がする。
- 278 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 13:57:59 ID:bsBl9MV5]
- >>277
なぜ具体的に語れないの?
- 279 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 14:09:25 ID:KTZGeiZi]
- 具体的にってのは一兵卒からみた戦術的な話だろう。
銃の上手なうち方みたいな。 アーキテクチャは戦術じゃなく戦略の話だから そのレベルの具体的な一例を戦略の話に求めるのがそもそも変なんじゃないのかな? ちなみにアーキテクチャパターンなら、それを実装するデザインパターン例 の組み合わせが載ってたりするから、そこまで噛み砕いて具体例を要求すれば デザインパターンレベルでの実装例は出せるかもね。
- 280 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 14:11:15 ID:bsBl9MV5]
- >>279
うん君のレスは中身がないよね >MVCといわないのならこの差に特徴があるの? まずこれに答えてみてよ。 >アーキテクチャは戦術じゃなく戦略の話だから じゃあきみは一平卒にどうやってそれを伝えるの?
- 281 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 14:14:20 ID:LS2EE4Eu]
- >>279
一平卒に分からなくてもかまわないから、 タスクシステムがどういう「戦略」なのか書けよ。 あれか?無能下請けを閉じ込める檻ってやつか?
- 282 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 14:26:18 ID:2Vb1mFFo]
- >>279
具体的な戦略を語ってほしい。 それこそが求められている。 タスクシステムの具体的な何かを知っている人は、 このスレで問い詰められると、いつも最後には逃げる。
- 283 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 15:02:35 ID:KTZGeiZi]
- >>280
MVCとPACパターンの違いをきいてるのかな? >PACにおけるCは、GUIに限らずMとVを協調させるという責務を持っている。またPACは明示的に階層構造を定義しているという点でMVCと異なる。 だって。 タスクシステムと違ってアーキテクチャパターンは明確な定義があるからやりやすいな。 あとネットで具体例を出してって本職には難しいんじゃないかな。 仕事のコード出したら大問題だし、説明のためだけにサンプルゲームつくるような親切な例は >>2 ぐらいじゃないかな。 それで飯食ってる人間に、説明のためだけに無給でコード書くこと要求してそれが通らないと逃げるなって言われるのは… さすがに甘えすぎじゃない?と思う。 ほんとにやる気があるならGemsのactor周りとかアーキテクチャパターンとかある程度の基礎を自分で勉強して、 それでもわからない箇所があれば自分から具体的な質問を出す方が現実的かと。 質問が具体的なら返答も具体的になるだろ。 って何か「教えて君」に話しているような内容だな、これ。
- 284 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 15:11:39 ID:bsBl9MV5]
- >>283
>だって。 ようはMVCとPACの違いを意識したことはなかったわけね。 で >タスクシステム≒PACアーキテクチャのゲーム業界方言 >と言っても説明が通じそう。 それはないだろう。 君が >タスクシステムのような統一処理は必須 っていってるけどじゃあタスクシステムは何なのってきくと >タスクシステムと違ってアーキテクチャパターンは明確な定義があるからやりやすいな。 じゃあ「タスクシステム」というものはなんなの? これも答えず >仕事のコード出したら なんて誰も言ってないことを言い訳するし>>2の内容にすら触れない >さすがに甘えすぎじゃない? 何もいえない奴にどう甘えろって言うんだ? >って何か「教えて君」に話しているような内容だな、これ。 君ののレスから君が何か有意義な考えを持ってるようには読み取れないよ
- 285 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 15:24:05 ID:2Vb1mFFo]
- タスクシステムについて、明確な説明をすることは、
とてもとても大変で、とてもとても難しいことのようだ。 MVCのメリットなら一言で言うと、 俺はモジュール性が高まることにあると思う。 MがVもCも知らなくていいように作れるし、 ユーザからのinputはCが、ユーザへのoutputはVが担う、 という、名前と一致した明確な役割分担が美しいと思う。 交換可能なままで、各役割のクラス階層が育っていくので好ましい。 また、GUIでよくあるインタラクションへ、 ひとつの解をしめしてみせたという、 設計例の共有という意味でも有意義だったと思う。
- 286 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 15:25:54 ID:KTZGeiZi]
- >>284
ずいぶんつっかかるな。 >それはないだろう。 そう言い切れる根拠を出してくれないかな。 明確に言い切れるということはタスクシステムに関して明確な定義があるということだろうし。 それが皆の納得できるものならこのスレも有意義になるんじゃないのかな?
- 287 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 15:44:52 ID:bsBl9MV5]
- >>286
結局きみは自分にカードがあるように見せかけるけど一枚も場に出さず人にカードを切れというだけなんだよな。 PACアーキテクチャはMVCとの差を意識することで意味のある概念だろ。 だから後発にもかかわらず存在している。 つまりPACアーキテクチャはMVCとの差を意識することによって意味のある用語となっている。 PACパーキテクチャの方言という説明が有意義だと思うのなら一般にどう使われてるか配慮すべき。 MVCの議論はこのスレにもあった。 それも意識せずにPACアーキテクチャと比較するのであれば そもそもその概念を有意義に考察しているかどうか疑問に思わざるを得ない。 そもそも >明確に言い切れるということはタスクシステムに関して明確な定義があるということだろうし。 これは君が答えるべきことだから。 君は何を意味しているの? おれは ・「定期的に処理を回す”何か”」 ・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など) のどれのことか具体的にときいてるんだけど。 で「PACパーキテクチャの方言」っていうからどこがそうなのって聞いてるの。 カードがないならないって言えばいい話。
- 288 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 15:57:16 ID:KTZGeiZi]
- >>287
>PACアーキテクチャはMVCとの差を意識することで意味のある概念だろ。 ちがうと思うぞ。PACはMVCとは別概念。 PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近いんじゃない? >これは君が答えるべきことだから。 教えて君に答えなきゃいけない義務なんていつの間に出来たんだろう? 妄想の中?おしえて。 ちなみにタスクシステムに関する個人的な見解は >>272 だ。 ところでカードって何?
- 289 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 16:15:46 ID:bsBl9MV5]
- >>288
お前のレスが>>272で尽きてるならもう>>274以降このスレ的に意味のあることは何もないってことだね。 これすら意味ない。 >PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近いんじゃない? まあもういいけど、これを解釈すれば、 ・階層構造が持てること ・描画がデータを直接参照しない がタスクシステムの特徴ってこととなるけど階層構造はともかく 描画がデータを直接参照しないってすでに「一般的なタスクシステム」をなんら表してないだろ。 でもせめてうえの2つを直接指摘すれば議論にはなったね。 一兵卒に理解できない内容とはとても思えないけど。
- 290 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 16:27:30 ID:2Vb1mFFo]
- ID:KTZGeiZiが断片的に示してくれたタスクシステム像。
>>269 タスクシステムのような統一処理 >>272 ゲームでは必須になる処理 >>274 PACアーキテクチャなんてタスクシステムの親類みたいな感じ >>277 タスクシステム≒PACアーキテクチャのゲーム業界方言 >>288 PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近い
- 291 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 16:37:03 ID:KTZGeiZi]
- 今のタスクシステムって用語はいろんな実装から帰納的に求められた
広い意味を持つ用語だから、具体的な実装の話をしたければ質問側が 具体的な条件を出さないと無意味だね、と。 で実装レベルではないアーキテクチャレベルの話ならPACアーキテクチャ とかが近そうだね、と。 用語のあいまいさの問題と実装と設計と、別々の問題なんだから質問を分別する必要があるんだけどね。 そこが分けられるかどうかが一兵卒とそうでないかの試金石? まぁ何か「意味のあることは何もない」って完結したみたいだからいいか…
- 292 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 16:40:01 ID:Uy/fuKoN]
- 煽ってるつもりが煽られて捨て台詞w
カッコイイ
- 293 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 17:45:29 ID:xSRr2yTP]
- タスクシステムとPACなんとかって別に近くないだろ
もちろん数あるタスクシステムの中にはPACなんとかっぽい構造または機能を持ってるものがあるかもしれないけど
- 294 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 17:47:59 ID:7WekSMc+]
- >>268
やぁ。元気取り戻したようだね。じゃあこれよろしく。>>209
- 295 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 17:50:52 ID:pJxaHfPd]
- >>293
煙にまこうとしただけなんだから触れてやるなよ。
- 296 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 17:52:41 ID:jE2fwQfT]
- >>290-291
自分の考えてる「タスクシステム」とは何かを説明してよ。 たとえを一切使わないで。
- 297 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 18:06:18 ID:c1+fzVK/]
- ID:KTZGeiZiは間違ったことは言ってないんだけど
相手のレベルに合わせた話ができないのは痛いな。 この人部下の人望無さそう。
- 298 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 18:11:49 ID:yxBMV7uM]
- タスクシステムについては結局なにも言ってないからな。
応対はかなりひどいけど。
- 299 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 21:42:39 ID:k3uW8LXB]
- 裸の王様インターフェースの実装がまたひとつ。
- 300 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 22:16:42 ID:B8+fFWBr]
- なんか香ばしいねここ。
>>2の「古典タスクシステム」って、CodeZineのリンクにあるような メモリアロケータまで詰め込んだ「固まり」、でいいの?C++なのにいろいろ 意味のない車輪の再発明しちゃってるような。 それなら、Cライブラリ的な何かが提供するメモリマネージャが貧弱で、 コルーチンすらないような組み込み系で「だけ」なら使えるかもね。 というか、そういう組み込み環境で使われる設計的な何かが「タスクシステム」の正体ってことでいいのかね? (「組み込み環境」は、DS的なもの以下の環境を想定してます。) とすると、そういうもの(「固まり」)は、あくまで組み込みとか貧弱な環境で必要があるもので、 Windows環境で動くゲーム(アーケード含む)とか、ハイエンド家庭用ゲーム機とか、 リッチな環境だといらないよね? いやもちろん、「タスクシステム」にも含まれている処理、たとえば個々のオブジェクトに 処理を回したりすることを提供する「何か」は、環境が変わろうと必要で、そういうのは 各ゲーム会社にあるんだろうけど、 >>2の「古典タスクシステム」を「タスクシステム」である、として説明しているようなページが多い現状で その「何か」を「タスクシステム」と呼ぶのはどうなのよ、と。 もっと言うと、「何か」を「タスクシステム」って呼んじゃっているようなところって、 「何か」に、「古典的タスクシステム」の要素のうち、もう自前で書かなくても済むようなものまで 組み込んじゃってません? いやもちろん、業界内で「タスクシステム」といえば「何か」を指すのが当然だ、というのなら別に 構わないんですが、それにしては「古典タスクシステム」の紹介や実装がWebに溢れているなー、と。
- 301 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 22:45:34 ID:btnS2dkT]
- 結局タスクシステムという名前が好きか嫌いかだけの問題なんだな。
- 302 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 22:49:21 ID:Zyhmmg9i]
- 名前の意味すら不明瞭なのが問題
- 303 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:07:56 ID:FLHL1SSc]
- ここはニートに労働のメリット教えるスレと同じだな。
どんなに説明されようと初めから労働のメリットを認めるつもりは毛頭ないニートと ニートを見下したいだけのリア充の終わり無き戦い。 ID:bsBl9MV5は持論と違うことをいくら説明されても馬の耳に念仏で「何もないってない。意味が無い」と繰り返すだけ。 ID:KTZGeiZiは自分の周りだけの業界常識を持ち出して相手を見下したいだけ。 どっちもどっちだ。 おまえらいいからゲーム作れ。
- 304 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:17:16 ID:bsBl9MV5]
- >>303
>>272でなにかあるってならそうだけど。 きみは>>272からなにを読み取るの?
- 305 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:28:03 ID:jE2fwQfT]
- >>304
>>303のまんま過ぎてワロタ
- 306 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:33:43 ID:bsBl9MV5]
- >>305
>>304 煽りたいだけなの?
- 307 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:42:51 ID:jE2fwQfT]
- >>306
自分の想定しているタスクシステムってどんなの? 状況に応じて違う、とかいうなら、その状況を自分で前提してでもいいから たとえとか無しで自分の言葉で説明してみてよ
- 308 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:48:11 ID:bsBl9MV5]
- >>307
レスをたどってはくれないのか・・・ おれは >・「定期的に処理を回す”何か”」 >・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など) >のどれのことか具体的にときいてるんだけど。 >で「PACパーキテクチャの方言」っていうからどこがそうなのって聞いてるの。 一つ目なら必要な機能だけどこれが「タスクシステム」でいいの? TCBを使って動的な処理順番変更機能を持つものが「タスクシステム」なら その方法にこだわる必要はないと思う。 なので「タスクシステム」を各々どう想定しているか聞いている。 おれは2番目も含めた説を見ることが多いのでそれは必須じゃないと言うのが持論。
- 309 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:56:22 ID:FLHL1SSc]
- >>304
事実を言ってるだけじゃね? あんたの持論とは違うから何も読み取れないみたいだけど そもそもあんた初めから議論するつもりなんて無いだろ 自分の聞きたい答えが聞けるまで人に質問繰り返すだけなんだから >>272こそ>>308の答えそのものなんだが、これ以上何を期待してるのやら こんなところで意地張ってないでゲーム製作にでも打ち込んだほうが あんたにとっても有意義じゃね?
- 310 名前:名前は開発中のものです。 mailto:sage [2010/01/24(日) 23:59:28 ID:bsBl9MV5]
- >>309
うん「タスクシステム」が技術的な実体を持たないというならそれでいいよ。 でも含みを持たせてみたりしてるしそもそも「実装はそれぞれ」だけじゃなんの話にもならないでしょ。 そういっているだけ。 >こんなところで意地張ってないでゲーム製作にでも打ち込んだほうが >あんたにとっても有意義じゃね? これはそうだけどね。これを突っ込む意図は何?
- 311 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 00:21:13 ID:pmo4H81E]
- >>310
>うん「タスクシステム」が技術的な実体を持たないというならそれでいいよ。 あんたのいう技術的な実態って何のこと? タスクシステム並みにあいまいなんだけど >これはそうだけどね。これを突っ込む意図は何? そうだけどね、と納得したならいいんじゃね?あんまり意地はるな
- 312 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 00:28:55 ID:xzx5WVbG]
- >>311
うーん読み取れないものなのかな >・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など) これは違うの? >その方法にこだわる必要はないと思う。 ともいっている。これはあいまいなの? >そうだけどね、と納得したならいいんじゃね?あんまり意地はるな この板一応技術板だよ。実体のないものと結論付けるのはそれなりに意味があるでしょう。 それすら否定するならこのスレにレスする君の意図は何と聞きたかったの。
- 313 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 00:35:39 ID:pmo4H81E]
- あんた笑っちゃうほど>>309のまんまだな
人の質問には答えずに質問返し。そしてものすごい意地っ張り…
- 314 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 00:39:40 ID:xzx5WVbG]
- >>313
>>・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など) >これは違うの? >>その方法にこだわる必要はないと思う。 >ともいっている。これはあいまいなの? これは返答じゃないの? むしろこの返答に答えて欲しいんですが。 質問の意図を確認しながら返答することすら許さないの? >人の質問には答えずに質問返し。 それ俺がそう思っちゃうんだが。
- 315 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 00:40:30 ID:ESuEoHnc]
- >>309
実例を挙げて、具体的に言ってあげたらいいと思うよ。 自分の関わってるプロジェクトを例に挙げて、 こういう要求の時にはこういう処理をタスクシステムと呼んでる っていうのをボカさずに説明してあげるべきだと思う。
- 316 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 01:04:58 ID:pmo4H81E]
- >>314
>これは返答じゃないの? 返答じゃないでしょ。質問でしょ >質問の意図を確認しながら返答することすら許さないの? こっちの質問の答えになってないからね まぁいいや これじゃID:KTZGeiZiと同じ結論のわかってる終わり無き戦いに巻き込まれるだけ なので撤退しますわ 時間は大切にね!
- 317 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 01:08:22 ID:VSiYVhth]
- この機能なんの意味もないってそろそろ認めてもいいと思うw
- 318 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 01:15:12 ID:UpyPZX8b]
- 煽りたいときに意味があるでしょ
>>3は秀逸
- 319 名前:名前は開発中のものです。 mailto:sage [2010/01/25(月) 09:06:17 ID:G4TpJJQM]
- > これじゃID:KTZGeiZiと同じ結論のわかってる終わり無き戦いに巻き込まれるだけ
説明出来ないことを誤魔化すには、その対応は手垢がつき過ぎてる。
- 320 名前:ハード屋 mailto:sage [2010/01/27(水) 21:45:20 ID:1CPLoz/X]
- あーやっぱこういう流れになったか。
なんていうかさ、たとえ、タスクシステムのメリットが出てきたとしても、 「そのメリットに焦点を当てた専用のモジュールを作れば?」 か 「そのメリットが生きる機能に専属でくっつければ?」 で終わっちゃうんだよな。 メモリ管理やオブジェクトの管理をするモジュールがあってもいいとは思うけど、 タスクシステムにくくりつける必要はないし、その方が可搬性が高まる。 Zソートやあたり判定で動的な実行順制御が必要な場合も、 それぞれのモジュールなりエンジンなりにそういう機能を持たせた方が、 これもやっぱり可搬性が高まる。
- 321 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 21:57:51 ID:1CPLoz/X]
- 最小構成のタスクシステムって、動的に実行順序を制御できるだけの代物だと思うけど、
でも、動的なスケジューリングをするからには、その目的が絶対あるはずだろ。 だったら、その目的の機能内で動的なスケジューリングを勝手にやればいい話じゃん。 たとえば、Zソートだったら描画エンジン内で勝手にやりゃすむはなしだし。 動的スケジューリングってことは、それだけ ややこしい わけで、 汎用性を持たせようとして表に出してくる必要はないよな。
- 322 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 22:12:29 ID:1CPLoz/X]
- あと、開発手法としてタスクシステムはどうのこうのってのも出てたけど、
そういう動的呼び出しに頼ったやりかたは、そりゃプラグインなんかで使う増設の手法だ。 ゲームで言えば、ModだよMod。あとから拡張するやつ。 まだリリース前で最終ビルド前なのにModはねぇだろ。 だって、まだ、メインループ部は触れるわけだろ? 拡張拡張の延長でゲーム作るわけ?めんどくせ。
- 323 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 22:18:54 ID:1CPLoz/X]
- プロジェクト管理の面でも、
メインループから明示的に関数なりメソッドなりを呼び出す静的なやり方の方が、 トップダウンで管理しやすいと思うんだがなぁ。
- 324 名前:名前は開発中のものです。 mailto:sage [2010/01/27(水) 23:06:33 ID:8BvS9Ahu]
- 静的のメリットをわかってない奴は多い。違いすらわかってない奴も。
抽象化はメリットがあって初めて必要なもので メリットが小さければ可読性保守性が落ちるだけのことがほとんどということもわかってない奴多い。
- 325 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 01:48:59 ID:ZDsUmlPH]
- >>320
自称ハード屋くんの文章は相変わらず中身がない。批評の対象をきちんと明示していないから。 君が考察し批評している対象物が何なのかきちんと明示してねー、と何度も何度も指摘してるよねぇ。 それはいつ、誰が、誰と、どういう状況で、何を作るために使ったものなんだい?実在するのかい? ハード屋ともあろう者がこの期に及んで「あーあー聞こえない聞こえない」で押し通すはずないよねぇ まさか脳内で生成した何かについてあーだこーだ自問自答してるわけもんねぇ さぁ、さっさと>>107の質問に返答してくれ。な。待ってるんだよ 君は、使ったこともない見たこともない対象物についてあーだこーだ薀蓄垂れる知ったかゲハ厨 ではないと俺は信じてる
- 326 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 02:01:55 ID:+US4i3bi]
- どっちが中身がないのだか。
- 327 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 02:26:16 ID:ZDsUmlPH]
- 前スレで彼の妄想の産物かと疑いたくなる曖昧な批判対象に付き合い
ESPを駆使して可能な限り具体的に書くよう努めてきたので勘弁してね 彼の批判する謎のタスクシステム。それが一体何でどういう状況でどう使われ 何が糞だったのかを彼が書かない限りもう駄目だと思うんだ
- 328 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 02:39:33 ID:3dunImPJ]
- もー書かなくていいよw
だってこのシステム存在価値ないじゃん そろそろ気がつかねーと駄目だろ やっぱ>>3は優秀だな
- 329 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 02:41:16 ID:ZDsUmlPH]
- 例えば5万円未満で買い揃えられるローエンドのPC、例えば
最底辺のAtomネットブック、で60[fps]でヌルヌル動く程度の こういう同人STGをVS2008EE(のC/C++)+DX9で作ったけれど Codezineみたいな組み方って何でここをこういうふうにするかな なんでこうしないのだろうか、とか。これくらい書けるでしょ。普通。 なぜ彼は書けない?おかしいだろ。前スレからの疑問 彼の批判には、具体的なゲームの仕組みの切れ端すら出てこない。 不自然なくらい綺麗さっぱり無い。不思議だよねぇ おやすみ
- 330 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 02:48:34 ID:+US4i3bi]
- >何が糞だったのかを彼が書かない限りもう駄目だと思うんだ
必死さが伝わってきて満足です。
- 331 名前:名前は開発中のものです。 [2010/01/28(木) 03:07:35 ID:wWgILMy0]
- 自称ハード屋は自分が作り出した敵のイメージと戦ってんだよ。
みんなの前でシュッシュッてやってみせてるシャドウボクサーが呟きました 「こいつ使えねー(笑)存在価値なくね?(笑)」 ギャラリーには何が何やら分かりません
- 332 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 06:23:04 ID:3dunImPJ]
- >>331
ごめん さっぱり意味わからない
- 333 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 09:10:52 ID:unwMX8eS]
- >>326
俺もおもったw
- 334 名前:名前は開発中のものです。 [2010/01/28(木) 11:06:32 ID:mX4g322y]
- 手の届かない葡萄は酸っぱいと言い張るしかないアンチの皆さんでした
- 335 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 12:30:42 ID:ycMB9psJ]
- C++でタスクシステム作ってて
・特定の種類(型)のタスクに定数時間でアクセスしたい ・実行順位を定めたい ・タスクの数を制限したい これらの条件を満たすものをファンクタと型消去とリンクリストで実装したら boost::mpl::listにある型リストにタスクに値するファンクタの型を入れて 各々の要素のメモリ領域を再帰継承のtemplateクラス内部で実体化及びリンクリスト生成、 そのクラスが持っているリンクリストを基底型から順に実行する、 という形になったんだけどこれだとファンクタの種類が多くなった場合に 空リンクリストを見て実行せずに制御だけ返すっていう処理も多くなってしまう。 どうすればもっと軽くできるんだろうか。 それとも、この条件を維持しつつだともうこれ以上最適化できない感じ?
- 336 名前:名前は開発中のものです。 mailto:sage [2010/01/28(木) 23:53:28 ID:U4LSFJ0C]
- >>320
> なんていうかさ、たとえ、タスクシステムのメリットが出てきたとしても、 > 「そのメリットに焦点を当てた専用のモジュールを作れば?」 > か > 「そのメリットが生きる機能に専属でくっつければ?」 > で終わっちゃうんだよな。 ところで「タスクシステム」はバズワードなので結局この文章全体が ほとんど意味を成してない。それではあんまりなのでこのバズワードを より適切な言葉で置換して、この文章の価値をよりわかりやすくしよう 僕が考えたエターナルフォースブリザードシステムのメリットが出てきたとしても 「そのメリットに焦点を当てた専用のモジュールを作れば?」 か 「そのメリットが生きる機能に専属でくっつければ?」 で終わっちゃうんだよな。 はは、知るかバーカ、って感じだよね
- 337 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 00:18:06 ID:GbohI1Id]
- がんばるねぇ
- 338 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 00:46:29 ID:IDSHQgfo]
- ここだけの話、自称ハード屋はタスクシステムの熱狂的なファン
究極のタスクシステムを追い求め、アンチのふりまでして施しを求める まさに乞食 本物のアンチならタスクシステムを否定するのに都合の良い条件を 引っ張り出し、それを前提に話を有利に進めようと試みるだろう
- 339 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 00:49:48 ID:BYQonX0j]
- >>335 codepad.org/
- 340 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 22:25:19 ID:EIzAmjlc]
- 古典タスクシステムで質問。
弾タスクが地形タスクを知りたい場合、そういう場合どうやって実装すればいいですか? 毎回検索したくないです。
- 341 名前:名前は開発中のものです。 mailto:sage [2010/01/29(金) 22:52:38 ID:H3puqMBg]
- 適当な意見。
地形タクスのアドレス持つとか、継承させとくとかじゃダメなの?
- 342 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 00:10:55 ID:Vw2KSwE+]
- 弾タスクリストと地形タスクリスト別々に作りゃいいんじゃね
- 343 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 01:06:14 ID:+mO4z66u]
- >>341,342
レスありがとうございます。丁度同じような事が前のスレで議論されていたのでそっち先に見てみます。
- 344 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 05:58:16 ID:ACjstz4k]
- >>341
弾タスクは地形タスクがないと存在すら出来ない見事な設計だなw 死ね
- 345 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 06:10:12 ID:7iJlsIJb]
- >>344
地形が無いときは見なければいいんじゃないの?
- 346 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 12:14:19 ID:Zr75YmEa]
- >>340
静的なマップデータを個々にタスクにする必要ないんじゃないか? 移動する足場とか扉とかアイテムみたいなオブジェはタスクでいいけど。 共通のマップ専用処理+その他オブジェの組み合わせが自然だと思う。
- 347 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 19:05:55 ID:ACjstz4k]
- >>345
お前のソース、意味のないヘッダインクルードして癒着が酷いんだな 明らかに無駄なつながりだけどそこになんの疑問ももたずにそういうの ソースに入れちゃうんでしょ? カプセル化とか全然わかってないな
- 348 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 19:18:41 ID:Z5sKkNAh]
- >>346
たしかに必要ないですね。。。 前スレみた感じだとDBみたいなのを作って検索するというのが結論っぽかったです。
- 349 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 19:22:05 ID:HDJNxhu9]
- 裸の王様もここまでくるのか
- 350 名前:名前は開発中のものです。 mailto:sage [2010/01/30(土) 21:11:22 ID:7iJlsIJb]
- >>347
普通は抽象化してるから、独立性が高くなるでしょ? オブジェクト指向の唯一のメリットなんだから。 地形に依存する処理は地形にやらせればいいわけだし 弾はその処理の契機を与えるだけでいいんじゃない?
- 351 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 01:27:02 ID:030VeqOo]
- >>350
は?弾が地形のポインタもつのは設計が狂ってるって話してんのに そんなレス返す辺りお前俺の言ってる意味テキトーにしか理解してないだろ
- 352 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 01:33:59 ID:3AvaezOm]
- まず弾が地形のポインタもつのがいけない理由がわからん
バカな俺に説明してくれ まあ俺だったらグローバルに地形参照してるポインタもしくは地形の変数そのものを置くだろうな そして必要ならリストにも加える
- 353 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 01:48:45 ID:030VeqOo]
- >>352
ああ、君はカプセル化とか気にしない人でしょ? それじゃまったくわからないだろうね そしたら全部グローバルにもったらいいで なにも悪くないよ ただ、カプセル化とかはわかってないよね って言ってるだけ
- 354 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 01:54:01 ID:6qSVPUGq]
- >>351
地形クラスって限定してるならそうなるだろうけど もっと抽象化したものをやりとりするものじゃないの? >>352 グローバルに「地形」と限定したものを持つのはまずいと思う。 宇宙や空には地面は無いかもしれないし。
- 355 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 02:15:08 ID:PJ5c0R9P]
- ポインタがNULLなら判定をスキップとかそんなんじゃ駄目なんだろうか
- 356 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 02:37:55 ID:030VeqOo]
- 逆に考えてみようぜ
地形が弾の情報をほしくなったらどーすんの?
- 357 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 03:11:53 ID:6qSVPUGq]
- お母さんに頼んで弾のポインタをもらう。
- 358 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 03:23:04 ID:Di+guFUQ]
- どっちか一方が知ればいいんじゃねーの
それか第三者が調停するか
- 359 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 03:37:51 ID:98e6KIKR]
- 弾タスクが作られたときに一度、地形タスクのポインタを取得すればいいと思ったんだけど
弾が生きている最中に地形が増えていった場合に対応できないから、 弾が衝突する対象のタスクを入れる専用のリストを設ければいいかな?
- 360 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 04:37:51 ID:Di+guFUQ]
- 俺だったら弾タスクリストも地形タスクリストもグローバルにしちゃうなあ
それやると上の人にカプセル化云々で怒られそうだけど 寧ろグローバルのどこがあかんのですか 大規模集団開発ならともかく、個人の小規模のものなんてグローバルでよくね? どの道どっかで作ってそのポインタなりを一々渡したりするんだろ 一々面倒じゃん
- 361 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 05:24:01 ID:WDNFJ5/J]
- 一週間ぶりに見る自分のコードは他人のコード
- 362 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 05:53:16 ID:CeH4M0fL]
- ここに居る人達はFSMにならないような記述をどうやって行ってる?
あと今まで古典タスクシステム無視してFSMでしかゲームくんでこなかったから 種類ごとの動作順序がバラバラなのが何だか気持ち悪いよ><
- 363 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 05:56:28 ID:98e6KIKR]
- >>362
FSMって有限ステートマシンのこと? >>FSMでしかゲームくんでこなかったから 具体的にどうやって組むのか教えて。初めて聞いたから知りたい。
- 364 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 06:04:26 ID:CeH4M0fL]
- FSMは有限ステートマシンの事だよ。
これでゲームを組むっていうのは、大雑把に例えると 1) タイトル画面を管理するタスクが存在する 2) ゲーム本編を管理するタスクが存在する 3) ゲームオーバーエフェクトを管理するタスクが存在する の時、タイトル画面からはゲーム開始できるから (1)->(2) (2)からはゲームオーバーとゲームリセットが考えられるから (2)->(1), (2)->(3) ゲームオーバーするとタイトルに戻されるから (3)->(1) こんなFSMができあがる。 ゲーム中の敵みたいなオブジェクトも 敵生成エフェクト-> 敵が発生する-> 敵が存在する(行動する事が閉じたFSMとして別に繋がっているが省略)-> 敵が破壊される な単純なFSMとして処理の流れを記述できる。 でも、これは一々タスクを4つ作らないといけないし、無理してタスクひとつに詰め込んでも 状態変数を持ってifやswitchなどで内部で分岐処理をしないといけない。 これは非直感的で避けたい。
- 365 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 06:16:23 ID:CeH4M0fL]
- ごめん。言葉足らずだったね。
今はFSMの代わりにmicrothreadを使おうと調べているんだけど、 これはタスク中でyieldと言われている処理をする事でタスクの実行をプログラムのその行で中断し 次のタスクへ処理が委ねられる。 次回自分のタスクが回ってきた時、即ち次フレームになると yieldの次のステートメントから処理を再開する仕組みっていう解釈でおk? 本質的には割り込みのないmulti threadと同じものだから各microthreadは動作順序が保証されない様に思えるんだけれど どうなんだろう。 勿論動作順序の必要な箇所(描画など)は今までどおりFSMで組むけど、マルチスレッドなんて慣れてないから 「注意しておかないとバグや処理系依存になる」事がありそうで怖い。
- 366 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 11:51:44 ID:HU8XW/cO]
- >>これはタスク中でyieldと言われている処理をする事でタスクの実行をプログラムのその行で中断し
古典的タスクシステムの実装での話しなら yieldで分割される単位で実行関数作って、状態が変わったら登録関数切り替え。 タスクを通して維持される情報はタスクのワークに、が古典的タスクシステムのやり方かと。 ちなみに古典的なリスト形式じゃなくてツリー構造にして子の生存管理を親に任せれば 上で言ってるタイトルとゲームオーバーと、みたいなシーンも君の言うFSMと同じように階層管理できる。 階層タスクはボス戦艦の船体の親タスクと砲台の子タスク、みたいな使い方でもよく使われる。 リストでも同じことできるけど、親の座標が子の座標に影響したり親がやられたら子も全滅、みたいなのは ツリーで作った方が楽。
- 367 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 12:17:25 ID:QrJboi/Q]
- >>364
ここでいうFSMってタイトルの選択とかタイトルローカルの情報はどこで持ってるんだ? グローバル?タイトル関数のstatic変数? メインループから呼ばれて毎フレーム抜けるんだよな 静的に関数コールでくっついてるってことはクラスのメソッドでもないんだよな 仮にクラスのメソッドだとしたらタイトルがゲームとかゲームオーバーとかのクラスを所有するのか? なんか色々タスク方式よりずっと気持ち悪く見えるんだけど。
- 368 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 14:39:09 ID:3AvaezOm]
- >>361
なんで先週の俺こんなに一所懸命カプセルかしてたんだっけ?
- 369 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 14:55:48 ID:CeH4M0fL]
- >>366
なるほどー。 階層構造にしてしまうのもやり易そうですね。 今の機能と共存する形で実装できそうなので作ってみます。 >>367 うう、すみません。表現の仕方が悪かったみたいです。 タスクシステムを普通に作ったらタスクが状態としてFSMで記述され、 遷移がひたすらタスクの生成と破棄する処理として置き換わる事を言っています。 366さんも言っているように、microthread等を使わなければyieldで分割される単位でタスクを作って記述が分断されます。 タスク方式よりずっと気持ち悪く見えても、これはタスクシステムそのものなんです。
- 370 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 15:01:40 ID:CeH4M0fL]
- また誤解を招く表現ですね。
タスクシステムそのものと言っても古典タスクシステムではありません。 実は僕は>>335で、そのレスにあるとおりの機能に依存して今まで開発しておりました・・・。 種類ごとの順序がない、定数時間で同じ種類のタスク全てに対する反復子取得できない、 データ構造がC++風のクラスという型レベルのものではなく処理関数と専用の構造体に分かれている、 汎用ワークエリアの容量が不足している事により起きるバグの回避が自動でできない、 そんな古典タスクシステムからできるだけオーバーヘッドを除きつつ逃げる為にいろいろやっております。
- 371 名前:名前は開発中のものです。 [2010/01/31(日) 15:43:20 ID:PBTWOUVl]
- マイクロスレッド使わなくても、
task::exec() { switch(state) { case TITLE: 条件満たしたらstate=STAGE1; case STAGE1: case STAGE2: } } こんなのでいいんじゃないの?
- 372 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 16:32:55 ID:oiLUSXKA]
- >>371
使わなくても、じゃなく、使わない方が良いだろうね、大概の場合。 FSMでマイクロスレッド使う場合のディメリットは、 FSMのステートをスタックフレームのPCで「代用」するやり方では、 一種類のステートしか保存できない点。だって、PCは一個しかないからな。 だから、マイクロスレッドでFSMやってると、 複数のステートが絡み合うようになる段階で、逆に苦労する。
- 373 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 16:43:00 ID:CeH4M0fL]
- >>372
何か勘違いしているみたいですが、マイクロスレッドはyieldが必要なタスクごとに作られます。 釣りな気もしますがマジレス。
- 374 名前:名前は開発中のものです。 mailto:sage [2010/01/31(日) 18:17:03 ID:QrJboi/Q]
- >>370
>タスクシステムそのものと言っても古典タスクシステムではありません。 君の頭の中にあるタスクシステムはずいぶん独特みたいだな。 古典的タスクシステムではタスクローカルのデータはタスクワークで持てるけど 今まで作ってたFSMではない静的な方法とやらではどこで持つの?
|

|