タスクシステム総合スレ part9
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/12/13(日) 18:11:06ID:ESt66YNzpart8 http://pc11.2ch.net/test/read.cgi/gamedev/1250678891/
part7 http://pc11.2ch.net/test/read.cgi/gamedev/1241670786/
part6 http://pc11.2ch.net/test/read.cgi/gamedev/1238725539/
part5 http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/
part4 http://pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/
・タスクと呼ばれる実装は、非常に多岐に渡ります
古典タスクシステムについての話題は「>>2」と明示してください
そうでない場合はカスタム版であることを明示してください
・人を憎んで言語を憎まず
0273名前は開発中のものです。
2010/01/24(日) 13:19:25ID:bsBl9MV5それは意味がないでしょう。通常はメリットとその実装方法に意味があるんだから。
(「ゲームシステム」ってあると便利だよね。つくったほうがいいよっていってるのと変わらない。)
例えば、動的な処理順番変更がメリットでその実装方法としてTCBがあり
それがタスクシステムならそれは必要ないことが多い。
必要な場面で使えばいい手法ということになる。
上で「定期的に処理を回す”何か”」っていってるけど
それだけを「タスクシステム」と呼んでいるのならデザインパターンのひとつくらいの意味だね。
デザインパターンでも普通はサンプルコードくらい書けるけど。
>>2あたりはそういう主張じゃないよね。
0274名前は開発中のものです。
2010/01/24(日) 13:26:35ID:KTZGeiZiPACアーキテクチャなんてタスクシステムの親類みたいな感じだし。
アーキテクチャパターンレベルの話にデザインパターンレベルの具体的な実装を
求めても、いろんな実装が出てきてまとまらないのは当然だな。
0275名前は開発中のものです。
2010/01/24(日) 13:26:49ID:2Vb1mFFo適切な特性に適切な命名がなされることは、
皆さんご存知の通り、設計としての良い指針。
0276名前は開発中のものです。
2010/01/24(日) 13:51:16ID:bsBl9MV5アーキテクチャパターンでもいいがサンプルは書けるでしょ。
メリットとそのメリットの明確化のためのサンプルがない用語に意味はあるの?
最悪メリット・目的だけでもあればまだ話はできるが。
それすらもないならアーキテクチャパターンですらないのではないのか?
PACアーキテクチャのどの部分がタスクシステムとの類似点なの?
「定期的に処理を回す”何か”」より具体性が後退してると思うんだけど。
MVCといわないのならこの差に特徴があるの?そんな議論もあまり見たことないが。
0277名前は開発中のものです。
2010/01/24(日) 13:56:40ID:KTZGeiZiPACアーキテクチャのそれとみごとにかぶるな。
タスクシステム≒PACアーキテクチャのゲーム業界方言
と言っても説明が通じそう。
で、実装レベルの理解が限界の一兵卒には設計レベルのメリットは目に入らない、
という感じか…
このスレの現状が見えてきた気がする。
0278名前は開発中のものです。
2010/01/24(日) 13:57:59ID:bsBl9MV5なぜ具体的に語れないの?
0279名前は開発中のものです。
2010/01/24(日) 14:09:25ID:KTZGeiZi銃の上手なうち方みたいな。
アーキテクチャは戦術じゃなく戦略の話だから
そのレベルの具体的な一例を戦略の話に求めるのがそもそも変なんじゃないのかな?
ちなみにアーキテクチャパターンなら、それを実装するデザインパターン例
の組み合わせが載ってたりするから、そこまで噛み砕いて具体例を要求すれば
デザインパターンレベルでの実装例は出せるかもね。
0280名前は開発中のものです。
2010/01/24(日) 14:11:15ID:bsBl9MV5うん君のレスは中身がないよね
>MVCといわないのならこの差に特徴があるの?
まずこれに答えてみてよ。
>アーキテクチャは戦術じゃなく戦略の話だから
じゃあきみは一平卒にどうやってそれを伝えるの?
0281名前は開発中のものです。
2010/01/24(日) 14:14:20ID:LS2EE4Eu一平卒に分からなくてもかまわないから、
タスクシステムがどういう「戦略」なのか書けよ。
あれか?無能下請けを閉じ込める檻ってやつか?
0282名前は開発中のものです。
2010/01/24(日) 14:26:18ID:2Vb1mFFo具体的な戦略を語ってほしい。
それこそが求められている。
タスクシステムの具体的な何かを知っている人は、
このスレで問い詰められると、いつも最後には逃げる。
0283名前は開発中のものです。
2010/01/24(日) 15:02:35ID:KTZGeiZiMVCとPACパターンの違いをきいてるのかな?
>PACにおけるCは、GUIに限らずMとVを協調させるという責務を持っている。またPACは明示的に階層構造を定義しているという点でMVCと異なる。
だって。
タスクシステムと違ってアーキテクチャパターンは明確な定義があるからやりやすいな。
あとネットで具体例を出してって本職には難しいんじゃないかな。
仕事のコード出したら大問題だし、説明のためだけにサンプルゲームつくるような親切な例は >>2 ぐらいじゃないかな。
それで飯食ってる人間に、説明のためだけに無給でコード書くこと要求してそれが通らないと逃げるなって言われるのは…
さすがに甘えすぎじゃない?と思う。
ほんとにやる気があるならGemsのactor周りとかアーキテクチャパターンとかある程度の基礎を自分で勉強して、
それでもわからない箇所があれば自分から具体的な質問を出す方が現実的かと。
質問が具体的なら返答も具体的になるだろ。
って何か「教えて君」に話しているような内容だな、これ。
0284名前は開発中のものです。
2010/01/24(日) 15:11:39ID:bsBl9MV5>だって。
ようはMVCとPACの違いを意識したことはなかったわけね。
で
>タスクシステム≒PACアーキテクチャのゲーム業界方言
>と言っても説明が通じそう。
それはないだろう。
君が
>タスクシステムのような統一処理は必須
っていってるけどじゃあタスクシステムは何なのってきくと
>タスクシステムと違ってアーキテクチャパターンは明確な定義があるからやりやすいな。
じゃあ「タスクシステム」というものはなんなの?
これも答えず
>仕事のコード出したら
なんて誰も言ってないことを言い訳するし>>2の内容にすら触れない
>さすがに甘えすぎじゃない?
何もいえない奴にどう甘えろって言うんだ?
>って何か「教えて君」に話しているような内容だな、これ。
君ののレスから君が何か有意義な考えを持ってるようには読み取れないよ
0285名前は開発中のものです。
2010/01/24(日) 15:24:05ID:2Vb1mFFoとてもとても大変で、とてもとても難しいことのようだ。
MVCのメリットなら一言で言うと、
俺はモジュール性が高まることにあると思う。
MがVもCも知らなくていいように作れるし、
ユーザからのinputはCが、ユーザへのoutputはVが担う、
という、名前と一致した明確な役割分担が美しいと思う。
交換可能なままで、各役割のクラス階層が育っていくので好ましい。
また、GUIでよくあるインタラクションへ、
ひとつの解をしめしてみせたという、
設計例の共有という意味でも有意義だったと思う。
0286名前は開発中のものです。
2010/01/24(日) 15:25:54ID:KTZGeiZiずいぶんつっかかるな。
>それはないだろう。
そう言い切れる根拠を出してくれないかな。
明確に言い切れるということはタスクシステムに関して明確な定義があるということだろうし。
それが皆の納得できるものならこのスレも有意義になるんじゃないのかな?
0287名前は開発中のものです。
2010/01/24(日) 15:44:52ID:bsBl9MV5結局きみは自分にカードがあるように見せかけるけど一枚も場に出さず人にカードを切れというだけなんだよな。
PACアーキテクチャはMVCとの差を意識することで意味のある概念だろ。
だから後発にもかかわらず存在している。
つまりPACアーキテクチャはMVCとの差を意識することによって意味のある用語となっている。
PACパーキテクチャの方言という説明が有意義だと思うのなら一般にどう使われてるか配慮すべき。
MVCの議論はこのスレにもあった。
それも意識せずにPACアーキテクチャと比較するのであれば
そもそもその概念を有意義に考察しているかどうか疑問に思わざるを得ない。
そもそも
>明確に言い切れるということはタスクシステムに関して明確な定義があるということだろうし。
これは君が答えるべきことだから。
君は何を意味しているの?
おれは
・「定期的に処理を回す”何か”」
・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
のどれのことか具体的にときいてるんだけど。
で「PACパーキテクチャの方言」っていうからどこがそうなのって聞いてるの。
カードがないならないって言えばいい話。
0288名前は開発中のものです。
2010/01/24(日) 15:57:16ID:KTZGeiZi>PACアーキテクチャはMVCとの差を意識することで意味のある概念だろ。
ちがうと思うぞ。PACはMVCとは別概念。
PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近いんじゃない?
>これは君が答えるべきことだから。
教えて君に答えなきゃいけない義務なんていつの間に出来たんだろう?
妄想の中?おしえて。
ちなみにタスクシステムに関する個人的な見解は >>272 だ。
ところでカードって何?
0289名前は開発中のものです。
2010/01/24(日) 16:15:46ID:bsBl9MV5お前のレスが>>272で尽きてるならもう>>274以降このスレ的に意味のあることは何もないってことだね。
これすら意味ない。
>PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近いんじゃない?
まあもういいけど、これを解釈すれば、
・階層構造が持てること
・描画がデータを直接参照しない
がタスクシステムの特徴ってこととなるけど階層構造はともかく
描画がデータを直接参照しないってすでに「一般的なタスクシステム」をなんら表してないだろ。
でもせめてうえの2つを直接指摘すれば議論にはなったね。
一兵卒に理解できない内容とはとても思えないけど。
0290名前は開発中のものです。
2010/01/24(日) 16:27:30ID:2Vb1mFFo>>269 タスクシステムのような統一処理
>>272 ゲームでは必須になる処理
>>274 PACアーキテクチャなんてタスクシステムの親類みたいな感じ
>>277 タスクシステム≒PACアーキテクチャのゲーム業界方言
>>288 PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近い
0291名前は開発中のものです。
2010/01/24(日) 16:37:03ID:KTZGeiZi広い意味を持つ用語だから、具体的な実装の話をしたければ質問側が
具体的な条件を出さないと無意味だね、と。
で実装レベルではないアーキテクチャレベルの話ならPACアーキテクチャ
とかが近そうだね、と。
用語のあいまいさの問題と実装と設計と、別々の問題なんだから質問を分別する必要があるんだけどね。
そこが分けられるかどうかが一兵卒とそうでないかの試金石?
まぁ何か「意味のあることは何もない」って完結したみたいだからいいか…
0292名前は開発中のものです。
2010/01/24(日) 16:40:01ID:Uy/fuKoNカッコイイ
0293名前は開発中のものです。
2010/01/24(日) 17:45:29ID:xSRr2yTPもちろん数あるタスクシステムの中にはPACなんとかっぽい構造または機能を持ってるものがあるかもしれないけど
0294名前は開発中のものです。
2010/01/24(日) 17:47:59ID:7WekSMc+やぁ。元気取り戻したようだね。じゃあこれよろしく。>>209
0295名前は開発中のものです。
2010/01/24(日) 17:50:52ID:pJxaHfPd煙にまこうとしただけなんだから触れてやるなよ。
0296名前は開発中のものです。
2010/01/24(日) 17:52:41ID:jE2fwQfT自分の考えてる「タスクシステム」とは何かを説明してよ。
たとえを一切使わないで。
0297名前は開発中のものです。
2010/01/24(日) 18:06:18ID:c1+fzVK/相手のレベルに合わせた話ができないのは痛いな。
この人部下の人望無さそう。
0298名前は開発中のものです。
2010/01/24(日) 18:11:49ID:yxBMV7uM応対はかなりひどいけど。
0299名前は開発中のものです。
2010/01/24(日) 21:42:39ID:k3uW8LXB0300名前は開発中のものです。
2010/01/24(日) 22:16:42ID:B8+fFWBr>>2の「古典タスクシステム」って、CodeZineのリンクにあるような
メモリアロケータまで詰め込んだ「固まり」、でいいの?C++なのにいろいろ
意味のない車輪の再発明しちゃってるような。
それなら、Cライブラリ的な何かが提供するメモリマネージャが貧弱で、
コルーチンすらないような組み込み系で「だけ」なら使えるかもね。
というか、そういう組み込み環境で使われる設計的な何かが「タスクシステム」の正体ってことでいいのかね?
(「組み込み環境」は、DS的なもの以下の環境を想定してます。)
とすると、そういうもの(「固まり」)は、あくまで組み込みとか貧弱な環境で必要があるもので、
Windows環境で動くゲーム(アーケード含む)とか、ハイエンド家庭用ゲーム機とか、
リッチな環境だといらないよね?
いやもちろん、「タスクシステム」にも含まれている処理、たとえば個々のオブジェクトに
処理を回したりすることを提供する「何か」は、環境が変わろうと必要で、そういうのは
各ゲーム会社にあるんだろうけど、
>>2の「古典タスクシステム」を「タスクシステム」である、として説明しているようなページが多い現状で
その「何か」を「タスクシステム」と呼ぶのはどうなのよ、と。
もっと言うと、「何か」を「タスクシステム」って呼んじゃっているようなところって、
「何か」に、「古典的タスクシステム」の要素のうち、もう自前で書かなくても済むようなものまで
組み込んじゃってません?
いやもちろん、業界内で「タスクシステム」といえば「何か」を指すのが当然だ、というのなら別に
構わないんですが、それにしては「古典タスクシステム」の紹介や実装がWebに溢れているなー、と。
0301名前は開発中のものです。
2010/01/24(日) 22:45:34ID:btnS2dkT0302名前は開発中のものです。
2010/01/24(日) 22:49:21ID:Zyhmmg9i0303名前は開発中のものです。
2010/01/24(日) 23:07:56ID:FLHL1SScどんなに説明されようと初めから労働のメリットを認めるつもりは毛頭ないニートと
ニートを見下したいだけのリア充の終わり無き戦い。
ID:bsBl9MV5は持論と違うことをいくら説明されても馬の耳に念仏で「何もないってない。意味が無い」と繰り返すだけ。
ID:KTZGeiZiは自分の周りだけの業界常識を持ち出して相手を見下したいだけ。
どっちもどっちだ。
おまえらいいからゲーム作れ。
0304名前は開発中のものです。
2010/01/24(日) 23:17:16ID:bsBl9MV5>>272でなにかあるってならそうだけど。
きみは>>272からなにを読み取るの?
0305名前は開発中のものです。
2010/01/24(日) 23:28:03ID:jE2fwQfT>>303のまんま過ぎてワロタ
0306名前は開発中のものです。
2010/01/24(日) 23:33:43ID:bsBl9MV5>>304
煽りたいだけなの?
0307名前は開発中のものです。
2010/01/24(日) 23:42:51ID:jE2fwQfT自分の想定しているタスクシステムってどんなの?
状況に応じて違う、とかいうなら、その状況を自分で前提してでもいいから
たとえとか無しで自分の言葉で説明してみてよ
0308名前は開発中のものです。
2010/01/24(日) 23:48:11ID:bsBl9MV5レスをたどってはくれないのか・・・
おれは
>・「定期的に処理を回す”何か”」
>・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
>のどれのことか具体的にときいてるんだけど。
>で「PACパーキテクチャの方言」っていうからどこがそうなのって聞いてるの。
一つ目なら必要な機能だけどこれが「タスクシステム」でいいの?
TCBを使って動的な処理順番変更機能を持つものが「タスクシステム」なら
その方法にこだわる必要はないと思う。
なので「タスクシステム」を各々どう想定しているか聞いている。
おれは2番目も含めた説を見ることが多いのでそれは必須じゃないと言うのが持論。
0309名前は開発中のものです。
2010/01/24(日) 23:56:22ID:FLHL1SSc事実を言ってるだけじゃね?
あんたの持論とは違うから何も読み取れないみたいだけど
そもそもあんた初めから議論するつもりなんて無いだろ
自分の聞きたい答えが聞けるまで人に質問繰り返すだけなんだから
>>272こそ>>308の答えそのものなんだが、これ以上何を期待してるのやら
こんなところで意地張ってないでゲーム製作にでも打ち込んだほうが
あんたにとっても有意義じゃね?
0310名前は開発中のものです。
2010/01/24(日) 23:59:28ID:bsBl9MV5うん「タスクシステム」が技術的な実体を持たないというならそれでいいよ。
でも含みを持たせてみたりしてるしそもそも「実装はそれぞれ」だけじゃなんの話にもならないでしょ。
そういっているだけ。
>こんなところで意地張ってないでゲーム製作にでも打ち込んだほうが
>あんたにとっても有意義じゃね?
これはそうだけどね。これを突っ込む意図は何?
0311名前は開発中のものです。
2010/01/25(月) 00:21:13ID:pmo4H81E>うん「タスクシステム」が技術的な実体を持たないというならそれでいいよ。
あんたのいう技術的な実態って何のこと?
タスクシステム並みにあいまいなんだけど
>これはそうだけどね。これを突っ込む意図は何?
そうだけどね、と納得したならいいんじゃね?あんまり意地はるな
0312名前は開発中のものです。
2010/01/25(月) 00:28:55ID:xzx5WVbGうーん読み取れないものなのかな
>・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
これは違うの?
>その方法にこだわる必要はないと思う。
ともいっている。これはあいまいなの?
>そうだけどね、と納得したならいいんじゃね?あんまり意地はるな
この板一応技術板だよ。実体のないものと結論付けるのはそれなりに意味があるでしょう。
それすら否定するならこのスレにレスする君の意図は何と聞きたかったの。
0313名前は開発中のものです。
2010/01/25(月) 00:35:39ID:pmo4H81E人の質問には答えずに質問返し。そしてものすごい意地っ張り…
0314名前は開発中のものです。
2010/01/25(月) 00:39:40ID:xzx5WVbG>>・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
>これは違うの?
>>その方法にこだわる必要はないと思う。
>ともいっている。これはあいまいなの?
これは返答じゃないの?
むしろこの返答に答えて欲しいんですが。
質問の意図を確認しながら返答することすら許さないの?
>人の質問には答えずに質問返し。
それ俺がそう思っちゃうんだが。
0315名前は開発中のものです。
2010/01/25(月) 00:40:30ID:ESuEoHnc実例を挙げて、具体的に言ってあげたらいいと思うよ。
自分の関わってるプロジェクトを例に挙げて、
こういう要求の時にはこういう処理をタスクシステムと呼んでる
っていうのをボカさずに説明してあげるべきだと思う。
0316名前は開発中のものです。
2010/01/25(月) 01:04:58ID:pmo4H81E>これは返答じゃないの?
返答じゃないでしょ。質問でしょ
>質問の意図を確認しながら返答することすら許さないの?
こっちの質問の答えになってないからね
まぁいいや
これじゃID:KTZGeiZiと同じ結論のわかってる終わり無き戦いに巻き込まれるだけ
なので撤退しますわ
時間は大切にね!
0317名前は開発中のものです。
2010/01/25(月) 01:08:22ID:VSiYVhth0318名前は開発中のものです。
2010/01/25(月) 01:15:12ID:UpyPZX8b>>3は秀逸
0319名前は開発中のものです。
2010/01/25(月) 09:06:17ID:G4TpJJQM説明出来ないことを誤魔化すには、その対応は手垢がつき過ぎてる。
0320ハード屋
2010/01/27(水) 21:45:20ID:1CPLoz/Xなんていうかさ、たとえ、タスクシステムのメリットが出てきたとしても、
「そのメリットに焦点を当てた専用のモジュールを作れば?」
か
「そのメリットが生きる機能に専属でくっつければ?」
で終わっちゃうんだよな。
メモリ管理やオブジェクトの管理をするモジュールがあってもいいとは思うけど、
タスクシステムにくくりつける必要はないし、その方が可搬性が高まる。
Zソートやあたり判定で動的な実行順制御が必要な場合も、
それぞれのモジュールなりエンジンなりにそういう機能を持たせた方が、
これもやっぱり可搬性が高まる。
0321名前は開発中のものです。
2010/01/27(水) 21:57:51ID:1CPLoz/Xでも、動的なスケジューリングをするからには、その目的が絶対あるはずだろ。
だったら、その目的の機能内で動的なスケジューリングを勝手にやればいい話じゃん。
たとえば、Zソートだったら描画エンジン内で勝手にやりゃすむはなしだし。
動的スケジューリングってことは、それだけ ややこしい わけで、
汎用性を持たせようとして表に出してくる必要はないよな。
0322名前は開発中のものです。
2010/01/27(水) 22:12:29ID:1CPLoz/Xそういう動的呼び出しに頼ったやりかたは、そりゃプラグインなんかで使う増設の手法だ。
ゲームで言えば、ModだよMod。あとから拡張するやつ。
まだリリース前で最終ビルド前なのにModはねぇだろ。
だって、まだ、メインループ部は触れるわけだろ?
拡張拡張の延長でゲーム作るわけ?めんどくせ。
0323名前は開発中のものです。
2010/01/27(水) 22:18:54ID:1CPLoz/Xメインループから明示的に関数なりメソッドなりを呼び出す静的なやり方の方が、
トップダウンで管理しやすいと思うんだがなぁ。
0324名前は開発中のものです。
2010/01/27(水) 23:06:33ID:8BvS9Ahu抽象化はメリットがあって初めて必要なもので
メリットが小さければ可読性保守性が落ちるだけのことがほとんどということもわかってない奴多い。
0325名前は開発中のものです。
2010/01/28(木) 01:48:59ID:ZDsUmlPH自称ハード屋くんの文章は相変わらず中身がない。批評の対象をきちんと明示していないから。
君が考察し批評している対象物が何なのかきちんと明示してねー、と何度も何度も指摘してるよねぇ。
それはいつ、誰が、誰と、どういう状況で、何を作るために使ったものなんだい?実在するのかい?
ハード屋ともあろう者がこの期に及んで「あーあー聞こえない聞こえない」で押し通すはずないよねぇ
まさか脳内で生成した何かについてあーだこーだ自問自答してるわけもんねぇ
さぁ、さっさと>>107の質問に返答してくれ。な。待ってるんだよ
君は、使ったこともない見たこともない対象物についてあーだこーだ薀蓄垂れる知ったかゲハ厨
ではないと俺は信じてる
0326名前は開発中のものです。
2010/01/28(木) 02:01:55ID:+US4i3bi0327名前は開発中のものです。
2010/01/28(木) 02:26:16ID:ZDsUmlPHESPを駆使して可能な限り具体的に書くよう努めてきたので勘弁してね
彼の批判する謎のタスクシステム。それが一体何でどういう状況でどう使われ
何が糞だったのかを彼が書かない限りもう駄目だと思うんだ
0328名前は開発中のものです。
2010/01/28(木) 02:39:33ID:3dunImPJだってこのシステム存在価値ないじゃん
そろそろ気がつかねーと駄目だろ
やっぱ>>3は優秀だな
0329名前は開発中のものです。
2010/01/28(木) 02:41:16ID:ZDsUmlPH最底辺のAtomネットブック、で60[fps]でヌルヌル動く程度の
こういう同人STGをVS2008EE(のC/C++)+DX9で作ったけれど
Codezineみたいな組み方って何でここをこういうふうにするかな
なんでこうしないのだろうか、とか。これくらい書けるでしょ。普通。
なぜ彼は書けない?おかしいだろ。前スレからの疑問
彼の批判には、具体的なゲームの仕組みの切れ端すら出てこない。
不自然なくらい綺麗さっぱり無い。不思議だよねぇ
おやすみ
0330名前は開発中のものです。
2010/01/28(木) 02:48:34ID:+US4i3bi必死さが伝わってきて満足です。
0331名前は開発中のものです。
2010/01/28(木) 03:07:35ID:wWgILMy0みんなの前でシュッシュッてやってみせてるシャドウボクサーが呟きました
「こいつ使えねー(笑)存在価値なくね?(笑)」
ギャラリーには何が何やら分かりません
0332名前は開発中のものです。
2010/01/28(木) 06:23:04ID:3dunImPJごめん
さっぱり意味わからない
0333名前は開発中のものです。
2010/01/28(木) 09:10:52ID:unwMX8eS俺もおもったw
0334名前は開発中のものです。
2010/01/28(木) 11:06:32ID:mX4g322y0335名前は開発中のものです。
2010/01/28(木) 12:30:42ID:ycMB9psJ・特定の種類(型)のタスクに定数時間でアクセスしたい
・実行順位を定めたい
・タスクの数を制限したい
これらの条件を満たすものをファンクタと型消去とリンクリストで実装したら
boost::mpl::listにある型リストにタスクに値するファンクタの型を入れて
各々の要素のメモリ領域を再帰継承のtemplateクラス内部で実体化及びリンクリスト生成、
そのクラスが持っているリンクリストを基底型から順に実行する、
という形になったんだけどこれだとファンクタの種類が多くなった場合に
空リンクリストを見て実行せずに制御だけ返すっていう処理も多くなってしまう。
どうすればもっと軽くできるんだろうか。
それとも、この条件を維持しつつだともうこれ以上最適化できない感じ?
0336名前は開発中のものです。
2010/01/28(木) 23:53:28ID:U4LSFJ0C> なんていうかさ、たとえ、タスクシステムのメリットが出てきたとしても、
> 「そのメリットに焦点を当てた専用のモジュールを作れば?」
> か
> 「そのメリットが生きる機能に専属でくっつければ?」
> で終わっちゃうんだよな。
ところで「タスクシステム」はバズワードなので結局この文章全体が
ほとんど意味を成してない。それではあんまりなのでこのバズワードを
より適切な言葉で置換して、この文章の価値をよりわかりやすくしよう
僕が考えたエターナルフォースブリザードシステムのメリットが出てきたとしても
「そのメリットに焦点を当てた専用のモジュールを作れば?」
か
「そのメリットが生きる機能に専属でくっつければ?」
で終わっちゃうんだよな。
はは、知るかバーカ、って感じだよね
0337名前は開発中のものです。
2010/01/29(金) 00:18:06ID:GbohI1Id0338名前は開発中のものです。
2010/01/29(金) 00:46:29ID:IDSHQgfo究極のタスクシステムを追い求め、アンチのふりまでして施しを求める
まさに乞食
本物のアンチならタスクシステムを否定するのに都合の良い条件を
引っ張り出し、それを前提に話を有利に進めようと試みるだろう
0339名前は開発中のものです。
2010/01/29(金) 00:49:48ID:BYQonX0j0340名前は開発中のものです。
2010/01/29(金) 22:25:19ID:EIzAmjlc弾タスクが地形タスクを知りたい場合、そういう場合どうやって実装すればいいですか?
毎回検索したくないです。
0341名前は開発中のものです。
2010/01/29(金) 22:52:38ID:H3puqMBg地形タクスのアドレス持つとか、継承させとくとかじゃダメなの?
0342名前は開発中のものです。
2010/01/30(土) 00:10:55ID:Vw2KSwE+0343名前は開発中のものです。
2010/01/30(土) 01:06:14ID:+mO4z66uレスありがとうございます。丁度同じような事が前のスレで議論されていたのでそっち先に見てみます。
0344名前は開発中のものです。
2010/01/30(土) 05:58:16ID:ACjstz4k弾タスクは地形タスクがないと存在すら出来ない見事な設計だなw
死ね
0345名前は開発中のものです。
2010/01/30(土) 06:10:12ID:7iJlsIJb地形が無いときは見なければいいんじゃないの?
0346名前は開発中のものです。
2010/01/30(土) 12:14:19ID:Zr75YmEa静的なマップデータを個々にタスクにする必要ないんじゃないか?
移動する足場とか扉とかアイテムみたいなオブジェはタスクでいいけど。
共通のマップ専用処理+その他オブジェの組み合わせが自然だと思う。
0347名前は開発中のものです。
2010/01/30(土) 19:05:55ID:ACjstz4kお前のソース、意味のないヘッダインクルードして癒着が酷いんだな
明らかに無駄なつながりだけどそこになんの疑問ももたずにそういうの
ソースに入れちゃうんでしょ?
カプセル化とか全然わかってないな
0348名前は開発中のものです。
2010/01/30(土) 19:18:41ID:Z5sKkNAhたしかに必要ないですね。。。
前スレみた感じだとDBみたいなのを作って検索するというのが結論っぽかったです。
0349名前は開発中のものです。
2010/01/30(土) 19:22:05ID:HDJNxhu90350名前は開発中のものです。
2010/01/30(土) 21:11:22ID:7iJlsIJb普通は抽象化してるから、独立性が高くなるでしょ?
オブジェクト指向の唯一のメリットなんだから。
地形に依存する処理は地形にやらせればいいわけだし
弾はその処理の契機を与えるだけでいいんじゃない?
0351名前は開発中のものです。
2010/01/31(日) 01:27:02ID:030VeqOoは?弾が地形のポインタもつのは設計が狂ってるって話してんのに
そんなレス返す辺りお前俺の言ってる意味テキトーにしか理解してないだろ
0352名前は開発中のものです。
2010/01/31(日) 01:33:59ID:3AvaezOmバカな俺に説明してくれ
まあ俺だったらグローバルに地形参照してるポインタもしくは地形の変数そのものを置くだろうな
そして必要ならリストにも加える
0353名前は開発中のものです。
2010/01/31(日) 01:48:45ID:030VeqOoああ、君はカプセル化とか気にしない人でしょ?
それじゃまったくわからないだろうね
そしたら全部グローバルにもったらいいで
なにも悪くないよ
ただ、カプセル化とかはわかってないよね
って言ってるだけ
0354名前は開発中のものです。
2010/01/31(日) 01:54:01ID:6qSVPUGq地形クラスって限定してるならそうなるだろうけど
もっと抽象化したものをやりとりするものじゃないの?
>>352
グローバルに「地形」と限定したものを持つのはまずいと思う。
宇宙や空には地面は無いかもしれないし。
0355名前は開発中のものです。
2010/01/31(日) 02:15:08ID:PJ5c0R9P0356名前は開発中のものです。
2010/01/31(日) 02:37:55ID:030VeqOo地形が弾の情報をほしくなったらどーすんの?
0357名前は開発中のものです。
2010/01/31(日) 03:11:53ID:6qSVPUGq0358名前は開発中のものです。
2010/01/31(日) 03:23:04ID:Di+guFUQそれか第三者が調停するか
0359名前は開発中のものです。
2010/01/31(日) 03:37:51ID:98e6KIKR弾が生きている最中に地形が増えていった場合に対応できないから、
弾が衝突する対象のタスクを入れる専用のリストを設ければいいかな?
0360名前は開発中のものです。
2010/01/31(日) 04:37:51ID:Di+guFUQそれやると上の人にカプセル化云々で怒られそうだけど
寧ろグローバルのどこがあかんのですか
大規模集団開発ならともかく、個人の小規模のものなんてグローバルでよくね?
どの道どっかで作ってそのポインタなりを一々渡したりするんだろ
一々面倒じゃん
0361名前は開発中のものです。
2010/01/31(日) 05:24:01ID:WDNFJ5/J0362名前は開発中のものです。
2010/01/31(日) 05:53:16ID:CeH4M0fLあと今まで古典タスクシステム無視してFSMでしかゲームくんでこなかったから
種類ごとの動作順序がバラバラなのが何だか気持ち悪いよ><
0363名前は開発中のものです。
2010/01/31(日) 05:56:28ID:98e6KIKRFSMって有限ステートマシンのこと?
>>FSMでしかゲームくんでこなかったから
具体的にどうやって組むのか教えて。初めて聞いたから知りたい。
0364名前は開発中のものです。
2010/01/31(日) 06:04:26ID:CeH4M0fLこれでゲームを組むっていうのは、大雑把に例えると
1) タイトル画面を管理するタスクが存在する
2) ゲーム本編を管理するタスクが存在する
3) ゲームオーバーエフェクトを管理するタスクが存在する
の時、タイトル画面からはゲーム開始できるから
(1)->(2)
(2)からはゲームオーバーとゲームリセットが考えられるから
(2)->(1), (2)->(3)
ゲームオーバーするとタイトルに戻されるから
(3)->(1)
こんなFSMができあがる。
ゲーム中の敵みたいなオブジェクトも
敵生成エフェクト->
敵が発生する->
敵が存在する(行動する事が閉じたFSMとして別に繋がっているが省略)->
敵が破壊される
な単純なFSMとして処理の流れを記述できる。
でも、これは一々タスクを4つ作らないといけないし、無理してタスクひとつに詰め込んでも
状態変数を持ってifやswitchなどで内部で分岐処理をしないといけない。
これは非直感的で避けたい。
0365名前は開発中のものです。
2010/01/31(日) 06:16:23ID:CeH4M0fL今はFSMの代わりにmicrothreadを使おうと調べているんだけど、
これはタスク中でyieldと言われている処理をする事でタスクの実行をプログラムのその行で中断し
次のタスクへ処理が委ねられる。
次回自分のタスクが回ってきた時、即ち次フレームになると
yieldの次のステートメントから処理を再開する仕組みっていう解釈でおk?
本質的には割り込みのないmulti threadと同じものだから各microthreadは動作順序が保証されない様に思えるんだけれど
どうなんだろう。
勿論動作順序の必要な箇所(描画など)は今までどおりFSMで組むけど、マルチスレッドなんて慣れてないから
「注意しておかないとバグや処理系依存になる」事がありそうで怖い。
0366名前は開発中のものです。
2010/01/31(日) 11:51:44ID:HU8XW/cO古典的タスクシステムの実装での話しなら
yieldで分割される単位で実行関数作って、状態が変わったら登録関数切り替え。
タスクを通して維持される情報はタスクのワークに、が古典的タスクシステムのやり方かと。
ちなみに古典的なリスト形式じゃなくてツリー構造にして子の生存管理を親に任せれば
上で言ってるタイトルとゲームオーバーと、みたいなシーンも君の言うFSMと同じように階層管理できる。
階層タスクはボス戦艦の船体の親タスクと砲台の子タスク、みたいな使い方でもよく使われる。
リストでも同じことできるけど、親の座標が子の座標に影響したり親がやられたら子も全滅、みたいなのは
ツリーで作った方が楽。
0367名前は開発中のものです。
2010/01/31(日) 12:17:25ID:QrJboi/QここでいうFSMってタイトルの選択とかタイトルローカルの情報はどこで持ってるんだ?
グローバル?タイトル関数のstatic変数?
メインループから呼ばれて毎フレーム抜けるんだよな
静的に関数コールでくっついてるってことはクラスのメソッドでもないんだよな
仮にクラスのメソッドだとしたらタイトルがゲームとかゲームオーバーとかのクラスを所有するのか?
なんか色々タスク方式よりずっと気持ち悪く見えるんだけど。
0368名前は開発中のものです。
2010/01/31(日) 14:39:09ID:3AvaezOmなんで先週の俺こんなに一所懸命カプセルかしてたんだっけ?
0369名前は開発中のものです。
2010/01/31(日) 14:55:48ID:CeH4M0fLなるほどー。
階層構造にしてしまうのもやり易そうですね。
今の機能と共存する形で実装できそうなので作ってみます。
>>367
うう、すみません。表現の仕方が悪かったみたいです。
タスクシステムを普通に作ったらタスクが状態としてFSMで記述され、
遷移がひたすらタスクの生成と破棄する処理として置き換わる事を言っています。
366さんも言っているように、microthread等を使わなければyieldで分割される単位でタスクを作って記述が分断されます。
タスク方式よりずっと気持ち悪く見えても、これはタスクシステムそのものなんです。
0370名前は開発中のものです。
2010/01/31(日) 15:01:40ID:CeH4M0fLタスクシステムそのものと言っても古典タスクシステムではありません。
実は僕は>>335で、そのレスにあるとおりの機能に依存して今まで開発しておりました・・・。
種類ごとの順序がない、定数時間で同じ種類のタスク全てに対する反復子取得できない、
データ構造がC++風のクラスという型レベルのものではなく処理関数と専用の構造体に分かれている、
汎用ワークエリアの容量が不足している事により起きるバグの回避が自動でできない、
そんな古典タスクシステムからできるだけオーバーヘッドを除きつつ逃げる為にいろいろやっております。
0371名前は開発中のものです。
2010/01/31(日) 15:43:20ID:PBTWOUVltask::exec() {
switch(state) {
case TITLE:
条件満たしたらstate=STAGE1;
case STAGE1:
case STAGE2:
}
}
こんなのでいいんじゃないの?
0372名前は開発中のものです。
2010/01/31(日) 16:32:55ID:oiLUSXKA使わなくても、じゃなく、使わない方が良いだろうね、大概の場合。
FSMでマイクロスレッド使う場合のディメリットは、
FSMのステートをスタックフレームのPCで「代用」するやり方では、
一種類のステートしか保存できない点。だって、PCは一個しかないからな。
だから、マイクロスレッドでFSMやってると、
複数のステートが絡み合うようになる段階で、逆に苦労する。
■ このスレッドは過去ログ倉庫に格納されています