高専のHSPerのクルクルパーが吠えてると聞いて
HSPerが寝たころを見計らって。前スレの問いに一応答えておくか。 またネタにマジレスとか言われるかもしれないが。 >あとさ、シーングラフの中から、条件にあったオブジェクトを高速に列挙する >それをお前はDBだとかあんた言ってるんだろ? >そんな機能、シーングラフを扱うライブラリなら大抵入ってるじゃん >or用意に組み込めるようなトラバーサのインターフェースを提供してるじゃん いや、可読性の問題だから。HSPが嫌われる原因も主に可読性だしな。
ProcessだったりActorだったりObjectだったりTaskだったりJobだったり。
7 :
名前は開発中のものです。 :2009/02/19(木) 07:34:29 ID:xOakX6Dy
結局、前スレの奴、なんでDBにしたのかさっぱりわからないな(笑)
エスパーじゃないから判らないのは当然だ。 しかしその理由を推測できないのは、>7のプログラマとしてのセンスが足りないと言わざるを得ない。 目の前のコードを解析してその設計思想を推測するのは、プログラム上達への近道。 ワカランワカランと何時までもほざいているのは、ただのバカ。
普通に分かるように話せよ。 前スレでMPIが出てきたときは吹いた。 苦し紛れにアレコレ言い逃れしようとすんな。
>>8 >>518 のプログラムは分かるだろ。普通に巨大なクソだった。
で、なんでそんなに巨大なクソをありがたく拝んでいるのかが分からんと言ってるんだが。
メリットはなんだといろんな奴が何度も聞いてるのに、出てくる答えは全部HOW。
これはプログラム見たって分からないし、
クソの思想設計を推測したってプログラムは上達しない。
自動並列化にしたって
>>510 のコードには何もない。
だから話がかみ合わないんだろ。疑問が生まれるんだろ。
つーかさ、マジでこんなの推測できるわけないだろ。
「参照構造」とかトンデモ思想が飛び出して唖然としたわ。
こんなナナメ上理解できるかよ。
>>10 >>518 じゃなくて前スレの
>>510 な。
開発規模が個人と複数とではまるで話が違ってくるんで、
個人向けなら個人向けと最初から言って欲しい。
前スレ
>>510 の「オブジェクトがどこからでも参照できるのがメリット」
とかいうのは複数人開発では全く使えないな。
なんでもできるようにするのがエンジニアリングだと思うなよ。
>>5 専用のインターフェースを使ったほうが可読性上がるだろ普通。
あと、目的が分からないまま言語だけ叩いてもしょうがないと思うが。
どんなゲームをHSPで作ろうとしているのか。
そのゲームを作るのにHSPに過不足があるのか。
この辺見えてないまま単にHSPだけ叩くのは不可能だろ。
目的によって最適な手段は違うから、目的が分からないままでは手段の不当性は訴えられない。
タスカーは目的無視で一般的銀の弾丸を漠然と論じたがる傾向があるから難しいかもしれんが、
それじゃ議論にならないから目的をハッキリさせるのは重要だと理解してくれよな。
ちなみに、タスクシステムは目的0というか、
>>510 に至っては掲げている目的が見当違いだったり、
実は実装されていなかったりだからナニコレ?と言ってるわけだ。
みんなHSPに反応しすぎだよ。HSP使いのことはほっといてタスクの話しようぜ。 このままだと、このスレッドはHSPスレです。タスクの議論は他でお願いします。 とかそのうち出てきそうじゃん。
14 :
名前は開発中のものです。 :2009/02/19(木) 18:29:00 ID:xOakX6Dy
タスク信者どもこのスレで完全に息の根をとめてやるぜ 具体的にはもうタスクシステムでゲームなんて作れんようにしてやる
別に使い続けてもいいんだよ 洗脳するなってだけ
小学生に失礼
給料泥棒のHSPがアンチタスカーのふりをして暴れてると聞いて
ドンタスクったらドンタスク
>>5 >いや、可読性の問題だから
何言ってんのお前。頭蓋の中が空っぽだから適当ぶっこいてHSP叩いて逃げてるだろ
HSPの問題じゃねーのよ。わかる?フロントエンドに何の言語使ってようが
てめぇが言ってるタスクシステム=DBとかいう珍説はチンプンカンプンなんだよ
>>13 本当だよな。俺はHSP使いってだけなのに
底辺ワナビー・ダメ中年に限ってHSP使ってるって部分に脊髄反射してやたらネチネチと絡んでくる
おまけにポインタが使えないだとか、見当違いのこと言ってくる(前>>821-)。馬鹿かと
固定長メモリプール使ってれば
>>2 のポインタの使い方なんて配列の添え字(番号)でも記述できる
ハンドル使ってるなら、ID+配列の添え字 あるいは ID+プールタイプ+配列の添え字 とか
あと前
>>510 のソースの背後にある思想は
>>2 と違うと書いたが、どうやら外れだったらしい
書いた本人(
>>510 )の思想はタスク信者そのものだった。何がしたいのかサッパリ見えないし無知だ
ageうんこ詩人の当初の予想は的中していたようだ。心からお詫びする
ゲームプログラムの中の処理単位を扱う何らかのシステムだというタスクシステム
>>2 ではゲームオブジェクトがタスクらしい。
それが今度はDBです。とか。何言ってるんだ?
タスク信者って窮すると話をかっ飛ばしてウヤムヤにしようとするよな
まあ、
>>510 の最終目標の1つは、シーングラフを構築する上でタスクを使って並列処理を行うって意味なんでしょ。
タスク単位で他タスクの保有するオブジェクトの参照や依存関係を明確にして、
並列処理できる分については、自動でスレッドにタスクを投げ込んでやろうとしてるのかな。
参照構造はその第1歩って事なんだと思う。DBって言葉使うと紛らわしいよね。一般的なDBMとは単語の意味合いがちょっと違うかな。
タスクからのオブジェクトの所有/解放と他オブジェクト参照の可否を組込む辺りから先ずは始めるのがいいと思う。
でも、並列タスクが相互干渉する状態での同期処理となると頭抱えちゃうかな。
最後にこのようなタスクが残るとクリティカルパスに影響するだろうから、
同期/非同期なのかは、個別に指示する必要がありそうな感ではある。全部動的にするのは難しいね。
タスクの粒度を細かくすると、参照構造がばらけて、並列化しやすくなるだろうけど、タスクプールが肥大になってかえってオーバヘッド生みそうだし、、
逆に粒度を荒くすると、並列化が困難になりそうだよね。その辺のバランス調整も難しそうだ。
他にもアイディアとしては、前フレームでの1タスクの実行時間を保持しておき、
それを次フレームでのタスク予想時間として利用して、効率的に分配するとかかな。
俺はタスクは使わない派だが、
>>510 は応援するよ。ネタとしては楽しいと思う。
始めソースを見ても目的が意味不明だったが、言ってることは分かった。
>>2 とは、目標としているところは全然違うっしょ。
あと、参照構造についての意見はまたそのうちまとめて書くよ。
23 :
名前は開発中のものです。 :2009/02/20(金) 07:27:31 ID:SutyetVr
そんなわけねーじゃん だってどっからでも参照できるのがメリットとかウンコ臭かったじゃんよ
手段のせいで目的を制限するようなことはしたくないなぁ。 時には泥臭いことをやってでも解決しなきゃいけないことはあるんだ。 動けばいいんだよ。 HSPクンだって引数クンだってアンチタスク厨だって、作ったものが仕様どおりに動けばいいんだ。 仕様ってのは「どこからでも参照できる」でその手段が「DBのようなものを採用」だっただけ。 じゃ、なんで「どこからでも参照できる」なのかといえば、それは>510が決めたからとしか言いようが無い。 別に他人のタメにプログラム組んでるわけじゃないのだから。
25 :
名前は開発中のものです。 :2009/02/20(金) 08:36:41 ID:SutyetVr
設計のせの字もわかってないから引数否定して グローバルインスタンスホルダーなんて作ってしまうわけですね まず、なんでグローバル変数や関数が駄目なのか?とかそっから理解してないよね
>>24 >別に他人のタメにプログラム組んでるわけじゃないのだから。
自分のためのライブラリならそう明示すりゃいい。
目的・用途が不明瞭なまま手段だけ出して「これどうよ」と言われれば、
それは一般向けのものとして応えるしかないだろ。
HSPクンは、 「俺はHSP使いってだけなのに 底辺ワナビー・ダメ中年に限ってHSP使ってるって部分に脊髄反射してやたらネチネチと絡んでくる」 とHSPを使ってることを叩かれると激しく怒る。 しかしHSPクン自身も、タスク使いってだけのやつにネチネチと絡んでいる。 これを同属嫌悪という。
28 :
名前は開発中のものです。 :2009/02/20(金) 10:44:19 ID:mhW5mlx0
HSP使いの基地外が暴れてると聞いて
>>22 前スレ510はアンチの立場から>2の考え方を参考にしつつ
明らかに違うものをタスクと再定義してみるネタじゃね。
(読み違えてなければ)従来のタスクで特徴的だとされる
ごった煮リストじゃなくて型毎にリスト持ってるし。
OpenMPやMap-Reduceの影響の方が強いように感じた。
31 :
名前は開発中のものです。 :2009/02/20(金) 18:33:19 ID:SutyetVr
でもDBがどうのこうの言ってたじゃん 馬鹿のすることに無理やり意味なんて探すことないよ
32 :
名前は開発中のものです。 :2009/02/20(金) 18:35:20 ID:SutyetVr
どうせ匿名掲示板なんだから有利な状態で仕切り直し直せよ それでも潰すけどね
33 :
名前は開発中のものです。 :2009/02/20(金) 18:51:36 ID:SutyetVr
それと新ワード連発して煙にまく手法は相手にされなきゃそれまでな上に 逆に具体性を求められるとタスクシステムに関係してないとどうしても弱くなるし その上タスクシステムとの関連まで説明させられるしで正直手としては弱い気がすんだよね
>25 引数クンは、前スレでContext&の受け渡しも否定していたヤツだぞ。 引数を通して渡すのは必要なものだけ、それ以外を渡したらダメ。 グローバルは当然使っちゃダメ。グローバルに順ずるものも使っちゃダメ。 という極端すぎる人のことだが、ID:SutyetVrはもしかして引数クン本人なのか?
引数君は給料泥棒のド素人プログラマなんだから、いい加減トリップつけて、 みんなからNG指定してもらったほうがこのスレのためだと思うが。 基地外みたいなアンチタスカーは引数君か前のスレ主なんだろうな。
ID:YgfxUXIw ここまで煽りのみか。 お前がトリップつけろよ。 煽りしかできない奴は邪魔。
DBって何? ドラゴンボールの略かえ? タスクシステムってwikiにすら載ってないから謎が多いよね オブジェクト指向データベースですらwikiに載ってるというのに タスクシステムごときをシーングラフと同列に並べるなよ 全角英数使うなよ DSLぐらい理解しろよ 飯食ったか 風呂入ったか 歯ー磨けよ
そのwikiってのは、もしかしてWikipediaのことか?
個人で作る規模のゲームなら、変に凝らなくてもタスクシステム程度でちょうどいいんでないかな。 タスクも必要ないテトリスとかオセロぐらい単純なゲームならwhile/switch/caseだけでもいいし。 仕事で作るゲームならその現場のルールや伝統の方法でやりゃいい。 結局アンチタスクって ポインタも構造体も無いHSPでタスク使いたくても使えないから すっぱい葡萄になってるレアケースでしょ。
「変に凝ってる」のがタスクシステムだと気付け。
いい加減ド素人タスカーの「お前ら技術力ないだろ、○○を勉強しろ」的なレスは飽きた。
>>40 あの糞単純なタスクシステムのどこが凝って見えるのかを知りたい。
どのタスクシステムについて言ってるんだ?
>>2 か?
>>2 なら現代でやる意味がないという意味で変に凝っている。
その他のカスタムタスクを指しているなら、目的が迷走している点で変に凝っている。
#define ONE 1 #define PLUS + int x = ONE PLUS ONE; こんな馬鹿げたことをやってるのがタスクシステム。 単純なこと変なやり方でやって喜んでるだけだろ。
>>44 よくわからんが
君の頭の中では
タスクシステム=マクロ
なのか?
もしかしてタスクシステムを理解してない?
……。 「単純なこと変なやり方でやって喜んでる」という例えを示しただけなんだけど。
タスクシステム自体はすごく単純な作りだけど あれでも理解できない人がいるということか まぁ関数ポインタとか、C言語初心者には「変なやり方」で難しいかもしれんが。
まあ、「理解してない?」みたいな突っかかり方が十八番だからしゃあないか。
つーか、理解するとかしないとか、どんだけ低レベルなの。
>>47 >>41
>>48 それはつまり
みんな君が理解してないことを突っ込んでたけど
君は勉強しても理解できないからアンチになった、ということになるが…
とりあえず、タスクシステムのメリットを説明してみ? 誰もまともにできてないんだが。 お前がどう理解しているのかちゃんと示してくれ。
メリット説明できずに黙るだろうな。 これまでの奴は全部そうだった。 ID:P36r7rTDの健闘を祈る。
ギャラガとか今なら個人で作る規模のアクションゲームなら 複数オブジェの並列動作を単純に記述できていいね、ぐらいのものじゃない? そんな難しく考えるほどのもの?
forループで済む話をわざわざ変なやり方で面倒にしている理由を話せと言っている。 単純というが、普通に書いたらどう複雑で、それをどう単純にしたのか示してみろ。 タスクシステムのほうが複雑だから「単純に記述」という部分が嘘になってるんだよ。
ギャラガを例にとると 自分・敵の弾、敵の死亡、敵の生成、などのオブジェが可変のケースだと オブジェの増減をリスト管理してとか、結局タスクシステムと同じような仕組み作る必要があるんでない? さらに、敵が編隊組んで移動、とかボーナスシーンとか、隊長機がやられたら編隊解散、とか タスクなら関数切り替えで単純に状態推移を記述可能だけど switch/caseで状態をオブジェ単位で記録して切り分け、となると タスクシステムのほうがシンプルに記述できるだろ。 まぁ関数ポインタ理解できない人が見たら難しいソースになるかもしらんが。
まぁ理解できないなら使わないでいいと思うぞ。 趣味のプログラマがどんな方法でプログラムしようとも 誰も文句いわんだろ。
状態遷移を関数ポインタで表現するのは良いと思うし、
それはタスクシステムに限ったことじゃないよな。
>>1 を読んで、どのタスクシステムについて語ってるのかハッキリさせてほしいんだが。
タスクシステムだとオブジェクト間の関連が処理順依存になって面倒になると思うが。
そこはどうすんの?
1フレームの誤差だから許容すんの?
>>57 >>1 を読んで、どのタスクシステムについて語ってるのかハッキリさせてほしいんだが。
ゲームの種類にあわせればいいんでない?
ほんとに単純なゲームなら
>>2 でもいいけど、ゲームによって問題が出たり
普通にC++使える環境ならクラスで作り直したり改良もあり.。基本的な考え方は変わらんでしょ。
>>タスクシステムだとオブジェクト間の関連が処理順依存になって面倒になると思うが。
オブジェクト間の処理順が問題になるケースなら
いわゆる「プライオリティつき」タスクを使うか、シグナルのような仕組みを付け加えればよいのでは?
そもそもあんまりタスク使って複雑になるようなゲームならタスクじゃない管理方法使うべきだし。
>>58 >基本的な考え方は変わらんでしょ。
TCB有る無しで違うと思うが。
タスクを1個のリストで管理するかどうかも重要だ。
ごった煮リストでむりくり制御しようとしている様を指して変だと言ってるんで。
>いわゆる「プライオリティつき」タスクを使うか、シグナルのような仕組みを付け加えればよいのでは?
ここまでやると「単純」の域を超えているだろ。
すでにコードの見通しが悪くなってる。
「タスクシステム」のプライオリティーはベーシックの行番号やGOTOに見えるわ。
>そもそもあんまりタスク使って複雑になるようなゲームならタスクじゃない管理方法使うべきだし。
そうだな。
「箸なんて原始的です。だから誰かメリット教えてくれないと箸の使い方覚えません」 って言ってる子供と同じだな。 「魚食うときとか便利だろ?」と言っても 「スープ飲めないじゃん、肉切れないじゃん」と言い返される。 スープ飲むときゃスプーン使えばいい。肉きりたきゃナイフとフォーク。箸で食いやすいものは箸で食えば良い。それだけのこと。 でも箸ぐらい使えないと馬鹿にされるぞ、と。
単純-複雑、変-変じゃない、とか審美的主観の話をしたら 好みの違う人とは話が合わないのは当然。 技術的に欠陥や優位があるというのならコードや 測定結果の数字を使って具体的に定量的に主張しろよ。
>>60 で、「箸で食いやすいもの」は結局なんなの?
タスクシステム使って良かったと思える場面てどこ?
やっぱりメリット言えないの?
タスクシステムが原始的だなんて言ってないだろ。
タスクシステムよりもずっと原始的なやり方のほうが遥かにマシだと言ってるんだが。
>>60 ちがうな
箸で食えばいいのにトンカチで食べようとしてる人がいるから
なんで?って聞いてるんだ
いや、トンカチですらないな トンカチは役に立つもんなw タスクシステムはなんだろ? なんにも役に立たないやw
定量的な主張なら前スレ
>>510 と
>>641 でやったな。
>>510 にはメリットが無いのにコード量は
>>641 の倍だった。
コード量の差と
>>510 が使っていたかなりの量のマクロを指して複雑だと言っている。
>>2 はその時点ですでにタスク信者が見放していたからまだだけど、比較する必要あるか?
>53 だからcontinuationの問題だろ?
>>66 だから継続もタスクシステム抜きで実現できるだろ?
>57 全てのn+1は、必ずnを参照すべし とキミは主張しているのか?
そのうえ全部まるごと食えばいいじゃんとか言う奴もいるから話にならんな
>67 dispatch部分をいちいち個別に書くのかよw
>71 > タスクシステムだとオブジェクト間の関連が処理順依存になって面倒になると思うが。 > そこはどうすんの? > 1フレームの誤差だから許容すんの? タスクシステムだろうと、個別ループだろうと、処理依存するだろ? 1フレームの誤差はどちらでも出るぞ。 だから、『状態n+1に更新する場合は、全ての状態nを保存してから処理すべし』、と言いたいのか? と尋ねたんだが、理解できなかったか?
逆に言えば、 priorityを上げ下げすることで処理順依存をある程度解消できるタスクシステムとやらの方が 個別ループよりも柔軟性が高く優秀である とID:3HETWV4tは言っているわけだが、今まで言ってきてることと矛盾してるだろ? ホントに気づいてないのか?
>>65 >
>>510 にはメリットが無いのにコード量は
>>641 の倍だった。
タスクシステムの部分を除けば641のほうがはるかにコード量は多かったよ。
それだけでもタスクシステムというシステムを導入するメリットがあると言えると思うが。
>>72 >タスクシステムだろうと、個別ループだろうと、処理依存するだろ?
ああ、そりゃそうだな。
>>73 プライオリティーで表現すれば処理順を動的に変更できるし柔軟性も高まるが、そんな需要あるか?
・自機の弾に当たっている敵A
・自機に重なっている敵A
この場合どちらを先に処理するか、全部消滅させるかみたいなルールは動的に決めるものではないよな。
これをわざわざプライオリティーで表現してソートしたりするのが面倒なんだが。
さらにこの辺のプライオリティーがハードコーディングならやっぱり無駄にしか見えん。
でもってこれをタスクシステムで頑張ると「面倒→誤差許容しないとやってられない」、
というシナリオを描いて
>>57 の発言となった。
シグナルだのプライオリティーだの言っても所詮ルールが静的ならべた書きのほうが楽だろ。
>>74 ■TaskDemo
main.cpp 4684
Tasksystem.cpp 337
Tasksystem.h 4625
■NormalDemo
main.cpp 5087
Star.cpp 514
main.h 118
Star.h 235
(5087 + 514 + 118 + 235) - 4684 = 1270
その差50行程度だが、どこが遥かになんだ。
なんで静的であるという前提なんだ? そういうゲームしか作ったこと無いとか?
>>77 この手のルールが動的に変わる場合ってどんなのがあるの?
ギャラガは違うよな。
素手で食いたいなら素手で食ってもいいんだが… 何を使えばいいかは料理しだい。世界中の料理を箸で食べろとは主張してないし、 ナイフもフォークもどんな道具も、万能な道具なんてないよ。 でも箸使えないからって箸を否定するのはみっともないよね、ということだね。 箸を使えないのが能力不足のせいか、HSPのせいかは知らんが。
>78 つまり、作ったことも無ければ想像したことも無いということか。 ダメジャンw
万能な道具はないが、明らかに場違いな道具はあるって話。 俺はもともと目的に合った手段を選べという立場だ。 タスクシステムが手段として他のやり方よりもまともに機能する場面て何?と聞いているんだが。 その問いに対してズバリこれと言ってくれればそれで話は終わるんだがな。 >でも箸使えないからって箸を否定するのはみっともないよね 俺はオマル使えないし、オマル使ってるやつは否定したくなるな。 オマル使ってるやつはみっともないし、オマルを勧める奴は言語道断だ。
まあ、オマルならな、渋滞にはまった時の非常手段として役立つかもしれない。 洩らすよりはマシだからな。 こういう「こんな時なら使える」って意見が欲しいんだよ。
タスクシステムを使った実例は ナムコの古典的アーケード以外にも 昔からのゲームメーカーのゲームを入れれば星の数ほど使われてる それに対して何もゲーム作ったことも無い人間が「メリット理解できません」 といっても「そうだろうね」としか言えんわな。 今の最新ゲームの規模で古典的タスクみたいな単純な仕組みが使われることはもう無いけど、 個人製作レベルならまだその程度で十分じゃないのかな。 個人製作レベルで数億円かかるフレームワークとかエンジンとかの話してても夢物語だし…
>>83 現代で使うメリットが無いと言ってるんだよ。
リソースきつきつだった時代に使うことまで否定してないだろ。
>>84 関数ポインタ理解できる程度のプログラマなら
小規模なゲームで状態推移を簡単に管理できる実装の一例、程度でしょ
プログラマに実装の選択肢があるのは一般にメリットだと思うがね。
逆に君は「あらゆる状態でタスクより優れた方法がある」ということを
説明できるのかね?
>81 > 俺はオマル使えないし、オマル使ってるやつは否定したくなるな。 > オマル使ってるやつはみっともないし、オマルを勧める奴は言語道断だ。 オマエは要介護認定の人たちをバカにしているのか?
87 :
名前は開発中のものです。 :2009/02/21(土) 15:08:18 ID:hYClRP74
なんでお前らは結論の出てる議題で必死になってるんだ?
そーいえば 非相対マルチコアの某最新コンシューマ機で 少ないサブコアのローカルメモリ内だけでメインCPU側から独立して タスク管理するために、ほぼタスクシステムな仕組みでジョブ管理されてる実装を見たな。 これ、最新ゲームだったけど。 リソースがいくらでもある、って前提で富豪的考え方しか出来ん最近のゆとりプログラマには 結局最新技術も使いこなせないんだろうなぁ…
>>90 >>84 まあ、これは無駄に「現代」とくくったのがイカンかったね。
リソース使える場面でもタスクシステム使うといいよという例があったら頼むわ。
みんな熱いな。タスクについての認識や結論はもう出てると思う。 「使いたいやつが使えばいいと思う」 ただそれだけだ。 タスクのメリット話せと言われても、おそらく使ってる人も表現し辛い箇所なんだよね。 フレーム間を跨ぐ処理を書く上で多用するわけで、その辺はゲームによってまちまちだ。 じゃあ逆にタスク代替案も示せと言われても、 switchに戻すだとかで、これといって画一的な処理は示されないのが現状。 銀の弾丸は存在しない。それだけだよね。
haskellとかでタスクシステムを実装するとしたらどんな感じになるか ただしunsafeほげほげとかIORef禁止で
>>91 そのURLに書いてあるのって、アクセスの話じゃなくて宣言を整理するって話じゃないの?
>>92 CPUリソースとメモリリソースを考慮に入れないなら
それこそどんなアルゴリズムでもいいんでない?遅かろうが無駄だろうが好きなの使えば。
作業効率とか考えるならプログラムも不要でツクールやMODでいいんじゃね?という感じ。
本職のプログラマなら、どんなチープな環境でも軽量・低コストで動作できる
アルゴリズムを知ってるのは十分メリットだと思うけど。
組み込みにしろ、携帯機にしろ、リソースの厳しい環境でやれって言われるのは
良くあることだから。
ま、個人製作ならそんなことどーでもいいんで、
そーなると実装方法を強制されない個人製作で何でアンチタスクになるのかが謎だが。
嫌いなら使わなきゃいいだけなのに。何でアンチ?
>>91 なつかしいな「Cプログラミング診断室」
でもグロバール変数一覧は俺はオススメできないけどな
そもそも作るなといいたいw>グローバル変数・関数
98 :
名前は開発中のものです。 :2009/02/21(土) 15:48:18 ID:Vn5x9Xxe
Haskellはスレッドが数バイトしか使わないほど 軽いから結構かわりそう
>>96 いきなり極端になったな。
作業効率考えるなら〜の部分が唐突に投げやりなんだが、まあしゃあないか。
>>39 >>40 この流れをよく見てみよう。
結局、変に凝ってるのはどっちだよ。
アンチっていうか、こういう意味不明なこと言う奴に、
「リソースある場面でタスクシステム導入する奴は変に凝ってる」
と言いたいわけだ。
リソース無い場面で使うことに関して異論がないのはもう何べんも言ってるのでこれ以上繰り返さないようにな。
ちなみに
>>39 で想定している場面てリソースないような状況じゃないよな。
>>95 そうです。今見返すと話つながってないっすね。混乱させてごめん。
1つ目のURL書いた理由は、グローバルなもの(マクロも変数も)を無秩序に使ってると
10000行あたりで破綻するという話を紹介したかったからです。
2つ目のURLはOKだよね?
>99 引数クンなのか、ごった煮リスト嫌いクンなのか、どっちなの? それとも、それ以外? 複雑なものは理解できないクン?
>>92 リソースが余ってるならC++を使う必要性自体がないのでは・・・w
俺は
>>84 は、現代のプログラマでも「タスクも知っていた方が良い」ことを示すいい事例だと思った
リソース使える場面でC#やRubyよりC++使うといいよという例があれば前言は取り消す
>>76 > (5087 + 514 + 118 + 235) - 4684 = 1270
> その差50行程度だが、どこが遥かになんだ。
タスクシステム使わないほうは、27%もソース増えてるじゃん。
開発時間はソースの量にだいたいは比例するから、
8時間の作業で済むところが、10時間強もかかる計算になるじゃん。
俺ならそんなの御免だね。
だから、俺は使えるところでは使ったほうがいいという結論だな。
使えないと思うところでは使わない。それだけのことじゃん。
>>103 処理が減ったわけでもないのに
そこがそんなにうれしいとこなのか?
>>104 人間がバグを仕込んでしまう確率は、だいたいコードの分量に比例して増えるからね。
可読性を保っているなら、コードは少ないほうが望ましい。27%も違えば大きな違いだろう。
>>100 1つ目が繋がってないのに2つ目を持ってこられても困るというか
個人的な感想を言えば、たったの1万行で破綻するとはとても思えない
とりあえず俺は実装についてはどうでもよくて、タスクシステムという名前へのアンチ
要はゲーム中で動く「モノ」のことでしょ?なんでわざわざタスクとか呼ぶん?
例えば「実例で学ぶゲームAIプログラミング」の2章が
もろにいわゆるタスクシステムやタスク間通信の近代的なC++実装だと思うんだが
タスクなんてひとっことも言わないし、こうやって作るんだとか誇りもしないのね。たいしたことじゃないから。
これがいまどきのありふれた感覚じゃねーの?
だいたい根本的に、「モノ」を管理するために低レベルなOSのアナロジーを使うこと自体が間違ってると思う。
そういうの実装を歪めると思わん?
「ゲームオブジェクト」「エンティティ」「アクター」なんでもいいけど、「タスク」だけはない。
具象的なネーミングとしても抽象的なネーミングとしても。
非ゲームプログラマがTaskという名前のクラスを見て、何なのかすぐ理解できるのかってことですよ。
お前らがやりたいのは、OSの稚拙な真似事じゃなくて、「モノ」を動かすことでしょ?
あーでもロスプラみたいにマルチコアに振り分けるならOS的要素強いかもね。わかんね。
結局、典型的な「自転車置場の議論」(
http://0xcc.net/blog/archives/000135.html )なんだよなこれ。
松浦本読んだ程度のドシロウトでも参加できるという。
そういうのを避けるためにも俺はタスクシステムという言葉は使わない。
使ってるやつ見かけたら陰からこっそり指さして笑う。
行数でインパクトがないからってパーセント換算するのはヤメようぜ。
タスクというとITRON思い出すから嫌なんだよな。 ITRONのタスクはすげーよ。なのに、タスクシステムのタスクは全然すごくねーよ。 このギャップにイラッとするのはある。
>>105 それは本質をまったくみてないなぁ
1行ごとに中身のない改行を入れて「;」を打つだけでも行数だけは増えるじゃない
しかも今回のプログラムだって工夫すれば改行崩れの処理省きでcontinue文は消せてしまうので
それをソースコードの行数の増加と考えるのは上げ足取りをしてるようにしか見えない
むしろ、マクロでfor文を見えなくした
>>510 のがわかりにくくて気持ち悪い
このマクロっぽいのの意味を初見でみた人が知るには付属のタスクシステムテンプレートを
全部読んで理解するしかないでしょ?
これは嫌だなぁ
仮にマニュアルもなにもなかったとしたらかなり読める人限定されそう
>>108 このまま規模が大きくなっても、このパーセンテージは揺らがない。
タスクシステムを使わないほうのプログラムでは、どうしても27%ほどだけソースが大きくなる。
だから行数なんかには意味がない。このパーセンテージのほうがはるかに重要だ。
お前は、どうしてそれをごまかそうとするのか俺にはわからない。
>>110 > それは本質をまったくみてないなぁ
そんなことはない。大雑把にはソースの分量で判定できる。
どちらのプログラムも平均的なプログラマが書いたと仮定して、
タスクシステムを使わないほうは27%もソース分量が増えたのには違いない。
> むしろ、マクロでfor文を見えなくした
>>510 のがわかりにくくて気持ち悪い
あの程度のソースがわかりにくいとは思わないが、マニュアルがないと
正しく使えない人がいるというのには同意。
ただ、本人が開発するなら話は別だろう。
>>111 酷いな
ループのカッコとnull判定のことでしかないのに
ここまでくると病気としかいいようがない
まあ、でも差分がループのカッコとnull判定だけなんだから それがタスクシステムの本来の役目ということがはっきりしたともいえるね 正直、差分がそこしか見えなかったんだからそれでいいんだよな? タスクシステム=ループのカッコとnull判定をはじけます でおk?
>>113 あんたはプログラミング経験が浅くてわかってないんだろうが、ループも、二重ループにするとき、
i,jの添え字を間違えたり、null判定を忘れたり、continueを書き忘れたりするのが人間ってものなの。
そういう定型化している部分を共通部分として書き出して、どこか別のところに追いやったほうが
バグは減るわけ。それは別にタスクシステムでなくてもいいのだが。
forがforeachになっただけでずいぶんバグが減る。
foreachの終了のときのハンドラを定義する構文があればさらに安全性は高まる。
そうやって抽象化と共通部分の括りだしを繰り返して書いていくのがプログラムだろう。
>>111 >このまま規模が大きくなっても、このパーセンテージは揺らがない。
どこがそんなにラクになるのかなと見直したが、2重のforループがTASK2と書けるんだね。
ここでだいぶ文字数稼いでるみたいだ。
んで、それがそんなにうれしいことなのかと言われるとNOな訳で。
>>115 だから
タスクシステム=ループのカッコとnull判定をなくした最新鋭のシステムです
でいいんだろ?
>>114 > 正直、差分がそこしか見えなかったんだからそれでいいんだよな?
全然違うね。
510のように抽象化することで、自動並列化のようなことが可能になってくる。
まあ、510のソースを自動並列化するのは正直無理だが、もう少し抽象化して、
各タスクの役割を明確に記述できれば自動並列化できる。
>>107 「ウォークマン」みたいなものじゃない?
最初に有名になって、それ以降類似したものの総称として
便利だから名前だけ使ってるって。
>非ゲームプログラマがTaskという名前のクラスを見て、何なのかすぐ理解できるのかってことですよ。
タスクシステムを使うのはゲームプログラマでしょ。普通は。
いちいち現場で「これはオブジェクトを管理するシステムで更新と描画で登録関数が呼ばれて…」
とか説明するより「タスクシステム的なもの」の一言でゲームプログラマならだいたいって通じるし。
ま、デザインパターンみたいにちゃんと定義と命名されればいいんだろうけど
ゲーム業界固有の物だしねぇ
まあ、2重のforループで文字数稼いでいるということは、 forループの中身が増えれば増えるほどその稼ぎは薄まる訳だ。 規模が巨大になればなるほどパーセント減るようにしか見えないぞ。 その辺どうなのよ。
>>121 510と641を並列化するソースを書き比べればすぐにわかるよ。
そんな本格的なものでなくていいから。
2重ループでi×jのループ回してるところ、あれをi×j / N のループに
分けて実行して、すべてのスレッドの終了をセマフォで待つだけでいいよ。
>>122 > forループの中身が増えれば増えるほどその稼ぎは薄まる訳だ。
> 規模が巨大になればなるほどパーセント減るようにしか見えないぞ。
それはもちろん正しい。そのへんはゲームの性質によるだろう。
タスクシステムとやらのメリット コードが一割減 タスクシステムのデメリット 可読性が低くなる この調子でお願いします メリットわかってるんだったらごまかさずに書けよ そんな出し惜しみばかりするから無駄に荒れる
>>126 コード削減、一割減はちょっと違うと思うな。
今回の例ではタスクシステムを使わないと27%増。
俺の感覚では、だいたいこの数字はどんなゲームでもそんなに変わらなくて
平均すれば20%前後だと思うな。これが10%程度ってことはないな。
並列化とかもっと大がかりな仕組みがタスクシステム側に用意されていれば
この差はもっと広がるしな。まあ、それをタスクシステムと呼んでいいのかは知らんが。
じゃあ二割減でもいいや 開発速度向上はない、可読性が低いものほど開発に時間がかかるから タスクシステムとやらのデメリットとして 開発に時間がかかるというのも追加できる この調子ならメリットデメリットを列挙できそうだな 選択肢になりうるかどうかはそれを見れば判断できるだろう 化けの皮を一枚ずつはいでいくのは楽しいの
>>128 > 開発速度向上はない、可読性が低いものほど開発に時間がかかるから
ソース全部理解しなくても、510のタスクシステムは使えるだろ。
TASK2(クラス名A,クラス名B)
{
クラス名A1.XXX = YYY;
クラス名B2.ZZZ = WWW;
}
こう使うだけじゃん。説明に1分も要さないと思うが?
>128 > 開発速度向上はない、可読性が低いものほど開発に時間がかかるから > タスクシステムとやらのデメリットとして まずタスクシステムのどこが可読性低いのかを示してもらわないと。 FSMになってるところ? 関数ポインタの部分? ごった煮リスト?
>>130 自分のタスク内で完結しない処理に関しては、全部グローバル変数経由
ゲーム中のあるシーンを想定した場合、そこで何のタスクがどういう順番で走るかが、
コードの一箇所を見てもわからない。
>>129 でも読みにくいなぁ、おいw
それが何を表してるのかさっぱりわからないぜw
ループ隠しただけなのになw
>>131 >自分のタスク内で完結しない処理に関しては、全部グローバル変数経由
そんな処理するのはタスクじゃないだろ。
>>118 > もう少し抽象化して、各タスクの役割を明確に記述できれば自動並列化できる。
そんな簡単じゃないよ。
並列処理は計算機科学の分野では長らく研究されていて、いろいろ知見が積み重なってるんだが、
少なくとも 510 からは、自動並列化につながる筋道がまったく見えない。
夢が大きいのはいいんだが、まったく現実性が無いのもどうかと思うぞ。
タスク擁護派から言わせてもらうが、
>>129 は読みづらいよ
初めて読む STL や Loki や boost と同じくらいにね。俺なら使わん
結局、あるライブラリを使うメリットは普及してるかどうかだ
strcpy や strncpy を使うメリットはなんだ?
みんなあの仕様はおかしいと感じているのに? タスクもそれと同じこと。
そして、普及さえしていなければメリットはないと考えて必死で叩くお前らは正しい
>>134 > 並列処理は計算機科学の分野では長らく研究されていて、いろいろ知見が積み重なってるんだが、
> 少なくとも 510 からは、自動並列化につながる筋道がまったく見えない。
「自動」の意味を誤解しているようだが、
自動車は、自動的に目的地まで運んでくれる乗り物ではないのと同様、
人間が何もしなくてもいいという意味ではない。
俺が「自動」並列化と言っているのは
>>123 の意味。
例えば、TASK2をP_TASKと人間が書き換えればあとは自動的に並列化してくれるように改造するのは容易。
なんでこれが出来ないと思うのか、俺はお前らの技術力を疑いたくなる。本当にお前らプログラマなのか?
>>136 > なんでこれが出来ないと思うのか
その程度で済むなら OpenMP がやってる
>>137-138 お前らが何もわかってないただの自称プログラムだというのは十分わかった。
123すら出来ないとはな。
>>138 お前本当に日本人か?どう見ても中国人だろ。
前スレ、前前スレから日本語が極端に不自由な奴が二名いるみたいだが、お前はそいつだろ。
プログラム以前に日本語教室行ってこいよ。
もはや進む方向が頭おかしいじゃん ループなんかはずして喜ぶプログラマいないってw むしろ、ループ処理してるならfor文を見えるところにおいておいてほしいだろ 誰がこんな構造にして喜ぶのか? ちょっとは考えろよ
>>139 依存関係も副作用も無いコードなら、そら簡単に並列処理できるさ。数値計算だと
割と多いが、ゲームでそれはほとんどないだろ。
日本語がおかしかったら中国人ってなんできめつけんの? インド人かもしれんし韓国人かもしれんだろ
可読性に関してはDSLの圧勝なので それに比べてタスクシステムは可読性がないと言えるのは間違いないよ 専門家でも読むのが難しい本と、幼稚園児が読める絵本とでは 同じ文字数だとしても 絵本の方が圧倒的に速く読めるでしょう、当たり前だけどな 使えるから使えると言ってるけど 使ったら他の選択肢がなくなるから、使えるからと言って考えなしに使うなと 昔の偉い人とエロイ人もゆってた つまり、エロエロよー
>>142 横槍ですまんが、あくまでゲームで並列処理は難しいと決め付けるのは良くない。
ゲームは依存化が明確にしやすく、
割と並列化しやすいとMTフレームワークの中の人が言っております。
http://game.watch.impress.co.jp/docs/20070131/3dlp.htm >石田氏は「タスクという観点から見ると、依存関係は最小化でき、
>むしろゲームプログラムは並列化しやすいともいえるんです」と、
>これまでのゲーム開発の常識とは正反対の意見を主張する。
これには自分も驚いたが、
MTフレームワークの製作者が実践してそう思ったのなら説得力があると思わないか?
まぁ、予想(予測)と理論と実践はそれぞれ違うって事だ。
>>145 予想というか、仕事で実際にゲーム書いてた経験談なんだが。モーションとかレンダリング
まわりのジョブはわりと分割しやすいんだけど、いわゆるゲームロジックに絡む部分は、
かなり難しい。
排他制御は特にバグが入りやすい部分だし、仕様変更多発が想定されるゲームロジック
部分を並列処理するのはリスキー。
完全に頭ごなしに否定するのではなく、 そのリスキーな部分をいかにして、 安全で仕様変更に強い設計で書くのかを議論していってもいと思うわけよ。 仕事でロジック部分の並列化やられたら、うへぇってなるが、 趣味だったら面白いネタだとおもわないかい?
まぁ俺はタスク使わない派だけれども、 もしタスク派が生き残りをかけるのなら、マルチコア時代の恩恵を 受けられるような並列処理の記述性ただ1点だけ突き詰めるのが良いとおもうぜ。
前スレでは、誰かがプロも使っているタスクシステムと言ってたな 他人の権威にすがって偉そうにする奴も世の中にはたくさんいる そういう奴は最後には命乞いをして延命を図る 延命を図るのだよっっっ くやしいのぅ、くやしいのぅwww
150 :
名前は開発中のものです。 :2009/02/21(土) 21:37:12 ID:H2kw4iDd
ID:Dmt7DoEE
前スレの
>>510 は名乗るのをやめても
タスク信者の特徴は消せないのだから
名乗るといい
名無しでの火消し&誘導は無駄
いや。俺は以前
>>22 を書いた者で、すまんが510とは別人だ。
実際にタスクについては主に見通しの問題で否定的で、参照構造についても目的が無ければ無意味な足枷でしかないと考えている。
ただ、並列化については興味があるわけ。マルチスレッドで速度を稼げるのならそういう技術も覚えたいと思っている。
そんな中、自動並列化についてタスクにはその可能性がなきにしもあらずと考えている。
まぁ自分は実装するのはゴメンだがね。
>>142 > 依存関係も副作用も無いコードなら、そら簡単に並列処理できるさ。数値計算だと
> 割と多いが、ゲームでそれはほとんどないだろ。
あんた、本当に大きなゲームのプログラム書いたことがなさそうだな。
並列化して処理時間を稼ぎたい部分って、同期のためのコストとかもあるから
実際はかなり粒度の大きな、単純な計算が繰り返される処理なんだよ。
ゲームのうち、衝突判定とかは特にそういう計算ばっかりだ。
まあ、
>>145 でもすでに指摘されているが。
このスレは本当に商用で大きな規模のゲームを作ったことがあるのかと
疑いたくなるような奴ばかりで俺はただただ呆れるばかりだ。
>>151 > そんな中、自動並列化についてタスクにはその可能性がなきにしもあらずと考えている。
そもそも、CPU 食ってるのはゲームロジックより、ヒット判定やモーション処理だったり
しないか? 将棋とかの AI は別だけどさ。
そこは仕様が比較的安定しているから、作りこむだけのコストがかけられる。自動並列化
なんていわずとも、従来のロックベースの方法で OK。
一般的な自動並列化と俺定義の自動並列化で話が通じ合ってないな、お前ら。
>>152 衝突判定は、単に「ぶつかってる・いない」を判定するだけなら簡単なんだが、衝突の
解決が絡むと並列化が割と難しい。
衝突解決には、たとえば「壁は動かない」「プレイヤーが壁に当たったら押し戻される」
「プレイヤーと NPC があたったら NPC 優先」とかルールを決めて、それに応じて
優先順位つけて解決していくのが一般的だと思うが、問題は解決するときに相互
作用が発生することなんだよな。
シーケンシャルに処理するなら、割と手抜きアルゴリズムでもそれっぽく見えるんだが、
並列処理するとなったら、とたんに複雑さが増す。前に一度やってみてメゲた。
>>153 コンシューマならCPUの数と使用用途が特定されてるもんだが、現実的に考えて決めうちでが妥当だと思う。
PCのような特定されないマルチCPUの環境を考えると、自動で並列化するのは面白いんじゃないんかねぇ……。
自動並列化といっても、正直こればっかりは実装してみないと、
どのようにスレッド分配され、パフォーマンスが上がるのか下がるのかは、議論できんところだね。
お前らw
>>136 で自動並列化の俺定義出してるんだから、ここはそれに合わせてやれよ。
>>136 はライブラリ提供者が、ライブラリ利用者に分からないようこっそり裏で並列化(手作業)しやすいよ。
と、言ってるんじゃないの? 違うか?
ちなみにID:D/oVP314とその他は一般的な意味で話してるような気がする。
ググって出てくるような一般的な意味ね。
>>157 っつか、それはデータの依存性自動検出とかできないと無理なわけで。ハードルが
超高い。
ループの抽象化が人為的ミスを防ぐとか、
>>123 の意味で処理を挿げ替え易いというのは分かる。
出来るだけ先入観を抜きにして、もう一度
>>510 を読んでみた。
やっぱり、TASKマクロのもどかしさが引っかかるんだよな。
iとjどっちも0からブン回してるけど、星衝突ループはj=i+1からで充分。
オーダーが変わってくるんだけど、その辺手が出せないじゃん。
そんな場合、TASK2Bマクロでも作るのかな?
ライブラリに任せでこういう不備があると面倒だ。
しかもこれに対処するとアドバンテージ消えそうだな。
WindowだのApplicationだのをタスク化してるのも意味不明だな。
継承したものがまるまる無駄になってるのが大雑把すぎ。
TASK2に突っ込みたいがためにやってるだけなら、やっぱり無駄過ぎだよな。
先行投資と言っても、その投資が回収されるまでは過度の抽象化にすぎないわけだ。
んで、
>>641 バグっるかもって作者言ってたけど、ホントにバグっててワロタ。
・万有引力はj=0から回さないとダメ。
・星衝突で自分同士の場合のcontinueが抜けてる。
あとはOK。
>>158 その超高いハードルを、どうしたら解決できるだろうかを議論しようじゃないか。
たとえば
>>510 はデータ集約について提案し、
参照構造の是非について議論しようとしていたようだよね。
オブジェクトの所有/解放を(ライブラリ内で見えないように)行うことで、
並列化の足掛かりを見出そうとしたようだよ。第1歩というか、パフォーマンス的には第-1歩だけど。
まあ、
>>123 みたいな部分で泥臭い作業が発生したとしても、
俺は
>>510 より
>>641 のほうが良いね。
「シンボル'Star2'は定義されてません」とかVCに言われてイラつくこともないし。
無駄や不透明な部分があると精神衛生上良くない。
>>160 > その超高いハードルを、どうしたら解決できるだろうかを議論しようじゃないか。
本気でやるなら、サーベイ論文読むところからスタート。かなり研究されてる分野だから、
ゼロから何かやるとか時間の無駄なので。
>>162 そんなくだらいこと研究して金もらってる奴がいることに驚きだぜw
>>161 > 「シンボル'Star2'は定義されてません」とかVCに言われてイラつくこともないし。
インテリセンスでるのにそんなミスやるはずがないじゃん。あんた使ってるのVC98?
>>163 並列処理のアルゴリズム・データ構造まわりは昔から研究ネタとしてはよくあるんだが、
単一プロセッサの性能向上が頭打ちになるのが現実的になってきた頃から、Intel, IBM を
はじめとした企業が金と人突っ込んでる。
公開されていて実際に開発に使えるレベルになっている成果というと、たとえば Intel
Threading Building Block とかさ。
いや、自動並列化は普通に研究対象としてアリだろ。 これから必要になってくる分野だぞ。 タスクシステムにしてもな、 ゲームの根幹的な制御部に使うのはかえって面倒そうなのでやっぱり嫌だ。 単純で、相互作用がなくて、あったとしても誤差許容できて、計算結果はゲーム性に影響しない。 ベストエフォートで充分なところなら使えそうだとは思った。 大量の火花エフェクトとか、そういう余力でやればいいような部分。
>>162 すまん。俺も本気でやるつもりは無いんだ。
正直、並列化には憧れているが、鬼門だと思ってる。それが手動であっても自動であってもさ。
ゲームではない自分の専門分野でIntelC++とMPIで稼ぐ実装をした事があるが、
冗長になった割にパフォーマンスが出なくて萎えた経験がある。
もしゲーム特化で、安全で保守の掛からないデータ構造を有するタスク自動並列化のライブラリが出来たのなら、
金貰ってもいいレベルだと思う。個人が趣味でやる分野じゃないねぇ。
結局、自動化ってあんまり意味ないよね プログラムって最低限設定しなきゃいけない内容は絶対に自動にならねぇし 結局は上にスルーパスして設定を任せるだけになる スクリプト組んでも苦労する人間が変わるだけで絶対的な作業量は無くならない むしろ、トータルでは増えてしまう場面のが多いかもね そりゃプログラマの仕事があんまり高度で・・・っていうならわかるけど できたスクリプト言語がC言語とあまり変わらんようなのってどうよ? ってのと同じでタスクシステムも結局処理をスルーパスしてるだけで 自動化してるように見えるだけでしょ?
>>169 ん?複数スレッドにタスク単位で処理を投げてパフォーマンスを稼ぐ「自動並列化」の話だよ?
>>169 データ構造と処理内容を限定することで、並列処理を定型化して簡単に使えるように
するってのは、話としては分かる。
ただ、それを目指すならタスクとやらは starting point としては全然ダメなのが萎える。
>>169 ID:4jF5VqD/はド素人か。本当にゲーム作ったことあんのか?
お前、一人だけレベルが低すぎる。もう引っ込め。
とりあえず、煽るのはヤメにしようぜ。面倒だ。
同じく煽るのはやめましょう。 識者との有意義な話。(できれば建設的な話)にもっていきたい。
175 :
名前は開発中のものです。 :2009/02/21(土) 23:38:57 ID:LbjEvDmu
松浦健一郎の本って内容濃いね
>>170 え?そんな話してんの?w
絶対無理だと思うよ
ゲームで一番重い処理はオブジェクト同士の関連だって
少なくともデータ自体は分離されてなきゃ並列に動けないと思うぜ
ごった煮にした時点でそんなの無理じゃね?
ゲームロジックで一番重たいのは当り判定だ。 そんなものしらないのかよ。糞が。
今、oyaとkoクラスがあって、それぞれupdateメソッドを持っている。 koクラスのupdateメソッドはoyaクラスのupdateメソッド内で呼ばれる。 koクラスのupdateメソッド内の処理は、ある特定の情報(ここではinfoとする)を必要としている。 infoをどのようにしてkoクラスのupdateメソッド内の処理に参照させればよいか。 1.グローバル変数 2.引数 3.シングルトンパターン
複数生成されちゃ困るような情報ならシングルトンになるんじゃないの? oyaクラスで生成する情報であれば引数で渡すのが楽だろうし
>>159 >・星衝突で自分同士の場合のcontinueが抜けてる。
j=i+1から回してるから自分同士ありえないな。
万有引力をj=0から回すだけで良い。
>>177 ゲーム内容も明示せずに
>ゲームロジックで一番重たいのは当り判定だ。
ってゲーム一般として断言できちゃうあたりがステキ
物理演算バリバリの3Dコリジョンチェックと
2Dシューティングのボックス判定の繰り返しは違うし
AIの計算時間、モデルのアニメ計算etc...の時間もゲームによって違うのにね。
>>177 ジャンルによる。将棋だと AI の方が重い。
183 :
名前は開発中のものです。 :2009/02/23(月) 07:26:36 ID:sG7Lzgrq
タスク信者どもやっと死んだか?
プログラムが一行も書けないアンチタスカーのポエマーが死んだんじゃね?
タスク信者は死なんよ。 なぜならアンチタスカーこそが最大のタスク信者だから。 俺もアンチタスカーだが、皆がタスクシステムの利点に気づかないように、 あえてアンチを演じている。 気づかれると日本経済が破綻するからな。
186 :
名前は開発中のものです。 :2009/02/23(月) 12:39:27 ID:sG7Lzgrq
日本経済脆過ぎだろ
皆それが分からずに回りをぐるぐる回ってるだけ。 アメリカではオブジェクト指向での陽動作戦が主流。 一部日本でもその余波の影響を受けてる。2重3重に騙されて踊らされてる状態。 何かおかしいと気がついたインテリたちはLisp使ってる。 しかしそこどまり。ロジックでは根源にたどり着かない。 防空壕の中に居ては何も出来ない現実。
日本語でお願いします。
信者もアンチもどっちもゲ製住民らしくてとっても面白いので もうちょっと続けてください
スタックという構造がそもそもの誤り。諸悪の根源。 理想な構造=都合の悪いものを外部に追いやってるだけ。局所的幸せ。 このままいくと、プログラムは幸せになるが、プログラマは不幸になる。 国は幸せだが国民が不幸な北朝鮮と同じ。
ちょっと考えれば分かること。 スタックがあるので関数はいつでも呼び出せる。 でも、引数はいつでも用意できるわけではない。 スタックは一見理想的な構造に見えるが、実は都合の悪いことを外部に追いやっただけ。 みんな困ってる。でも気がついていない。
タスクシステムは流れが読みづらくなりすぎだ オブジェクト指向的スパゲッティコードのようなもの GOTOを使ったスパゲッティコードの方がまし Lisperが書いた本でlisp最高最高書いてあったからよく読んでみたら DSLのようなメタをその言葉を知らないまま絶賛していた Lisperってのはすごいんだかすごくないんだかよくわからない人達だった 実装の要点である問題領域をいかに簡単に書くかということこそが 最重要であるのに、そのアプローチを真っ向から阻むタスクシステムを 俺は許せない、許せんのだよ タスクシステム死すべき死すべき
問題領域が簡単に書けたとしても、それ以外の部分が複雑になるだけ。 「簡単に書いてやろう」その発想がすでに誤り。 タスカーもアンチタスカーも同じ場所をぐるぐる回ってるだけ。
もうこれはプログラム技術知識というか哲学だな。
>>107 の書いてた自転車置き場の議論だっけ?良く納得した。
早々に退散させてもらうぜ。
>>193 タスク信者はひとくくりにしていい
だがタスク信者でないものはひとくくりには出来ない
それはログを見れば分かる。それぞれ批判の切り口が違う
読まないから分からない。こういう一見さんに限って
俯瞰視点を気取って分かったような口を利き
稚拙な総括で締めくくろうとする
タスク信者以上に邪魔な存在だ
196 :
名前は開発中のものです。 :2009/02/23(月) 18:45:03 ID:2rXEX53B
>>194 結論なんてとっくにでてるよ。
余暇にやることが無いからとりあえずアンチと信者に分かれて鬼ごっこしてるだけ。
>>194 哲学?そんな高尚なものではない
どうでもいい役割に、どうでもよくない重要な役割を無理に与え昇格させようと試み
どうでもいい実装を、どうでもよくないウルテクであるかのように喧伝する
これはハッタリ詐欺だ。昔を知らないアマチュアを騙くらかそうと躍起になる石器人の産物だ
>>195 残念ながら私は前スレの510だ。
一見さんどころか、プログラムすら投じている常連だ。
むしろ、私が居ないとこのスレは回らない。もはやネタが無いからな。
>読まないから分からない。こういう一見さんに限って
>俯瞰視点を気取って分かったような口を利き
>稚拙な総括で締めくくろうとする
自分にレスして楽しいの?
さ〜今宵も盛り上がってまいりました!!
199 :
名前は開発中のものです。 :2009/02/23(月) 19:04:16 ID:Kk+tvzE1
やれやれ、わからない奴もいるんだな 複雑だが重要な箇所や、試行錯誤が必要な箇所 何度も書き換える必要のある箇所をDSLで記述を簡潔にする それ以外は多少複雑になってもかまわない 一度しか書かない複雑な箇所と、何度も書き直す簡単な箇所のみで システム全体が組まれていれば トータルでの開発コストが最小になる 逆に複雑な箇所を何度も書き直したら莫大なコストになるってことぐらい 少し考えればバカでもわかるはずだ
>何度も書き換える必要のある箇所をDSLで記述を簡潔にする DSLだと何で簡単になるの? 仮に何らかの理由で簡単になるとして、理由が分かってるのならDSLでなくても良くない? なんでわざわざ言語作るの?
揚げ足取りしかできないのかバカな奴 DSLを理解していればそんな反論にはならないのに やっぱりお前はバカなのだな 他人の言葉を借りて本質を理解することが出来ない 反論の余地のない要点を避けて、揚げ足取りをしているだけ 自分の言っていることすらもわかってないんじゃないのか 自分で言い出した事に対する返答に対して揚げ足取りなんて ずいぶんと姑息な手を使うのが好きなようだな 何について話しているのかすらも忘れて、ただひたすらに 他人を黙らせるためだけに語るのだろ それは罵倒するだけの人間と同じ種類の人間 そんな奴を見てはいそうですねといえるはずもなかろう おまえもうんこと一緒に便器に流れてしまえ このうんこやろう
CはアセンブリのDSLではない。
C言語だと何で簡単になるの? 仮に何らかの理由で簡単になるとして、理由が分かってるのならC言語でなくても良くない? なんでわざわざ言語作るの?
頭の悪いマナーも知らないクソやろう7qNmU6oRに対してわかりやすく書いてやろう
>問題領域が簡単に書けたとしても、それ以外の部分が複雑になるだけ。
>「簡単に書いてやろう」その発想がすでに誤り。
に対する反論が
>>199 というわけだ
おまえの頭の中にはちゃんと脳みそが入ってますかあーあー
なんならうんこでも付け足してやろうか
>なんでわざわざ言語作るの?
この一文でDSLがなんなのかを全く理解していないのがわかる
ばーかばーか
なんかファビョられた。 DSLは、問題を複雑にしている原因を一網打尽に他所へ隔離するための一手段でしかない。 このスレみたいにな。 >複雑だが重要な箇所や、試行錯誤が必要な箇所 >何度も書き換える必要のある箇所をDSLで記述を簡潔にする なにこの曖昧な記述。因果関係が意味不明。
>>204 C言語とアセンブリはDSL的には同じもの。
どっちも汎用言語で、どっちも同じ問題を解決するために開発されたものだから。
あげあし取りはどっちだか。枝葉に付き合うのは大変だ。 俺の主張を纏めておくと、 ・問題を複雑にしている原因を一網打尽に他所へ隔離することが大切。 ・DSLはその一手段。 ・目的が達成されれば、他の手段でも良い。 DSLとか簡潔とか、関係ねぇ。センスが無いっていうのですかね、こういうの。
>>198 残念ながら俺はHSP厨だ
で、タスクシステム=DBとかいうトンデモ論が意味分からないわけだが
てめぇ、またHSP叩いて逃げてんじゃねーぞチンカス
何日も待ってたが、結局あの
「俺様が考えた超すごい新生タスクシステム
>>510 」提唱者は
タスクシステム=DBとか絶叫して逃げたままだ
211 :
名前は開発中のものです。 :2009/02/23(月) 20:14:58 ID:sG7Lzgrq
DSLとタスクシステムってなんの関係もないじゃん
勝手にくつけるならまず
>>2 に関して自分がどういう立場なのかはっきりさせろよ
DSLを銀の弾丸と思ってるお前はタスカーと同じwwww
既出のものを既出と理解しない。自動でないものを自動であると叫ぶ ユーザーに処理の依存関係を分析させ、ユーザーの手で処理ステップを 依存関係の有無で分解させておいて、それを自動並列処理であるなどと言い放つ おまけにそれが新規性に溢れた野心的試みとか吠える 俺みたいなガキンチョが吠えてるならまだ許せるけど、いい歳したオッサンが こういう事して許されるの?
>>209 説明しようと思ったけど、やっぱやめた。繰り返しになるからな。
215 :
名前は開発中のものです。 :2009/02/23(月) 20:18:30 ID:Kk+tvzE1
俺の予想では7qNmU6oRが本質を理解せずに 言葉を並べて揚げ足を取って場をかき乱している奴だと思う、やねの同類 中立のふりをして片方に肩入れしたり 他人の言葉をパクってきたり、都合が悪くなると話題そらす それっぽく目的なんて言葉を出しても その周辺の原則を理解していないおまえには戦略を語る資格はない
>>214 中身がねーからな。説明できねーだろ。ほれ。↓反論してみろ
人間に処理の依存関係を調べさせ、人間に処理を分解させる
つまりマニュアル操作で、コード上での静的なスケジューリングを行っている
自動並列とか言い出したときは気が狂ったのかと思ったね
HSPerのレスは煽りだけで内容が無いから飽きられてるんだよ。
高専生の俺でも前
>>510 の今までの一連の主張がハッタリだらけであり
簡単なことを難しく記述しようとするある種のペテン師であると分かる
難しく煽ってるのはお前だ
前
>>510 って俺が出てくると急に一行レスが多くなって言葉が少なくなるね
ガキに突っ込まれるのがそんなに怖いのか?逃げてばっかだな
あー。そうだそうだ。 HSPerの高専君に言いたいとこ思い出した。 前スレでHSPで作ったゲーム挙げてほしいって言ってたのどうなった? HSPはDSLでゲーム特化言語だから、さぞかし優秀なゲームが出来上がってるんだと楽しみにしているのだが。
222 :
名前は開発中のものです。 :2009/02/23(月) 20:56:01 ID:sG7Lzgrq
とりあえずタスクシステムに関係ねーこと勝手にしゃべんのやめろ
223 :
名前は開発中のものです。 :2009/02/23(月) 20:58:41 ID:sG7Lzgrq
えいちえすぱーなんてタスクシステムまったく関係ねーじゃん 育ちが悪いな 親とか家族も馬鹿なんだろうな
さて、俺の
>>195 での書き込みは完全に的中していたわけだ
前
>>510 は筋金入りのタスク信者だ。この点だけは間違いない
彼らはタスクシステムを再解釈・再構築・再定義しようと試みる
タスク信者は便衣する。曰く「私はアンチだけど」「私は中立だけど」
しかしそれらの言葉に続く主張はタスク信者と一致しているのでバレバレ
本人はそれに気付かないのだから滑稽だ
>>193 は俯瞰視点を気取り、まるで中立の第三者のような話しっぷりだが
実態は
>>510 だった。筋金入りの新生タスクシステム提唱者だ。面白いよね
アマチュアのカルト野郎
HSPer君、悪いが質問に答えてくれんか? HSP最高と答えている君に対して、俺は前からゲームの提示を所望している。 こうやって煙に巻くのはこりごりだ。
>>226 はぁ?ここはHSPスレじゃないわけだが、なぜ俺にHSPの件で絡むの?
何故俺に限ってお前に成果物を開示しなくちゃいけないの?
つーかお前は誰?俺の何なの?何様なの?先生なの?単位くれるの?
早く前
>>510 の側面支援してやれよバカめ
もし、ゲームが提示できないのであれば、 HSP使いというのをいちいち名乗らないでくれ。 HSPについて叩かれ中傷されて、 いちいち過敏に反応して、話が飛ぶのはこりごりだ。 ここはタスクについて議論をしているところだ。 HSPがどのようにすばらしい言語であるのかは他のスレでやってくれ。
>>227 よし!ナイス! じゃあ自分からHSPの話題は金輪際出すなよ。
周りのみんなもHSPerにHSPの話題を振らないでくれ。
>>228 お前が反応してんじゃん。バカだろお前
反応する奴が悪い。ノイズフィルターがない奴が悪い
じゃあ、タスクの話に戻りましょうや。
俺はHSPを使ってると書いたがHSPの話題を自分から振った覚えは無いな 今までHSPに反応して勝手にHSP叩きに興じていた変なおじちゃん達の ノイズフィルターの無さを嘆けよな
>>232 もうその話は終わったっつーの。これ以上ぶりかえすな。
>>231 >>234 俺はずっと前
>>510 を追求してるわけだが
てめぇがくだらねー茶々を入れて話の腰を折ってんじゃん。よく読み返せよ
それで前
>>510 を逃したつもりになってんのか?お前
>>510 じゃねーの?
違うならとっとと前
>>510 の側面支援してやれよ。何度も言ってんだろ。ほれ
何度だって言う。前
>>510 のコードの実態。それは
>>213 、
>>216 じゃねーの?
どこに自動並列処理があんのか教えてくれね?
あとタスクシステム=DBってあれ何?それの実態には何か新規性あんの?
シーングラフを内包する既存のゲームエンジンにない野心的な何かなの?
ものすごく当たり前の性質を今更発見して唱えてるだけだったりしない?
俺は自動並列化について以前面白いネタだと言ったものだ。
>>510 のコードからはほど遠いが、
データ構造及び参照構造でオブジェクトの所有/解放を明記することで、
並列化は不可能ではないとおもってる。
ただ、自動並列化に至るまでは程遠いけどな。 絶対無理と言い切れないと考えている。
いいぞもっとやれ こんなしょうもない板のしょうもないスレの片隅で 顔真っ赤にして喧嘩してる連中がいると思うだけでメシウマ
>>236 その参照構造って具体的に何?新規性あんの?
誰が記述するの。その参照構造ってのは仕様の段階で決まってる何かなの?
例えば格ゲとか2DSTGの当たり判定表みたいなもんなの?ならツクラーでも分かるくらい既出じゃね?
Base(Access)とかで適当なVIEW作って依存関係を可視化したり、入力しやすいフォームを作ったりとか
そうやって仕様レベルで決まってる依存関係を簡単に入力できる仕組みを提供すればお仕舞いとか
そういう程度のものなの?それで自動なの?
>>238 おう。風呂に入るまでID:EEKBitmgに付き合うつもり。
返信が無いのが寂しいが。
先に風呂入って歯を磨いたからな
>>239 新規性なんぞない。
参照構造は足枷にしか過ぎないよ。
オブジェクトの所有を明確化することで、自動並列化を目指す第0歩。
多分510は苦し紛れにDBと言ったが、この場合の意味がそもそも違う。 一般的なデータの記録/取得を指すのではなく、データの所有を明確化することで、同期化の可否を問うもの。
ID:EEKBitmgがHSPしか使えない高専の基地外で ID:Kk+tvzE1が前スレ510のプログラムさえ読めなかった低脳ポエマーか お前らとりあえず死ね
オブジェクトの所有を明確化?それって静的なものなの?動的なものなの?
>>510 を見る限り、フレーム単位の処理ステップを更に小さなタスクと呼ばれる
処理ステップに(人間自身の手で)分解して、それを並べてるだけなんだけど
ソースコードに処理を並べてるってのは。静的なスケジューリングだよね
オブジェクトの所有ってのは静的なものだよね?
具体的にどんなものがあんの?
例えばレベルデータを、例えばPVSで空間分割してるとする。ポータル同士は静的な依存関係だね。
異なるポータルに入ってる要素同士は衝突する見込みないからポータルが異なれば同時処理できる
そういうこと?
なんか既出くさくね?
>>245 オブジェクトの所有に関して静的。タスクの並列化について動的。
>>510 のTASKはそれぞれオブジェクトを明示して扱ってるでしょ。
ロックベースで行えばそりゃ既出さ。散々やられている。
CPUの利用用途が特定されているコンシューマでは、決めうちで分配してる。
これを動的に扱おうという試み。
というか書き込み遅くないか? 前の書き込みから20分以上経ってるんだが……。 いちいち中断されると議論にならん。 そろそろ風呂いっちゃっていいか?
今ネトゲやってるから頭使うレスできない
前
>>510 には
>>246 の言ってることの片鱗すら見えない
全てが処理の流れは静的だし、各処理ステップが処理する要素も静的だし
TASK2(Aho,Baka)
TASK2(Doji,Aho)
TASK2(Unko,Ochikko)
TASK2(Hsp,Dsl)
TASK2(Doji,Hsp)
TASK2(Doji,Dsl)
TASK2(Doji,Dsl)
こういうふうに処理順も、扱うデータも明示してる
どう考えても
>>510 と
>>246 に関係はない
>>249 >>510 は並列化を視野に入れているとしか述べてない。
だってまだタスクの並列化処理についてどこにも記述されてないから静的にしか見えないのは当たり前。
静的にしか見えないのなら想像力の問題。拡張次第で動的にするなる第0歩。
>>510 はソースを提示もしたが、その後このコードについて言及している。
俺も最初は意味不明だったが、510のコメントを読んでいけば言わんとしていることは分かった。
その辺は以前
>>22 に書いた。
252 :
510 :2009/02/23(月) 23:04:55 ID:7qNmU6oR
ふー しゃべくり007見てきた。 またHSPerが何か吼えてるな。 コンテンツ産業は、HSPerが居れば安泰だな。
253 :
名前は開発中のものです。 :2009/02/23(月) 23:08:10 ID:Kk+tvzE1
そろそろタスクシステムのメリットとデメリットを教えてもらいたいものだ 前スレからずっと言ってるのに誰も答えてくれない メリット知らないで使うほどバカな奴もいないと思うけど まさか知らないって言うんじゃないだろうね
自動並列とか言ってなかった?
もしかして、処理ステップごとに処理対象を明示してるから
処理ステップ毎の依存関係が分かりやすく、一目で並列化の可否が分かりやすい
と前
>>510 が言ってたのか?
結局は人間がその処理に食わせる要素を自分で選択し
並列処理可能かどうか、自分の目で見て判断するんじゃない?
それを判断しやすいようにどう可視化すればいいかって話じゃない?
それじゃあ本物かどうか知らないが510が来たっぽいので、風呂場に行かせて貰うわ。
せっかく高専生相手に議論・討論の相手をしようとおもったのにID:EEKBitmgはネトゲやってて残念だ。
>>248 の書き方はどう見ても逃げたようにしか見えないぞ。
高専君は俺を相手にしてくれないようだからもう来ない。
風呂入ってくる。じゃあな。
>>253 ・唯一の価値観で構成される、美しいプログラム。
・美しさ保存の法則により、プログラムが美しくなる分、プログラマは汚い仕事を強いられる。
・趣味とはそういうもの。
>>252 てめぇはすぐにタスクシステム=DBとかいう珍説について作文書けよ
俺はネトゲやって寝る。じゃあな
>>251 想像力がどうのとか、ハハン、自分で考えろとか、お決まりの
せりふを出すタスク擁護派だが、こいつら脳みその中空っぽだろ
こいつらの自動並列化云々の話を見てると、おかしいところ一杯
どう見ても人力による並列化支援の話だ。静的なスケジューリングのために
どうやって処理の依存関係を可視化するか、とかそういう話で終わってるくさい
粗粒度処理の自動並列化?字句解析・構文解析して前
>>510 のソースから
TASK2 Hoge Hage
TASK2 Unko Hage
…blablabla
をゲットしたとして、各処理ステップが何のデータを取り扱うのか分かるけど
相互じゃなくて一方的な作用の場合は?第二引数Hageがリードオンリーなら
並列化できるよね?
>>510 じゃわかんないよね?基本的な部分が欠落してる
それぞれの処理ステップのワークロードも分からないよね?
あらかじめ計測してあげるの?それを人間が補助情報を食わせてあげるの?
なんかもう
>>2 とまるで違う話だよね
明らかに異形の何だかよくわからない聳え立つ糞にタスクシステムとかいう名前を絡め付けて
無理矢理このスレでの話題にしようとしているだけだろ。この調子だとあらゆるプログラムは
タスクシステムという名前を付ければオーケーになりそうだな
おまけに、片鱗も見えない機能があるかのようなハッタリ攻撃もかますし、それが見えないというと
ハハン、想像力の問題だね、とか、ハハン、自分で考えな、とか。逃げてばっか
キメラじゃ、タスクシステムとはキメラのことだったのじゃ
HSPerは日の光がまぶしいことに御立腹のようです
誰も真面目に議論する気なくて 威勢の良いHSPerを弄って遊んでるだけってことに いい加減気が付かないもんかね
いやいや。いい風呂だった〜。
さて明日も仕事だ。もう寝よう。
貴重な睡眠時間をID:EEKBitmgの相手で減らしたくないもんね。
>>257 からは週末に暇があったら読んどくわ。
それじゃおやすみなさい。
>>253 タスクと書くだけで君のように異常な反応を示す人を釣ることができて
生産性を幾分かでも削ることができる。ライバルからすればいい武器だな。 そのライバルは他の国や民族かもしれん。
こんなスレを見てしまった段階で踊る阿呆に見る阿呆だが。
久しぶりにファミコン版キャプテン翼やったら今でも面白いわ。 何これ、名作なんですけど。 お前らもこんなところでアホな罵り合いしてる暇があったらキャプテン翼やるべき。
>>264 なんだかよくわからないけど俺の文字を打つスピードはそこそこのものだから
たいした時間にはならないし、特に問題はない
挑発かどうかぐらいは見抜けるし
当分の間ここに常駐して遊ぶことを日課にすることに決めてあるから
特に問題はないよ
五人ぐらいが同じ意図を持つ発言を同じ時間帯に
ほぼ同時に書き込んでいるということは興味深いけど
それもたいした問題でもない
別に俺をおもちゃにして遊んでもいいぜ
その程度で怒り出すほど短気じゃないし
考え方を変えると、俺に反論できない連中がむきになって
必死に挑発しているようにも見えるから、逆に嘲笑できるので愉快だわ
おほほ
その程度の生態系
そういやWin32APIのHWNDをタスクIDと変えただけみたいな 自称タスクシステムみたことあるな int hogeTaskProc(HTASK htask, TASK_MESSAGE mes, DWORD lparam, DWORD wparam) { switch(mes) { case TMES_CREATE: ... break; case TMES_DESTROY: ... break; case TMES_DRAW: ... break; case TMES_UPDATE: ... break; } return defaultTaskProc(htask, mes, lparam, wparam); } newtask = CreateTask(parentTask, x, y, hogeTaskProc); って感じで。 サイズ設定とか位置設定とか親子関係とか もろWin32APIそのままっての。 これも使ってる人たちは「タスク」ってよんでたから タスクシステムの一種なんだろうなぁ… sendMessageとかもWin32APIと同じ。 タスク情報にx,y,w,hが含まれててコリジョンチェックまでシステム管理してたけど
270 :
名前は開発中のものです。 :2009/02/24(火) 07:33:43 ID:yxyYaCYi
相変わらずタスクシステムのメリットとデメリットはあがらないのな 自動並列化なんて嘘っ八だろ 普通に考えてごった煮な時点で不可能 だってすべてのオブジェクトに関してアクセスされちゃう可能性があるだろ 並列に処理できるわけない むしろ、まとめないほうがまだやりやすい
基地外ポエマー以外は前スレ510のソースを見ただけでメリットもデメリットも理解してると思うがな
272 :
名前は開発中のものです。 :2009/02/24(火) 10:32:59 ID:7ZNJKJuB
タスクにすると重くなるんですよね?
273 :
名前は開発中のものです。 :2009/02/24(火) 12:49:47 ID:yxyYaCYi
もちろん
アリにミサイルぶち込んでほど守る価値がタスクシステムにあるのかどうか 疑問だったけど、思い出した事がある 俺が興味を示していたのはやねちゃん方面なのであんたに関わるつもりはない そっちの要求どおり書き込むのは辞めよう その代わりそっちもこれ以上俺の周辺に出てこないで貰おう 俺は面倒事には関わりたくない あんたはその強力なカードを無意味に無力化したいとは思ってないだろ 俺に関わって来さえしなければ特に何の問題も発生しないだろう
ID:ly11pYeXが基地外ポエマーだな いい加減、コテハンにしてくれ。基地外なんだから。
277 :
名前は開発中のものです。 :2009/02/24(火) 19:54:09 ID:yxyYaCYi
やねうらおはタスクシステム論争はブログで敗北宣言したって聞いたよ
やねう先生は、にちゃんなんか読んでもないでしょうに・・
279 :
名前は開発中のものです。 :2009/02/24(火) 20:15:46 ID:yxyYaCYi
絶対読んでるよ ここが激化したころとちょうどにブログ更新したし ごった煮って言葉まで使ってるし でも内容はまるでだめだったな タスクシステムは駄目かもわからんね的ニュアンスはあった だれか本人にあったらキモイからくるなって言っといて
俺は、
>>277 と
>>279 だけ見ても ID:yxyYaCYiは知能障害だと思うんだが。
お前みたいな低脳はみんなコテハンにしろ。
281 :
名前は開発中のものです。 :2009/02/24(火) 20:55:59 ID:yxyYaCYi
本人乙
前スレ510を見て、誰もがメリットもデメリットも理解できるというのに 一人、二人510のソースすら読めない馬鹿がいたが、そのうちの一人がID:yxyYaCYiだろ あのソースすら読めないならプログラマやめて吊ってこいよ
>>282 エーーーーーーーーーーーーーーーーーーーー!
ループとっただけなのにぃ!?
頭腐ってんじゃねーのおマえw
>>265 反応がないので少し情報を出してみました
たぶんこれで間違いないと思うんだよ
というわけなので、
>>275 でよろしく
正直、面接で「やねうらおさんの本で勉強しました」と言ったら bad signal だな
やねうらおはさっさとタスクシステムをどうにかしろ。
288 :
名前は開発中のものです。 :2009/02/25(水) 11:06:07 ID:EtznPQRO
PCの、しかも2Dエロゲどまりの天才大先生には荷が勝ちす・・ じゃなくて役不足でしょ女子高生
タスクシステムなんて楽勝というか 単調すぎてやる気がそがれる女子高生
やねう大先生の専門は3Dですが。
>>291 ひょっとしてブログ読んでないの?読まずに批判してるの?
293 :
名前は開発中のものです。 :2009/02/25(水) 17:22:33 ID:EtznPQRO
やねうらおさんのライブラリはいつになったらサンディー対応するの?
>>293 64乙。親指の皮がむけて痛かったのはいい思い出
やねうらおのタスクシステムでゲーム作り覚えちゃったので今頃四苦八苦中。 今度は Irrlicht の各種ノードを参考にツリー構造で行こうと思ってるけど、 なんか他にもっといい実装あったら教えてくんろ。
296 :
名前は開発中のものです。 :2009/02/25(水) 18:14:03 ID:DAnxa36y
前スレ
>>641 を参考にでもして普通に組むことを覚えろ
そんでまずベタで組めコピペ上等で貼り付けまくれ
んでそのソースを見渡して共通化できると思ったらしてみればいい
なんもやらないで他人の言葉ばかり鵜呑みにしてると
自分で検証して正しいことをもぎ取る力がまったく付かない
そんなクズだからやねうらおなんかに騙される
優秀な奴ほど出たがらない 多分らねうらおはじゃんけんに負けたんだろう
女子高生
いや、プログラム覚えて1年目で、もう何本かゲーム作ってるのさ。
なんでタスクシステムに色々問題があることはわかってるし、
いろいろ試行錯誤重ねたけど、
どうも元のタスクシステムに毛が生えたようなものから離れられない。
もう5スレ目らしいし、なんかいい案とか出てないかなって思ったわけさ。
ちなみに前スレ
>>641 は俺がやねう本に出会う前のゲームと同じ書き方だった。
やっぱ自分でがんばるしかないかね。
>タスクシステムに色々問題があることはわかってるし 具体的にどういう問題にぶつかった?もし良かったら聞かせてほしい 短期間でザクザクッと作って忘れ去るような作り捨てゲームプログラミング ばかりしてる俺だけど、何かの役に立てるかもしれない (もしHSP使いごときにアドバイスされたくないと思ったら先に拒絶してね!) >なんかいい案とか出てないかなって思ったわけさ タスクシステムに毛の生えたものどころか、そんなものハナから不要だったりする ゲームプログラム全体からすれば、あんなものは溶けて無くなるほど瑣末な存在
× あんなものは溶けて無くなるほど瑣末な存在 ○ あれが提供する機能は溶けて無くなるほど瑣末なもの
いや、もうちょっと自分でがんばってみるからもういいよ。 ありがとう。
正しい選択だw ここで質問しても時間の無駄だよ。
シカトされてやんの
>んでそのソースを見渡して共通化できると思ったらしてみればいい 個人開発ならこのスキルを高め続ければ問題ない。
そこが重要なんだよね まず、一度ベタ(正攻法の意味、グローバル変数・関数を使ってしまっているとダメ)で 書いてみてそれから共通化しても全然遅くない なのにいきなり答えを求めて妙な汎用システムの構築からはじめるのが無駄過ぎる たいした経験もないくせにはじめから答えを求めすぎなんだよ まずはきちんとした正拳突きを出してみせろ 回し蹴りやかかと落しはそれからでいい
そして、昇竜拳、真・昇竜拳と続くのですね。
ごめんね。多分本人(ID:cuEKcEeQ)は薄々勘付いてると思うけど
ぶっちゃけて書いちゃうよ
↓ここ
>どうも元のタスクシステムに毛が生えたようなものから離れられない。
>もう5スレ目らしいし、なんかいい案とか出てないかなって思ったわけさ
ナニを作るのか定かでないのに、(ナニを作るのか書いてないのに)
何かを、おそらくは万能の超すごいものを求めてるんじゃないかしら
厨がこういうナマ言うとブッ叩かれるかもだけど
タスク信者にしろ、タスクシステムの先を行く先進次世代タスクシステムを
求める人にしろ、共通する特徴は
・ナニを作りたいのか決まってない。(or明らかにしない)
・(おおまかな)仕様も決まってない。(or明らかにしない)
・だから設計のプロセスに至ってない。設計図がない。(or明らかにしない)
・なのに何にでも使える万能の先進的something systemを求めて彷徨う
結果として万能の矛を求めて、
>>2 みたいな何だか意味不明な他人の竹槍を借りて
ボトムアップで無軌道なコーディングを開始して、壁に当たって撃沈するんじゃない?
モノづくりの超重要なプロセスを端折ってるよね
C言語の悪口はそこまでだ。
やねうらおって人もそうだよね。日記読んだけどこの人って STGを作るという前提でーとか言ってるけど、ぶっちゃけSTG好きじゃないでしょ どうせSTGならこんな機能を求めてんじゃねーの?みたいな、かなーりナメた態度だよね ぶっちゃけ、作りたいSTGなんて無いんだけど、次世代タスクシステムの記事を書く口実に 適当にSTG作るという前提ってことにしとけー、みたいな。その程度の考えでしょ
極端な話、何も作りたいものなんてない。ただsomething systemが作りたいだけって人の駄文だ 目的も目標(ゴール)もゲームと無関係のところにあるから、手段が目的化してるから 彼の語るsomething systemが何をするためのものなのかが見えない。記事全体の論旨がボケてる。
基地外HSPerにボロクソ言われるやねうらおカワイソス
>>308 HSPerただのゴミクズだと思ってたら
なかなかわかってるじゃん
そうなんだよね
タスクシステムになにかを求めてる奴って
目的がボヤケてて作りたいものがまったく見えないし
その状態でゲームなんて作ったら完成なんてしないと思うぜ
まず、目的をはっきりさせることだよね
ちゃんと自分の力量もわかった上で
タスク擁護派は、将来の仕様変更に備えて、と称して何でも動的にしようとする でも実は彼らの言う、将来の仕様変更に備えて、てのは全くの嘘っぱち 仕様が全く決まってないから、ロクでもない冗長な設計しかできない 本来ならコード上で確定できるはずのことが確定できない。静的に記述できない だから何でも動的にしようとする。上の自動並列化云々の話もそう コードでできるはずの処理の静的スケジューリングを嫌うのは仕様が全く決まってないから 仕様が全く決まってないからER図みたいなものも作れないんじゃない?
リンクの資料を見て これは正しいから、この通りにしなさい、と言える。 書いている人達は、OSの無いハードに実装する事を意味している、 例えば、MS-DOS系、Win9x系列、ゲーム機などです。 CPUの100%をユーザーが自由に使える時に、これがあると便利ですね 但し、最近のWindowsNT系列、WindowsXpなどは、マルチスレッドOSです、 DirectXも描画の管理を行う。そして、ゲームエンジンの中にも組み入れられています。 多重に管理領域を増やす事は、CPUの無駄な負荷を増やすだけで逆効果です。 最近のOSは負荷変動が大きくて使いづらい、それに加えて悪害を増やすのは良くない。 Windowsもシングルタスクに切り替える新しい機能を備えたなら このゲーム管理モニターが生きてくるのだろうが.....
>>316 > 例えば、MS-DOS系、Win9x系列、ゲーム機などです。
MS-DOS はともかく、他をOSないと言い切っちゃうのが素敵だ。
ID:EEKBitmgは一生手動でシコシコやってろよ。
C言語が生まれた理由は、アセンブリ以外の高級言語でシステムプログラミング したかったからでしょ。目標明確だと思うが。
タスクシステムはタスクのマネンジメントをしたかったから。 目標明確だが。ゲームに向いているかどうかはともかくとして。
321 :
名前は開発中のものです。 :2009/02/26(木) 07:27:23 ID:rj/WaPVe
は?マネジメント? ゲームになんで必要なの? 苦し紛れの戯れ言やめろよ
>>306 今まで読んできた中で一番わかりやすかった
>>306 >グローバル変数・関数を使ってしまっているとダメ
そんなことは無いよ
まとめられてる物を分割するのに比べれば
グローバル変数やグローバル関数をクラスにまとめるのなんて大した手間では無いし
複数人プロジェクトだとうかつに大きなリファクタリングができないから、
予めある程度まとめておく必要があるけど
一人なら神経質になる必要はないと思うよ
タスクシステムのメリットは昔だと複数人で開発しやすいってのがあった そういう意味でも今使用するメリットは無いなー
>>320 具体的に言うと
・タスクとは何?
・マネジメントとは何?
326 :
名前は開発中のものです。 :2009/02/26(木) 12:46:33 ID:rj/WaPVe
>>323 それもやってみてから判断すればいい
ま、フルーツジュースをアップルジュースとオレンジジュースに
簡単に分離できる人はいないと思うけどね(笑)
>・タスクとは何? >・マネジメントとは何? 好きにすれば?
タスクマネジメントっていう派遣会社が実在します(笑
>タスクシステムはタスクのマネンジメントをしたかったから。 >目標明確だが。 よくわかってるじゃないか。そう、彼らはsomething systemや something managerを作るのが目標(ゴール)になってしまってるわけ もはや彼らにとってはその先がどうなろうがどーでもいーわけ 彼らも当初は人間だった。ゲームで人を楽しませたかったのだろう それが目的で、目標は何らかのゲームを完成させることだったのだろう ところが月日が経ち、いつの間にかゲームプログラミングをすることが目的に タスクシステムを作ることが目標に摩り替わってしまって怪物に変わってしまった 夢のタスクシステムを追い求めて彼らは今日も徘徊する。それがタスク信者 >ゲームに向いているかどうかはともかくとして。 ↑こういう結果であっても彼ら怪物は意に介さない。人間と相容れるはずない 怪物と闘う者は、その過程で自らが怪物と化さぬよう心せよ おまえが長く深淵を覗くならば、深淵もまた等しくおまえを見返すのだ フリードリヒ・ニーチェ
>>329 HSPでろくにゲーム作った経験すらない基地外が吠えんな
something systemやsomething managerを求めるのはプログラマだからこそって気がするなぁ。
332 :
名前は開発中のものです。 :2009/02/27(金) 07:31:15 ID:8/3i+eFW
でもそれは的外れな気がするな 目的を果たすための手段でしかないはずなのにな 経験積んだらこういう俺々システム痛々しくて見てらんなくなった
>>332 ミドルウェアのほとんどすべてが俺々システムなんだが。頭大丈夫か?
>>316 スレッド一つで1MBも使うし重過ぎる(1000個で1GB)から、
何とかしようとしてタスクシステムを使ってるわけなんだが
>>333 ま、ミドルウェアつーてもピンキリだわな
>>332 の言う俺俺システムってのは、ロクな経験もない雑魚がやたら作りたがるイカ臭いオナニーシステムとか
オナニーフレームワークとかオナニーミドルウェアとかオナニーライブラリの類のことだろ
すんげーショボくてしょっぱい機能しか提供しないくせに、やたら独りよがり&でしゃばり&余計な
お節介してくる謎仕様の糞インターフェースを押し付けといて、『どや?えーか?えーのんか?』
みたいな得意げな表情を浮かべる。そういう厨二病時代を経験して大人の階段登るのはよくあること
タスク信者ってのはその状態が過渡的なものではなく、そこで停滞・永続化・ライフワーク化した
永遠の厨二時代を手に入れたモンスターなのさ
脳内「タスク信者」との闘いがライフワークの人が復帰した模様
ゲーム開発で仕様が決まってない箇所なんていくらでもあるじゃん。 PG個人で仕様が決められないからこそ、柔軟性を高く磐石につくるんだよ。
338 :
名前は開発中のものです。 :2009/02/27(金) 15:56:47 ID:DlxdBLtO
経験上、性能を重視しないものは一時はやっても廃れる運命にある。
タスクシステムはその点有用。ミドルウェア作るほどのことかは別として。
ゲームとは余り関係ないけど、次のようなものもある。
タスクシステムでActionScriptに擬似スレッドを実現したライブラリ
ActionScript Thread Library 1.0 (そうめん)
http://www.libspark.org/wiki/Thread
340 :
名前は開発中のものです。 :2009/02/27(金) 18:03:11 ID:8/3i+eFW
意味無いだろ タスクシステムのタスクは並列化できない 前もでたけどいつどんなときでもデータにさわれるごった煮だから 並列に処理を走らせることができない 並列化とタスクシステムはタスクって名前だけでなんの関係もないし タスクシステムのタスクと普通のタスクも違うものであることを忘れちゃ駄目
始めにゲームとあまり関係ないと書いてるのに。 ゲームのタスク≠一般のタスクなのは百も承知だよ。 ゲームにも「一般のタスク」を取り入れて、積極的に並列化していけってことだよ。 ゲームと並列化の相性はいいよ。
だーら、「タスクシステム」攻撃ちゃんは、そーいう普通の「タスク」と、 「タスクシステムがタスクと称しているもの」が全然違うといって攻撃してるんでさw
最近読み始めたから流れについていけないんだけど、
このスレの「タスクシステム」ってのは
>>2 のことなのか?
まったくだ!
最近は擁護派のレスもアンチにしか見えないから困る わざわざ出てきて余分な敵作って何がしたいのかと。
「タスクシステム」って言わないで、ちゃんと「
>>2 」って言えば
みんな幸せになれる気がする
つーか別に誰も万能タスクシステム作りたいなんて言ってないよな・・・ どこからそんな話が出てきたんだ?
作れるし、もっとも効率的
すまん、誤爆した
>>348 こういうレベルの人が言ってるだけでしょ。
どうすればゲーム作れるんですか?
タスクシステムってなんですか?
タスクシステム使うとどんなゲームでも作れるんですか?
>>348 > つーか別に誰も万能タスクシステム作りたいなんて言ってないよな・・・
> どこからそんな話が出てきたんだ?
自己矛盾
なるほど。 アンチは自分自身の心と戦っているのか。ご苦労さん。 次は上手くいくといいね。
>>348 ゲーム作りたいなーと思う人間が、皆が皆、汎用と万能の違いを理解していれば
そういう話にはならないわけ。現実には、タスクシステムに吸い寄せられる人って
学力偏差値的にかなーり多様でしょ。俺のように下から数えたほうが早い子も沢山いるの
いわゆるベテランと称するオッサン共に注文がある
まず「タスクシステムって何?」と思ってる後続のリテラシーの問題に配慮してほしい
あんたらのギョーカイって頭の出来が比較的どうかと思う層が結構沢山働いてんだろ?
人数構成的にさ。
高専を中退して東京のゲーム専門学校に通ってる先輩が昨夏に帰郷した際
「おまえタスクシステムも知らないの?プッヒー」と俺に言いやがった
まともなゲームを一本も作ったことが無かった彼がなぜ発作的にゲーム専門学校に行ったのか
謎に満ちていたが、まぁとにかく彼は数ヶ月間東京に居た間に何かを学んできたらしい。そして
タスクシステムというのは万能だと俺に力説してくれた。東京ってのは魔窟だなぁと俺は思った
タスクシステムなんて知らなかった俺はサクサクっとググった
調べてわかった事。ゲームオブジェクト(シーンオブジェクト)をタスクと呼ぶ
>>2 タスクシステムを説明するオッサン共は汎用性だの再利用性だのの言葉を駆使するの大好き
やねうらおって人のページでも何度となく登場した。うさんくせーなと思いながら読ませてもらった
TaskSystemという名称が発する独特の嫌な臭気。それが汎用性だの再利用性だのの言葉と
化学反応して万能という幻覚作用を呈するのではないか。そう厨房は思う
無理やり何にでも使うのを汎用というのはどうかと思ったが、まぁとにかく汎用らしい。たいしたもんだ
そのくせSTGを例にあげてるとこばっかなのは何で?みたいに思ったし
弾一発一発になんでこんな仕組み使うのか理解できなかったし、無意味な管理オーバーヘッドが
目障りで俺は使う気しなかったが、まぁとにかく汎用らしい。だが万能にはとても見えなかった
ビジーウェイトでオブジェクトのコンテナを周期的に舐めてるだけの仕組みの何が珍しくて
何が素晴らしいのか皆目見当がつかなかった。いろんなタスク解説記事を読んで
昭和生まれの人とのギャップを感じた
タスク信者もアンチも同様にバカだということが良く分かる。 こだわりすぎ。
そうか、平成になってもう20年も経つのか orz
ID:EEKBitmgはタスクの愚痴は先輩に直接言えばいいと思うよ
一応先輩だし、顔立てないとまずいっしょ。高専って上下関係厳しいんだよ
だからってこんな掃き溜めで愚痴らんでもさ〜。まあ見てる俺も俺だが。 相手が議論できる先輩なら、そこは戦えと言いたい。 リアルでこんなしょうもないタスク議論をしているのを想像するだけで笑えるわ。
アンチに聞きたいんだけど、結局どうしたいんだ? ゲーム業界でタスク使ってるプログラマーに別のやり方を押し付けたいのか?
議論なんてするわけないじゃん。俺はそんなお人よしじゃない 「すげっすね。俺もゲーム専門学校生きたいなー」 とか棒読みで相槌打つだけだよ。寝る
>>362 好きにしたらいいよ!
グループ開発ではタスク利用者なんて居ないし、タスク利用者は個人製作でしょ。
個人が何使ってても俺は何も言わん。好きにしませう。
誰かに押し付けるのであれば、スクリプト(動的リロード&コルーチン利用)+ノード型のシーングラフが、
割と汎用なのでオススメしている。実装するまでがメンドクサイのが難点だが。
ID:EEKBitmgはHSPしか使えず満足にゲームすら作ったことのない基地外のくせによく吠えるね
シーングラフとタスクシステムの違いが分からん。
>>364 ススメてるものがどんなものでタスクとはどう違うのか
ちゃんと具体的に書かないとまた信者にタスクの一種にされちゃうぞw
あーこのスレでは、そういうのを総称してタスクシステムって呼んでるんだけどね。 結局俺俺フレームワークでしょ。 listで管理するかtreeで管理するかの違いでしかないからね。 本質的には同じだよね。
>>2 で言うような、タスクシステムはTCBでのごった煮リストでしょ?
ノード型のシーングラフはただのtreeで、全然違う。
そもそも、この程度で俺俺フレームワークっていうのが理解できん。
じゃあ、
>>370 はTCBやlistやtree以外でオブジェクト管理してんの?と逆に問いたい。
>>371 HSPしか使えない基地外は、フレームワークの存在自体を否定してるんだろう。
本当、頭おかしい。
>>372 フレームワークを否定されてしまったらもう返す言葉がないわ……。
>>371 沸点が低いな。どうしようもないな・・まったく。一つ一つ答えてあげるから。
>
>>2 で言うような、タスクシステムはTCBでのごった煮リストでしょ?
>>369 のシーングラフもNodeのごった煮ツリー。リストかツリーか、違いはそれだけ。
>ノード型のシーングラフはただのtreeで、全然違う。
タスクシステムもただのリストだ。
>そもそも、この程度で俺俺フレームワークっていうのが理解できん。
理解できないから叩かれてる。名前付けるほどのものかと。
>じゃあ、
>>370 はTCBやlistやtree以外でオブジェクト管理してんの?と逆に問いたい。
俺はアンチタスカーじゃないから知らん。
聞くところによると、アンチタスカーたちは静的な管理をしているらしい。
動的な管理じゃないから、Nodeとかといった高等な概念はいらんと。
オブジェクトの一元管理を嫌うらしい。
>>373 アンチタスカーは、ゲームごときにフレームワークなんていらないでしょ、という立場。
あ、おれはアンチタスカーじゃないよ。でも気持ちは分からんでもない。
>>374 いろいろ答えてくれてありがとう。
とりあえずlistであれtreeであれ、動的なオブジェクトの管理をしていれば、
アンチタスカーに叩かれる対象なわけね。
こりゃ厄介だ。根本的にコーディングに対するスタンスが違いすぎるわ。
ちなみに、シーングラフは一般的な言葉だよ。
国内じゃあまり聞かないけど、最近はたまに出てくるようになった。
というより、シーングラフはタスクシステムの外国版かと。
じゃあ自分はタスクのシーングラフ派で良いや。
>>2 よりも分かりやすいし。
でもアンチタスク派の人々は3Dになると相当オブジェクトの相互作用が働くから、
静的に管理するのはかなり骨だよね? どうやって書いてるんだろ?
フレームワークを作らずに3Dでなんとか実装できるのは、よほどの天才だと思う。
アンチタスカーは相互作用が働くからこそ、フレームワークを使うべきでないという立場。 相互作用といっても、多種多様だから、枠に収めるべきでないと。
いわんとしていることは分かったが……。 枠に収めなくても相互作用が発生しているのならどこかにコード記述しないといけないから、 アンチタスカーはグローバルな視点(シーン全体からみた視点)で記述するってわけかな。 それで3Dボーンの記述しようとおもうと気が遠くなるな。 Node視点で相互作用が簡単に書けるのならそうした方がいいと思うのは俺だけ?
アンチタスカーは馬鹿だからフレームワークも作れないし、 3Dなんか夢のまた夢だろJK
>>372 >フレームワークの存在自体を否定してるんだろう。
どうしてそうなるのかな?ほれ、作文書け
このスレで作文書くのはお前だけだ。 あ、もう一人ポエマーが居たか。
>>383 逃げるなよ。根拠を書けと言っている
俺がわざわざIDコテ付けてるんだから
過去発言から逃げられないように
縛ってるんだからさ
>>374 >>じゃあ、
>>370 はTCBやlistやtree以外でオブジェクト管理してんの?と逆に問いたい。
>俺はアンチタスカーじゃないから知らん。
>聞くところによると、アンチタスカーたちは静的な管理をしているらしい。
なにこの捏造。どこで聞いたんだ? アンカーよろしく。
あー補足しておくと、彼は >タスク擁護派は、将来の仕様変更に備えて、と称して何でも動的にしようとする >でも実は彼らの言う、将来の仕様変更に備えて、てのは全くの嘘っぱち と言ってるが、実は、汎化する過程で動的になっちゃうだけなんだけどね。 でも彼には内緒ね。
>>314 をどう解釈すれば「オブジェクトをlistやtree以外で静的に管理している」ことになるんだ?
静的なのはループや分岐の構造であって、その対象ではないだろ。
過去ログ読めよ。
ループや分岐の構造が静的ということは、オブジェクトを型の上で静的に管理しているということだろ。
>>374 の最後にも「オブジェクトの一元管理を嫌うらしい。」と書いてあるだろ。
今日は静かだな… タスクシステム厨は必死にシーングラフを調べてると予想
というより、ほんっとーに疑問なんだけど、 反対者たちはどれほどのゲーム製作経験があって、 どんな問題に直面して、そしてどんな手法に移行したんだろう。 他人を罵倒するかタスクシステムを貶すかばっかりで、 本当に知りたいそれらが見えてこない・・・。
>>391 そうだよな。
へたれ詐欺グラマが、経験者から知見を盗み出すために必死に煽っていると憶測。
いずれにせよ、基地害アンチは色んな意味で底辺の人間だろな。
>知見を盗み出すために (笑)
前スレの510のプログラムだけでも見れば普通は、タスクシステムの良さも悪さも わかりそうなものなのに、それすらわからないのは、本当どうしようもない底辺プログラマだからか HSPしか使えない基地外だからだろうな
聞き飽きた。 そーやって煽ってごまかさないで、 具体的に自分の言葉で説明してくれよ。
>>395 馬の耳に念仏だろ
510を見てわからないならプログラマの資格すらないだろJK
>>394 後からグズグズと、見苦しいからやめれ。
自分の説明力の無さ、能力の無さを必死で誤魔化している様に見えるぞ。
どんな簡単なことであろうが読めば解るという返答は説明になってない 説明出来ないなら理解できてないのと同じなんだけどな
他人の作ったのを引き継いで、やっとわかったわ。 タスクなんか使わないほうが良いって事が。
プログラムの良し悪しってなかなか具体的に表現できんもんだよね〜 後輩とペアプログラミングしてて分かった。指摘し辛いわ。
>>397 510のプログラムに説明がいるような理解力のない奴には何を説明しても無駄。
プログラマとして最低条件すら満たしていない。
>>396 >>401 説明してくれ、と言っているのだが日本語が通じなかっただろうか?
煽って逃げないで、出来ないなら出来ないと言ってくれ。
ちなみに俺は出来ないし、分からないから答えを求めてここに居る。
出来ない分からない人間に説明しないなら、このスレはなんのためにある?
>>399 是非その苦労を語って欲しい。
参考にしたい。
>>401 何でいきなり前スレの話を持ち出すんだ?
しかも言いたいことは、自己弁護だけだろ?
だから見苦しい。誤魔化してるだけ。
面倒だな。
新人君の書いているコードを最初見たときに、 「複雑な書き方してるよね。stlやboost使えば1行だよね」という表面上のコメントは出来る。 んで、社内特有のコーディングスタイルについても指導できる。変数や関数名はハンガリアン準拠やgoogle準拠で書いてねとか。 しかしだ。ペアプログラミングで新人の書いたコードを読み終えて、自分が内容を理解した頃には、 「まあそういう書き方も有りだよね」という感想になる。 局所的な赤ペンを入れるのは簡単だが、完成したコード全体に赤ペンを入れて1から書き直すのは難しいという感じ。 実装のセンスについては教育のしようがないんだ。PG個人に染み付いてしまっている。
>>402 メリットもデメリットも前スレ見ればわかるだろう。
お前は本当に前スレを読んだのかと問いたい。
>>405 会話が成り立たねぇ。
もーいいや、そうやって一生逃げ続けてれば?
タスカー:「見ればわかる」×4 この事実だけでもうこのスレ終了でいいんじゃね。 今週いっぱいまともな議論になってないし。 骨のあるタスカーが居たのは先週までだな。
>>406 前スレ読んでわからないのはぶっちゃけ池沼だろ。
ループのカッコにマクロ当てただけで喜んでるタスカーがいるスレはここですか?
抽出 ID:kmmpN5+q (5回)
394 :名前は開発中のものです。[sage] :2009/03/01(日) 00:26:11 ID:kmmpN5+q
前スレの510のプログラムだけでも見れば普通は、タスクシステムの良さも悪さも
わかりそうなものなのに、それすらわからないのは、本当どうしようもない底辺プログラマだからか
HSPしか使えない基地外だからだろうな
396 :名前は開発中のものです。[sage] :2009/03/01(日) 00:40:28 ID:kmmpN5+q
>>395 馬の耳に念仏だろ
510を見てわからないならプログラマの資格すらないだろJK
401 :名前は開発中のものです。[sage] :2009/03/01(日) 01:18:07 ID:kmmpN5+q
>>397 510のプログラムに説明がいるような理解力のない奴には何を説明しても無駄。
プログラマとして最低条件すら満たしていない。
405 :名前は開発中のものです。[sage] :2009/03/01(日) 01:43:36 ID:kmmpN5+q
>>402 メリットもデメリットも前スレ見ればわかるだろう。
お前は本当に前スレを読んだのかと問いたい。
408 :名前は開発中のものです。[sage] :2009/03/01(日) 02:11:59 ID:kmmpN5+q
>>406 前スレ読んでわからないのはぶっちゃけ池沼だろ。
>>398 その理屈だと幼稚園生に因数分解を理解できるように説明できない人は
因数分解を理解できていないことになるな。
地球上には因数分解を理解できてる人が居ないってことかな?
前程知識の無い人間にその前程から導き出された結果だけ理解することは不可能。 そんなことが出来るならそもそも学校教育なんて不要ってことになる。 ネットで「説明して」ってだけでそーいった知識が理解できると思ってて 理解できないことは自分に必要な知識や経験が無いからじゃなくて相手が悪いって考えではねぇ… そんな人間に必要なのは「説明」ではなく「教育」だけど、それをネットに求めるのは無理があるな。 ネットで出来るのは知ることだけ。理解はまた別物だよ。 理解したきゃ自分で学習しなきゃね。
得意げになってるとこ悪いけど、極論で言い訳されてもね・・・。 説明できなかった以上、説得力皆無なんだけどなあ。
つーか説明できるかどうかは相手の理解力関係ないよ? 説明の甲斐とか質とかじゃなくて、できるかどうか聞いてんのにさ。
>>414 いままでの過去スレで利点も欠点もほぼ説明され尽くしてるけど。
「自分に理解できない」=「説明されてない」では無いことをまず「理解」しなさい。
何くだらない議論してるんだよ。人間としてどうよ。
>>416 ほとんど嘘だったけどな
自動化なんてないしごった煮がDBとか言い出す恥ずかしい奴もいたし
タスク信者どもも統制がとれてるとは思えなかった
そんな中でたのが
>>510 と
>>641 だしこれはループのカッコを
マクロに変えただけのような恥ずかしい代物
そろそろ誰か説明してもいいだろ
その前々スレあたりでは 引数が使えないことでグローバル変数・関数が野放しになる危険がある っていう話題も出たな 欠点ばっかりは覚えてるな 利点はごった煮にしてデータすべてにアクセルできるとか言ってたけど 正直、プログラムのプも字知らないような素人の書き込みっぽくてタスク信者の 総意とか思えないんだよね データすべてにアクセスできるから自動並列化の話とは矛盾するね 並列に処理するもんだけはどうしたってデータは分離しないと動かないからね
>>415 >>510 が良いなんて一言も言ってねぇーw
なんでそう平気で話を捏造するの?アンチの習性なの?死ぬの?
>>416 「自分の言葉」で説明できない負け犬に用はありません。
お前に限らないが、
過去スレで議論し尽くされたソレを見て
ソレを理解できた連中ならさらっとここで説明できるだろうに。
過去の連中にばっか振って、自分じゃ語れないなんて、
何も作ったことないし理解もしてない口だけなのがバレバレじゃないか。
個人的にはタスク信者はもう詰んでると思うね 会社で理詰めの議論を要求される場面で問い詰められたら 発狂するしかねーよマジで
アンチはフレームワークとか一切使ったことのないただの基地外HSPerだろ。
ザ・基地外列伝 抽出 ID:YgfxUXIw (3回) 抽出 ID:keyUucFf (2回) 抽出 ID:5sdzoLlH (4回) 抽出 ID:44i95qjG (2回) 抽出 ID:AbjSLDmb (2回) 抽出 ID:Yb+qou2I (3回) 抽出 ID:kmmpN5+q (6回) こんな役に立たない奴を抱えているタスカーは大変だな。 アンチで良かった。
しかし、ここまで惨めな奴は珍しいな。 ID:kmmpN5+qはウンコちゃんと命名してあげよう。 別にコテハンにならなくてもいいよ。 言ってる内容でウンコちゃんだとすぐに分かるから。
もーいーよーだれか説明してよ、まとめてくれよー。 うち頭悪くていいから。長くても4レスぐらいでまとまるでしょ?
ぶっちゃけると誰にでも理解できるものじゃないと思う。 少なくともポインタを理解できる頭は必要。 "使える" と "理解できる" は違うよ。
>>428 なにその使っていけばレベルがあがるみたいな言い方?
タスクシステム自体プログラム言語の進化を完全に否定してるものなのにw
型も引数も否定して彼等はどこへいくのか・・・
アンチタスカーの頭の悪さが目立つな。
431 :
510 :2009/03/01(日) 19:35:00 ID:lmuwAfAn
アンチタスカーですが
>CodeZine:本格的なシューティングゲームを実現するタスクシステム(タスクシステム,シューティング,ゲーム)
>
http://codezine.jp/a/article.aspx?aid=297 このコードはひどいね
重複してるし 未使用領域もある
メンバ関数も無駄にstaticで意味がない
もっと調べればもっと叩くところはでるだろう
で タスク信者に言う ソースで語れ
嫌なのか?さらしたくないのか?逃げるだけか?ライバルを作りたくないのか?逃げるのか?
答えろ
>>432 > このコードはひどいね
> 重複してるし 未使用領域もある
どれが未使用領域?
>>433 そんな馬鹿な!世界は広大だな
PICのプログラムを組む実習とかあったが
HWIトリガーにしてアドレス入りレジスタ
使ってROMエリアのデータ(配列)読んで
所定の計算して出力とか、脳筋体育系も
ヤンキーも出来てたぞ。出来なきゃ留年
チョンボして他人のソース丸パクできない
やればひどい制裁を受けるから
ポインタ使えないんじゃなくて、そういうのを
使う必要がない言語や環境しか経験してないから
単に不慣れなだけじゃないの?
ポインタを使えない人は本当に居る。 不慣れとかそういう話でなく、ポインタの仕組みは理解できても、 (コーディング上において)ポインタを使うメリットが理解できない。ってタイプ。 知り合いに、値渡しで関数に与えていて、わざわざ冗長なコードを書いていたから指摘したら、 本人いわく、ポインタは知っていてもあえて使わないんだとさ。
>>437 んー。そうかー
値渡しで組んでも動くからいいやーって人かな
CPUパワーもRAM容量も余りまくりでジャブジャブ
使ってもいいよーっていうターゲット(ハードウェア)
を使える環境だからそういうふうになるんじゃないかな
貧弱環境でタイムクリティカルな処理しろって
状況に放り込めば参照渡し使うと思うけど
どんな環境でもポインタで参照渡し使った方が軽いし、コード記述量も減るというのに、 彼のとった選択肢は"ポインタは分かり辛いから使わない"だとさ。 だったらCやめればいいのにと思った。
>>438 前に ACM Newsletter か何かで読んだが、教育レベルとか計算機環境に
よらず、一定割合でプログラミングがダメな人は存在するそうだ。
いい大学の CS に入ってくるような人間でも、適性ない人間はどうにもダメ
らしい。
>>439 っつか、ゲームプログラミングやめれば良いのにな。
>>431 #include "Tasksystem.h"
#include "reference_structure_macro.h"
このヘッダがzipに入ってないね。
このスレ見て、身の回りのいろんなPGを見ていて思うに、 ゲームプログラマには、大別してクリエイター型とエンジニア型が居ると思うわけよ。 ■クリエイター型(C型) ゲーム製作を美術・芸術・メッセージ表現の一種と捉え、作品の完成を目指して鍛錬する。 ゲームが完成することを最終目標としているために、エンジニア型に対して結果が全てと見下している。 ゲームとしての表現力を増すのような技術がローコスト(手間要らず)で導入であれば積極的に採用したいが、 ゲーム製作において足枷になるような技術については、嫌悪する傾向がある。 駆け出しの頃はスクリプター寄りの傾向。将来的にはPDに向いている。 プログラミング能力は低いので他業種での潰しが利き辛い。 ■エンジニア型(E型) ゲーム製作を自己のプログラミング能力向上のための試金石と捉え、ライブラリの完成を目指して鍛錬する。 フレームワーク作りに熱中し、何時まで経ってもゲームは完成しない。 新規技能・技巧をいち早く取り入れる風潮があり、汎用性・完成度・移植性などを重視する傾向がある。 技術的に稚拙なクリエイター型について、プログラム知識の無さに嫌悪することがある。 駆け出しの頃はライブラリ製作+サンプルゲームを作る傾向。将来的にはメインPGに向いている。 プログラミング能力が高いので他のSE業種に移行しやすい。
で、今までのレスの流れも見ていて、ここからは完全に独断だが、 アンチタスク派は、ずっとC型でPG経験の浅い若年層が多い気がする。 ・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。 ・プログラム技能が未熟で、TCBなり、関数ポインタによるスケジューリングを理解できない/扱えない。 ・実際にタスクシステムを使ったコーディングに従事したことがあり、タスクシステム特有の束縛された記述方法に嫌悪感を示す。 ・ただタスク派をおちょくって遊びたいだけ。 一方、タスク派は、ずっとE型でPG経験の長い壮年層が多い気がする。 ・OOP時代を迎え言語もコンパイラも発達し、タスクが過去の遺産であることを認めない。未だにタスクシステムをプロの技巧と賞す。 ・タスクによるスケジューリングが完全汎用であると勘違いし、これを理解できない人を煽る。 ・ゲーム内容の実際の記述において、タスク管理によるコーディングがどれほど厄介なのか理解できない。 ・ただアンチタスク派をおちょくって遊びたいだけ。 と見ている。 個人的には、中庸が一番。 始めはE型で自作ライブラリが完成してから、C型に移行するプログラマーが理想なんだがね。 もしくはPG2名で完全分業し、E型がライブラリとスクリプトを提供して、C型がゲーム内容を記述するのでも良いと思ってる。
>>445 > ・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。
若者でも、/* You are not expected to understand this */ とか読んだことあれば
十分だよ。
>>442 >432
> 嫌なのか?さらしたくないのか?逃げるだけか?ライバルを作りたくないのか?逃げるのか?
実際にタスク改みたいなシステムでゲーム何本か作ったことがあれば いろいろあれの欠点で苦労するから純粋なタスク信者ってのはありえないけどね。 でも単純なアンチってのもまた無い。 ジャンルや環境によっては今でも十分使い物になるから。というか今の携帯機クラスの性能のゲーム機で 動いてるゲームのかなりの数がいわゆるタスク改で実装されてる。 それに純粋なタスクシステムの欠点はそれぞれ回避方法があるので使い分けができる。 ジャンルによってはタスク改ではない違う作り方のものもあるけど、アクション系ではいわゆるタスクの進化系以外の 実装はあんまりお目にかかったことが無いな。 少なくとも日本産に限っては。海外産はあんまりソース見る機会無いから知らんが…
449 :
名前は開発中のものです。 :2009/03/02(月) 07:26:29 ID:N5eJa8sN
ぜってーそんなことねぇよ(笑) こんなマイナーシステム普通使わねぇだろ
ミニゲーム集みたいなゲームだとタスクシステムは向いてると思うけどね 同じインターフェースで全く遊び方の違うゲームを数十個つくらにゃいけない場合とか 一つ一つにかかるコストを大幅に削減できる
451 :
名前は開発中のものです。 :2009/03/02(月) 17:55:09 ID:N5eJa8sN
向いてねぇよ ごった煮だから弾の処理で何が呼ばれててもおかしくない ということは弾だけなにかほかに使おうと考えても ソースの癒着が酷くて切り出して使うということはできないというわけだよ わかったかね
よく
>>451 見たいな書き込みを見るけど
タスク間のアクセスはタスクシステムが間に入るから
癒着がひどいっておかしくないか
453 :
名前は開発中のものです。 :2009/03/02(月) 18:16:36 ID:N5eJa8sN
それじゃなんのためのごった煮なの? どこからでも呼び出したかったんじゃないの? つまりそれは、すべてを呼び出している可能性だってあるということだよ だってそのためにごった煮にしたんでしょ? ミサイルのターゲットをポインタの保持で解決したかったんじゃないの?(笑)
例えば全てを呼び出してるとして ミサイル以外のタスクをソースから排除しても ターゲットが見つからずにまっすぐ飛んでくだけでしょ ターゲットのポインタなんて抽象クラスへのウィークポインタか インクリメンタルIDのどっちかだし
455 :
名前は開発中のものです。 :2009/03/02(月) 18:33:27 ID:N5eJa8sN
そんな話してねぇよ馬鹿 全部呼び出せるってことは全ヘッダーファイルが必要になるってことだろが それとも今更カプセル化守って弾のクラス内には他のゲームオブジェクトは一切入ってこない って方向転換するか?それでもいいぜ(笑)
なんで全部呼び出せるなら全ヘッダーがいるんだ 派生先のポインタが欲しければ各自でキャストすればいい それが嫌ならビジター作ってタスクシステム内のタスク全部なめればいい なんで弾のクラス内に他のゲームオブジェクトが入ってくるんだ そんな話出てきたか?めんどいんで方向転換ってことでいいです。
457 :
名前は開発中のものです。 :2009/03/02(月) 18:56:46 ID:N5eJa8sN
キャストするにはだな・・・え〜そっから〜(笑) さすがにそのレベルはかつてないな(笑)
いやあ俺馬鹿だからさ優しく教えてよw
俺も見てるよ。面白い展開になりそうだからもっと熱く語り合ってほしい(笑)
まだごった煮言ってるのかw なにも進歩ないなw
キャストするクラスのヘッダーだけでいいだろ? 全部は必要なくね
>>444-445 C型なのかな。肝炎みたいだね。「おまえの場合は脳炎だろ」とか言われそうだけど
助教授に言われたことがある
『例えばお前が作ってるゲームなんてものは技術的には枯れた要素技術の集合体であり
CASEツールで機能分析すれば、その大半は汎用のコンポーネントを結合したものとして
表現される。』と
『開発工程全体を見たとき、お前はおそらく遊び・面白さの部分を煮詰める反復作業に
時間の多くを費やしているのだろう。ならば、ワークフロー・データフローの設計も
そこを優先するだろ常識的に考えて。与えられてる状況(道具、人、時間、etc)にあわせて
構造化設計すれば、最終的な結論はH**は神言語となる。わかったな?』
私は心を打たれた。この人はC型のようなE型のようなH型だ
助教授はいわゆるベーマガ世代というものらしい。本人に言わせれば『PIOとかRAMとかテクノ(何とか)を
知らないようなガキにベーマガ世代とか言われるとイラっと来る』ということらしいけど、まぁとにかく
そういう世代らしい
助教授にタスクシステム(
>>2 )のページを見せた。反応は「組み込みシステムを劣化猿真似してるのか」
みたいなかなり淡白なものだった
『ワークRAMが少ないゼッパチマシンでこんな贅沢な組み方してたのか?』
『70年代にこれやってたって本当か?』『メガドラとか16ビットのアーケードゲームの話じゃないのか?』
と聞き返された。そんなことは厨の俺が知るはずもないし答えられるはずもなかったから
「だってこの人(LogicianLordの人)がギャラクシアンはこうだって言ってるからそうなんじゃないすか><」
と知能障害・思考停止な返事をしたら『ふーん。あっそう』と言われた
むかつく。誰か教えて
『当時は毎月、目を皿のようにしてマイコン雑誌を読み漁ったが"タスクシステム"なんて言葉は見た記憶無いな』 『俺にとっては雲の上のプロプライエタリな世界だったから。そういうプロの世界の隠語なのかな。』 『しかし30年以上経過して陳腐化したからって吹き出物みたいに今更出てきても仕方ないだろこんなもの』 『PCでさえベクトルプロセッサ化したビデオチップにマルチコア化したCPUが普及した現代においてこんな一本道の 逐次処理コードを使ってたんじゃハードは遊び放題だな。お前らのゲームボーイ(←DSのことらしい)で使ってるテクか』 『ステートマシンの逐次処理用の優先度付きキューを手作りしてたのか。今ならboostか次期C++標準のライブラリ から出来合えのコンテナでも引っ張ってくればいいんじゃないの。あと、機能分析すればこの実装になる必然性はない』 『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は高速化される という先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素なCPUアーキテクチャに 依存した公式に過ぎない。定理ではない』 『くだらない話をふってないで、お前は早く課題レポートを提出しなさい』 うぜぇオヤジだ
>>464 > マイコン雑誌
この辺の単語の使い方に、世代を感じるなぁ。
テクポリは最初技術系の雑誌だったんだね アダルトゲーム雑誌になってからしか知らないや
>>463-464 何…?このポエム
今もタスク進化系が使われ続けてる現実を前にして
現実逃避してるのかな?
ID:N5eJa8sNはタスクシステムを使うとタスクシステムに全部のheaderをincludeしなければ ならなくなるとか言っていた例の基地外だろ。 こんな低脳がアンチタスカーだから、アンチはみんな頭がおかしいと思われるんだ。 こんな奴、プログラマですらないので、この板から出てけよ。
>>467 シーングラフはタスクシステムの外国版(笑)
タスクシステム改(笑)
タスク進化系(笑)
出るわ出るわ。怪しげな僕んちのソフトウェアアーキテクチャ発展史
萎びた僻地で密教みたいにひっそりやってきた「俺んちのベストプラクティス」
そいつがお前にとってのプライスレスなのはわかるけどな
何の具体的な情報も開示せずに世間に認知してもらおうなんて考えちゃダメ
世の中そんなに甘くない
公にされず標準化もされないド田舎・ローカルのソフトウェアアーキテクチャや
ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
顔真っ赤にして反論したりしない。黙ってる。そこを分かれ。出てくんな。みっともねー
幾つだよお前。誰だよ
反論するならお前の言うタスク進化系って奴が世間に認知される
ソフトウェアアーキテクチャ、ベストプラクティスとなるよう、きちんと文書にして
発表すべきだ
現在、世間の前に出てるタスクシステムに関する文献の中で唯一
書いた人間の出自が現場出身であることが垣間見えるのは秀和の
逆引きゲームプログラミングだけ。これを超えるものをお前が書けばいい
>>468 あー、やっぱあいつだよな
ヘッダーがどうのとか言い出した瞬間にイカ臭かったもんな
>>469 >ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
アンチじゃなくてもあんな原始的な仕組みをベストプラクティスと自認している人はいないと思うぞ。
あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。
「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。
だから資料出せ、教えろ、説明しろってうるさいのか。
>あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。 >「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。 >だから資料出せ、教えろ、説明しろってうるさいのか。 今度はアンチは実は信者論か。がんばるねー アクロバティックな発想に翻弄されちゃうねー 生ゴミの臭いを好き好んでかぎ回るのは信者なんだけど アンチは臭いものは臭いんだからとっとと捨てればー? とアドバイスしてあげてる分まだ常識があるねー
ま、タスカーは大人しくサンドバッグにされてろってこった 今更開陳したところで世間に八つ裂きにされるのが目に見えてるからな 俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す なんてマゾっけたっぷりの趣味は無い
ポエマーもいらねーから出てってな
DSLポエマーと間違われるとは光栄だねー タスクシステムを叩く材料が不足したら呼んでね。補給してあげるよ アンチ応援してるよ。あーねみー。ばいばーい
顔まっかなのはお前だろうに
>俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから >とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す >なんてマゾっけたっぷりの趣味は無い 要するに、お前は過去の自分と戦ってるのか? お前の暗い過去を皆に押し付けないで欲しい。
478 :
名前は開発中のものです。 :2009/03/03(火) 07:34:27 ID:NIkO1+LI
ヘッダー全部インクルードしないと必要なときに必要なものが呼び出せないから タスクシステム使ってるなら総合ヘッダーに全部インクルードしてあると思うよ 仮に必要なものだけだとしても関連をもったものは全部インクルードしてやる必要があるから この構造で作ったら切り離すのは容易じゃないよ
479 :
名前は開発中のものです。 :2009/03/03(火) 07:50:27 ID:NIkO1+LI
それと関連をすべてタスクにするとか嘘ついてるけど ポインタの保持を関連タスクに強制するうえ パラが一つでも必要になったらタスクを新しく作らなければならない 折角、ごった煮にした意味がまるでないけどそれでいいの? だんだんタスクなんて作らないほうがいいって結論になりそうで俺は満足だけどね
>>478 お前が頭がおかしくて、プログラムの組めないド素人なのはよくわかったから
もうこの板に来んな
>>478 んなこたない
アンチな俺でも同意できる箇所が見当たらない
一番要らない子なのはウンコちゃんだろう。 全レス内容無しってのが凄い。
483 :
名前は開発中のものです。 :2009/03/03(火) 12:43:55 ID:NIkO1+LI
じゃヘッダー無しでどうやってキャストしてんだよ まあ、これは無理でしょ タスク信者が必要な分だけインクルードしてるなんて考えられないから ごった煮を表現するために総合ヘッダー絶対あるだろ だからタスク信者の書くソースは分離できない さらにタスク信者は引数使えないから総合ヘッダーにグローバル変数の塊もあるだろうし 奴らのソースはカプセル化なんて不可能と言っていい テンプレートは使いたがるくせにオブジェクト指向は欠片もわかってない
>>483 > ごった煮を表現するために総合ヘッダー絶対あるだろ
ない。お前はOOPの基本すらわかっていない。もう死んで。
>>483 なんでそこでテンプレートがでてくるのか理解できない
総合ヘッダにグローバル変数ときたら次はマクロだろ
>>483 >総合ヘッダー
その発想は無かったwwwwwwwww
お前のコーディングすごいなwwwwwwwwwww
>>484 携帯からだったから483よく読んでなかったぜ
すまんこ
>>483 根拠の無い話ばかり並べても叩かれるだけ
489 :
名前は開発中のものです。 :2009/03/03(火) 18:22:34 ID:NIkO1+LI
いいやあるね 少なくともごった煮をデータベースとか言ってた馬鹿のソースには確実にあるね そもそもそいつは制限や型を言語の進化の過程でできたものという認識がまったくなかった タスク信者の大半がこんな奴ら 関連をタスクにするなんて言ってるけど 関連クラスとどうやってやりとりする気なんだよ グローバル変数かポインタの保持くらいしかないだろ また、無駄に問題が増える(笑) 使わないって選択肢は選べないのかね
490 :
名前は開発中のものです。 :2009/03/03(火) 18:25:01 ID:NIkO1+LI
カプセル化もわからないから自機のクラスに弾の処理書いちゃうんだよ お前等馬鹿は
491 :
名前は開発中のものです。 :2009/03/03(火) 18:29:59 ID:UVBLimNu
>>489 こんな馬鹿、久しぶりに見た。
悪いこと言わないから、OOPの基礎から勉強しなおしなよ。
493 :
名前は開発中のものです。 :2009/03/03(火) 18:57:02 ID:NIkO1+LI
ムリムリ タスク信者の組み方じゃ絶対分離なんて不可能 グローバルインスタンスホルダーが絶対にある
>>493 仮想関数すら知らなさそうだな。本当、生きてて恥ずかしくないか?
495 :
名前は開発中のものです。 :2009/03/03(火) 19:19:33 ID:NIkO1+LI
仮想関数? いまの話題と全く関係無いけど頭おかしいの? 弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ 基底クラスじゃ自機クラス呼べないんだぜ もしかしてしらなかった?
>>495 > 弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ
呼ぶ必要なんか全くないんだが。ほんと、馬鹿だよね。
497 :
名前は開発中のものです。 :2009/03/03(火) 19:27:56 ID:NIkO1+LI
でも、呼んでるんでしょ? だからタスクシステムに固執してるんでしょ? 嘘はよくない(笑)
>>497 本当、馬鹿すぎて泣ける。
ソース書いてみな。俺が添削してやるから。
499 :
名前は開発中のものです。 :2009/03/03(火) 19:38:27 ID:NIkO1+LI
は? 俺はごった煮とかやってる馬鹿なタスク信者をぶん殴ってるところなんだよ 俺がなんのソースをだすんだよ 日本語大丈夫かよ(笑) ああ、頭悪いのか それじゃしょうがないな
>>499 だからお前の糞タスクシステムのソースを出せと言ってるんだ。
全タスクのヘッダをincludeしているところを書き直してやる。
501 :
名前は開発中のものです。 :2009/03/03(火) 19:58:25 ID:NIkO1+LI
は? 俺、タスクシステムなんて使わないんだけど? だいたいソース書きたきゃ自分で書けよ 仮想関数とか明らかにズレた話題だしてる格下のお前の相手なんかしなきゃいけないんだよ
>>501 仮想関数わかってないのお前。
> タスク信者が必要な分だけインクルードしてるなんて考えられないから
> ごった煮を表現するために総合ヘッダー絶対あるだろ
何度でも言うが、そんなものはないし、そんなことをする必要すらない。
まあ、このスレでわかってないのお前だけだろうから、俺はもう帰る。
基地外の相手してても仕方ないんでな。
俺も基底クラスに仮想関数つくってそれ呼び出せば、いちいち総合ヘッダーなんて必要ないと思う。
504 :
名前は開発中のものです。 :2009/03/03(火) 21:24:23 ID:NIkO1+LI
は?仮に基底がゲームオブジェクトだとして自機特有の処理はどうやって呼ぶんだよ まさか全部ゲームオブジェクトにもたせんの?(笑) ああ、お前等のごった煮ってそこまで腐ってんだ
ああ凄いな。凄まじいなID:NIkO1+LIは。 とりあえず総合ヘッダー(笑)については、必要ないことを分かったかい? まずはそこからだ。
ぬるぽ
>>504 お前は、OOPの基本がわかってない。
腐ってんのはお前の頭。
アンチタスカーって、なんで ID:NIkO1+LI みたいな OOPすらまともに使いこなせない 糞野郎ばっかりなんだろうかね・・
さすがのアンチタスカーの俺も擁護できん。 同じPG職なら陰口叩かれてもいいレベル。
ID:NIkO1+LI 2009年ゲ製痛い(ノ∀`)ニュース第1位確定だな。 道理でアンチタスク厨とは、マトモな会話が成り立たないわけだ。
511 :
名前は開発中のものです。 :2009/03/03(火) 22:11:53 ID:NIkO1+LI
は? どうせ総合ヘッダーよんでんだろ そうじゃなきゃごった煮の意味ないもんな 悔しかったら総合ヘッダー無しでプログラム組んでみろよ データベースなんだろデータベース(笑)
アンチタスカーは、タスクシステムを使って知ったうえで、叩くべきだわ。 使ったこともないのに想像だけで総合ヘッダーや癒着云々と否定しているのは滑稽すぎるわ。
513 :
名前は開発中のものです。 :2009/03/03(火) 22:16:25 ID:NIkO1+LI
ハイハイ、自機のソースから弾のソースを取り払ってから言ってね
大昔ポケコンでシューティングを作ってた時は 敵ワークx16 弾ワークx16 とか固定長バッファを用意して、使用中フラグのビットマップで管理して動かしてた ワークエリア内にポインタを書いてリストや仮装関数を実現するには500kHz程度クロックのCPUには重荷だった 今はもうゲームとして動いてるならなんでもいいやって感じ
>>511 総合ヘッダー(笑)って何だよ!
総合病院にでも診てもらってこい。
C++入門者未満のくせに、デカイ顔してノイズ垂れ流しやがって。
タスクシステムを語るには20年早いわ。
main.h に extern 使いまくりで どこからでも #include "main.h" をすればコンパイルは通る 分割コンパイルの意味の分かっていないバカのやることだよ ええ そうですよ 私の講師がそうだったように・・・
517 :
名前は開発中のものです。 :2009/03/03(火) 23:13:28 ID:KhkzCgZ3
アンチタスカーだが俗に言うタスクシステムみたいな仕組みを C++で実現している ソース晒そうか?
j
仮想関数と総合ヘッダの話は
本元のクラスでなくて、抽象クラスを、includeするということ?
/*総合.h もしくはそれの#include*/
class IHoge : public ITask
{
virtual SomeFunc() = 0;
};
/*Hoge.cpp*/
class CHoge: public IHoge
{
SomeFunc();
};
ということ?
多分、総合ヘッダといった人は、IHogeを抜いて考えていたと思う
もしくは、それでもIHogeを利用するところからIHogeが見えないといけないジャンという
ことを言いたかったのかも
タスクとマルチコアとかの関連っぽい記事を発見したので張っとく
理解はしていないので、賢い人解説して
そして建設的な話をして
http://www.gamasutra.com/view/feature/3941/sponsored_feature_designing_the_.php?page=1
戻り値書き忘れたけれど、突っ込まないで
>>519 タスクと言う言葉を軽々しく使わないで下さい
522 :
名前は開発中のものです。 :2009/03/03(火) 23:52:38 ID:NIkO1+LI
厨房見参 総合ヘッダーさん(ID:NIkO1+LI)と引数さんは同じ人だと思うが、まぁそれはそれとして 総合ヘッダーさんはCodeZineの記事に出てくるようなタスクシステムのことを言ってるんだろ? CodeZineの記事を書いた人は俺と同い歳くらいの学生さんだと思う。叩くつもりはないが グチャグチャに絡み合ってる反面教師的なコードとしてはなかなか秀逸だなーと思う task.hに 自機、敵機、自機の弾、敵機の弾 狙い撃ち、爆発、自機の制御、敵の出現制御 ステージ制御、ライフバー管理、スコア管理、タイトル画面、ゲームオーバー画面 といったTaskEx派生クラス全ての宣言をまとめてぶちこんでいる で、例えば自機弾クラスのソースコードの中を見る。まず先頭でtask.hをインクルードしている 次に自機弾クラスの当たり判定メソッドの中を見る。こいつの中では int 敵数=GetCount(ENEMY); // 敵の数よこせ (循環リストを総舐め) for(int i=0;i<count;i++){ 敵クラス *task=(敵クラス*)GetTask(ENEMY , i ); //i番目の敵よこせ (ヒットするまで循環リストを舐める) … } という感じで 『"グローバルインスタンスホルダー"の検索結果 3 件中 1 - 3 件目』 に対して、『敵を全部くれ』と要求して、敵クラス型にキャスト(static_cast)している 循環リストを舐めまくりでびびった。HSPでこんなコード組んだら重くて普通に死ねる C/C++を使うメリットを遺憾なく発揮してると思った
>>523 アンチだけれども、別にごった煮にして、
全てをなめるような実装にしなくてもいい気がする
最初から型ごとにリストを持ってそれごと返せばいい訳だし
ヘッダに全部宣言を入れていたのも、サンプルとしてそうしていただけで、
ヘッダが必要な個々の実装でincludeさせてそこでキャストさせればいい
そうすると、型ごとリストへ割り振りは、本当の型で判断できないので
別の情報で型を識別させるようにして型ごとリストを持たせればいいのでは?
タスクシステムに入れる時に型名を文字列で渡すとか
ここらへんは、タスクシステムの弱点ではない気がする
何回も語られているけれど、本当の弱点は、
静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う
素人考え?
> 静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う 意味がわからない。例えば?
>>524 それなら、最初からふつーにメンバ変数で持たせて終わりじゃない?
class Scene {
Player player_;
Enemies std::list<Enemy> enemies_;
...
};
>>525 静的というのは、シーンクラスのメンバもしくはそのメンバに
自機、敵機、自機弾、スコア管理、ステージ制御などを階層を持たせて
配置しているということ
動的というのは、(少なくともインターフェイス越しには)ごった煮の
グローバルなリストから個々のインスタンスが勝手に互いを参照し合って
どうも統制が取れてなさそうに見えないこと
上の静的でも崩壊させることができるけれど、上手く設計すれば問題は起こらないはず
で、ごった煮はその問題をただ先延ばしにしてしまっているようなイメージを持っている
だからアンチ
>>524 そう。そう思う。
だからアンチ
>>どうも統制が取れてなさそうに見えないこと どうも統制が取れているように見えないこと
>>448 の者だが、
タスク進化系がいまだにコンシューマゲーム開発の現場で生き残っているのは単純に無駄が無いから、ってのも理由の一つ。
スーファミからPS1へ、PS1からPS2へ、PS2からPS3へ移行するたびに、こんな大量のメモリ使い切れん、と思ったものだが
なぜかマスター寸前の修羅場になるといつもメモリも速度も足りなくなりチューニングに明け暮れる日々が続く。
これはメモリ128Kのスーファミ時代から256MBのPS3まで、コンシューマ開発では変わらん定例行事。
そして常にメモリとコードの無駄を減らす圧力にさらされるんだけど、タスクみたいに毎フレーム相当数呼ばれる処理に
無駄が見つかると真っ先に削られる。
この修羅場では「可読性が…」とか「OOP的に…」なんて甘い理由よりも少しでも軽量なコードで動かすことが優先される。
で、PS3時代にもタスク進化系が生き残ってる、というわけだね。
仮想メモリつんでてスペックはユーザ毎にばらばらのPC環境では特定ハード向けにガリガリにチューニングなんて意味ないので
PC環境でしか作ったことの無い人間には理解できんだろうけど、
コンシューマ開発や組み込み系とみたいに固有のハード性能を120%使い切る開発スタイルではよくあること。
>>529 なるほど。全くコンシューマーを知らないけれど、説得力がある
では潤沢過ぎる程のメモリと、無限の演算能力がもしあったとしたら
喜んでタスクシステムは棄て去る?
ありえない仮定を持ち出すとかスゲェな 厨だけどさすがにこれは真似できないな お前は凄い。俺は頭痛がしてきた。寝る
突込みがあったので補足。
>>530 は、タスクシステムが貧困な環境で使えるという
>>529 に対して、
ならば、十分豊かな環境だったらそうではないのか?という質問。
無限〜は *話を簡単にするため* の誇張した表現。
>>530 無限のメモリと無限の演算能力があったら…?
それでも小規模なアクションゲーム系1人で作るならタスク進化系の管理システム使うと思う。
タスク系は下手に使うとバグの温床になるけど使いどころを間違えなければ便利だし。
まぁこれは慣れの問題なので、この手のゲームならこの手法で…とかだいたいやり方の想像つくし
タスク系固有のバグで苦しんだ結果、バグの温床にならない作り方が出来るようになってるから、ってのもある。
慣れた人間にとっては開発効率いいんだよね、あれ。
まぁでも新人込みのプログラマ数十人で大規模オンラインゲームを作る、とかならたぶん違う方法取るけどね。
>>533 無限の資源があってもリスクと教育コスト考えれば結局C++使うだろうねー
無限の納期と無限の人材があるなら・・・遊んで暮らすだろうなー
タスクシステムってソースがタスクなわけで プロセスがタスクじゃないのね ではマルチプロセス対応というのは真っ赤な嘘になるわけだ
>>527 タスクシステムはsingletonじゃねぇぞ。
タスクのなかに別のタスクシステムをcompositionで配置してタスクを
階層化できるが、お前本当にOOPわかってんのか?
537 :
名前は開発中のものです。 :2009/03/04(水) 07:31:28 ID:NGMxgsfO
そんなの全く意味がないじゃん だいたいそんなのやるならはじめから分けてもてよ
538 :
名前は開発中のものです。 :2009/03/04(水) 07:34:46 ID:NGMxgsfO
並列化はどう考えても嘘 並列にするなら少なくとも並列にするデータは分けないと動かない ごった煮でできるわけない
>>529 メモリ使用量の大半を占めるのはテクスチャ・モデル・モーションなどのデータで、
CPU使用時間の大半を占めるのはヒット判定や AI 処理。
いわゆるゲームオブジェクト (プレイヤーとか) で多少削ったところで、誤差にもならない。
>>537 > そんなの全く意味がないじゃん
そんなこたあ、ない。
数人で作るレベルなら擬似タスクでいいよ。 でもそれを超えると破綻すると思う。
>>538 阿呆すぎて泣ける。
前スレ510のプログラム、あれ並列化できないの?
本当に1行でもプログラム書けるの?
タスクシステム使わなくていいから、前スレ510のプログラム、並列化してみなよ。
>>508 彼を養護してるアンチはいないようだが
そこまでして印象操作したいの?
>>526 > それなら、最初からふつーにメンバ変数で持たせて終わりじゃない?
そのメンバ変数が指しているオブジェクトが生きていることを誰がどうやって保証するんだ?
>>543 このスレのアンチタスカーのレベルが総じて低すぎる。
タスクシステムに限らずフレームワークなんて、使える範囲で使えばいいだけのことなのに
完全否定する奴は完全肯定する奴と同罪で、頭おかしい。
>>542 > 前スレ510のプログラム、あれ並列化できないの?
そもそも、あれは名前がタスクなだけで、
>>2 と設計全然違うけど。
いずれにせよ、データに依存性があり並列化はできない。
> m_vx = m_vx*m_m/(m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(m_m+Star2.m_m);
> m_vy = m_vy*m_m/(m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(m_m+Star2.m_m);
たとえばこのコード、複数の Star インスタンスの m_vx, m_vy を同時に読み書きしている。
複数スレッドで走らせた場合、値が保障できなくなる。
>>545 > 完全否定する奴は完全肯定する奴と同罪で、頭おかしい。
つ鏡
>>544 526のコードは、ポインタではなく実体で持たせているから、保障も何も要らんと思うが。
いずれにせよハンドルクラス (整数値とインスタンスの対応付け) は用意したほうが
便利だが、その場合でもプレイヤー・敵は別の ID 体系にしておくな。
たとえば、最大 2 プレイヤー同時プレイ可能なゲームで、プレイヤーに向かって
進む敵を作りたい場合。
class PlayerID { int id_; friend class Scene; }; class EnemyID { int id_; friend class Scene; };
class EnemyEnv {
virtual ~EnemyEnv() {};
virtual PLAYER_ID GetNearestPlayer(ENEMY_ID enemy_id) const = 0;
virtual Vec3 GetPlayerPos(PLAYER_ID player_id) const = 0;
};
class Scene : public EnemyEnv {
Player player_[2];
std:::list<Enemy> enemies_;
public:
void Update() { player_.Update(*this); enemy_.Update(*this); }
virtual PLAYER_ID GetNearestPlayer() const { ... }
virtual bool GetPlayerPos(PLAYER_ID player_id, Vec3* pos) const {
// 実際には、ここで player_id.id の値チェックを行い、生存していなかったら false 返す
*pos = player_[player_id.id_].GetPos(); return false;
}
}
void Enemy::Update(EnemyEnv& env) {
PLAYER_ID player_id = env.GetNearestPlayer(this.GetID());
Vec3 pos = env.GetPlayerPos(player_id);
// あとは pos に向かって自分の位置を調整
}
>>546 > たとえばこのコード、複数の Star インスタンスの m_vx, m_vy を同時に読み書きしている。
その言い方は不正確だし、並列化の本質をわかっていない。
そのコード、そもそも元コードがすこしおかしいのだが、タスクシステムを使おうと使うまいと
Starオブジェクトの集合から任意の2体を取り出して、その振る舞いを書きたいとする。
foreach(var star1 , star2 in stars)
{
star1.m_vx = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
star1.m_vy = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m); }
}
これは、次のようにかきかえる。
foreach(var star1 , star2 in stars)
{
star1.m_vx_new = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
star1.m_vy_new = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m);
}
foreach(var star in stars)
{
star1.m_vx = star1.m_vx_new;
star1.m_vy = star1.m_vx_new;
}
これは、コリジョン判定とそれに対するアクションを切り離すときもそう。
これをきちんと切り離しておかないと並列化できない。
前スレでコリジョン判定は並列化できないとか言ってた馬鹿がいたけど、アクションを切り離さないから出来ない。
>>549 その指摘は正しいが、前スレ 510 を使うかどうかとまったく無関係だよね。
タスクとやらを使ったから並列化できるようになるわけじゃないし、並列化が
楽になるわけでさえない。
けっきょく、同じ労力を咲く必要がある。
>>548 > いずれにせよハンドルクラス (整数値とインスタンスの対応付け) は用意したほうが
そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。
そもそも、548のソースは典型的なタスクシステムで記述するよりはるかに複雑なんだが、
あんたは、タスクシステムの否定派なのか肯定派なのか何なんだ?
>>550 > タスクとやらを使ったから並列化できるようになるわけじゃないし、並列化が
> 楽になるわけでさえない。
それは違うね。タスクシステムの側に並列化する部分を担当してもらう。
タスクシステムを使う側は、それを利用すればいいだけ。
タスクシステムは底辺の馬鹿プログラマが書かなくとも、別の、もっと優秀なプログラマが書けばいい。
並列化効率とか、メモリcacheとか、シェーダーに対するタスクの分配とか、そういうのを考慮して効率の
いい並列化プログラムを書ける奴がな。
こうして、はじめてゲームの分業が成立するんだが。
あんたはちょっとはまともなプログラマに見えるが、大規模なゲーム開発に取り組んだことはないのか?
>こうして、はじめてゲームの分業が成立するんだが。 脱字。「ゲーム開発における分業」の間違い。 いま読み返したら549は >foreach(var star in stars) >{ > star1.m_vx = star1.m_vx_new; > star1.m_vy = star1.m_vx_new; >} ここ、左辺はstar1ではなくstarだ。ごめん。
>>551 > そもそも、548のソースは典型的なタスクシステムで記述するよりはるかに複雑なんだが、
以前から同じようなコード例書いてるんだけどな。前スレ 748 とか。
・コンポジションで良いじゃん
・規模が大きいプログラムだと、どのタイミングで何が呼ばれるか、変更されるかが
分かることが重要。
この例だと Enemy::Update 時には EnemyEnv 経由で Scene のメンバ関数が呼ばれる
だけと確定する。Enemy::Draw みたいな処理があったときに、EnemyEnv const& 使うか
別のクラスを用意するかは要検討(場合による)。
> そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。
スクリプトと連携するときに楽
boost::shared_ptr 使ってるとは限らない
別に weak_ptr 使える場合には、使えば良いと思うけど。
>>552 > タスクシステムの側に並列化する部分を担当してもらう。
名前がタスクシステムなだけで、前スレ 510 とも
>>2 ともまったく違う設計・実装について
語ってるということで FA?
結局、並列化の本質は
>>549 なんだ。もう少し抽象化して書けば、こう。
foreach(var star1 , star2 in stars)
{
star1の新しく情報を書き込む領域 ← star1とstar2相互計算によって得る。
}
foreach(var star in stars)
{
starの新しく情報を書き込んだ領域をcommitする。
}
で、これをタスクシステム側に並列化する部分を受け持ってもらう。
例えば
>>546 であれば、次のように書けば上のプログラム(
>>549 )と等価になる構文を用意する。
foreach_parallel (var star1 , star2 in stars)
{
star1.m_vx = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
star1.m_vy = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m);
}
このとき、左辺は、shadow(m_vx_new , m_vy_new ) に対してアクセスしていて、実際はforeachを抜けてから
foreach(var star in stars)
{
star.m_vx = star1.m_vx_new;
star.m_vy = star1.m_vx_new;
}
これが実行される。この仕組みをタスクシステム側に提供してもらう。これなら簡単に並列化できる。
ゲームで使うコリジョン判定などはたいていこのように並列化できる。
>>555 > 名前がタスクシステムなだけで、前スレ 510 とも
>>2 ともまったく違う設計・実装について
> 語ってるということで FA?
並列化とタスクシステムとは直交する概念だから、例えば
>>2 のタスクシステムを並列化することも出来るし
前スレ510のタスクシステムを並列化することも出来る。
どちらかと言えば、前スレ510のほうが
>>2 よりはある型のオブジェクト集合のうち任意の2体に対する
振る舞いが書けるのでその部分が並列化する価値が高いだけのこと。
そもそも、タスクに対して列挙したり、任意の型の2体を取り出したりする仕組みがどこにもない状態で
並列化なんて出来ないだろう。
俺がタスクシステムと呼んでいるのは、最低限、タスクシステムと名がつくなら、タスクに対する基底
クラスが存在して、それくらいの機能はあるんじゃねーの?と思うからだ。
>>554 >> そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。
>スクリプトと連携するときに楽
ふむ、それならok。
559 :
510 :2009/03/04(水) 11:11:12 ID:5viq5cgM
>>556 shadowのアイデアもーらい。
transaction( hoge )//shadow初期化
{
task2_parallel( hoge, hoge )
{
_hoge1.x += hoge2.x;//例えば、変数の頭にアンダーバーがついていたらshadowとか。
//rollback;//ロールバックも出来るよ
}
task_parallel_end;
}
commit;//shadowコミット
あと、何か頭が統合ヘッダ?の人が来てたみたいだけど、
アップロードしたプログラムのヘッダファイルがごった煮だったのは
単にサンプルプログラムだったからだ。
560 :
510 :2009/03/04(水) 11:23:44 ID:5viq5cgM
shadowは書き込みさきより参照元の方が良いな。
>>557 >俺がタスクシステムと呼んでいるのは、最低限、タスクシステムと名がつくなら、タスクに対する基底
>クラスが存在して、それくらいの機能はあるんじゃねーの?と思うからだ。
あー、やはりな。以下の内容は煽り抜きだから気を悪くしないでくれ
結局これはローカル用語の解釈を巡る相違でしかない
例えばウチの社内ではあんたの解釈を振りかざしても
意思疎通はうまくいかないだろう
ここでは色んな名無しが俺定義・俺解釈のローカル用語を
公衆の場に持ち出して一人相撲してる。あんたもそう
タスクシステムは権威不在の定義不明瞭なローカル用語だ
ということをまず再確認し、意思疎通を円滑にするために
それぞれがより確かな一般的な計算機用語に換言する努力を
すべきだ。でなければ、この実に不毛なすれ違いは無くならない
562 :
510 :2009/03/04(水) 11:50:03 ID:5viq5cgM
俺はソースコードアップしてその上で、これが俺のタスクシステムだって言ってるんだから良いんだよな。 皆各々ソースコードアップすればよいと思うよ。
>>562 君のコードにはもっと相応しい個性的でカッコイイ名前を付けてあげなさい
手垢で汚れたタスクシステムなんて臭い名前では
>>2 と勘違いされてしまう
君のコードは泣いているぞ。不敏でならない
エターナル自動並列ブリザードデータベースでもなんでもいい
革新的であることを世の馬鹿共に知らしめる努力をすべきだ
>>559 なかなかいいね。
俺、そろそろコテハンにしとくわ。
ちなみに前スレ510に対して、C++としては素人の書き方だと指摘したのは俺な。
原則煽り専門だから、よろしく。
565 :
名前は開発中のものです。 :2009/03/04(水) 18:27:15 ID:NGMxgsfO
で? ごった煮でどうやってヒット判定の並列化をするって? 値を後で更新すると折角優先順位をつけても古い値でヒット判定をすることになるからおすすめできない 並列化を狙うならオクツリーにして位置で切らないと多分無理
演算器いっぱいのベクトルプロセッサにやらせる場合 移動フェーズと衝突検出フェーズと衝突応答フェーズに 分割してそれぞれのフェーズでいっせーのーせでやる 物理エンジンなんかもそう もちろん空間領域分割もする
567 :
名前は開発中のものです。 :2009/03/04(水) 18:51:51 ID:NGMxgsfO
駄目 衝突は即座に補正かけないとそれだけでバグる 移動して衝突判定をすぐにしないと壁の向こうの敵と接触することになるぞ しかし壁の当たりの優先順位はおそらく最後だろ? でないと抜けるしね しかしそうすると壁の向こうの敵と接触する この辺をタスク縛りにするのは正直うまくない やるならなにはなくともオクツリー
なんで衝突判定中に衝突以外の判定を入れるの?馬鹿なの?
それでバグらないようにする手法も研究されてるだろうね 考えるならなにはなくともまずはサーベイ
並列化とタスクと絡めて話してるのは極一部で しかもタスクを使えば並列化できると主張してる人はいない。 今の話は並列化に対応したタスクがもし作れるとするなら どんなものになるかという感じ。並列化に関する部分は一般論をしてる。 つか並列化はそろそろ別スレ立てた方がいいんじゃね。 並列化が目的でタスクは手段に過ぎないんでしょ。
>>567 上のは(Id Software系のエンジンでいうところの)エンティティ対エンティティ
のみに絞った話。相互作用。
壁抜けや床抜けに対するケア、これはブラシとの衝突(相互ではなく一方的作用)は
当然これは即座に補正される
>>571 即座に、ではなく、衝突検出フェーズにおいて、ブラシとの作用が先に反映される
だな
>>567 > 衝突は即座に補正かけないとそれだけでバグる
俺物理エンジン書いたことあるが、そんなこたぁない。
どうせお前のプログラム、移動させて同時に衝突判定してぶつかってたら逆方向に移動とか
阿呆なことやってんだろ。本当、このスレは底辺プログラマ集まってんのな。
>>572 ついでに、高速移動体に対するケアの話もここでは割愛している
あと、俺は強烈なアンチだ
ああ、ID:4u8TV8ZGは底辺プログラマではないな。俺的に除外しとく。 しかし、ID:NGMxgsfOは、底辺以下だな。俺的には、ゴミ扱い。 タスクシステムを使うと総合ヘッダが必要になるとか言ってる基地外と一緒。 ああ、ID:NGMxgsfOがその基地外なのか?
>>574 あんたは、強烈なアンチなのか。それは意外だ。
俺はじゃあ、強烈なタスク信者ってことでヨロシク!
まあ、あんたとは仲良くできそうだけどな。
>>576 俺とあんたとの間に争点があるとすれば、それはタスクシステムという呼称だろうな
俺はあのローカル用語から発せられる腐敗臭が大嫌いなんだ
タスク(自分の信じる、おそらく誰とも同じものを指していない)信者 と 強烈なアンチ(なにに対してなのか自分でも解っていない) か。
>>577 ああ、それは同感。
まあ、俺のなかでは、タスクシステムは少なくともstd::listよりは少しはマシなことが
出来るように工夫してあんだろ、みたいな思い込みはある。
std::list以下のものなら、タスクシステムなんて大層な名前つけなくても黙って
std::list使っときゃいいわけで。
581 :
名前は開発中のものです。 :2009/03/04(水) 23:55:44 ID:NGMxgsfO
全くしない(笑) 何を並列化したのかさっぱりわからん あたりでやるとしたら全く関わることのない範囲を同時に・・・ ぐらいしかないけどな こんなパラ単位で並列化なんて意味ねーよ
>>580 foreach の部分を OpenMP とかで並列処理できれば、まぁ多少は。
しかし、そもそも並列化するならゲームロジックが絡むところより、モーション計算
とかエフェクト(特にパーティクル)だろう。ゲームロジックは依存関係がキツいし、
仕様変更が頻繁に起こりうるからリスク大きすぎる。
もっとも PS2 のときから、技術力があるところは VU1 に持っていってたけどな。
ああくそ! ID:NIkO1+LI祭に乗り遅れた! 書き込み規制が憎い
>>580 するよ。
>>581 阿呆すぎて泣ける。どこの阿呆かと思ったら、
「衝突は即座に補正かけないとそれだけでバグる」とか言ってた阿呆か。
全然話にならんわ。
まともな物理エンジンのソース見たことないんだろうな。
585 :
名前は開発中のものです。 :2009/03/05(木) 07:49:58 ID:DNYGW2s8
でも実際動いたら補正かけないと壁の向こうの敵に当たる 間に壁がないかみて判定しなきゃならんときもある この辺をタスク縛りにされるのは正直やりにくいにも程がある ゲームやオブジェクトによってすり抜けがどうでもいいものもあるだけに一般化はできない リングアウトだけ起こらないでは済まない場合は結構多い べつに速度がとんでもない場合じゃなくても問題は起こる
>>585 あんたは、ID:NGMxgsfOか?
それとも、ID:NGMxgsfO級の阿呆が何人もいるのか?
いい加減、コテハンにしてくれ。
まともな幾何的なconstraint solverを書いたことすらない奴が物理エンジンを語るなよ。
>>586 ここで物理エンジン語るのも、どうかと思うが。
>>585 ,588
タスク以外でも585の問題をどうやって解決しているのか知りたい。
結局両方の例が無いと比較できないし評価を下すこともできない。
壁との当り判定&補正処理をした後で 敵との当り判定を取れば良いだろ。
壁との当り判定&補正処理と、敵との当り判定を、それぞれ別々に並列化すればよいだろ。 parallel { 壁との当り判定&補正処理 } parallel { 敵との当り判定 }
さすがに優先度の在る処理を並列化する馬鹿は居ないだろ。
>>592 素人すぎて話にならん。なんだよ、壁と敵って。動くか動かないかでわけてんの?馬鹿じゃねーの。
動くか動かないとか、誰も言ってないのに。
壁=動かない、敵=動く、という固定観念でもおあり?
>>592 は、
あらかじめ、物理的に問題の無い状態に落ち着けてから、
あらためて、ゲーム進行上ひつような当り判定を行う。
ということ。
並列さんも結局あてにならないんだよなぁ・・・
>>595 > 壁=動かない、敵=動く、という固定観念でもおあり?
この議論の大元となっているのは、
>>155 で、そこには
> 衝突解決には、たとえば「壁は動かない」「プレイヤーが壁に当たったら押し戻される」
と書いてあるから俺はその定義に従っただけなのだが。
この流れで、オレオレ定義の「壁」とか「敵」を持ち出すなら、言葉の定義ぐらい先に書いて欲しいんだが。
あてになるかどうかというより基本的な部分で意志の疎通ができてないんじゃ。 共通認識を積み上げる作業をさぼったらコミュニケーション取れんよ。 そんな面倒なことは省略して結果を気にせずに出会い頭の辻切り対辻切り みたいなやりとりを日常的にしてるのが2chでもあるけど。
どんだけ悔しかったのか知らないが、12日も前のレス持ち出して弁解ですか。
>>592 の壁とか敵はオレオレ定義ではなく、
>>585 で出現しているそれ。
7つ上のレスも見れない池沼さんですか?
で、揚げ足取りは結構なんだけど、本文への反論は?
>>599 >
>>592 の壁とか敵はオレオレ定義ではなく、
>>585 で出現しているそれ。
>>585 に定義らしきことは書いてないじゃん。
> で、揚げ足取りは結構なんだけど、本文への反論は?
「壁」と「敵」についてきちんと定義を書いてくれ。話はそれからだ。
>>600 こいつは何を並列処理しようとしてるの?
(あ、また、
自分は7レス前の今朝の関係のあるレスも見れないのに、
他人には439レス前の12日前の無関係なレスを覚えていることを要求する並列さんが何か言ってるな)
>>600 ちょっともう、どうしたらよいの?国語やりなおせとしか言いようが無いのだが。。
>>585 をよめば、
・壁とは、敵との当りを防ぐもの。
・敵とは、当たりをとる対象。
ということぐらい普通分かるだろ。
同時に、
>>155 が今件になんら関係ないことも分かるだろ。
結論から言うと、お前が一人で勘違いして勝手に煽ったりファビョったり一人相撲してただけだ。
文章が読めない奴ばかりだから、もう一度書き込むぞ。
>>585 は、
衝突解決の途中でゲーム進行用の当たり判定を取ると、
ゲーム進行用の当たり判定がバグる、
と主張し、
それに対して俺は、
衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、
と主張をしている。
予め言っておくが、衝突解決の優先順位の問題とは全く別の話。
>>602 > ・壁とは、敵との当りを防ぐもの。
> ・敵とは、当たりをとる対象。
> ということぐらい普通分かるだろ。
それはわかるが、敵同士は重なっている状態が許容されるかどうかが
>>585 からはわからない。
もし許容されないなら、敵とか壁とか分けて考える必要はなく、どちらも対等な単なるオブジェクトだから
用語をわざわざ分ける必要がない。
それを
>>592 のように処理を分けているというのは、あんたが勝手に敵同士の交差は許容されると
>>585 から解釈したとしか思えない。要するに
>>585 を拡大解釈しているのはあんただろ。
>>603 > 衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、
「ゲーム進行用の当たり判定」なんて、誰も話題にしてなくて
幾何的に重なりをもつ状態をいかに防ぎつつ処理を並列化するかしか
問題にしてないと思うんだが。
あんたは日本語が不自由以前に頭が不自由みたいなんで、
俺はあんたの相手はしないことにする。
まとめ
ID:2NL1rK1f が正しい。
ID:rvhMBE/z は間違っている。
なぜならここはタスクシステム(^^;)スレだから。
今は並列処理(笑)をどこまでシステムを組み込めるか議論する場なので、(たとえば整数のみで実数計算するにはどうするのが一番いいかのような)
ID:rvhMBE/zのように並列処理(笑)を使わない最も効率的で扱いやすい無駄の無い設計はスレ違い。
みんなそれが最善手段と知ってる上で議論している。
(まぁ
>>604 の敵同士の交差がどうこうというのは並列処理(笑)時の話であって交差しようがしまいが別に処理させているID:rvhMBE/zの設計に対するツッコミ(ボケ?)は意味不明だが)
本当に文章が読めないんだな。どうしようもない。
>>585 にはプレイヤーという主語が抜けてるんだよ。
それぐらい行間読めよな。
だから、
>敵同士は重なっている状態が許容されるかどうか
は関係ない。
さかのぼってみれば、
>>567 が発端で、これは、
>演算器いっぱいのベクトルプロセッサにやらせる場合
>移動フェーズと衝突検出フェーズと衝突応答フェーズに
>分割してそれぞれのフェーズでいっせーのーせでやる
に対してレスされている。
内容は、それぞれのフェーズの呼び出し順が固定だから、
衝突検出フェーズ内で拾う値は必ず補正前の値になってしまうので、
壁の向こうの敵に接触してしまうなどの不具合が出る、というもの。
つまり、古典的タスクシステム固有の問題で、実は並列化は関係がない。
速度がでてないのに壁の向こうの敵にあたるって 壁薄くね?
>>608 実際は、紙みたいな壁も存在して、単なる衝突判定でやってしまうと
次フレームでは通り抜けてることもある。
だから、まともな物理エンジンでは、そういうオブジェクトに対しては、
連続体として扱うようになっているのだが、この取り扱いは結構難しい。
これに関しては最近、いろいろ論文が発表されるなど、比較的hotなテーマだ。
>>607 >つまり、古典的タスクシステム固有の問題で
なんでそうなるんだよ
>>567 はcontinuous collision detectionの話がしたいのか?
壁とか言ってるから違うだろ。隣部屋同士の誤判定の話くさいんだけど
空間分割された隣部屋同士なら『ドア(窓)を経由しない限り当たらない』
ドア(窓)を経由して侵入してくる疑いがある奴は移動フェーズの時点で
バレてんだから、移動フェーズが終わった時点で同期的処理かませれば
いいだけだろ。バカくせ
ドア(窓)を経由しないでポータルの外を飛び出るかもとか
そんなクズシステムの話を持ち出す時点で駄目だ
タスクバカ=
>>2 信者=直列バカはやっぱりバカだ
銃弾は壁も突き抜けるぜ!
そうか。
>>567 は銃弾の話をしてるのか。そうなのか?
そういや壁抜きでぶっ殺したら升使ってるとか言われたな
これだからnoobは困る
>>616 そういうツールありますから
あなたの方がnoobですよ
あー、わかったぞ 並列君は銃弾も人も同じエンティティとして平等に扱うのか マジで狂ってるな。どんだけ無駄なことすりゃ気が済むんだよ
>>618 だから効率を求めてるんじゃなくて、並列でどうやって対処するか議論してるんだってば
>>619 は?誰だよお前。名無しに用はねーんだよ
効率を度外視した糞システムなんてみんな糞だ
お前らタスクバカはそうやって何でもツクールを目指すバカだから
並列処理も効率度外視とかウンコくさい話をしたがるんだろ
バカは氏ね。思想レベルで詰んでる
≡≡≡≡≡≡. 日 ▽ U 日 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ≡≡≡≡≡≡ | IDさん今日は荒れてるなあ。 V ∩ [] 。〇 \____________ ____ ∧∧゚______ □ ( ) ―――― | ヽ―――――― (____)〜 ━┳━ ━┳━ ━┳━  ̄┻  ̄ ̄ ̄┻ ̄ ̄ ̄ ┻ ̄ ̄
>>2 が時代錯誤的な直列処理してっからブッ叩かれ、それを気にして
カッとなって、今度は極度に逆方向にふれて究極の並列コードを
目指すし始めた一部の先進次世代タスクバカ。
>>510 が代表だな
お前らタスクバカはさ、いい加減『ナニを作るのか』具体的に書けよ
何でもツクール目指すから『ナニを作るのか』書けません、だとか
ミラクルドリーマーみたいな事をほざくなよ
>>621 俺、一応未成年だからお酒でそういう大人っぽいお店にいって
酩酊してウサ晴らすとかそういうことできないんだよね
これは芸風だから。昨日の並列君のお前らみんなバカ宣言
に対する報復である
×お酒でそういう大人っぽいお店にいって酩酊して ○そういう大人っぽいお店にいってお酒で酩酊して
625 :
561 :2009/03/06(金) 00:00:33 ID:4YMxwutE
惚れた
626 :
名前は開発中のものです。 :2009/03/06(金) 07:47:43 ID:+3ldVLU9
>>622 そんなの無理だろ
タスク信者は動いてるプログラムにタスクウィルスを入れて
自分しかメンテできないようにして、自分の居場所を確保する
犬の小便的行動が本来の目的なんだから
いやー、昨日も面白い池沼がいて楽しかったわ これだからこのスレはやめられないw
銃弾の事は外野の俺がネタで言ってみただけだお…><
>>625 >427
>>626 そのくらいで地位を守れるなら失うよりはずっとマシだと真剣に思う、この不況。無職を叩く側から叩かれる側になるなんてやだもん。
630 :
名前は開発中のものです。 :2009/03/06(金) 18:02:43 ID:+3ldVLU9
ついにタスク信者自身が自分がクソを入れてることを認めたか
なんじゃそりゃ
>>622 タスクシステムが直列処理だとは思わんが。
どっちかっていうと、並列かと。
>>627 ちょっとー。何なのおまえ誰なのおまえそこへ直れよおまえ!このイジメっ子ザザ虫!
平日の朝っぱら10時から暇そうに2ちゃんで厨のIDコテ使って何ふんぞり返ってるの?
イイ歳した大人が虎の威ならぬ厨の威を借りて一段高くなれるの?低くならないの?恥ずかしくない?
お前、今まで俺のことをHSPしか使えない基地外とか繰り返し叫んでたウンコ君でしょ?
気になるあの子が振り向いてくれないからって、あの子の目の前であの子の名札つきの
体操服を着てあの子のピアニカをチュアパチュパしゃぶりながらあの子のリコーダーに
ポークビッツを差し込んで教室で待ち構えて本人登場したらポークビッツが健気に膨張
圧迫されて抜けなくなって保健室に運ばれちゃう変態、超ド変態の子供時代を繰り返すの?
タスクバカのことをバカバカエンガチョって指差してきたけど流石にトリップ無しIDコテ厨を
騙るほど堕ちちゃいないだろうと信用してたのに買いかぶりだったみたい。もう大嫌い
>>633 >627は偽物だったのか・・。まあ、もとより俺には、本物が誰なのかよくわからないのだが。
>633を見る限り、なんか内容は支離滅裂だが、それでもあんたの日本語は他の奴よりは
断然読みやすいのでまだ許せる。
日本語の不自由な奴は、ゲームなんか作ってる場合じゃなくて、
もっと先に勉強すべきことがあるだろ、とか思うんだけどな。
寮に帰って2ちゃん見てワナワナプルプルしながら顔真っ赤に怒ってるから
支離滅裂なんだ!ちなみに昨日の書き込みには大変な矛盾があるので
訂正したかったが、
>>627 は俺らしいから彼にやらせてみようと思う
>>635 優先順位がつくばあいもあるから正確には並列とは言えないだろうな。
>>637 その理屈はおかしい。
マルチスレッドのプログラミングでもセマフォで他のスレッド待ったり普通にするじゃん。
処理に順序があろうが無かろうが、並列なものは並列だ。
>>635 が並行と言ってるのは、タスクを実行しているスレッド(プロセス)が通例、
1つだけだという理由からだろう。
>処理に順序があろうが無かろうが、並列なものは並列だ。 並列さんの言ってることは意味が分からん。 処理に順序があれば、同時に実行できないのだから、並列でないだろ。 マルチスレッド≠並列。 煽り専門と名のってたが、嘘ばかりを書き込んでスレの機能を麻痺させる気? 名前変えたら?
>>639 > マルチスレッド≠並列
言葉の定義の問題だから、まあどうでもいいが、まあ普通は
マルチスレッドで実行されている以上、並列だし、あるスレッドが他のスレッドを
待っていてスループットが悪かろうが、並列なものは並列。
処理順序が厳密に定められていて、まったく逐次実行しか出来ないなら、
シングルスレッドと同じか、それ以下のパフォーマンスしか出ないけどな。
実際はゲームのタスクはそこまで処理順序に関しては制約が厳しくないので
いくらでも並列化できる。
>マルチスレッドで実行されている以上、並列だし、 並列ではない。並列な部分もあるってだけ。 今は、「正確には並行処理じゃないの?」と問われていたわけで、 純粋に並列でないなら、正確には並列とは言えない。 だいたい、マルチスレッド云々は実装レベルでの話しだし。 タスクシステムがアーキテクチャ的に並列処理かどうかとは関係ない。
コーヒー牛乳は牛乳か→YES コーヒー牛乳は正確には牛乳か→NO タスクシステムは並列的か?→YES タスクシステムは正確には並列か?→NO
>>641 > 今は、「正確には並行処理じゃないの?」と問われていたわけで、
> 純粋に並列でないなら、正確には並列とは言えない。
この文章、意味不明だ。この文章、俺の解釈では↓こうだ。
今は、「正確には並行処理じゃないの?」と問われている。
スループットが1以下の並列実行なんて並列実行には含まれないので
「正確には並列」とは言えないので、単なる「並行処理」と見なすべきだから、
この「正確には並行処理じゃないの?」は正しい。
もし、そういう意味で書いているなら、俺は別に反対意見は唱えていない。
しかしそれなら
>>637 の書き方が悪い。
「優先順位がつくばあいもあるから正確には並列とは言えない」
だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから
並列とは言えない」と読める。だから俺は
>>638 のように反論した。
>>637 は、正しくは
「優先順位がつく場合、並列化が難しく、並列度が極端に低下して、単一スレッドで実行
しているのと変わらないから、並列と呼ぶべきではない」と言うべきだっただろう。
しかし、俺はそうは思わない。
処理に優先順位がついていようが並列度を上げることは十分可能だからだ。
コーヒー牛乳は牛乳か→NO
>>645 見苦しいか?ふむ。
それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。
>「優先順位がつくばあいもあるから正確には並列とは言えない」 >だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから >並列とは言えない」と読める。 優先順位がときどき偶発的について、そのときに限り並列性が落ちることがあるから、 正確には並列とは言えない、であってるよ。 タスクシステムは正確には並列か?という命題に対して、 タスクに優先順位が付く場合を判例に挙げたまで。 処理に優先順位が付く場合、理論的にピュアな並列処理とは言えないからな。 完全な並列性とは、なにをどの順で実行しても構わない場合のみ。
>それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。
自分がまともに日本語を扱えないくせに。
>>643 とか、これ日本語ですか?
Q:タスクシステムは正確には並列か?
A:タスクの処理の優先順位をサポートするタスクシステムの場合には、
タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。
たったこれだけのことが何で分からないのか。
彼はこの問題を実装レベルの並列度の話に持ち込もうとするが、
そもそも、すべてのタスクを同時に実行できるハードが存在しない現状で、
実装レベルでの並列性をもってして、
「タスクシステムが正確には並列かどうか」を判断するのはナンセンス。
なぜならタスクシステム自体による制限よりも、
ハードウェアによる制限の方が先に現れるから。
>>647 > タスクシステムは正確には並列か?という命題に対して、
だが、あんたは、
>>635 を誤解している。
635は
> 正確には並行処理じゃないの?
と書いてあって、並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
635を書いた本人は、「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので
「並行処理と呼ぶほうが正しいのではないか」と言ってるわけ。
それなのにそれに対する受け答えとして、あんたは、>637で「スループットがN倍になっていなければ
pureな並列とは呼べないので並行ではない」と言っている。あんたが「並列度1.0(そんなもの現実的に
存在しないんだが)ではない並列」を「並列」とみなさないのはあんたの勝手だが、635に対する返答として
637は、おかしい。
>>648 > Q:タスクシステムは正確には並列か?
> A:タスクの処理の優先順位をサポートするタスクシステムの場合には、
> タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。
> たったこれだけのことが何で分からないのか。
Qが間違っている。誰もそんなQをしていない。詳しくは
>>649
俺、もう寝る。 どうか、ID:EEKBitmg ◆HSP4mee/SU は、 ID:ZZNOCL1sの相手をしてやって欲しい。 ID:EEKBitmg ◆HSP4mee/SU の書く内容は、技術的に間違ってることも多々あるし、態度も生意気だけど、 日本語は意味明瞭だし、技術用語の使い方も比較的正しいので俺としてはかなり好感が持てる。 まあ、勉強熱心なんだろうな・・。
まず並行でないなら並列化できないわけで。 逆に、並列化不可能なら、並行でない。 というか、むしろ今まで並行の意で並列と言っていたのだが。 >スループットがN倍になっていなければ >pureな並列とは呼べないので並行ではない は正しい。 順序がある処理は並行ではない。
>>652 >>654 同じだとおもうけどw
>順序がある処理は並行ではない。
いや、順序があっても並行は並行だろう。
ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
仰々しく「並行」だの「並列」だの言うな、と主張しているように見えるなあ。
ID:ZZNOCL1sは実践的な話をしていて、
並列さんは字面通りの一般的な並列の定義に沿って話しているだけに見える。
というのは深夜の時点で並列さんも悟っているように見える。
>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。 >「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので 並行化によって待ち時間が減ったりするので、スループットは向上するが、 1倍の基準点が不明。
>>653 > というか、むしろ今まで並行の意で並列と言っていたのだが。
あんたは、全然話にもならない。
専門用語を勝手に本来と違う意味で使っておいて
相手に日本語が読めないだの何だの言うのは本当、勘弁して欲しい。
>いや、順序があっても並行は並行だろう。 順序がある処理は並行化できないよ。 例えば、処理Aと処理Bがあって、 BはAの後でないと実行不可だとする。 この場合、AとBを並行に処理することは出来ない。
>>655 > ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
そんな話じゃないでしょうに…
あと
>並列さん
>悟っている
なんか気持ち悪いです
>>658 > 順序がある処理は並行化できないよ。
それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。
ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
本当、専門用語を勝手に意味を作り替えんなと言いたい。
>>659 気持ち悪いのはお前。お前はいらない子だから死んでくれ。
>>657 お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。
>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
↑何に対する1倍かはしらないがな。
>>661 >>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
>↑何に対する1倍かはしらないがな。
そこが読めてないのお前だけだろう。
「concurrentな処理は、Nコアであっても、単一コアで実行したときの1倍以上のスループットが出ない」の意味。
>>661 > お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。
どこをどうやればそう読めるのか俺は知りたい。
並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
単一か複数かの差のみ。そんなことは誰でもわかっている。
その用語を勝手に違う意味に使ってたのはあんただろ。
俺には、頭がおかしいとしか思えない。
その頭のおかしいあんたを唯一擁護しているのは ID:cMprZFoi だけ。
こいつは、あんたが書き込みした直後にしか出てこない。どうせこれもあんただろ。
カプコンのMTフレームワークみたいなマルチコアでのパフォーマンスに特化した設計の フレームワークなら並列云々の話になると思うが… あれもタスク進化系の一種なのか?ちょっとタスクって守備範囲広すぎ。 あれはコア数がパフォーマンスに直結する造りだね。 順序の依存性のある処理と無い処理をグループ分けして、並列で問題ないケースは複数コアで同時計算。 順序の依存性がある処理との同期スケジューリングをフレームワークが管理って感じで。 ゲーム中には依存性のある処理と無い処理があるから、まぁ複数コアを有効に使おうと思うと こんな感じな設計に行き着くんだろうね。
ID:EEKBitmg ◆HSP4mee/SUはまだ良かった。 HSP使いのプログラミング経験の浅い世間知らずのクルクルパーだが、 そのわりには用語の使い方はまともだし、勉強もよくしていると思っていた。 俺は専門用語を勝手に俺解釈の用語とすり替えて話す奴とは 面倒くさいので話をしたくない。 このスレはどうせみんな常駐してるようなもんなんだから、みんなコテハン にすればいい。それそれぞれが嫌な奴をNGリストに入れておけばいいと思うんだがな。 そんなわけで ID:ZZNOCL1sは俺をNGリストに入れておいてくれ。 お前と話をするのは疲れる。
>それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。 いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。 実際OSなんかは各スレッド間に依存関係が無いものと見なして並行処理しているわけで。
>>658 それが実質直列だってことは分かるんだけど。
とりあえず、俺が何を考えているのかと言うと、
動き方が実質直列であっても、それぞれ別のスタック領域を持ってる点が違うだろ?
別々のコンテキストを持っている。
その辺を区別するのに「実行効率ゼロの並行」も俺は並行と呼んでただの直列と区別していた。
要するに俺はコアが何個でそのPCがどこ指してるのって部分だけで並行か並列かって言ってた。
んで、一般的定義はどうなのと思ってググった先を見てみると、
コンテキストがどうのというのは論点じゃ無いような気がしてきた。
もうちょい調べてみるわ。
>>666 > いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。
あんたの「並行処理」について持ってる勝手なイメージは知らんが、
優先順位がついていてそれぞれのタスクを逐次的に処理していく場合も
(そのタスクが終了後に消滅しないなら)「並行処理」と呼ぶ。
http://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
「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら
シングルプロセッサによって逐次的に実行される」
計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
何ら関係がない。
・実行箇所をインターリーブしながら(タスクからリターンしてもタスクは
通例存在していて)
・シングルプロセッサによって(ある瞬間を見たときにつねにひとつの
プロセッサしかタスクを実行していない)
この二つを満たしているなら、並行処理。
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。 どこにそんな定義があるんだ?
>>668 >計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
>何ら関係がない。
だから、並行処理では処理の依存性は考えない=依存性は扱わない=依存性は扱えない。
扱わないのは扱えないから扱わないの。
実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。
各スレッドを並行と見なして実行する。
処理に依存性がある場合はプログラマが自前で同期オブジェクトとかつかってシコシコやる。
一方、タスクシステムでは処理の依存を優先順位という形で明示的に扱うのが一般的。
各タスクを並行とみなしているわけではない。
いつのまにか 並行・並列処理の単語の定義のスレになってるな。 自然言語の単語の定義なんてどこまでいっても曖昧なのに… 自分の言う「臭い」と他人の言う「臭い」が同じという保障なんて誰にも出来んよ 確かなのは人工言語で書かれたソースのみ。
>>672 ざっと見たけど日本語のwikipediaのほうは、ひどいな。
これとか
> 並行性のための構造を備えた最も一般的な言語はJavaとC#である。
なんでだよと突っ込みを入れたくなる。
これ書いてる奴は、thread生成が出来るからJavaとC#を入れてるんだろうけどひどいにもほどがある。
C#のyieldによるcontinuationは確かに並行スレッドなんだが、それならJavaを含めるのはおかしい。
日本語のwikipediaの「並行性」の項目もひどいな。なんだよこれ。
ちょっとwikipedia行って暴れてくるわ。
>>674 > 自然言語の単語の定義なんてどこまでいっても曖昧なのに…
専門用語は、限りなくstrictに定義されてるべき。
そうじゃなきゃ論文とか意味のないものになってしまう。
>>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.
が続いている。
自分の都合の良いところだけを掻い摘んで引用する根性の悪さ。
結局、
>並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
>単一か複数かの差のみ。そんなことは誰でもわかっている。
は間違い。
>>673 > 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。
それはダウト。
実際のOSにはプロセスのpriorityがあって、それに従ってスケジューリングされる。
割り込みなんか特にそう。あるプロセスの実行が他プロセスの実行より優先されることは多々ある。
キーボードイベントが発生したら、その処理が優先される。そこには明確な実行順序がある。
そんな機能すらない、もっとprimitiveなOSの話をしているなら、まあそれはそれでいいけど
「実際のOS」と書かれるとWindowsやらLinuxやらを想定しているのかと俺は思ってしまう。
>>675 お前がひどいという日本語版の、
「並行性のための構造を備えた最も一般的な言語はJavaとC#である。」
は英語版のページにある
「Today, the most commonly used programming languages that
have specific constructs for concurrency are Java and C#. 」
の訳なわけだが。
そしてその英語版のページを引用して、
「これが並行処理の定義だ!」と言っていたのがお前なのだが。
さらにその引用も自分の都合のいいところだけを引用するという正確の悪さ。
「〜又は〜」と書いてあるのに、「又は」以降をバッサリカット。
>>678 プロセスのプライオリティーは必ずしも守られるわけではない。
あれは、CPUリソースに対する優先順位であって、処理に対する依存関係を表すものではない。
現にマルチプロセス環境だと、プライオリティーの高いものと低いものが同時に実行される。
>>677 それなぁ、「executed in parallel」以下は敢えて省略した。
これを「根性の悪さ」と言われるのはわからないではないが、いま俺が問題としているのは、
「concurrent thread」 とか「parallel thread」というときのconcurrentとparallelの意味の違いだ。
「concurrent computing」という学問分野があって、その学問分野は広範で
いわゆる分散コンピューティングみたいなことまで研究対象としている。
本来、concurrentの定義にparallelとか出てくるのはおかしいのだが(それだとconcurrentとparallelとの
差が無くなってしまう)、「concurrent computing」の分野においては、「concurrent program」の意味は、
かなり拡大解釈されている。だから、その部分をはしょった。
「concurrent computing」のconcurrentを援用するのがあまり良くなかったと言われれば、まあ、それはそうなのだが。
並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。
んじゃないの?
独立した概念(関連はあるけど)なんだから、
>>660 の
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
はおかしいと思う。
concurrentに作っておけば、parallelに実行しやすいんだし。
>>680 うむ、それは正しい。
>>682 ああ、そうか。そういう意味では、660はおかしいし、書き方が悪いな。
これについては反省。すまんかった。> ID:ZZNOCL1s
用語の定義をめぐって、wikipediaと格闘するような人とは議論したくない。
お互い疲れたと見える
>>682 > 並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
> 並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。
この定義に基づいて古典的なタスクシステムのタスクについて語ると
・古典的なタスクシステムのタスクは、「並行」。
・実行順序に厳しい制約があるとみなすなら、「並列」化はできない。
ところが実際のゲームでは、タスク間に依存関係がない部分が結構あるので
部分的に「並列」化できる。
この「並列」化によって、コア数N×0.7ぐらいのパフォーマンスは出る。
で、この「並列」化を古典的タスクシステムを進化(?)させて書けるようにすれば
いいということだな。
>>684 俺のことは、NGリストに入れておいてくれ。
最初に682のように書いてもらえれば、俺はすぐに理解できたのだが。
これにて一件落着
おれは、
>>682 と同じ意見ではない。
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
必要だと考えている。
並行性
http://ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E6%80%A7 だから、
1.並行でなければ並列化できない。
2.タクスの処理順位を考慮するようなタスクシステムは、すべてのタスクが互いに並行というわけではない。
3.ゆえに、タスクシステムを並列化するならば、並行なタスク同士を抽出する必要がある。
と考え、
さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 俺もこう思ってた。 んでそうハッキリ書いてある資料を探してるんだけど、見つからない。 >並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、必要 次からこっちの定義で話すわ。
>>689 >さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。
MTフレームワークは処理順の依存の有無でタスク分けてマルチコアで同時に複数タスク動かしてるけど
これは処理順位を考慮するシステムだから「並行でない」のかな?
だいたいちょっと考えれば分かることだが、並行の定義が、 >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。 だと、いわゆるオブジェクトと呼ばれるものは全部並行ってことになっちまうだろ。 コンテキストが同時に存在できないオブジェクトなんて、まあ無いからな。 言葉としての意味が無くなる。
>>691 もしはじめから並行なら、MTフレームワーク自体いらないでしょ。
>>693 >もしはじめから並行なら
どこにそんな前提が?
695 :
名前は開発中のものです。 :2009/03/07(土) 16:36:27 ID:E0xOAlNR
>>689 >これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの?
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
と同じ事を言ってるだけのような。
>1.並行でなければ並列化できない。
は違うと思う。
並行でない命令列も、依存関係が無ければ並列化できる。
現にCPUの中でシリアルセマンティクスを満たしつつ並列実行が普通におこなわれている。
そういう命令列は本質的に並行だった?違うでしょ?スーパースカラで並列に実行される命令は、
異なるコンテクストを持ってるわけじゃないんだから。
あと細かいことだけど、順位と順序は全然意味違うんだから、
ちゃんと使い分けてくれないと読み辛いよ。
696 :
名前は開発中のものです。 :2009/03/07(土) 18:22:05 ID:UcXZ5wF9
でも依存関係があるかないかなんて並列で実行してんのにどうやってわかんだろね くる値によって依存関係があるかもわからんしないかもわからん ごった煮だとそういうソースになってしまうな
ID:UcXZ5wF9 ↑(・∀・)↑ ウンコちゃんインしたお
700 :
698 :2009/03/08(日) 19:26:02 ID:ryll+mdy
訂正するけど、 コンテクストが共有されていても、read-onlyな場合は並列化可能だね。 書き込みするとアウトだけど。
>>698 なんか色々と変だよ。
>例えば、コンテクストが共有されている場合などでは、
>コンテクストは同時に存在できるが、同時に実行はできない。
共有されているのに同時に存在するってどういう意味?
コンテクストはいくつあるの?
>具体的には、オブジェクトAが(以下この段落略)
オブジェクトとコンテクストがごっちゃになってる。
オブジェクトAがオブジェクトBへの参照を内部に保持していても、
コンテクストがいくつあるのかという問題とは関係無いよ。
オブジェクトAとBを同時に実行はできない?オブジェクトを実行するってどういう意味?
この辺は、
>>692 の勘違いと同じ匂いがする。
てか
>>692 さんなのかな。
んが。改行多過ぎ言われた。 701の続き。 >並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。 「依存関係が無い部分」を「並行な部分」とは呼ばないよ。 いや呼ぶのは自由だけど、少なくとも聞いたことないよ。 いや聞いたことないだけかもしれないけど。 >並列化とは、並行に処理すること(以下略) ×。 もうちょっと詳しく言うと・・・ 「並列化とは、並行に処理すること」 という言葉それだけを見るなら、○。 でも、そこに出てくる「並行」という言葉は、並列という言葉を説明するための 「(同時)並行」という意味であって、このスレでここまで長々と議論してきた 並行(concurrent)とは意味が違うよ。 (「並列」を説明するのに「並列」と言っても仕方が無いからね) 二つ挙げてくれたwikipediaの説明に出てくる「並行」も、同じように「並列」を 説明するための「並行」であって、ここに引っ張り出してきても意味が無いよ。
703 :
名前は開発中のものです。 :2009/03/09(月) 12:41:05 ID:2btSBxrR
大変だ!タスク信者が息してないぞ!
つまらん煽りイラネ
本人は面白いと思って書いてんだろ
厨は『並行処理』という言葉を使ったけど、ノートを読み返したら『並行動作』となっていた。
=『擬似並列動作』のことを云いたかったの!微妙に書き間違えてた?と書こうと思ったら
>>637 -以降で怖いおじちゃん達が深夜の泥沼バトルが展開されてあれよあれよと言う間に
みんな深淵の彼方へ飛んでいってしまった。ニーチェの警告に耳を傾けない者はみんな
闇に飲まれちゃうんだ。恐ろしいことだ
俺は元々
>>2 の話をしてて、これはどこをどうひっくり返しても逐次処理・直列処理してる。
ところが
>>632 のタスクシステムは直列処理ではなくどっちかっつーと『並列』らしい。
たぶん
>>632 の云うタスクシステムは
>>2 とは別物か、あるいは並列ではなくて
『擬似並列動作』とか『並行動作』のことをいってるのかなーとESPした。それが
>>635 >>2 の『システム(笑)』部分が提供するものは
・粗末な侵入式の連結リスト
・それを周期的にナメナメしてディスパッチするショボイ仕掛け
だけ。
>>2 はこの『システム』部分をユーザー定義の逐次処理・直列処理に使ってるけど
ユーザー定義の並行動作に使うこともできるっちゃできる
例えば組み込みシステムでは、異なる割り込みハンドラからの指示でスリープ状態から
復帰するタスクとかあるからね
あるいは、敵をやっつけた時の爆発エフェクト。これの破片・パーティクルの一個一個を タスクとして登録してるとする。(そんな無駄なことしたくないけど、する奴もいるだろう) 破片・パーティクルのタスクは他のタスクとの作用なんてないとする。ならばこれらは 確実に並行動作してる 逐次処理・直列処理で並列動作してる。だが並列動作じゃない
>>708 ×逐次処理・直列処理で並列動作してる。だが並列動作じゃない
○逐次処理・直列処理で並行動作してる。だが並列動作じゃない
>>2 のシステム(笑)はなんで並列動作できないの?
一本の連結リストにみんなチャンポンにしてぶち込んでる時点で
別スレッドで同時並行的に弄繰り回されるということを考えてないだろ
タスク間通信に必要な同期のメカニズムを提供していないのもそう
シングルスレッドで逐次処理するという前提だからバッサリ省いてる
次に、
>>2 のTCB(笑)とかいう構造体のプライオリティというパラメータは
priority-rankingではなくpriority-sequenceとして使われており、異様。
これは処理順序を表しており、この順序でソートして順次処理される
そういう前提でタスク(ジョブ)の内容を記述してる。順序が狂ったら動かない
>>707 >ユーザー定義の並行動作に使うこともできるっちゃできる
できるっちゃできる、じゃなくて、ゲームオブジェクトの並行動作を記述することが
そもそもタスクシステムの目的なんじゃないの?
オブジェクトごとのデータとコンテクストをひとまとめにして自律的な行動を
自然(←人によって感じ方は違うだろうけど)な形で書ける(気分になれるw)ことと、
オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること、
の2点を、素朴な形で実装したのがタスクシステムの良い点だったと思うんだけど。
>>710 >
>>2 のシステム(笑)はなんで並列動作できないの?
特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、
それらを並列動作させることはできるんじゃないの?
(そういう番号をプライオリティと呼ぶことの是非は別として)
別に誰も、全てのタスクを並列動作させることなんか最初から期待してないと思うけど。
かなり上の方に出てた自動的に並列動作させる云々の話も、そういうプライオリティの
タスクに限って、プロセッサ数に合わせて並列でディスパッチするような拡張も考えられる
のではないか、という話だったと理解してたんだけど。
マルチプロセッサでマルチスレッドしたいならそう拡張すればいいんとちゃう? シングルプロセッサが前提の時代に書かれた物に難癖つけるのも大人げないと思う ていうか俺は現在でもマルチスレッドなんてやりたくない
714 :
名前は開発中のものです。 :2009/03/10(火) 18:22:37 ID:9N7ATqdV
別にマルチスレッドなんて必要ならやりゃいいじゃん 裏でローディングしながらゲーム動かすなんて別に難しくもなんともねーし ただ、ゲームオブジェクトにやる意味は無さそうだけどね
そういやフルにディスクアクセスしてても重たくなったりカクついたりしないのかね?
716 :
名前は開発中のものです。 :2009/03/10(火) 19:16:57 ID:9N7ATqdV
718 :
名前は開発中のものです。 :2009/03/10(火) 20:01:50 ID:9N7ATqdV
そうか市販のゲームは普通にできてるのに不思議だな
裏でローディングなんてDMA時代からとっくにやってます。
>715 普通非同期アクセスするだろ。 JK
>>711 >特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、
は、オブジェクト群じゃなくてタスク群と書くべきだったね。
なんか混ざっちゃった。
>>715 自分も昔から気になってた。
ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、
消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。
それともDMAとかで消費されるバンド幅は、割と安定して予測できるもんなんだろうか。
その辺を実際にいじった経験が無いし、Web上でも情報を見た覚えが無いから分からないんだ・・・。
>>721 > ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、
> 消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。
もちろん、なる。
だから RPG のように「どうしても間に合わなかったらフレーム描画をスキップしてもおk」な
ゲームでは使うが、対戦格闘とかだと避ける。
フルにディスクアクセス行ったところで、光学ドライブからの転送量なんてたかが知れてるからな。
>>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 の『システム』部分がやってくれること
>>724 これだけ見ると協調的に並行動作させることが「できる」仕組みと分かる
でも、
>>2 で紹介されるこれの使い方のお手本、つまりタスクの中身を見ると
何か怪しげなことしてる。走査回数とメモリ消費をケチるためにプライオリティ
というものを使ってる。以前に出てた話だけど、something(t+Δt)を求めるために
参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる
本来なら並行であるはずの関係を直列の関係にしてるというか、なんていうの?
並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ
並行動作というかフェイク並行動作してるんだよね
>>711 >オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること
これって何?GCしてるの?どういうタイミングで?
それってメモリアロケータの都合じゃないの?関係ねー気がする
まぁ、なんだ。厨的に思うのは
> ──順次処理─→
>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世紀にもなってタラタラ書くなバーカって思う。寝る
起きた。なんか間違えた。まぁいいや。逐次処理って違うや。もういい
>>724 >厨はそもそものタスクシステムなんて知らないから、そもそもの目的も知らない
えっとまず始めに確認したいんだけど、「厨」ってのはID:EEKBitmgさんのことでいいのかな?(違ってたらゴメン)
で、「そもそものタスクシステム」の話なんてしてないよ。知ってても知らなくてもどうでもいいよ。
でも「そもそもの目的」は
>>2 を見れば理解できるでしょ。どれもすごく丁寧で分かりやすい記事だし。
以降、改行箇所は適宜勝手に変更する。ごめん。
>>725 >走査回数とメモリ消費をケチるためにプライオリティというものを使ってる。
いや、走査回数とメモリ消費をケチるためにプライオリティを使ってるわけじゃないと思うんだけど・・・。
>以前に出てた話だけど、something(t+Δt)を求めるために
>参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる
これはつまり、タスクAの処理結果を見てタスクBの処理をしないといけない場合、タスクシステムだと
AとBのどちらが先(
>>724 の図で言えば左)にくるのか分からないので困る、って意味かな?(違うかな?)
でもタスクシステムには、Aを必ずBより先に実行させる方法があるよね。それは分かってるよね?
で、タスクBがタスクAに依存してるのだとしたら、それはタスクBの問題(あるいは性質)であって、
タスクシステムの問題とは全く別の話だよ。
>並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ
なんで突然、並列化の話が出てくるの? タスクシステムの目的は並行動作だよね。
これは
>>710 のおかしい点でもあるんだけど、
>>2 では最初から並列動作なんか考えてないんだから、
同期処理とかが組み込まれてないのは当たり前だよね。
>並行動作というかフェイク並行動作してるんだよね
並行とフェイク並行の違いって何なんだろう。なんか並行と並列の違いを理解してない匂いがする。
続き。
>>726 >これって何?GCしてるの?どういうタイミングで?
え、ちょっと待って、
>>2 の話をしてるんだよね? 本当に
>>2 読んだ??
ID:EEKBitmgさんの言う
>>2 って、
>>2 のうちのどれのこと?
>>2 を読んだのかどうかって話で思い出した。
>>464 の、この部分。
>『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は
> 高速化されるという先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素な
> CPUアーキテクチャに依存した公式に過ぎない。定理ではない』
断言してもいいけど、ID:EEKBitmgさんとこの助教授さんは
>>2 をちゃんと読んでないか、あるいは
頭のネジが足りてないよ。それとも助教授ってこんなもんなのか。知り合いにいないから知らんけど。
ところで課題レポートはちゃんと提出した?
>>727 >タスクシステムとか仰々しい名前の割りに、それが提供する機能を分析すると
ちっとも分析できてないよ・・・。
>↑みたいな、限りなくどうでもいいことしかしてないということがわかる
全く分かってないよ・・・。
HSPくんは厨房のくせになかなかどうして要点を押さえてるのう 若干正確さに欠ける点に目をつむって処理を端しょってたことに勘付いたか
まぁ、学生さんが理想を追い求めるのは悪いことじゃない。 ただ、現実はそれに立ちはだかると言うことは知っておいた方がいい。
733 :
名前は開発中のものです。 :2009/03/11(水) 07:26:19 ID:NK6nIuY5
タスクシステム完全に終わったな
ていうか細切れに順番に処理してくれるシステムなら何でもいいんじゃね? 適当にクラス作ってリストにして順番に実行 内部では各自カウンタとステート持って勝手にやる、死んだり生きたりはおかしなことにならないようにシステムでええ感じに処理してねー とまぁ簡単なものならこんなのでいいじゃろ 複雑なのはしらん
736 :
名前は開発中のものです。 :2009/03/12(木) 07:22:55 ID:7byKm2pB
誰もそんな話してないし
しろよ
>>729-730 >なんで突然、並列化の話が出てくるの?
それは『ボクのタスクシステムはどっちかっつーと並列!』と言っていた
>>632 のおじちゃんに言ってよね。CodeZineなんて初っ端で並列処理と言い切ってる。
あと生協で逆引きゲームプログラミングとかいう本をパラパラーっと立ち読みしたら
『並列動作システム』とか書いてあったし。『並列処理動作』してるんだって。ゲラゲラゲラー
もうさ、ハッタリかましすぎだよね。説明してる内容と、それを一言で表現するときに
どこかから引っ張ってきた用語が全く一致してないんだよね。厨房を騙くらかそうと必死でしょ
今さっき覚えてきた単語をとりあえずあててみました。みたいな。ちょっとね、おかしいとおもう
その点Logician Lord、White Paper、けんもほろろのページは並列なんて一言も言ってない
上に比べたらまだマシな部類なのかなーと思える。タスクシステム解説つっても千差万別だね
ただ、まともっつってもなんか変なんだよね。組み込みシステムか何かから引っ張ってきた
知識を広めた人がいたんだろう、というのは厨の俺でもなんとなくわかる。それがギョーカイ
とかいうよく分かんない謎の秘密結社みたいな世界で伝播する過程でおかしなことになって
ミュータントみたいになっちゃってるんじゃない?この人たちが言ってるTCBとかタスクとか
ちょっと変わってるよね
TCBって、ゲーム機よりショボい組み込み機器でもプログラムカウンタとかスタック
アドレスが入ってる。リエントラントな仕組みを提供すんだよね。だから周期タスクは
periodictask()
{
while(1){
dosomething();
rot_rdq();
}
}
みたいな感じで書く。タスクは並行動作できるんだ。でも
>>2 の『タスク』はできない。
サブルーチンの処理を全て完了しないと処理を返せない。タスク同士は完全に
逐次処理なんだ。擬似並列動作ができない
でも
>>2 の言うタスクってのは、ジョブを時間領域で分割したものだから
タスクの作り方によっては、複数のジョブ同士の並行動作はできるかもね
>タスクシステムの目的は並行動作だよね。
>>2 の話?んなこと俺が知るかっつーカンジ
俺は
>>632 のどっちかっつーと並列とかいう謎のタスクシステムが
並行動作してるのかなーとESPしてみただけだしー。推測でしかないしー
>>2 はふたを開けてみればゲームオブジェクトのUpdateメソッドのディスパッチャー
単なるレディキューだからどうとでも使えるわけだしー
このメソッドの分け方次第で並行動作もできるんだろうね。でも
ゲームオブジェクト一個につきタスク一個とか言ってるページもあるから
ちょっと怪しいね。Update()一個じゃあ、
>>725 で書いた矛盾にぶつかると思う
>385 名前:名前は開発中のものです。 投稿日:2009/02/10(火) 01:05:40 D1ATM4io >>384 >厳密にやるならワークをそれぞれ2つ持って、フレームごとにフリップだろ。 >面倒だったら一つ一つ更新して、n+1がnを参照してもn+1を参照しても対して問題が無い様にするさ。 >どこまで誤差を容認できるか知らんけど。 なんか臭いなぁ、と思ってたのがここ。CodeZineはこの誤差を容認するほうを選んでるよね。 具体的にはEnemyとMyShotの関係。これタスクリストとかいうものの中でごちゃ混ぜになってるでしょ 当たり判定のときに、自機弾って移動速度速いからさ、敵と当たったり当たらなかったりすると思うよ ぜったい気持ち悪い現象が起きる理不尽ゲーになると思う
>>741 × 当たり判定のときに、自機弾って移動速度速いからさ
○ 自機弾って移動速度速いからさ
この不快な現象を発生させたくないなら
EnemyとMyShotの実行順序をごちゃ混ぜにしちゃ駄目でしょ
ごちゃ混ぜのままならせめて当たり判定タスクと移動タスクを分けないと
あとさ、必要は無いけど、外部参照されるパラメータは前フレームの状態を
保持したほうがいいよ
例えばロックオンして置き撃ちするときに、targetposition(t)を得るか
targetposition(t+Δt)を得るかがpriorityとかいうものによって変わるって
おかしいでしょ
>>742 × priorityとかいうものによって変わる
○ タスクリストの前後関係とかpriorityとかいうものによって変わる
>>730 >>これって何?GCしてるの?どういうタイミングで?
>え、ちょっと待って、
>>2 の話をしてるんだよね? 本当に
>>2 読んだ??
>ID:EEKBitmgさんの言う
>>2 って、
>>2 のうちのどれのこと?
俺と同い年の人が書いたと思しき記事だからボコりたくなかったけど
流れでそうなっちゃったから堰を切ったように書いてるけどさ
CodeZineの記事は他と比べて相当違うんだよね
メモリ割り当てなんて関係ないのにさ、糞みたいなGCかましてるし
STGであんな処理をかますフレームが不定期に存在するって変でしょ
糞みたいな自前のメモリ割り当てやってるからあんなGCが必要に
なるんでしょ。何のための自前アロケータなんだか分からない
厨的には、あんな糞実装は氏んじゃえって思う
タスクシステム擁護派じゃないけどさ・・・ 雰囲気つかむだけのサンプルにアホとか言っちゃうのはどうよ? こういうものは思想だけ頂いて自分の好きなように組んでくれって物じゃないのかね・・・ GCがどうのっていうのも処理落ちしたときにはじめて考えればいい所だし、 ただたんに自分の流儀に合わないから貶すと見えますよ。
>>729 >
>>2 では最初から並列動作なんか考えてないんだから、
>同期処理とかが組み込まれてないのは当たり前だよね。
性格悪いレスになるけど書いちゃえ!
ぶっぶー。並列動作じゃないから同期処理が要らないってのは間違い
>>730 CodeZineの記事のコードってさ、生存中のゲームオブジェクトのアドレスが不定期に変わっちゃうんだよね
あのサンプルってさ、あるゲームオブジェクトのレーダーシステムが特定の目標をロックオンして追跡するとき
どうすんの?
例えばあのサンプルの敵弾ってさ、毎回Playerをタスクリストから探してるんだよね。バカだからさ
priority=1.0のPlayerはタスクリストの一番最後に入ってるのに、先頭からナメて探すの。バカだよね
こんな調子で、ロックオンターゲットも、毎フレーム、タスクリストから探し出すわけ?
多目標同時対処能力を保有する機体が入り乱れたら愉快な処理量になりそうだね
こんなアホなことになるのはさ、糞アロケータの都合で不定期に糞GCかますからでしょ?
あんた
>>711 で『デフラグができること』を取り上げて
これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ?
明らかに必要ねーことしてるし。バカじゃねーのくたばれバーカバーカって言いたかったけど
ずっと我慢して黙ってたんだ。でももう書いちゃった。
>>744 だからずっと黙ってたんじゃん。心情的にはCodeZineの記事は
放置したかったんだけど、擁護派がデフラグデフラグとかいうから
書かざるを得なくなった。HSP使いとしては同じ厨を攻撃するのは遺憾
遺憾の意です。本意じゃありません。ごめんなさい><
>746 > だからずっと黙ってたんじゃん。 バカには現実を突きつけてやるしかないんだよ。
>>747 突きつけても、見えない or 見ようとしないけどな。大抵。
ID:EEKBitmgはCodeZineの記事の作者と同じにほいがする。
ID:EEKBitmgの方が筋は良さそうだが。
>>744 CodeZineの記事は昔論争になったことがあって擁護派らしき人からの批判も多かった。
批判の方が多かったような。
とにかく駄目なものを技術的な説明を沿えて駄目と言うのは良いでしょう。
750 :
名前は開発中のものです。 :2009/03/13(金) 07:26:08 ID:2Nwh1Ok5
とりあえず並列化の話はやめろよ この仕組みじゃどう味付けしたって並列化なんてできやしねぇから
なんでもタスクで一元管理 まとまってていいね! ぐらいの感覚なんじゃないの? 腕である人ならいい感じにまとめられるでしょうに ギャーギャー噛み付くほどのものかねぇ もしかして、今時のゲームにも導入されたりして被害被ってるの?
752 :
名前は開発中のものです。 :2009/03/13(金) 12:37:20 ID:2Nwh1Ok5
腕のある人はこんなもん使わないから(笑)
>>745 > priority=1.0のPlayerはタスクリストの一番最後に入ってるのに、先頭からナメて探すの。バカだよね
それは別にhash使えばO(1)で検索できるんだし、本質的な欠陥じゃないと思うが。
> これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ?
> 明らかに必要ねーことしてるし。
まあターゲット環境とゲームの規模によるけど、何らかの形でデフラグはあったほうがいいと思うよ。
working setを縮小したほうがプロセッサのcache効率が上がるのが普通だし、
タスクシステムはプライオリティ順にタスクに対してアクセスしていくのだから
プライオリティ順にメモリ上に配置されて、アクセスするメモリが連続しているほうが
(memory cacheの観点から見て)断然速い。
タスクシステムどうのという話はおいとくとして、ひょっとして、みんなmemoryのcompactionとか処理を書いてないの?
これを無用の長物みたいに言われると、もう議論の前提が違うとしか言いようがないんだけど。
>>738 タスクシステムの構造を見れば、これは並行動作を目的としたものだと分かるよね?(分からない?)
その文脈で「並列」という言葉が出てきても、それは並行のことを意味しているとは思わないのかな?
それを書いた人が勘違いしてるのかもしれないし、意識してないのかもしれないし、並行と並行の違いを
知らないのかもしれないし、あるいは文脈上区別の必要が無いと判断したのかもしれない。
いずれにせよ、「並列って言ってるけど並列じゃないじゃん」という批判は、「並列」という言葉を
持ち出した人に対しては当たるかもしれないけど、タスクシステムへの批判としては的外れだよね。
それともID:EEKBitmgさんは、誰かがタスクシステムのことを並列だと書いただけで、タスクシステムの
目的が並列動作だと考えたのかな?
それってタスクシステムのことを理解したうえで批判していると言えるのかな?
あと、用語の使い方が適切でないという点に関しては、ID:EEKBitmgさんも全く人のこと言えないよ。
私自身のスタンスとしては、他人が多少変な言葉を使ったとしてもできるだけその意を汲もうとするし、
逆に自分の言葉はできるだけ分かりやすく正確になるようにしていつもり(あくまでつもりw)だけど、
ID:EEKBitmgさんは全く逆のスタンスなのだろうか? 言葉が不正確なのに、他人の言葉尻は捕らえるよね。
>>739 マルチタスクOS等におけるタスクと、タスクシステムのタスクは設計も目的も意味も違うのに、
それを混同してしまっている、のか混同させようとしているのか分からないけど、このレスはまるまる無意味。
擬似並列動作とかいう怪しげな言葉の意味も分からない。
>>740 >>タスクシステムの目的は並行動作だよね。
>
>>2 の話?んなこと俺が知るかっつーカンジ
>俺は
>>632 のどっちかっつーと並列とかいう謎のタスクシステムが(以下略)
つまり
>>2 を読んでも、タスクシステムの目的が理解できなかったってこと?
というか、この話の流れを
>>729 ,
>>725 ,
>>724 ,
>>711 と遡っていけばID:EEKBitmgさんが
>>2 の話を
しているのは明らかなのに、いきなり
>>632 を引っ張り出してきて言い訳するのは見苦しいと思う。
それとも単に文脈を追えてないの?何の話をしているのか分かってないの?
>
>>725 で書いた矛盾にぶつかると思う
矛盾ってどれのことだろう。最後の二行のこと?
だとしたらやっぱりタスクシステムの動作を理解できてないよね・・・。
>>741 >>742 全体的に言えることだけど、ID:EEKBitmgさんは
>>2 のサンプルコード個別の事例を批判したいんだろうか。
それともタスクシステムのことを批判したいんだろうか。サンプルコードは、単なるサンプルなんだから
色々な不具合や足りない部分があって当たり前だよね。実際に使いたい人が、実際に使えるように
直せばいいだけで。それができないような構造的な欠陥であれば、タスクシステム自体が駄目だという話に
なるのだろうけど。(そういう話が聞きたいんだけどなぁ・・・。)
で、
>>729 に答えてもらえなかったから改めて聞くけど、EnemyとMyShotの実行順序をごちゃ混ぜに
したくないなら、ちゃんと順序つけてごちゃ混ぜにしないようにタスクシステムを使うことはできるよね。
その仕組みがちゃんとタスクシステムにはあるよね。それは分かってる?分かってないの?どっち?
757 :
名前は開発中のものです。 :2009/03/13(金) 21:10:36 ID:2Nwh1Ok5
なんでタスクシステムなんて使わなきゃいけないの? メリットを説明してよ
758 :
756の続き :2009/03/13(金) 21:35:33 ID:gk02bKgy
>>745 >性格悪いレスになるけど書いちゃえ!
>ぶっぶー。並列動作じゃないから同期処理が要らないってのは間違い
詭弁。
「並列動作じゃないから同期処理が要らないってのは間違い」という言葉だけは一般論として正しいけど、
「並列動作じゃないから同期処理が要らない」なんて話は誰もしてないよ。並列動作を前提としていないから
並列動作のための同期処理は書かれていない。一般論としては、並列でなくとも同期処理が必要な場合も
あり得るけど、
>>2 においてはそういう同期処理も必要無いから書かれていない。それだけの話。
詭弁と分かって書いているのなら、確かに性格が悪いね。
これで反論の体をなしているとでも思っているのなら、悪いのは性格ではなくて頭の方。
>こんなアホなことになるのはさ、糞アロケータの都合で不定期に糞GCかますからでしょ?
>あんた
>>711 で『デフラグができること』を取り上げて
>これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ?
うーん確かに、CodeZineの実装は
>>749 さんの言うとおり、賛否両論起こるだろうことは分かる。
一応、
>>2 を前提にスレが進んでると思ったから、デフラグもタスクシステムの利点に入れちゃったけど、
得失もあることだし、単純にタスクシステムの利点として挙げるのは無理があったかな。
というかずっと昔に初めてタスクシステムを知ったときには、デフラグの仕組みは無かったなそういえば。
てなわけで
>>711 での「タスクシステムの良い点」の記述からは、デフラグの件は除くよう訂正させてください。
素朴って何よ?と言われると困るなぁ・・・。特に高度な管理や複雑な手法を使わず、メモリを直接
いじくりまわすあたりを素朴だと感じたんだけど。人によっては全然素朴だとは感じないかもね。
あと余談というか一つ忠告だけど、GCとコンパクションはきちんと区別した方がいいよ。
ここでならいいだろうけど、真面目な議論の場で混同してたらバカと言われちゃうよ。
>明らかに必要ねーことしてるし。バカじゃねーのくたばれバーカバーカって言いたかったけど
得失の「得」の部分も考えずに、明らかに必要無いとしてしまうのは、考えが足りてないからだよ。
うーわーもうダメだ。つっこみどころが多過ぎて収拾がつかない。
これ以降はちょっと自重します。みなさん長々と書いてごめんなさい。
あと今読み返して気付いたけど、
>>754 の「並行と並行の違い」は「並行と並列の違い」の書き間違いです。
恥ずかしw
761 :
名前は開発中のものです。 :2009/03/13(金) 21:54:09 ID:2Nwh1Ok5
タスクシステムのメリットを説明してよ
本人がメリットだと思わなければ、他人が何を説明したところで無駄な話だ。
>>753 ごめんなさい><
厨房はガベージコレクションとコンパクションを混同してた。ご指摘どうもありがとう
>それは別にhash使えばO(1)で検索できるんだし、
そうだろ?メモリコンパクションの重要な目的のひとつがリニアアクセスによる高速化ならば
その利得を殺すようなGetTask()の実装じゃお話にならないよね。初心者用ったってありゃないよ
無い方がマシな盲腸みたいな機能付けといて初心者向けサンプルもへったくれもない
サンプルってのは反面教師じゃない。サンプルってのはゴミじゃない
あのサンプルはPC用。OSはページング方式で仮想アドレスに実アドレスを割り当ててる
ページサイズは4KB単位?で、CPUのキャッシュはキャッシュラインサイズってのがあって
これがL3だのL2だのL1だのでいろいろあるんだよね?実際、仮想アドレス上でバランバランでも
うろたえるほどの速度低下はない。むしろゴマ粒みたいな小さな処理をごちゃ混ぜ連結リストに
投げ込んで、リストを走査しながら関数アドレスで処理を呼び出すっていう仕組みを捨てる
ほうが高速化する
>>764 ×むしろゴマ粒みたいな
○高速化したいなら、むしろゴマ粒みたいな
だいたいさ、あーいう小粒なSTG作るときに、どうしても自作アロケータ用意したいなら 固定長メモリプールでいいじゃん。boost::poolとかさ
>>758 つーかお前、前
>>510 だろ。当たってる?当たってたらなんご褒美ちょうだい
チョー陰険だし、やたらどうでもいいことで噛み付いてくるし、顔真っ赤になると
言ってること滅茶苦茶になるから多分当たってるだろ。な。陰険アマチュア野郎。タスクシステム=DB君。
俺が性格悪い?まぁアンタほどじゃないよ
>>730 みたいな内容ゼロのハッタリゴミクズチンカスレスして悦に浸る中年には適わないね
俺が頭悪い?それ既出ジャン?
>>355 で既に認めてっからよく嫁カス。何今更言ってんだ
>
>>2 では最初から並列動作なんか考えてないんだから
ま、この点でアンタとの争点ないのは分かってるから。せいぜい無視したら?
あんたさ、それが分かってるのに何でそこんとこで噛み付くの?俺が気に入らないだけだろ
>>766 続き
連結リストのメモリ配置を整えましたー。速くなりましたーっていうけどさ
そんなことするならいっそのこと配列にしてダブルバッファリングしたほうがいい
処理の順番追うだけでもうやる気なくなるわー。擬似タスクとか死ねばいいのに。
構造が単純なのでゲーム毎の仕様にあったカスタマイズがしやすい、ってのもタスクのメリットの一つかなぁ でもこの辺のメリットは”知る”ものじゃなくて”理解”するものだから、実際にゲーム作った経験の無い人には 分からないかもしれん。 なんかアンチタスクって独身スレにいる「結婚のメリット教えてくれ!」ってのと同じ感じ。 「絶対に幸せになる保証が無い限り結婚しない!」ってのがいたけど、あれととても似ている… タスクはゲーム作るときに使うもので、ゲーム作らないならタスクにこだわる必要ないし 実際にタスク以外の方法でゲームつくってるならそれはそれでタスクなんて気にしなくてよい。 アンチはなんでタスクシステムに粘着してるんだろう?
771 :
名前は開発中のものです。 :2009/03/14(土) 03:17:55 ID:wqRDNWfr
>>770 プロ気取りがしたり顔で出鱈目いっちゃ駄目よん
>>764 > 実際、仮想アドレス上でバランバランでもうろたえるほどの速度低下はない。
その部分に限って言えば、バランバランにメモリをアクセスするのと、
リニアにアクセスするのとでは数倍以上変わると思うけど。
全体に占める割合は…ゲームによるけど、何万パーティクルも表示するつもりなら致命的だと思うけど。
なんか同人規模のシューティングとかしか作ったことのない人が何か言っても説得力ないよ。
773 :
名前は開発中のものです。 :2009/03/14(土) 03:29:59 ID:wqRDNWfr
厨房のHSP大好き君は発言内容が粗削りだが目の付け所はまずまずだ ゲームをよく作ってる感じがするのねん
>>773 なんでおまえはそんな偉そうなんだよw
このスレで一番あてにならないのは具体的なことは言わないくせに
妙に偉そうにしてるやつだとおも
擁護アンチ問わず
>>770 タスクシステムを使って書かれたプログラムを引き継ぐ羽目になって(バグが収束せずに
メインプログラマ交代)、散々苦労した。
>>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
ごちゃごちゃいいわけはいいからタスクシステムのメリットぐらい説明しろよ
メリットはリンスインシャンプーがあることだろ常考・・・
>>775 ”タスクシステム”を”C言語”とか”ポインタ”に置き換えても成立するな。
バグが収束せずにメインプログラマ交代って時点で既に…
CG板だと、タスクシステムを Shade とか sai に置き換えても違和感無いんだぜ?
>バグが収束せず ただ単にコーディングレベルの問題ではないか?w
783 :
名前は開発中のものです。 :2009/03/15(日) 00:16:39 ID:fq8JV7Q3
>>779 は?何もかいてないけど?
馬鹿がわかりもしないでレスつけないでくれない?
784 :
510 :2009/03/15(日) 02:45:36 ID:4et5xcyh
785 :
510 :2009/03/15(日) 02:57:48 ID:4et5xcyh
処理順序だとかプライオリティーだとか色々議論しているが、 並列化に処理順序の話を持ち込むのはナンセンスだと考えるが。 並列化しないからといって、処理順序がどうでも良いというわけではない。
786 :
名前は開発中のものです。 :2009/03/15(日) 06:19:12 ID:fq8JV7Q3
これ並列動作しねぇって VTuneでも使って一度みてみろマジで
おいおい お口チャックマンだぜ?
788 :
510 :2009/03/15(日) 09:15:14 ID:4et5xcyh
いや、並列で動くことは動くんだが、他のところがバグってるね。
完璧に余談ですが
#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のだと強烈な並列化もしてくれるみたいだしね。
しかし、こういうのは参照透明性の保証が容易な関数型言語の十八番のように思うわ。
そもそも、なんでタスクとやらを並列化したがるかな。 ゲームに限らんが、並列化しやすい部分としにくい部分がある。描画周りとかパーティクルなどの エフェクト系、モーション計算とかを並列化したほうが、依存関係が複雑で仕様変更が多発する プレイヤーやら何やらを並列化するよりよほど現実的だと思うんだが。
並列化は別で話してほしい。 優先順位とグローバル変数(シングルトン含めて)問題の冴えたやりかたを検討しようぜ
>>784 ちょっとちょっとちょっとー。ハッタリ自動並列メタボDBオヤジは本当に大丈夫なの?
『ボクが作ったこのコードにもタスクシステムって名前付けたからこれもタスクシステムですし
ついでに言うとこれDBですし自動並列処理もできますしお前らはボクのコードが並列化に
向いてないって言いたいんだろうけどそれは全くの誤りだしどうしてそれが分からないの?』
こういうことなの?頭の中がお花畑なの?公序良俗に反するポピーの花が自生してるの?
お前がひりだしたウンコがどう陳列され得るかなんていう前衛美術の話なんて誰もしてないから
安心していいよ
それとオッサン、あんたは何で配列にぶち込んだ1万個の鼻糞みたいなちっさな処理を一個一個
処理する度にsleepしたりクリティカルセクションかまして次に処理する要素番号をゲットすんの?
スレッドの数で配列を等分して粗粒度並列化でもしときなさいよ
sleepなんか噛ましたらインストラクションレベルの自動最適化の妨げになっちゃうじゃないの
あんたのコード使うくらいなら直列番長の
>>2 のほうがまだ速いよ
あとさ、同一フレーム内で終わらせないといけない処理なのに イベント(シグナル)で同期とったりするのは何の冗談なの? ベンチ取った?アホ? もしかしてワーカースレッドが目覚める前にメインスレッドが全部処理 しちゃったりしてない?あとさ、最初のTASK1(hage)が終わって 次のTASK1(hoge)が始まる頃には何ms経過してるの? なんかもう自動並列とか以前に足元がグラグラのヘボヘボな気がする おやすみ
あと、TASK1(hogehoge)の度にスレッド作るのはサンプルだから? ウソだろ?サンプルだからってこれはないと思う。聳え立つウンコだ
>>794 よく見たらtasksystemはグローバル変数だからスレッドは使い回してるから
そびえ立つウンコてのは言い過ぎか
おっさん言う奴は自分は若いと思ってる20代後半から30代前半の独身男性だな
タスクシステムってあれだろ 雑魚とドラム缶を合わせて4つまでしか画面に表示しないように制限するシステム
大体お前の頭の中身と同じだな。
>>796 俺そんなに大人びて見えるか?もしかして俺褒められてる?
このマス掻き童貞夜更かししてないでエロゲでシコって糞して寝てろ、とか
罵倒されるんじゃないかとビクビクしてたんだけど杞憂だったのかな
「新装版 大規模C++ソフトウェアデザイン」って本を昨日から読み始めたんだけど、 1章を読んだだけでタスクシステムのだめな点が指摘されているような気がした。 「継承」対「階層化」では階層化の勝ちで、 理由は階層化の方がはるかに一般的=依存性が少ないからって話みたい。 タスクシステム(なんちゃってC++版)のタスクは継承使ってるよね。 タスクの次にどこに進めばいいか分からないとか、 抽象的な話に飽きた、デザパタとか眉唾ーって人は これ読むとおもしろいかもよ。おれはおもしろい。当たり前のことが書いてある。
包含と継承のことだな。 まあ多態性を使わない場面ならすべて包含でいける。 包含だと結合が緩やかだから見通しが良いって話だなそれは。 何段も深くなければよいんじゃないかね?
なんでもかんでも機能を突っ込もうとするからだ。 delegateのリストでも使っとけ。
タスクシステムいいじゃん。 範囲指定で自殺してくれるの最高。
>>803 その範囲は何を意味してるの?
何かの値なんだろうけど。
親殺せば子も死ぬってことじゃね?
806 :
名前は開発中のものです。 :2009/03/17(火) 17:56:34 ID:zLwES14L
タスクシステム関係無いじゃん
>>802 タスクシステムのExecやRunやProcなんかは
まさにそういう用途の窓口じゃないのかね?
>>807 その窓口を誰が用意するかという話。
本人なのか、本人と取り引きする別の人なのか。
どっちがいいかはよくわからん。
もっと条件を絞れば考えやすくはなるが、俺の思考が正しいとは限らん。
(・∀・)ヘラヘラ
クソガキの俺がそろそろ総括しちゃおっかなーっと
結局21世紀にもなってタスクシステムだタスクシステムだなんて叫んでるおじちゃん達って
相当に不勉強なロートルちゃんが混じってるんだよねー。不勉強なまま頭がコチコチに
固まっちゃったガンコなお年寄りに限って声がデカイもんだから迷惑してる人もいるだろうね
・タスクバカは、たかが実行待ちキューに得意げにお名前を付けてることにいつまでも気付かない
・タスクバカは、タスクシステムが何なのか一般化して説明するだけの知能がない。だから、ハハン、
想像力の問題だね、とかハハン、自分で考えな、みたいに居丈高に振舞って誤魔化すしかない。
・タスクバカは、
>>2 で使われてる用語のTASKやらTCBやらが実はOSやらMONITORから拝借されて
きた用語であることを知らない。知らないフリをし続ける。指摘されても『アーアー聞こえない聞こえない』
の知能障害で逃げまくる。で、『
>>2 はOSとは設計も目的も意味も違うから混同するのはおかしい』
だとか、『OSとの比較は無意味』、だとか臆面も無く言ってのける。もはや介護が必要な知的水準だ
・タスクバカは、
>>2 がOSやMONITORの仕組みを劣化猿真似しただけの代物であることを
どうしても認めたくない。プライドの高い彼らにとって
>>2 とは、タスクシステムとは
ボクらのギョーカイが編み出したプライスレスでオンリーワンなミラクルテクノロジー
でなければならないらしいのだろう。タスクシステム誇らしいですねホルホルホル
老害プログラマーに現在進行形でムカついてんならともかく ただの学生なのにここまで熱心に煽れるエネルギーってなんなんだろうw
ここ以外では話聞いてもらえないんじゃねぇの 人によって場合によって色々前提違うのに、自分の世界の話ばかりだし リアルならお近付きになりたくないタイプ ウザすぎる
>>809 おっさんのタスクバカだが
>>2 がOSやMONITORの仕組みを
劣化猿真似しただけの代物と思ってるぜ。良い意味で。
学問的には屑だがシンプルでちゃんと動くぜというか
微妙なたとえかもしれないが大学に対する高専みたいな。
タスクシステムは1実行単位で必ず1回実行したい処理などを、 実装する窓口を作るのが本来の仕事だと思います。 タスク間メッセージのやり取りなどで汎用化とか考えがちだけど、 結局は時間的コストがばかにならないのでたいてい失敗に終わる。 メッセージのやり取りなら上位の管理役オブジェクトに 取得するメソッドを経由するほうが効率的だと思います。 で、タスクシステムが何を作るのに有用かと言うと、 上で書いたとおり1実行単位で必ず1回実行したい処理です。 たとえばGameの進行を管理するためのGameMaster、 入力機器などのステータスのアップデート、ゲーム内ステータスの表示(UI)、 プレイヤーが操作するキPC、NPCなどのAIなどが一般的。 当たり判定などはこれらを実行しつつあたり判定用の データベース(ハッユや4分木)に登録する。 一通りシステムタスクやキャラクタタスクの実行が終わった後、 当たり判定を行いゲーム内物理に応じた反応を計算。 このあとジオメトリ計算やレンダリングが行われるわけです。
実装してみれば分かると思いますが、ゲームシステムにおいて 1実行単位で必ず1回実行したい処理ってのは割りとあります。 いろんな所で使うためおもわず「システム」といいたくなるのでしょう。 ツリー構造や処理依存関係を考慮したタスクの 生存管理を行うとよりシステムらしくなるでしょうね。 まあ、すべてタスクで行うの愚かでしょう、 しかしタスクを全く使わないのも非効率ですね。 パーティクルなどはタスクで実装すると、 非効率なのでべつの処理系を僕は作っています。 弾幕ゲーム程度の弾数ですとタスクで処理しちゃいますけどね。
815 :
510 :2009/03/20(金) 18:07:47 ID:BbcMOz7M
>>792 普通に仕事してるので、一週間に一回程度しかスレを確認できないから亀レスすまん。
>配列にぶち込んだ1万個の鼻糞みたいなちっさな処理を一個一個
>処理する度にsleepしたりクリティカルセクションかまして次に処理する要素番号をゲットすんの?
Sleepを入れているのは、明示的にスレッドの切り替えを発生させ、並列動作をテストするため。
だから、本来は入らない。
それから、クリティカルセクションは使ってない。
>>815 いまさらかも知れないが
名前の「510」は、「前スレ510」とか「タスクシステム改良君」とかにしたほうがいいような気がした。
ところで、
>>792 だが、俺もちょっと的外れな気がする。
ID:EEKBitmg は、サンプルプログラムを読み解く力に乏しいのか、ケチの付け方が毎度しょーもない。
嫌タスク厨にレスする度に、魂がよごれていく気がするんだよな、ハハン
>816 > ケチの付け方が毎度しょーもない。 仕方ないよ。知識も経験も乏しいセンセイに教わってる学生サンなんだから。
>>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]
のほうがはえーんだけど
当然だけど、すべてがタスクシステムのリストに繋がってると思ってないよね。 大量のパーティクルとかは、1つのタスクに配列を持たせて管理するでしょ。
>>820 てめぇ、質問するときは言葉を選べよボンクラ
俺にタスクシステムの実装を聞いてどうすんだよ
>お前らタスクバカはさ、いい加減『ナニを作るのか』具体的に書けよ
>何でもツクール目指すから『ナニを作るのか』書けません、だとか
>ミラクルドリーマーみたいな事をほざくなよ
何度も何度もいってんだろ。バカが
毎度毎度てめぇのに都合に合わせて俺様実装を引っ張り出して
『当然だけど』、とかほざくなっつってんだよ
というのは不毛なので
>>820 >>2 のタスク一個一個でパーティクル一粒一粒を作るようなことをせず
配列でやるというのはとても清々しい実装だと思うね。タスカーっつっても色々だね
ところでそれはタスクシステム派としては多数派の意見なの?
全てをタスクにしないと気がすまない人がいたような気がするんだけど
相手によって発言内容変えてくるクズだろ? まともに相手にしてんなよ
>ところでそれはタスクシステム派としては多数派の意見なの? >全てをタスクにしないと気がすまない人がいたような気がするんだけど お前の頭の中に仮想敵作って必死にどっかの誰かと戦ってますね
でもすべてごった煮にしてないとせっかくまとめたのにアクセスできないオブジェクトができるよね? タスクシステムなんて使ってるアフォからしてみたらそれはすごく面倒なことなんじゃないの? 引数作ってもってくるみたいなことしてるとも思えないし
>>821 >毎度毎度てめぇのに都合に合わせて俺様実装を引っ張り出して
>『当然だけど』、とかほざくなっつってんだよ
てめぇの都合に合わせて俺様実装するのが当たり前だろうが
そういうのが当然だっつってんだよ
お前本当に高専か? 老害連中より頭固いじゃねぇか
教科書読むしか能の無いサルは社会に出てくんなよ迷惑だから
>>822 他の人がどうしてるか知らないけど、普通に考えて、
数千、数万のリストを作る人はいないと思う。
>>825 1つのタスクの中に、複数のオブジェクトのデータがあるだけだよ。
アクセスは引数使ってもできるし、引数なしでもできる。
パーティクルの一粒一粒が他のタスクに何らかの影響を与えて相互に作用する必要がないなら全部まとめて1タスク内で処理するよな 処理の単位がタスクなだけであって、すべての要素がタスクな訳じゃないだろ
>>827 でもわざわざ引数なんて使いたくないんでしょ?
引数ってなんの話だっけ 俺的にはメソッドに常に self を渡すのは当然
>>829 何かアンチタスクは思い込みの激しいタイプみたいだな…
>>831 引数使う人間がごった煮をメリットだと思うかね・・・馬鹿かね君は
ごった煮ってこのスレでよく見かける言葉だけど、 どんな状態なんだろうか
引数つかわない、ごった煮… やはり何かに取り付かれてるな 見えない何かと戦うのは疲れないかい?
インターフェースを使った抽象化をごった煮とはこれいかにw
面倒だからググったらやねうらおの記事で使われてる言葉だったのか
日付と過去ログを合わせればここで使ってたほうが早いぞ 奴は議論の過渡期にわざわざ見当違いな記事書いて意味不明なフェードアウトしただけ
タスクシステムなんて記憶をたどると15年位前から使われてる。
>>836 タスクシステムは
>>2 にあるものがすべてって考えはどうかしてる。
ゲームに合わせて実装は変えるのが普通。
教えられた通りのことしかできないプログラマはゴミ。
というか、実行巡回リストのみしか存在しない、それ以外のコレクションが存在しないとか考えてて、 なんでもかんでもごった煮リスト(wに頼らないとやっていけないとか考えてるお子様が未だに存在する というのがちょっとした脅威。
アンチ君はプログラマではなくてただの学生みたいだから そこまで想像できないんだろう。
>>840 だったらまずは
>>2 のメリットデメリットを説明した上で
自分の改良版の
>>2 との相違点を説明するべき
それがこのスレに参加する条件だろ
別に相違点だけでいいんじゃね?
>843 人に教えてもらったところで、それを理解できなければ意味が無いだろwww
タスクってゲーム毎に手を入れて使うのが普通だし、プラットフォームとかジャンルとか前提条件によって使い方も異なるから 具体的な前提条件が無いとメリットデメリットの説明は抽象的なものにしかならんだろうなぁ… まぁ、抽象的なものでも経験のあるゲームプログラマならだいたい暗黙知で分かるんだけど タスクの仕組みを聞いただけではその辺がまったく想像すらつかないってレベルなら、 理解できるだけのプログラム能力や経験が不足してるか、そもそもプログラマとしての適正がないんでないかな。かわいそうだけど。
>>846 一番PGとして適正のない人間ってちゃんと比較検討ができない人間だと思うぜ
数字出してちゃんとメリットとデメリットを掲示できない、
ちゃんと検討もしたことないのに勘でいいものだと信じる
あたりを見回して楽に手の届くところにあるもんをテキトーにつまんで
勉強した気になってるような奴は詐欺師に騙されてしまう
ソフトウェア工学はクズが多すぎたよ
海外の人間からいってウンコみたいな奴等ばっかりだし
グローバル変数・関数が平気で使ってあるもんが褒め称えられてる異常事態
ちゃんと自分で判断できる人間が周囲にいるかどうかも正直微妙だしね
環境によっては糞を受け付けられてしまってもしょうがない
PGには独善的な連中も多いようだな 他人にキャンキャン噛み付いてるのを見てると結構面白い
>>846 抽象的な説明に、ひとつの具体例でもついてれば十分だよ。
デザインパターンの説明なんて、みんなそんなもんだ。
抽象的な説明にしかならないからって、説明しない理由にはならないよね。
俺自身は、タスクシステムが良いとか悪いとか言うつもりは無いんだが・・・ このスレ見てると、いつもアンチ側がタスカー側に対して、 説明しろだの具体例を挙げろだのと一方的に要求してるよな。 アンチ側は、自分の方からタスクシステムより良い具体的な実装例を挙げて、 これこれこうだからタスクシステムは駄目なんだ、っていう比較をしようとは思わないのか? なんか見てて不思議なんだが。
>>850 すべて個別に実行用のメソッドをもったオブジェクトを、
用途に合わせたコンテナに突っ込んでまわすとかいってた希ガス。
メリットやデメリットは何かと比較したときに初めて出てくるもので
比較対象の無い文脈でメリットやデメリットを問うのは論理的におかしい。
>846ば偉そうにしてる割にそんなこともわからんのか。
>>849 デザインパターンの説明は目的と構造だけだろ。
例えばVisitorパターンのメリット、デメリットは?と問われて答えられる?
そうか比較対象が明らかじゃないのか。すまんかった。 じゃぁとりあえず個人的な興味で、話の流れに合ってるかどうかは知らないけど、 ↓の比較で前者の方針にメリットがあるのかどうか、教えてもらえるとうれしい。 - 「タスクシステム」的方針 まず、毎フレーム実行される処理のコンテナ(リストなど)が在ることが前提。 毎フレーム実行される処理はまず「タスク」と考え、上記のコンテナに登録する。 大量のパーティクルなど、不都合が現れた場合は「タスク」としない。 - そうでない方針(個人的にはこっちが「ふつう」) とりあえず必要な処理は関数呼び出しで並べる。 動的な寿命や複数インスタンスの一括処理などが必要になったら リストなどのコンテナを必要な場所に用意して使う。 ここで「アンチタスク」として書き込みしている人は、たぶん前者の方針が 我慢できないんだと思うんだ。
>>853 それってどっちにしても毎フレーム実行コンテナは使ってんだな。
つまり
・常に毎フレーム実行コンテナ
・必要になったときに毎フレーム実行コンテナ
この2派がここまで醜い争いしてんの?w
>>854 個人的にはそういうことだと思って見てる。たぶんシューティングゲームや
アクションゲームを作れば結果として同じような構造が(必要に迫られて)現れるだろう
と思う。
タスクシステムが「どんなゲームでも基本になる」とか「(メリットが)暗黙知」とか言う人は、
きっとシューティングゲームやアクションゲームなどを作った割合が多いんだろうな、とか。
ただ、後者であればコンテナは複数種使うのがあたりまえだし、ましてグローバルでは
ありえない。
これに対して前者では単一のコンテナ(これが「タスクシステム」と呼ばれたり)だったり、
それがさらにグローバルになったりしやすい。
おまいら全員毎フレーム実行コンテナを使わないことにすれば 論争は解決するんじゃね
>>853 >動的な寿命や複数インスタンスの一括処理などが必要になったら
同じような構造がプログラム中に複数表れる場合は
共通化できる部分を抽象化して共通のシステムにできないか、と考えるのが普通だと思うが
アンチは必要な箇所全てにコピペなりで同じような実装を個別に持つのがいい、という理屈か?
まぁ共通化できそうな箇所が2箇所ぐらいならいいけど、アクション系ゲームとかではかなり出てくるだろうし
そーなると共通化したほうがマシでない?
858 :
名前は開発中のものです。 :2009/03/22(日) 22:49:10 ID:IncocYZR
確か継承も否定してたぞ>アンチタスク厨
>>857 同じ構造のコードを共通化することに異論は無いよ。
共通化できるはずということ(なのかどうか知らないけど)で最初から根っこにひとつ
「タスクシステム」が存在してるのが >853 でいう「タスクシステム」的方針。
共通化できる部分を見つけてから実装を括りだすのが >853 でいう「ふつう」の方針。
前者だと何か構造的な変更を考えたときに、根っこをいじることになって影響が
広がりやすいというデメリットが考えられる。別の言い方をすると、たくさんの
プログラムから共用されているということは変更が難しくなる、という至極当然の話。
これに対して、大きなメリットは思い当たらない。
>859 > 前者だと何か構造的な変更を考えたときに、根っこをいじることになって影響が > 広がりやすいというデメリットが考えられる。 いわゆる『タスクシステム』も含めて、それらはただの実行巡回コレクションなのだから、それ以上の 機能を持たせようとするのが間違い。なんでもかんでも一つの構造に押し込めるのがおかしい。 実装をくくりだす後者の場合でも、当然共用されているところに変更が入ったらその機能の調停に 手間がかかるのは同じだ。 機能を絞り込めないなら、前者でも後者でも変更が難しくなるのは変わらないよ。
局所的な要求に対して個別のコンテナを置く(作る)のが難しかった(面倒だった) C++ 初期以前の時代なら、すべての要求に対する単一のコンテナをあらかじめ 持っておくという方法に大きなメリットが感じられたのかもしれないけど、今となっては 基本的なコンテナは標準テンプレートから即座に作れてしまうわけで、大きな違いには ならない。 C++ 標準コンテナの利用という点にメリット・デメリットの感じ方の分岐点があるのだと 考えれば、 C++ 標準コンテナのゲームプログラマ内での普及率とあわせて、 タスクシステムの恩恵を感じる人が多いことも納得できる。
>>859 >共通化できるはずということ(なのかどうか知らないけど)で最初から根っこにひとつ
>「タスクシステム」が存在してるのが >853 でいう「タスクシステム」的方針。
タスクシステムの定義に根っこ一つなんてあったかな?
前々スレあたりに出てた
メイン遷移状態・メニュー階層・ゲームオブジェ・エフェクト…
って粒度単位で分かれてる階層タスクシステムってのもあるみたいだけど。
>共通化できる部分を見つけてから実装を括りだすのが >853 でいう「ふつう」の方針。
そこで括りだされた共通実装って一般にタスクシステムと言われるものでは?
>>859 >たくさんのプログラムから共用されている
継承が浅ければたいした問題じゃないよ。
その理論からいったら.NETが提供する「Object」なんて、
すべてのオブジェクトから継承されるので論外って話になるんじゃないかね?
>>860 > いわゆる『タスクシステム』も含めて、それらはただの実行巡回コレクションなのだから、それ以上の
> 機能を持たせようとするのが間違い。なんでもかんでも一つの構造に押し込めるのがおかしい。
そういう立場で言うと、「タスクシステム」と呼ぶほどの構造はどこにも現れないはず。
つまり「タスクシステム」が存在していること自体が、なにか不適切な機能の押し込みの
存在を示している(或いは感じさせる)ということになる。
> 実装をくくりだす後者の場合でも、当然共用されているところに変更が入ったらその機能の調停に
> 手間がかかるのは同じだ。
後者の方針では、共用されていることで変更が面倒になるようなら共用しないという選択が
簡単にできる。だって元々共用することが前提じゃなかったんだから、元に戻すだけの話。
括りだした実装を、結局ひとつの場面でしか使わないことになったとしても何も問題は無い。
>>862 根っこにひとつという定義は無いと思う。逆に、根っこにひとつとか、共用が前提とかいう
方針でなければ「タスクシステム」と名前がついていても、あまり否定するポイントは無いよ。
名前を改めることを強くお勧めする程度。
>864 オマエの頭の中には、機能の階層構造が『タスク』と『タスクを継承した何か』しか無いのか? そもそも『タスクシステム』なんて仰々しい名称が付いてるが、あんなのはただのイディオムでしか ないぞ。教条的に従うものでもなんでもない。 > そういう立場で言うと、「タスクシステム」と呼ぶほどの構造はどこにも現れないはず。 『タスクシステムとよほどのもの』は無いかもしれないが、そういう『構造』は確かに存在するし、 >859の後者の方針だって、例えば敵なら敵でまとめてコレクションを作って実行巡回する んだろ? それは敵という機能をベースにした「タスク」のコレクション以外の何だというんだ?
×『タスクシステムとよほどのもの』 ○『タスクシステムと呼ぶほどのもの』
>>864 実行巡回リストに、実行の依存関係の解決や、
ライフタイムの管理などを加えてやるとシステムといって良い物になるともうけどな〜。
上記のような実装があると便利な処理にはこれを継承させるといいよ。
割と継承する機会が多いから「システム」と呼んでいるんだと思うのだが・・・。
>>863 比較して欲しいのは、共用が前提になっている方針とそうでない方針のメリット・デメリットね。
共用を前提にしたうえで「たいした問題じゃない」と言われても「はぁそうですか」としか言えない。
.NET が提供する Object は、明確な目的があって共用されるべく作られたのであって、
これがなければいろいろ困るというのはすぐわかる。これがあるから「タスクシステム」も
同じことだ、なんてまるで思えない。
>>866 > 『タスクシステムとよほどのもの』は無いかもしれないが、そういう『構造』は確かに存在するし、
> >859の後者の方針だって、例えば敵なら敵でまとめてコレクションを作って実行巡回する
> んだろ? それは敵という機能をベースにした「タスク」のコレクション以外の何だというんだ?
???
「敵のコレクション」に決まってる。
どこから「タスク」が出てくるの?自分で言ってておかしいと思わないの?
>870 > ??? > 「敵のコレクション」に決まってる。 > どこから「タスク」が出てくるの?自分で言ってておかしいと思わないの? 頭の悪いレス返すなよw 『敵のコレクション』のなかに、『タスクのコレクション』と同質な構造を読み取れないなら プログラマとしての才能無いよ。
>>868 うん。そこまでいくと「〜システム」と名を付けてもいいかもしれないと思う。
で、そこまで手の込んだものを全体で共用するという方針を採ってしまうと、
>859 で挙げたデメリットが出てくる。ってことで >853,859 の話に戻ってね。
結局、『敵』という機能単位で実行巡回コレクションを持ってるなら、それは同じことだ。 名前に惑わされてるだけ。
古参のゲームプログラマが「敵のコレクション」とやらを見れば 「あぁ、敵タスクの集まりね」って言うだろうし。 結局タスクなりコレクションなりの方言の違いだけで内容はたいして違わないような… でも「敵」とか「アイテム」とかの単位で括ってしまうのは仕様変更したとき地獄を見そうだから嫌だな おえらいゲームデザイナー様の頭の中にしか無い仕様次第で、「この敵はイベント起こるとアイテム扱いで取得できるようになるから」 とか仕様ころころ追加されるし。 移植みたいに仕様が完全に動かないものなら初めから分類して設計できるけど、一般的にゲームはマスター寸前でも つまらないと基礎構造からちゃぶ台返しがあって入れ替わりがあるから、そんなガチガチに固定した構造で作るのはかえって危険。
>874 > 一般的にゲームはマスター寸前でも > つまらないと基礎構造からちゃぶ台返しがあって入れ替わりがあるから、 今まで面白いと勘違いしてきたクソ仕様を、そんな土壇場でひっくり返した糞プランナーに 唯々諾々と従うのはただのバカだ。 仕事なら、キチンとその糞プランナーに責任取らせろ。趣味で作ってるなら、バカにはきちんとバカと 逝ってやれ。 > そんなガチガチに固定した構造で作るのはかえって危険。 敵である『敵』と、アイテムである『敵』は、別に別タスクでも問題ないだろ。内部で参照しあって リンクしてるとか、双方を子に持つ親が居るとか、色々管理方法はあるだろ。 しかしそんな『敵』であり同時に『アイテム』でもあるような敵が居るなら、そんなクソ仕様で本当に 面白いのかどうかプランナーを小一時間問い詰めたいところだな。
>『敵』であり同時に『アイテム』でもあるような敵 ありがとう、なんか閃いた! このスレ見てて初めて新しい何かに触れた
>877 礼を言われるようなことは何も書いてはいないが、その閃きが何か形として昇華されることを望むよ。
>『敵』であり同時に『アイテム』でもあるような敵 そしてマップでも背景でも障害物でもあるんだな そしてごった煮ができたと
>>876 君はゲーム会社でのプログラマの地位をわかっていないな…
普通よほど小さい会社でもない限りプログラマがゲーム仕様に口出しなんて出来んよ。
ごった煮が見苦しいことは作ってるプログラマが一番よくしってるんだけど
仕様が固まらないまま「とりあえず今あるだけの仕様を作って、細かいことはそれで遊んで決めるから。あ、でもつまんなかったらチーム解散ね。」
とか言われると、基礎システムは変えずに何でもできちゃう「ごった煮」以外の選択肢が無かったりするんだよね…
大作作ってる大手とか、外注に仕事投げる元受系はきっちり仕様書切るみたいだけど、
ゲームデザイン用のプロトタイプとかを本編と別に作れるほど人員も期間も無かったりする中小の中途半端なゲーム開発ではそういうこともあるってことで。
>>880 おれの会社は小さいからプログラマーの地位が一番いいよ。
>880 そんなクソな会社辞めちまえ。 ウチは500人以上社員が居るが、糞プランナの言うことをホイホイ聞くようなプログラマも デザイナもサウンドもディレクターも居ないぞ。
プランナが仕様を切ってそれをプログラマが実装する、というのは、
単なる役割であって、地位が高いとか低いとかって話じゃないよね。
>>880 の会社は単にプランナが仕事してないだけって気がする。
というか、例が下手なせいで話がずれてるが、プログラマの地位(というか
発言力?)の高さと、「仕様変更」が発生するかどうかは関係ないと思うが。
元仕様の不備だろうが、実際に動かしてみて生じた新しいアイディアだろうが、
ゲーム製作において(まともな)仕様変更は普通にあり得るし、それを
「そういう作りじゃないので変更は出来ません」と突っぱねるわけには行かないわけで。
で、その仕様変更に対してタスクシステムが有用かどうかということだけど……。
俺の経験上、同じような変更であっても、多少、修正する箇所が少なくて済むような気が
するけど、「仕様変更に備えるためにタスクシステムを使う」というほどの差はないと思う。
どんな方法だろうと、大抵の記述はオブジェクトやシーン単位で完結してるし。
>>875 この場合YAGNIは的外れじゃないか?
タスクシステム(
>>2 だろうがそれの発展系だろうが)を使って組んでいるなら、
既にタスク周りのコードは組みあがっているわけで、依存関係やバグが増えることはないよ。
タスク処理そのものを新しく作るとしても、初期仕様からそれを利用するわけだし。
>>862 > 前々スレあたりに出てた
> メイン遷移状態・メニュー階層・ゲームオブジェ・エフェクト…
> って粒度単位で分かれてる階層タスクシステムってのもあるみたいだけど。
何でもかんでもタスクシステムと呼ばないで欲しい。タスクシステムとか
名前付けるほどのものではなくて、普通に書いたらああなるという例だから。
アレにたいそうな名前付けたら、それこそ for ループに○○システムとか
呼び始めることになるぞw
>>884 タスクシステムを改良した物で作った本人が階層タスクシステムと命名したなら
別にタスクシステムって名前がついててもいいんでない?
>>885 だったら、
>>2 との相違点を説明するべきだよね?
少なくともこのスレでいきなり出すのはNGだと思うね
>>883 > この場合YAGNIは的外れじゃないか?
> タスクシステム(
>>2 だろうがそれの発展系だろうが)を使って組んでいるなら、
> 既にタスク周りのコードは組みあがっているわけで、依存関係やバグが増えることはないよ。
それは既存の「タスク周りのコード」への依存を増やしているということ。
そういった共用コードが >840,846 が言うようにゲーム合わせて変更を
加えられていくと考えると、やっぱり >859 みたいなデメリットにつながる
ことが考えられる。
>874 で、そのデメリットをあえて受け入れる理由が「ちゃぶ台返し」への
予防策だというのだからまさに YAGNI の出番だ(そんな予防策は要らない)、と。
結局 >853 で挙げた2つの方針について、前者の「タスクシステム」的方針に メリットを挙げる人は居ないみたいだ。 個人的には後者が「ふつう」だと思ってたんで驚くべき結果じゃないんだけど、 過去に見てきた「タスクシステム」の実例のせいで、「タスクシステム」と聞くと やたらごてごてといろんなゲームや画面の都合が押し込められた 自作コンテナクラスや、さらにそいつがグローバル変数になってる状態を 想像して嫌な予感しかしないのが正直なところ。 現存する「タスクシステム」は名前がおかしいだけで、構造としては 挙げたような問題を持たないようなものだけが生き残ってる、ってことだと 理解しておくよ。
>888 全部ID:okF9YnFLの個人的感想と推測でしかないな。
890 :
884 :2009/03/24(火) 07:18:50 ID:0pAn0US9
実際の話、>2のような『タスクシステム』も含めて、何らかの共通の構造をコレクションした 実行巡回リストを作って統一的に運用している会社が殆ど。 今まで20社以上の下請けにソースコード納品させてて、それで確認しているから、すくなくとも その範囲内では間違いない。 毎回毎回基礎部分からワンオフで作ってる時間も予算も、下請けにはないからな。判ってる 人たちだけで使うなら、基礎部分を固めてその上で工夫する方がよほど効率がいいという ことだ。
892 :
名前は開発中のものです。 :2009/03/24(火) 07:34:12 ID:lE32YVAM
話のまとめがタスクシステム云々と関係無いじゃん 日記帳に書いてろよ
その中では、普通に>884が言うような『階層的タスクシステム』というような構造も存在するよ。 いわゆる『シーンタスク』には継続機能を持ったものを使って、できるだけシーケンシャルに記述 できるように、ゲーム内オブジェクトはFMSを使用、といった具合に使い分けてる。
>884じゃねぇな、>862だ。 ソース公開されてる海外のゲーム見ても、普通にこういう構造は使われてるぞ。 EntityとかActorとかいった構造を内包するか継承するかしてコレクションしてる。
YAGNIの考え方からいけばむしろごった煮のほうがYAGNI的じゃないか? 敵とかアイテムとか地形とかの仕様上の扱いは最後まで決まらないんだから 敵でも何でもタスクてごった煮実装して、最後に仕様が固まって分類わけできる ような仕様に落ち着いたなら、その段階で初めて分ける作業をすればいいわけで。
>>895 > 敵とかアイテムとか地形とかの仕様上の扱いは最後まで決まらないんだから
ここが間違い。
本当に決まっていないのであれば、そもそもコードを書くべきじゃない。
897 :
名前は開発中のものです。 :2009/03/25(水) 07:51:20 ID:4mzxhtmM
全くだな 手を動かしてる方が進んでる感あるから決まってない仕様には触れずに色々やり出すんだろうけど 明らかにこれが間違いの元 現実には全く進んでないし余計なコードを入れただけ 本当にやらなくてはならないことは、決まっていないから早く決めて欲しい仕様リストの作成と それに対する仕様の提案や仮に決まらなかったときの強行策の練り上げ等であって プログラムを組むことではない すべてをやりつくしたら昼寝でもして待つか仕様が決まっている箇所のバグ潰しが仕事 プログラムを組むことではない プログラムを組む仕事に逃げるなと言いたい
ここの偉そうに語ってる連中のどれだけがプロなんだか
899 :
名前は開発中のものです。 :2009/03/25(水) 12:49:30 ID:4mzxhtmM
じゃ、はっきりいうけど 現場で一番使えない奴はプログラミングしかしてない奴 出世もしないし心当たりない奴は働いたことないだろ
で? タスクシステムと何か関係あんの?
スレタイも読めない子供なんだろ
予想通りに釣られるやつだな
905 :
名前は開発中のものです。 :2009/03/26(木) 20:42:18 ID:t4iRSZvE
でもほぼ無駄 ある程度は数字で行動が決定できない人間じゃないと邪魔にしかならない
数字で?行動? 言いたいことは分かるが、その表現は適切なんでしょうかww
>>906 わかったならいいじゃん
お前なんか何が言いたいかわからないし
タスクシステム流行らせたいの?
今日も見えない敵と戦うヒトがひとり
909 :
名前は開発中のものです。 :2009/03/27(金) 19:28:50 ID:82f41tp0
BulletML紹介して終わりじゃね?
911 :
名前は開発中のものです。 :2009/03/28(土) 07:13:43 ID:3WHtXnJb
「変更の必要ない完璧な仕様が出来るまでコードはかかない」 そんなふうに考えていた時期が俺にもありました
>>911 >>896 以下ループ
書くべきじゃないと思うよ
っていうか書いても意味がない
PG経験10年だけど俺も未熟な頃は色々できることないか考えてたけど
ソースに関してはまるで意味がない
絶対に書いてはダメ
それより「決まってないから決めてくれ仕様リスト」の作成に力を入れろ
仕様が決まってないうちは自分のライブラリ整備に時間を入れる時期じゃね? 俺はこういう空白時間はそう使ってる。
仕様が決まる前に退社しろよ
決定したはずの仕様が覆るのはよくあること
916 :
名前は開発中のものです。 :2009/03/28(土) 14:08:59 ID:3WHtXnJb
>>913 >仕様が決まってないうちは自分のライブラリ整備に時間を入れる時期じゃね?
仕事中に”自分”のライブラリ整備なんてしてたら普通に職務上横領だっての。
学生気分が抜けない新人か?
担当箇所のライブラリという意味だ 趣味のライブラリというわけじゃないぞ
>913 社内の機材を使って社内で作成したモノは全て会社の所有物なワケだが、 自分用のライブラリを会社で作るって常識ナシのやることだぞ。
おっと、レス更新しておけばよかったよ。 ちなみにうちの会社はタスク使ってるよ。C++の場合はベースクラスの名前がITaskで、Cの場合は タスクの先頭に必ずTCBというものを置くようにルール付けされてる。 まぁ、それでもミリオン逝くソフトは作れるってこと。
最近はミリオンいくソフトなんてあまり聞かないな 売上がミリオン$ってこと?
921 :
510 :2009/03/28(土) 16:20:14 ID:J75Q9/vX
もう、 タスクシステム = 特定の型のインスタンスを高速に列挙する仕組み + 列挙したインスタンスに対する処理を並列化するためのマクロ群 ってことでいいでしょ。
釣りくさいなぁ
アンチが論破されてからレスが静かになったなぁ… やっとタスクがゲーム開発現場で使われ続けてるって現実を 理解できたのかな。
春休みも終盤で宿題が忙しいんじゃね? と思ったけど春休みに宿題は無いな
飽きただけだと思うが
>923 アンチがタスクを理解できなくて、飽きただけじゃね?
結局タスクシステムのメリットをあげられる人間はいなかったな
>928 最初から理解する気の無い者に、何を言っても無駄だからな。
class ITask や namespace TaskSystem のドキュメントって >929 みたいなのが書いてあるの? 何かしら目的や必要性があって作ってるんじゃないの?
ggl code searchで検索したところをいくつか見たら for_eachのようなアルゴリズムで一元的に扱う為のインタフェース みたいなことが書いてあるところが結構あった
>930 ゲーム制作用のドキュメントには使い方しか書いてないな。 毎フレーム実行するものがあるばあいはITaskを継承してTaskManager::Append()とかでリストに ブッ込めば、次のフレームから実行される、とかいう感じで。タスク同士の関係性やタスクを殺す時 タスクが死ぬ時の注意点なんかも書かれてる。 ゲーム毎に異なる部分と、プロジェクト別でも共通して使える部分を分けるのも目的のうちの一つ だから、技術開発系のドキュメントとゲーム制作系のドキュメントと2つある。
>>930 > 何かしら目的や必要性があって作ってるんじゃないの?
そういうのはメリットとは言わない。
このスレにある回答らしきものを先に読め。例えば >264,852
934 :
名前は開発中のものです。 :2009/03/29(日) 21:43:33 ID:Yd51Jaj0
フレームワークやライブラリのメリットすらわからずに 同じ実装いくつもコピペした方がわかりやすいって人間に タスクのメリットが理解できるとは思えんのだが…
>>934 まあ、とりあえず言ってみろよ
どんなご高説が聞けるのか楽しみにしてっからよ
936 :
名前は開発中のものです。 :2009/03/29(日) 21:52:33 ID:Yd51Jaj0
>>935 最低限フレームワークやライブラリのメリットは理解できる頭はあるのかな?
>>936 たった一人相手に説明するわけじゃないんだ。みんな待ってんだよ。
誰か一人にでも伝わればいいじゃないか。ほら、たのむよ。おねがいします。
939 :
名前は開発中のものです。 :2009/03/29(日) 22:06:44 ID:Yd51Jaj0
タスクシステムと呼ばれている物の利点は大体こんなもんじゃね? ・1フレームに1回実行すするための窓口提供 ・依存関係の解決 上記の二つはゲーム内のいたる所で 使われるパターンと機能だと思う。 まあこれを基盤にライブラリを構築するところから、 タスク「システム」と呼ばれているんじゃないか?
>>940 あなたは >853 の前者の方針をとる人ですか?
>>941 基本的に前者で構築してるよ。
パーティクル類はタスクにはしないけど。
後者の方針を取ると、似たような処理が
いたるところに散乱することになるからね。
早い話タスクパターン(名前は何でも良い)を
適用したほうが良いものはそっちで実装。
ソースは小さく富豪的に書いて速度的問題や、
メモリ的問題が出てからつどそれらについて対応かな。
久しぶりに見たら静かになってるな。 アンチタスクがやっとメリットを理解できたのか?
>853 移行で挙げられてるような「タスクシステム」的方針のデメリットと、 >891,942 で挙げられてるようなメリットとの大小を自分で見積もって選べ ってことじゃないかな。
アホの子を自認して今まで20年弱生きてきたけど世界は本当に広いんだなとつくづく思う ネットの普及により、誰もが容易く素早く安価に優良な情報に(情報へのリファレンス)に アクセスできるというのに、それでもなおタスクバカ(頭の悪いほうのタスクシステム擁護者) は殻に閉じこもり世界を見ようとしない。タスクバカというのは停滞し続ける盲目・無知・ 怠惰な人間であると看破する タスクシステムに関する情報は検証可能性ゼロの欺瞞情報にあふれているが、それに 適切に突っ込む存在は彼らの中にはいない。ベテラン風を吹かせてる擁護者がたまに 出没するが、具体性を帯びた有効な反論は全く無く、具体性を加えろというと口を噤む。 それどころか検証可能性ゼロの胡散臭い情報を垂れ流してタスクシステムの存在理由の 補強を試み、初心者を煙に巻こうとする。なんだかとっても残酷な情報封鎖された村社会 次のステップを進めず無駄に年を重ねただ老いさらばえていくだけの老人にとって 後ろからどんどん現れる新手・後続の若者というのはもはや蹴落とすべき脅威でしか ないのだろう。後続を煙に巻くことで僅かでも時間稼ぎをして自己の保身ができればと 努めているのかと思うと、あまりにも哀れで相手する気もなくなる
だったら消えれば? しょせんチラ裏の匿名掲示板に、 なぜそこまでこだわる?
タスクシステムの擁護をするはずが、いつの間にかタスクを擁護し始めている タスクシステムが攻撃されているのに、彼らはタスクが攻撃されている、という 対立構造に話をすり替えようと試みる 何らかの時間ステップで多数のFSM(VM)をシングルプロセッサで駆動させる プログラム全てにおいて、タスクという処理単位は必ず存在するというのに 彼らは『アンチは処理単位を否定しようとしている』などと叫ぶ 『アンチはフレームワークを否定しようとしている』というふうに話をスライドさせる 手口も同じ。彼らは自分たちが守るべきもの(タスクシステム)が、守るに値しない 守ることが不可能な、存在理由の実に希薄な、実につまらない車輪の再発明 既出の何かの劣化猿真似であることを悟ってしまったから、擁護する対象を 摩り替えることで、自己の立場を確保しようとしているに過ぎない 彼らはもはやタスクシステム擁護者ではなくなっている。彼らが現在守ろう としているものの実態、それは別の何かに換言される。それに タスクシステムという名前を無理やり与え(レッテルを張り)、擁護しているに過ぎない タスクシステムというお名前を擁護しているだけなのだ
950 :
名前は開発中のものです。 :2009/04/02(木) 20:51:49 ID:Qv40Br8C
ないよ。 田原総一郎は噛み付くだけで解決策なんて出さないよ。
タスクシステムのメリットはもう説明できたの?
>>874 、
>>880 を読んで、あーなるほどこの人は正直な人だなぁと本当に思う
タスクシステムの実装上の不合理が、現実の開発プロセスの不合理の上で
成り立っているとこの人は説明しているんだ
こういうの見るとタスクシステムを攻撃する気なくすよね。あまりにも正直すぎて
本来なら是正すべき問題が何なのか分かっているけど立場ゆえにできないと。
叔父さん(オヤジの兄貴)が大手自動車会社の下請け部品工場やっていて
実家に遊びに来るたびにオヤジが愚痴を聞いていた
なーんにも分かってないクライアントのヒヨッコ担当者から超理不尽な協力とか努力
要求を付き付けられると本当に参ると。理に適った上申・具申をしても相手が
理解できないオツムの人だと全く意味がないと苦笑いしていた
>>874 、
>>880 は正直であるがゆえにタスクシステム擁護者から攻撃されたようだね
タスクシステムを擁護する人ってのは見栄っ張りが多いよね
不合理で悲惨な現実の中で仕方なく編み出された不合理な仕組みを正当化するには
不合理で悲惨な現実を曝け出すしかないというのに、それを嫌がるのだから呆れる
不合理な開発プロセスと無縁な恵まれた境遇の人間(趣味の人、学生の人)にとって
タスクシステムなんてものが実は全く無用の長物であることを勘付かれたくないのだろうか
目の前に高速道路が通ってるのに今更こんな草ボーボーの泥道を這いずり回らせよう
なんて趣味が悪いよね。スポ根大好きの昭和の人なのかしら
>946 真のアホというのはID:EEKBitmgのように『誰かが答えを知っていて、それを自分に教えてくれる』と マジで思ってるヤツのこと。 世の中には答えなんて無いもののほうが圧倒的に多いし、人から言われたことを検証するだけの力が なければ教えてもらうことに何の意味もない。 そのことに気づかないのが真のアホ。
生協の購買部で弾幕何とかという本を立ち読みした。 なーんか胡散臭い。バケットソートしてるだけの手作りコンテナを 回りくどく説明してる。ダミータスクとかアホじゃねーのと思った ただの番兵じゃん。みたいな
>>954 バカじゃん。個人的には全く説明してもらう必要性なんて皆無なんだよね
たかが実行待ちキューにアホみたいに独自のお名前付けて然もそれが
個性的な、ゲーム業界が編み出した秘術みたいに吹いて回ってるタスクバカが
ネタでやってるのか本気でやってるのが知りたいから説明を要求してるわけで
>956 オマエにとって『タスクシステム』とやらがその程度にしか見えていないなら、そういうもんだと思っとけwww ただ、その拙い理解で周りに吹聴してまわるとメチャクチャ恥ずかしいけどな。 学生さんらしいけど、『学ぶ』ってことを知らないで学生やってて面白いのか? 世の中には物事を上手く活用出来る人も、できない人もいる。
タスクシステム(笑)なんて華麗に無視して颯爽と追い越していく後続は何としても
妨害し、これの足を引っ張り、繋ぎ止め、縛る。そのためにグダグダとエセ科学みたいな
胡散臭い話をし続けるタスクバカに何度も問いかけるよ
『何で何を作るお話なのか、話を絞れ』とずっと言ってるよね。にも関わらず、タスクバカは延々と逃げ続ける
適当でいいから仕様を出しなさいよ。既存の○○(ゲームタイトル)みたいなもの、とかでいいからさ。
開発環境とかターゲットを明らかにしなさいよ。本気で素人を説得する気なら、携帯機器とか
疎結合マルチコアの死にハードなんて引っ張り出すよりは、万人が触れられるもの、5万円以下で
自作できるPC(密結合マルチプロセッサ(マルチコア)な環境)を前提にお話でもしてみたら?
>>2 である必要性が微塵も無いことが露見するのをあなた方は恐れているから無理だろうけどね
タスクバカは自分が作ってるものが一体何なのかを端的に【説明しない】あるいは【説明できない】
ふたを開けてみれば彼らがタスクシステムだという
>>2 は、実につまらない、既存の、既出の、
ありふれたものとして説明されるわけだが、彼らは然もそれが比類ない新規性にあふれたもの
であるかのように吹くし、何だかとても怪しげな、とてもセンスの悪いお名前を付ける
そうやって後続の初心者を煙に巻こうとしている
この手の臭い人間の戯言に惑わされる情報弱者にも聞いてみたいんだけどさ
http://f3a.sakura.ne.jp/radiocontroll/other/globalenergy/globalenergy01.html こういう似非科学の似非理論を吠える詐欺会社にワクワクしちゃうのかな?
ちょっとでも物理が分かれば推力重量比1以上なら何でも空を飛べるって分かるよね?
これに太鼓判を押してるのが層化大学で講義をしてる胡散臭い弁護士ってのが凄いよね
カルトとエセ科学は仲良しなんだよ
『分かる人にしか分からない』だの『信じたがらない人には分からない』などの説明しかしない人は
エセ科学提唱者といわれても仕方がない
>958 ホントにバカだなw そういう似非科学にワクワクしちゃうのは、自分でものを考えることを知らない人間だろw きちんとモノを考えられるやつは、「自分の作り方には『タスクシステム』は必要ない」とか 「『タスク』として動くものを統一的に扱えれば楽になる場面があるな」とか、利点欠点を 理解して使うか使わないかを自分で決められる。 自分でものを考えられないID:EEKBitmgのようなバカだけが、何時までたっても無用論 ばかり唱えてるんだよ。 選択できるやつは選択すればいい。バカはとっとと去れw
GPUは疎結合だけど、タスクバカは固定機能パイプラインの描画にしか 使ってなさそうだし、ここでは横においるよ
まぁまぁ、こんな所であまり熱くなっても滑稽に映るだけだぜ
>960 > タスクバカは固定機能パイプラインの描画にしか > 使ってなさそうだし バカここに極まれり、って感じで素晴らしいねwww
ID:yXIvxvr/さんは 俺みたいな糞ガキがタスクシステムのことをボコボコに貶すのが許せないんだろうね。 そんなに目障りなの?どうして?ずいぶん堪え性のないオジサンだね。何歳なの?
>>962 面白いね。自分のことをタスクバカだと思わなければ否定も肯定もできないはずだよね?
俺は明らかに色分けしてるよ?
あなたは自分が『頭の悪いほうのタスクシステム擁護者』だと認めているの?正直な人だね
自分はタスクなんか使わずに書いてるよwww 仕事で合わせないといけないときは、タスク使って書いてるよwww 必要に応じてな。 ID:EEKBitmgの学生さんは、センセーに言われたことは何も考えずに真実だと思っちゃう方なのかな???
>964 自分が愚かだと知って、初めて分かることもあるんだよwww 若いと気づかないんだねぇwww
>958
> タスクシステム(笑)なんて華麗に無視して颯爽と追い越していく後続は何としても
> 妨害し、これの足を引っ張り、繋ぎ止め、縛る。そのためにグダグダとエセ科学みたいな
> 胡散臭い話をし続けるタスクバカに何度も問いかけるよ
> 『何で何を作るお話なのか、話を絞れ』とずっと言ってるよね。にも関わらず、タスクバカは延々と逃げ続ける
> 適当でいいから仕様を出しなさいよ。既存の○○(ゲームタイトル)みたいなもの、とかでいいからさ。
> 開発環境とかターゲットを明らかにしなさいよ。本気で素人を説得する気なら、携帯機器とか
> 疎結合マルチコアの死にハードなんて引っ張り出すよりは、万人が触れられるもの、5万円以下で
> 自作できるPC(密結合マルチプロセッサ(マルチコア)な環境)を前提にお話でもしてみたら?
>
>>2 である必要性が微塵も無いことが露見するのをあなた方は恐れているから無理だろうけどね
> タスクバカは自分が作ってるものが一体何なのかを端的に【説明しない】あるいは【説明できない】
> ふたを開けてみれば彼らがタスクシステムだという
>>2 は、実につまらない、既存の、既出の、
> ありふれたものとして説明されるわけだが、彼らは然もそれが比類ない新規性にあふれたもの
> であるかのように吹くし、何だかとても怪しげな、とてもセンスの悪いお名前を付ける
> そうやって後続の初心者を煙に巻こうとしている
> この手の臭い人間の戯言に惑わされる情報弱者にも聞いてみたいんだけどさ
>
http://f3a.sakura.ne.jp/radiocontroll/other/globalenergy/globalenergy01.html > こういう似非科学の似非理論を吠える詐欺会社にワクワクしちゃうのかな?
> ちょっとでも物理が分かれば推力重量比1以上なら何でも空を飛べるって分かるよね?
> これに太鼓判を押してるのが層化大学で講義をしてる胡散臭い弁護士ってのが凄いよね
> カルトとエセ科学は仲良しなんだよ
> 『分かる人にしか分からない』だの『信じたがらない人には分からない』などの説明しかしない人は
> エセ科学提唱者といわれても仕方がない
すまん、間違えたwww >967は忘れてくれ。 ID:EEKBitmgよ、ホントにスマン。 他意はないんだ。ちょっと手違いでヤラカシタ。
>>965 なんだ
>自分はタスクなんか使わずに書いてるよwww
>仕事で合わせないといけないときは、タスク使って書いてるよwww
タスクってのはタスクシステムのこと?
要するに使いたくて使ってる人じゃないわけか
君との間には争点は見出せないから君はどうでもいいよ
噛み付いてほしい標的じゃないから、ヨシヨシイイコイイコ飴あげよ
あっち行ってなさい
で? タスクシステムのメリットはまだ説明できないの?
ここまで煽りに反応する人久しぶりに見たわ スレが恥ずかしい空気になっちゃったじゃない
なんだかごちゃごちゃレスが長くウザくなってきたら 「で?タスクシステムのメリットは説明できたの?」 この一言で元に戻す これでこのスレは安定する
>>973 ログどころかずっといるっての
いままで一度もタスクシステムのメリットを説明できた奴はいない
タスクシステム(?)のソースに対して、タスクシステム使わないソースを上げてやったの俺だし
・1フレームに1回実行すするための窓口提供
>969 > 君との間には争点は見出せないから君はどうでもいいよ > 噛み付いてほしい標的じゃないから、ヨシヨシイイコイイコ飴あげよ ハイハイ、学生さんは教わった知識をひけらかしたいだけなんですねwww >974 理解力の無いヤツにナニを言っても無駄だろwww
俺はタスクシステム好きだぜ。
面白いじゃん、関数ポインタひとつで、単なるメモリブロックに
「クラス」と「状態」の両方の意味を与えてしまうあたりが。
状態に関しては、今ならStateパターンとかStrategyパターンとかって話に
なるんだろうが、昔はそんなの無かったしな。
関数ポインタで状態を表せることはタスクシステムの重要なメリットの一つだと
思ってるんで、
>>2 の3番目のリンクのやつは俺的にはタスクシステムとしては
激しくイマイチだなぁ感じる。
>>974 > いままで一度もタスクシステムのメリットを説明できた奴はいない
>103で十分だと思うけどな。
>>972 とりあえずお約束の >264
この一言で再び荒れるw
>>978 それだとループはずしたのと行数がちょっと少なくなる程度だけど
なにか思想的なことでメリットを主張する心算だったんじゃないの?w
>>975 このスレを窓口で検索かけると分かるが、窓口云々と言ってる人は
『これは周期タスクを突っ込んだレディキューですよね』と言ってるわけ
タスクシステムなんて超胡散臭い言葉を全く知らなくても使わなくても全く問題ないわけ
別の言い方をすれば、OSやらMONITORやらの実行待ちキューを何だか訳の分からない
独自用語を交えながらタラタラともったいぶって語るのがタスクバカってことなわけ
既存の何かとの対比をできないのか、したがらないのかよく分からないが
前者ならばただの無知(タスクバカ)であるし、後者は科学を否定するカルト野郎ないし詐欺師だ
タスクバカは知ろうとしないよね。むしろ知ることを恐れる。まるで、自分が何かの先駆者であるか
のような、誰も知らない宝石の所有者であるかのような、心地よい気分(錯覚)に浸り続けたいがために
その酔いを醒ましてしまうような、冷や水ぶっ掛けられるような既出情報には目耳を塞ぐ奇異な行動を取る。
不当な搾取を受け続けても偽本尊の写しを有難がってナンミョーホーレンゲーとブツブツ念仏を唱え続ける
盲目のカルト信者の行動が理解できないのと同じで、タスクバカの行動原理というのは全く理解できない
人類が営々と積み上げてきた知の蓄積を無視し続けるというのは科学の否定に等しい。カルト万歳
ここで言われているタスクシステムって、ごく簡単に言えば、ゲーム中に何かを登場させたいときに、 そのなにかのインスタンスを作成してコンテナに登録すれば、後のことは気にしなくても そのインスタンスがなくなるまで面倒見てくれるシステムのことじゃないの?
記述の手間を省くためのものだと、このスレでようやくわかった。 プロジェクトをまたぐ場合は「タスクシステム」をコピペしてカスタマイズするのが前提みたいだし。 モジュールの独立性や最小の依存関係なんかを重視する人には受け入れられないだろうね。 大規模になるほど問題が起こるというのも >859 に挙げられた点から考えれば自然なこと。
「タスクシステム」って名前を使うと荒れるからちゃんと「
>>2 」って呼ぼうぜ
>>983 清水さんて誰?やねうらおさんみたいなスーパーハッカーオジサンなのかな。よく知らないけど
口先だけのハッタリ野郎であるタスクバカの本質をよく突いてる文章だと思う。厨房だからすごく分かる。
>>2 とか、訳の分からないCodeZineの情報を見て感動に震えてタスクシステムすごいすごいって思い込んで
疑うことも知らずに天下り式に猿真似てるだけで偉くなった気分になれるタスクバカって羨ましいよね
彼らは頭の中には糞でもつまってるのかしら。とても真似できない。すごいすごい
通常弾みたいな小さなタスクを手作りの線形リストに入れてなめるのは何故?バカだからだろうね
何でもチマチマとサブルーチンアドレス経由で処理を呼び出すのは何故?動的バカだからだろうね
実測したことないと分からないだろうなぁ。こういう言われ方されると不愉快だろうなぁ
タスクバカは測定しようとしないよね。むしろ測定することを恐れるよね。ベンチ結果が怖いんだろうね
関数ポインタを知っただけで嬉しくなっちゃって使いどころも分からず至るところで状態変数代わりに
使っちゃってるんだろうね。速いと信じてさ。無駄にあちこちにリフレクティブな仕掛けを入れ込みまくって
糞重い糞コードいっちょうあがりっと
メモリコンパクションが必要とか吠える奴が混じってるのは何故?バカだからだろうね 大してサイズの変わらないチマチマした短命オブジェクトを生成するために腐れ可変長アロケータを わざわざ自作して使うから不定期にメモリコンパクションなんて必要になるだけなのにね 固定長メモリプールを使うとか、ヒープから確保した後に使用済みになったオブジェクトをプールして 使いまわすとかすればいいだけなのにさ。Linuxのスラブアロケータの真似でもすればいいのにさ。 チマチマした短命オブジェクトのタイムクリティカルな処理をするのに不定期なメモリコンパクションを かけるなんてイカレてる。こんなもんがゲームプログラムに必要だなんて欺瞞情報の最たるものだ。 根っこから設計が腐ってんのにリニアアクセスによる僅かな高速化に期待しようだとかバカにも程がある パーティクルはタスクにしないとか言ってる奴が混じってるのは何故?バカだからだろうね どう組もうが何らかの時間ステップでパーティクル一粒一粒の更新処理はしなくちゃいけないわけで つまり一粒一粒の処理ステップ(タスク)というのは必ず存在するわけ。なのにタスクは使わないんだとさ。 タスクバカは独善的な解釈を振り回す視野の狭い連中だからどうせ配列に入ってるものはタスクじゃねーだとか 連結リストに登録されない処理単位はタスクとは呼べない!だとか訳の分からないヘンテコ理論が 頭の中にウンコみたいにこびり付いてんだろうね 実行待ちキューのコンテナは連結リストだけだと思い込んでるようなこの手のバカが信奉するタスクシステム ってのはちょっとした脅威。もう存在自体が毒素。この世から消えてなくなったほうが世のためだと厨房は思う
>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
これ、もっとクエン酸入れたらどうっすか?
結論ありきの話しかできないID:EEKBitmgって、 一部の反戦平和団体と同じ臭いがプンプンしてるな。 自分の「正義」にたてつくヤツが許せないんだろうな。 ID:EEKBitmgは自分で自分のことをアホの子と言ってるが、 別にアホの子ってわけじゃないんだよな。 あえて言うならダメな子だな。あるいは残念な子か。
996 :
名前は開発中のものです。 :2009/04/03(金) 14:57:30 ID:OlKoVEZp
まだ続くのか。
そして過去ログ読めなくて、また同じ議論が続く。
2ちゃんねるって、そんなとこだろ。 文句があるなら過去ログ倉庫作ってくれ。 俺は過去ログとっといてないし、●も持ってないから協力できんが。
Cやアセンブラ時代のテクにC++時代のお手軽コンテナクラスを使った実装を出して、タスクシステムなんて〜って言うのはズレてると思うよ
∧_∧ ∧_∧ ( ・ω・)=つ≡つ);:)ω・).,,'; (っ ≡つ=つ ⊂ ⊂) __ (⌒(⌒ )ババババ(⌒(⌒ ) /\ ̄ ̄し' ̄ ̄ ̄ ̄ ̄ ̄し' ̄ ̄ ̄\  ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄ / \ / \
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。