http://ja.wikipedia.org/wiki/%E8%A3%B8%E3%81%AE%E7%8E%8B%E6%A7%98 あらすじ
新しいシステムが大好きなゲームプログラマの元に、二人組の詐欺師が
プロのゲーム開発者という触れ込みでやって来る。
彼らは何と、馬鹿や自分にふさわしくない仕事をしている者にはメリットが
理解できない不思議なシステムを紹介してくれるという。
プログラマは大喜びで紹介されたとおりに実装する。
他のプログラマにメリットを聞かれた時、自分がこれまで慣れ親しんだ
コードを正当化してくれるはずのメリットが説明できない。プログラマは
うろたえるが、そのシステムを自慢げに見せた後輩プログラマたちの手前、
本当の事は言えず、ありもしないメリットから目をそらさせるため
「馬鹿には理解できない」と言い続けるしかない。後輩は後輩で、自分には
メリットが理解できないもののそうとは言い出せず、空気を読んで目をそらす。
プログラマはメリットもないシステムに増築を重ねて開発終盤に臨む。
火消しプログラマも馬鹿と思われてはいけないと同じようにそのシステムを
使い続けるが、その中のまだ空気を読めていなかった新入りが、こう叫ぶ。
「このシステム邪魔だよ!」
バカ せっかく落ちて静かだったのに建てるなよ また老害どもがわいてくるだろ
結局TCBって何ですか?
タスク コントロールド バカ
Typical Confused Baka
タスクシステムなんて"僕の思ってるようには"使えないよ! って坊やがまだわいてこないな 前スレで懲りたか?
>>8 タスクシステムのメリットを理解できてる?
自分の言葉で言い表せる?
>>9 詳しく説明されてる例がいくらでもあるのに
「自分の言葉」じゃなきゃダメな理由は何?
>>2 のリンク先読んで理解できないってのなら
「リンク先のここがわからないんで教えてください」
って素直に聞けばいいのに。
「わからないところがわからない」って勉強のできない小学生みたいだな。 で、「僕のわからないところを見抜いて僕にわかるように説明しろ」と すまんがエスパーじゃないので無理だwww 坊やがゲーム専門学校の生徒でこっちが講師なら仕事だからやるけど 掲示板でゆとり相手にタダでそんな労力期待されてもねぇ
> 「わからないところがわからない」って勉強のできない小学生みたいだな。 > で、「僕のわからないところを見抜いて僕にわかるように説明しろ」と 妄想に対してレスとかw タスクシステムのメリットを理解できてる? 自分の言葉で言い表せる? こんなカンタンなことから逃げるなよw
すまんがタスクシステム程度の何が理解できないのかわからん。
>>2 見りゃ想像つくだろ、ってのはレベル高すぎなのか?
出来ない子の気持ちがわからなくてすまんなぁ
って、まぁ想像はつくんだけどね。
足し算できない子供が「足し算勉強するメリットおしえろよ!」
って言う理屈はww
また逃げてるプw
タスクシステム程度のメリット説明が、
そんなに難しいこととは思わなかったよw
>>2 読め? 結局お題目を朗読するしかないのか?w
>>15 リンク先にメリット、デメリットが明記されてるけど
どのメリットがわからないんだい?
坊やがどのメリットが理解できないのか教えてくれないと
エスパー以外には答えられないよwww
>>16 > どのメリットがわからないんだい?
ため息しかでねぇなw
タスクシステムのメリットを理解できてる?
自分の言葉で言い表せる?
お前にこれが問われているだけのことw
こっちは坊やの先生じゃないからさ オーダーメードのレクチャーしてくれなんて甘えられても困るな。 丁寧に図解つきで馬鹿でもわかるように説明されてるページがあるのに それすら理解できない見所の無い馬鹿に、掲示板で教え導いてくれる 親切心のある人がいると思ってるのかい?ゆとり君www
おやおやw 結局逃げですかw
>>19 そのとおり
こっちは坊やのお母さんじゃないからさ、見捨てさせてもらうよ。
どうせ教えるならもっと見込みのある人に教えたい。
教えた時間が無駄になるのがわかってる適正の無い人間に教えるほど、
博愛精神にあふれてないんでね
タスクシステム程度のメリット説明が、 そんなに難しいこととは思わなかったよw ダメだなあ君はw
冬休みになったのか?
メリット説明しろってのは2chでありふれたレトリック ニートスレの「就職のメリット教えろ」とか 毒男スレの「結婚のメリット教えろ」とかと同じでいくらでも見つかる。 まともに議論したら「お前が無能なだけ」「お前に魅力がないだけ」って結論になって プライド保てない負け犬が「何がメリットかわかりましぇーんww」 って逃げ回って相手に労力をかけさせて諦めるのを待つ見え見えの方法。 そんな展開のわかりきった手垢のついたレトリックに今時ひっかかる馬鹿はいないわな。
24 :
名前は開発中のものです。 :2009/12/28(月) 17:08:54 ID:ZC35v31X
思う壷すぎてワロタ 老害とわ(ば)ものの罵り合いワロス もっとやれ
>>3 > 「馬鹿には理解できない」と言い続けるしかない。
>>23 メリット説明しろってのは頭の弱いアンチ君たち唯一の武器だろうに。
かわいそうなアンチ君から唯一の武器を奪うなんてなんて大人気ない。
あとは単発IDで罵倒するぐらいしかアンチ君には手段が残されてないじゃなの。
弱いものイジメして楽しいか?もっと博愛しろw
メリット;動的に処理順を制御することができる。 ディメリット:大部分の処理は動的に処理順を制御する必要が無いので無駄。 普通の人は、動的に処理順を制御する必要のある部分は個別にモジュール化する。 たとえば、Zソートは描画エンジンがやるだろうし、 当たり判定の優先順位なんかも、それ用のライブラリが面倒見る。 統合してタスクシステムとかやらない。 タスクシステムって、タスクを順番に実行していくものだろ。 でもそれって、命令を順に実行していくノイマン型コンピュータそのものだろ。 仕組みが重複してるw
そもそもメリットを聞くのはスタート地点じゃないんだよなー。 メリットってのは、代替手段やそれを使わなかった場合と比較することで、はじめて認識されることだし。 つまり、メリットは?と聞く前に、以下のいずれかを行っておく必要があるだろう。 ・自分で実装した方法がある。実装構造の目的(実現したかったこと)と欠点も認識しておく。 ・何もわからず右往左往してタスクシステムって何さ、と聞いているならばタスクシステムの目的(達成したいこと)をまず理解する。または聞く。
で、目的は?
>>2 のリンク先のメリット・デメリットについて
A:理解できない。
>どのメリットが理解できないのか明記すべき。
B:リンク先のメリット説明は間違っている。
>間違っている箇所を説明すべき。
C:全て理解した。その上で他にもメリット無いか聞いている。
>その旨明記すべき。
が建設的な対応だな。
>>27 ちゃんとリンク先読んだのか?
メリットはその一点だけじゃないぞ。
それに「普通の人は」って一つの脳内仮定で思考停止しちゃう人は
手段の優先は目的によって異なるってことを理解した方がいいぞ。
>>29 目的が理解できないレベルね。
リンク先の一例では「シューティングゲームを作る」かね。
君の目的は知らんけど。
また裸の王様か。 タスクシステムなしにシューティングをつくれるのになぜ導入するのかも言及しない。
レトリックに誰も突っ込まない優しさワロスw
>>32 >タスクシステムなしにシューティングをつくれるのになぜ導入するのかも言及しない。
メリット・デメリットがわざわざ明記してある意味すら理解できないレベルか・・・
修辞技法(しゅうじぎほう、または文彩(ぶんさい)、あや、英語・フランス語:Figure)とは、 スピーチおよび文章に豊かな表現を与えるための技法。 # 2 比喩 # 3 擬態法 # 4 擬人法 # 5 倒置法 # 6 反復法 # 7 同語反復 # 8 首尾同語(反照法) # 9 体言止め # 10 反語 # 11 呼びかけ # 12 パラレリズム # 13 押韻 # 14 語句の挿入 # 15 省略法 # 16 緩叙法 # 17 漸層法 # 18 対照法 # 19 敷衍(ふえん) # 20 パロディ # 21 畳語法・畳句法・畳音法 # 22 疑惑法 # 23 誇張法 # 24 列挙法・列叙法 # 25 折句 # 26 史的現在 # 27 撞着語法 # 28 頓降法/漸降法 # 29 黙説 # 30 冗語法 # 31 転用語法
で、何なの?
レトリック (1)修辞学。美辞学。 (2)文章表現の技法・技巧。修辞。 「―にすぐれた文章」 (3)実質を伴わない表現上だけの言葉。表現の巧みな言葉。 「巧みな―にごまかされる」 (3)の詭弁の意味で問題なさげ。 自爆に突っ込まない優しさが無くてなww
>>37 ありがとう。マジでその意味は知らなかった。
レトリック 詭弁でぐぐるとザクザク出てくるし、
「それはレトリック=詭弁と呼ばれ、禁じ手とされてきた。」などと一発目に目に付く。
タスクシステムとやらで不要なシステムを強要してバグを大量生産するプロジェクトが よく見られますがどう思いますか
>>39 ホントはね、「触らぬ神に祟り無し」これだけで十分。
相手をして遊ぶのは仕事から離れた、2ちゃんとかだけにしときたいよね。
私怨をもたれたらめんどいから。
>>39 プロジェクトのメインプログラマーが、タスクシステムのデメリットを超える
メリットがある、と判断したて採用したんだろうなぁ、と。
不要に見えるならもっと良い方法を提示してあげたらいいんじゃない?できるんなら。
一本メインで任せられるほど会社から実績と信頼もらってる優秀なプログラマなんだから
もっと良い方法提示されたら喜んで受け入れてくれるよ・・・
おれがメインやるときは使わないが 火の車のプロジェクトにヘルプで入るとってパターンばかり おれは使うなとはいうけど責任ないプロジェクトにまで影響力ないな
個人的な経験の範囲ではプロジェクトに火がつくかどうかとタスクシステムの有無に因果関係はほとんど無かったけどな。 火がつく理由は非常識な納期とか仕様の甘さとか進捗管理のまずさとか、もっと外側の原因がほとんど。 まぁタスクシステムは良くも悪くも「Cの精神」と「ゲームプログラマ固有のケチさ」が色濃くでてる システムではあるんだけど。 新人がタスクシステム使って「何でこんな簡単な処理を、ここまで複雑で危険な処理にできるんだろう」 というのも見たことあるし。 スーファミ時代から現役の40歳超え超ロートルプログラマがDS用にタスクシステムで作ったゲーム コードでは、美しい数学の証明でも見てるみたいに理解しやすくシンプルで、高速高効率なコードに 仕上がってるのみ見たこともある。 結局、誰がどんなプラットフォームでどんな仕様のゲームを作るのか、という目的にてらしてメリットデメリット 比較して使えるところではうまく使えばいいんじゃね?という当たり前の結論。
ヒットに責任もつやつが主導権持つのは当たり前。 そういう点ではここのプログラマーが下に見られるのは当たり前。 決してプログラマーはヒットに貢献出来ないといってるわけではない。
というか、普通にかけばいいじゃん。 tasks.push_back( task1 ); tasks.push_back( task2 ); tasks.push_back( task3 ); for(;;){ for( size_t i=0; i<tasks.size(); ++i){ tasks[i](); } } よりも、 for(;;){ task1(); task2(); task3(); } の方が自然だろ。 プログラム自体が処理のリストなのに、何故わざわざ処理のリストを自前で用意するんだ? バーチャルマシンでも作る気か?
タスクシステムを(アカデミックな方向に)発展させていくと、 gotoタスク: 引数で指定した番号のタスクにジャンプする。 ifタスク: タスクの評価が非0の時、引数で指定した番号のタスクにジャンプする。 とかになるぞ。変だろ。
C言語には、プログラムを上から順番に実行していくというタスクシステム的な仕組み以外にも、 if文があったり関数に引数が指定できたり、型があったりと、 目いっぱい便利な仕組みが用意されているのに、 なんでわざわざバーチャルマシンもどきのタスクシステムを自分で実装しようとするんだ? そんなことするから、C言語に元から用意されていた、 構造化制御とか型とか関数の引数などの便利な機能が使えなくなるんだろ。
技術的に低すぎる馬鹿みたいな例をあえて出して 釣ろうって手段かね。 釣りだとしてもいまいち・・・
タスクシステム自体がバカみたいな例そのものだとおもうが。 既存のものを使わずに自作して周囲からの恩恵を受けられなくなるという。 そういう趣味性を否定するわけではないが。
タスクシステムって、基本は動的関数呼び出しがキモで、それって、 OSに対するアプリとか、 ブラウザに対するプラグインとか、 ウィンドウマネージャに対するウィンドウとか、 そういった、後から拡張を要する場合に利用される手法なんだよ。 単一アプリのゲームの開発に持ち出すのはナンセンス。 増築の手法で一戸建てを立てるようなものだね。 ディアゴスティーニじゃないんだから。
>>47 ネタにマジレスだが
関数ポインタもC言語に元から用意された便利な機能だろ?
タスクシステムの実装っていかにもC言語的(というかthe spirit of C)なんだが。良くも悪くも。
古典的タスクシステムなんて古きよきUNIX時代のC言語のコードを見てる気分になる。
これこそCのプログラムって感じ。
「プログラマを信頼する」というCの精神と同じ思想で
信頼されたプログラマ、つまりタスク仕様上の「落とし穴」を正しく理解したプログラマであれば
その穴に陥らずにプログラムを書けるはずである、といういかにもな精神。
ネタじゃないなら、HSPとか使う方が君には合ってる気がする。
ネタにマジレスしてくれる優しい人なんでしょww 引数君のレベルが低すぎて話が噛み合ってないが
>>45 > というか、普通にかけばいいじゃん。
それはお前にとっての普通だろw
一般のCプログラマにとっては関数ポインタ使った方法もC言語の
言語仕様で想定された"普通"の方法の一つなんだけど。
お前にとっては「そんなの使ったら僕理解できない!型とか関数の引数などの
便利な機能が"僕には"使えなくなる(涙)」ってだけw
その程度で「OSでも作るのか?バーチャルマシンでも作るのか?」って涙目w
抽象化はメリットがなければじゃまなだけ。 メリットが明確じゃないから使わないんだろ。 メリット感じてるやつだけが使えばいいんだよ。
「タスクシステムでゲームを作る」って言うよりは、 「有限状態機械を組み合わせてゲームを作りたいけど、 使用する言語にコルーチンのような機構が無いから、 同じような物を自前で実装するためにタスクシステムを使用する」 っていうのがタスクシステムを使う本来の動機だと思う
正直最初に実装した人は少なくともそんな小難しく考えてないだろう。
・俺がメモリを管理する!がしたい
・状態(データ)と処理(動作)を一まとめに出来たら直感的
・それらの一まとめを個別に自由に追加・削除したい。
以上の要求にC言語で応えようとすると、リスト構造を純粋に作るか、
>>2 で示すような(リスト+配列)/2のような構造がぱっと思いつくのでは?
>>57 つ
>>43 それもう結論出てるから。
今はメリット・デメリットの比較までたどりつけない子がイジメられてるだけww
でも誰も語れない不思議
FSMとコルーチンってなんか特別な関係があるの? コルーチンって状態遷移に対してメリット思いつかないんだが
>>61 でも誰も"僕の理解できることを"語れない不思議
>>62 コルーチンをサポートする言語のVMをFSMとして見るなら、コルーチンの単位を一つの状態として見れるかもね。
そもそも用語の次元が違う話だけど。
それでも語らない不思議
>>59 その動機ならalloc系をラッピングしたほうが自然では?
>>55 >一般のCプログラマにとっては関数ポインタ使った方法もC言語の
>言語仕様で想定された"普通"の方法の一つなんだけど。
関数ポインタ?使えば良いんじゃね?
タスクシステムが糞といってるだけで、関数ポインタが悪いとは言ってないんだが。
タスクシステムのまずい点は、言語レベルで初めから持っているはずの、
「プログラムは上から順番に実行される」を自前で実装しちゃってる点。
考えてもみろよ。結婚式のプログラムだろうが運動会のプログラムだろうが、
プログラムと名のつくものは大概順番に実行されていくものだろ。
コンピュータだって機械語レベルでそうなってるし、C言語以下の低級言語ですら、それぐらいの機能は持ってる。
それを何で今更自前で用意する必要がある?
そんなの独自にやろうとするから、C言語既存の、
「引数受け渡し」や「型」や「構造化制御」との親和性が低くなる。
なんでも言語標準の機能を使えとは言わないが、
あまりにも基本的な部分を覆すのはどうかと。
もちろん、実行順序を動的に制御したい場合もあるだろうけど、 そういう汚い部分は、個々のモジュール内に閉じ込めて、表に撒き散らさないようにした方が賢いと思うが。 Zソートを例に挙げると、それは描画エンジン内でこっそり行えばよい話で、 タスクシステムみたいに変に統合しちゃって、猫も杓子もそれつかえってのは無茶。
>>62 >FSMとコルーチンってなんか特別な関係があるの?
>コルーチンって状態遷移に対してメリット思いつかないんだが
これも良く引っかかる罠なんだが、
コルーチンはスタックフレームの状態が保存できるから
スタックフレーム上のプログラムカウンタを状態とみなすことで状態変数をなくすことが出来る。
しかしそれは状態が独立している場合のみに有効で、
状態と状態が連携をとる場合は、状態変数は消せない。
例)
if( stateA && stateB ){}
else if( !stateA && stateB ){}
else if( stateA && !stateB ){}
else{}
FSMの中身が上記のようになる場合は、コルーチンを使っても状態変数は消せない。
つまり、あんま意味無い。
状態変数の数だけコルーチンは必要なんだけど、状態と状態が連携をとる場合、
各コルーチン同士で状態のやり取りをする必要が出てきて、結局状態変数を復活せざるを得ないってこと。
では、状態が独立している場合にはコルーチンが有効かというと、実はそうでもない。 なんでかっていうと、状態が独立しているのなら、初めからプログラムはそんなに複雑にはならないから、 ベタで書いても大したこと無いから。 同期の粒度が大きければコルーチンは便利かもしれないけど、 一フレーム毎に同期を取るゲームでは無用かな。
古典タスクシステムの
メリット:
多数のFSMを逐次実行するための一手段になる
簡単な古典TS(
>>2 の「最も基本的なTCBの構造」だけで済むTS)ならコードはシンプル
MVCのMとCが分離されているため、タスクシステム(C)を実装すれば、
後は動的に実行される関数(M)の実装に専念できる
デメリット:
逐次実行するFSMの数が少ないならわざわざ使う必要が無い
各TCBのワーク領域割当に苦労する
ワーク領域を動的確保にする場合はガベージコレクトの問題が出る
簡単な古典TSには、TCB間の情報・イベント伝達や、親子関係を持たせる機能などが無い
これらを実装しようとすると、気持ち悪いコードになる可能性が高い
(TCBの逐次実行がウリなのに実行順序を無視したり、グローバル変数にアクセスしたり)
設計・実装にプログラマの良し悪しが出る
TCBから呼ぶ関数内でMVCのMとVを分離せず書くと、今時のプログラミングでは混乱しやすい
(特に、直接API(DirectX等)や、APIが比較的剥き出しになっているラッパーライブラリを使う場合)
>>70 > 簡単な古典TSには、TCB間の情報・イベント伝達や、親子関係を持たせる機能などが無い
> これらを実装しようとすると、気持ち悪いコードになる可能性が高い
今時のタスクシステムにしろUnreal EngineとかのActorにしろ、今時のゲームエンジン系で
イベント伝達や親子関係とかをサポートしてないものを探すほうが難しいな。
つまり実際に製品規模のゲームを作るうえでは必須な機能だ。
ゲームロジック部分は嫌でも土臭くなる部分が出てくるし、これはタスクとかActor
を使わなければ綺麗に書ける、というものでもない。
「いや、俺はそんなもの使わずに製品規模のゲーム作る方法知ってるよ」って天才がいるのなら
CEDECなりGDCなりで発表すればきっと世界中のゲームプログラマから賞賛受けるよ。
>>70 逐次実行がタスクシステムの売りっていわれても、そもそもプログラムは基本全部逐次実行だ。
ますますfor(;;){ task1(); task2(); task3(); }で問題ないな。
>>71 それらはゲームエンジンという制約からくるものだ。
ゲームのメインロジックは泥臭くなるというが、それはゲームエンジンを使おうとするから。
ゲームなんて、入力→状態更新→描画 を永遠と繰り返すだけなわけで、
普通に書けばそんなに泥臭くならない。
WindowsアプリがWindowsの仕様にあわせるために窓周りが泥臭くなるのと同じ理由で、
ゲームエンジンでゲーム作ると泥臭くなる。
増築の手法で一戸建て立てようとしているのだから当たり前。
>>72 >ゲームのメインロジックは泥臭くなるというが、それはゲームエンジンを使おうとするから。
>ゲームなんて、入力→状態更新→描画 を永遠と繰り返すだけなわけで、
>普通に書けばそんなに泥臭くならない。
UEエンジンやFarCryエンジン、タスクシステム使ってる時代遅れの開発者達に
「ゲームエンジンなんて使わずに普通に書け」と教えてあげなきゃ!
世界中のゲーム開発者が気づかなかったことを気づくなんて天才だね。
・・・紙一重にはかなわんww
今時ゲームなんて作ってる奴はもとより時代遅れなのかもしれないよ? あーあと、親子関係とかは(何の親子関係かは知らんが)実装しても良いと思うよ。必要ならね。 それをタスクやactorに結びつけるのは糞の極みだが。
>>74 >今時ゲームなんて作ってる奴はもとより時代遅れなのかもしれないよ?
ゲーム製作技術なんて時代遅れの板では天才様のレベルには合わないようですよ?www
ID:7lwJSlZL、そんなに怖がるなよw ID:4JKBI3JGは少なからず理屈で出てるんだから、 お前が逃げると、見てるほうとしては物足りないぞ。 もっと頭を使わないと立派な大人になれないぞ。
>>2 の構造ならポインタインクリ、デクリできるからじゃね?
あとなんかヒープ領域をリアルタイムでこまめに確保するのってなんかCっぽくないと思えるように最近なってきた。不思議。
78 :
77 :2010/01/01(金) 11:01:41 ID:FSN4cjeN
イベントドリブンとgotoの違いがわかりません
>>76 >>71-75 の流れ見ればID:4JKBI3JGの完敗にしか見えんが
ゲームエンジン否定して毎作エンジン自作しろってか?正気とは思えん。
ID:4JKBI3JGが勝ってるように見える人間の理屈を教えて欲しい。まじで。
なぜタスクシステムをゲームエンジンと読み替えるの?
ゲームエンジン(タスクシステム含む)なんて糞ですよ。 ゲーム用ライブラリ、これで十分。 でも俺もゲーム用ライブラリ作って商売しろって言われたら、 マーケティングの都合上、そりゃゲームエンジン(フレームワークみたいな奴) にするけどな。使い勝手とかじゃなく、身の保身のためにな。 ゲームのメインループは各モジュールに制御を分配する、いわば心臓みたいなもんで、 そんなもんを安々他人や他社に明け渡す気にはなれん。 裏を返せば、他人の心臓は握りたいってことだが。 そりゃあ、誰だって甘い汁すいてぇよなぁ。
あーだから、UEエンジンとかも、ライブラリ的に気軽に利用できる部分はどんどん使えばよいと思うよ。 ただ、actorとかマジで要らないよね。 なんていうか、トラップにすら思える。
>ゲームエンジン否定して毎作エンジン自作しろってか?正気とは思えん。 だから、なんでゲームエンジンが必要なんだ? ゲームエンジンが無きゃゲームが作れないのか? ゲームの種類は千差万別でやらせたいこともまちまちなのに、 汎用なゲームエンジン作ったってしょうがないだろ。てか出来ないだろ。 なんですぐそう統合したがるのかが分からん。 個々の機能ごとに、たとえば、 描画エンジンとか当たり判定エンジンとか、そう言う単位で用意すりゃいいだろ。
タスクシステムの利点は、ゲームプログラミングの学習の段階で ゲーム中のオブジェクトを抽象化する練習が出来ることだと思う ゲーム中のイベントやキャラクター、エフェクトを どのようにオブジェクトに分割して実装するか、とか考える練習になると思う まあ、同等の事が出来るなら、特に今ではタスクシステムである必要はないけど
今のゲームプログラマって抽象化ができないんだよね
しかし、抽象化に限界を感じるのも事実かも。特に汎化。 車輪の再発明はするなとか、再利用性とか・・・。
10年以上タスクを使ってたおれが、いま非タスクでゲームを実装してるよー! 正直どっちでもいいよとおもった。
たしかにどちらでも動作するので プレイする側からしたらどうでもいい話 しかし、抽象化のできないマと話をするのは嫌
タスクシステムはともかくゲームエンジンまで不要と言い出したのか。 昔のタスクスレでOOP不要とかクラス不要と言ってた人と同一人物っぽいな。
タスクシステムもオブジェクト指向も、抽象化して複雑さを管理するための メタファーでしかないんだけどな。 自分ひとりで作れるぐらい単純なレベルなら抽象化もしない方が見通しいいかもしれない。 プログラマ2〜3人ぐらいの小さなプロジェクトでも無くても作ることはできるだろう。 次世代機の開発者数百人ってレベルで「普通に作れ」って何も基底システム用意しないのはさすがにありえんけど。
タスクシステムが制御構造のいったい何を抽象化するというのだろう。 俺からしたら、いわゆるif文とかで普通に制御する構造化制御のよりも、 抽象度が落ちているようにしか思えないのだが。 ノイマン型コンピュータの逐次実行性を抽象化するもの→VM ってこと?
ifで制御とか、超具象的じゃね?
TCBは構造体やクラスだからデータの抽象化。TCBのリストはデータの抽象化
TCBリストのイテレーションはループ処理の抽象化
各TCBから呼び出される関数はサブルーチンの抽象化
つまり、タスクシステムはデータのリストから各サブルーチンを実行するループ処理の抽象化
これだけだと、VMの命令リストと同じように見えるけど、
最大の違いは、VMの命令リストは配列なのに対して、
タスクシステムのTCBリストは連結リストである点
TCBは連結リストで管理されているから、連結リストのメリットとデメリットを受ける
オブジェクトが頻繁に追加・削除されるゲームでは連結リストのメリットが生かされる
逆に言えば、連結リストの恩恵を受けられないようなゲームでは、
>>45 の言うようにタスクシステムを使う必要がない
思ったとおりに動く この快感を知らない理論派プログラマは去っていい
>>97 プログラマの思ったとおりに動かないプログラムって何だ?
AIが知性持って反乱でも起こすのか?
>>96 俺が言いたいのはそう言うことじゃなくてさ。
タスクシステムも抽象化は抽象化なんだけど、
勝手手前な抽象化だから、C言語そのもののもつ抽象化と相性が悪く、
逆に退化してんじゃねーかって。
たとえば、タスクのプロシージャに引数が自由に指定できなかったり、
ダウンキャストが発生したり、
タスクの実行順をタスクの追加順やプライオリティーで指定しなければならなかったり。
タスクシステムも抽象化には変わりないんだけど、
C言語に元からある抽象化機能をスポイルしてしまうから、
トータルでは退化している部分の方が多いような。
タスクのプロシージャに自由に引数を指定でき、
書いた順に実行され、ダウンキャストの発生しない
タスクシステム誰か作れや。
タスクシステムって数々の苦行を強いるくせに、 皆が認めるメリットって、「実行順序を動的に制御できる」だけだろ。 なんか割に合わない。
>>99 >C言語に元からある抽象化機能をスポイルしてしまうから、
C言語に元からある抽象化ってまさかifとかswitchのことを言ってるの?
>>100 皆って誰よ。
リンク先には5〜6個メリットが上がってるじゃん。
>>101 >C言語に元からある抽象化ってまさかifとかswitchのことを言ってるの?
型とか関数の引数とか構造化制御とか。
ちゃんと
>>99 で書いてるじゃん。勘弁してよ。
>リンク先には5〜6個メリットが上がってるじゃん。
これのことですか?
「ゲームを開発するのに適したシステムで開発できる」
勘弁してくださいよ。
君、ノイマンがどうのとか前スレから言ってた奴だろ
ゲームが作れないあの子は昨夏から全く成長がないのだな つまりセンスがないというか、頭が悪い
>>99 つまり、タスクシステムは実行コストが大きくて可読性が低く、デバッグが難しいということだな
まあ動的言語でやってる事をC言語で強引に実装してる感じは否めない
>>99 >タスクシステムも抽象化は抽象化なんだけど、勝手手前な抽象化だから
半年も経過したっちゅーのに相変わらず攻撃対象を明示せずに
「ぼくメリット分かんない分かんない癇癪起こるムキー」とか
性懲りもなく君は未だにやってるわけだが
一体どこの誰の自称タスクシステムの話をしているのか、それをどういう状況に
適用しようとしたのか。そういうことをこれっぽっちも書こうとしないな。なんでだ?
書けないんだろ。ゲーム作ったことないから。違うか?
どういうタイプの面子と、いつの時代、何を使って、どんなもの作ろうとした?
配当された人、時間、ツール、ターゲットハードウェア、etc。書いてみ?
>>107 タスクシステムが劣勢になると、とたんに個人攻撃をしだすな。
毎度毎度同じパターン。スレを荒らしてうやむやにする。もう嫌になる。
前にも言ったが、俺はハード屋だ。
逃げんのかよ。女々しい奴だな この程度の煽りくらいノイズフィルターで除去しなさいな
ハード屋ねー。ふーん。で、何作っておまんま食ってるの。
あんた組み込みシステムの話からも逃げてたよねぇ。何作ってんのよ。
>>2 の基本は、極めて平凡で古典的なtime triggeredなリアルタイムシステム
cyclic executiveの一種だと説明してやったのに、君は
「何の話かわかんなーいメリットわかんなーい」って知能障害起こして逃げたよねぇ
で、昨夏から成長したのハード屋さん
というか、本職の奴がこんなスレに居たらそりゃタスクシステムがそれだけおかしいってことだろ。
何の様でくるんだよ。潜在的な問題意識があるから覗くんだろ。
別に本職の奴は来るなと言いたい訳じゃねーぞ。
問題意識のある奴はどんどん書き込めばいいだろうし。
>>109 ごめん、これ本当に真面目に俺はハード屋なんだ。
ソフトウェアの知識が多少あるのは、大学がそっち系だったから。
日本で飯食ってくこと考えて、ハード屋に鞍替えした。
だから、何を期待されたのかは知らないが、お前の期待にはこたえられそうにない。
あれだね、対岸の火事だからひょうひょうと書き込めるってのもある。
はぁ。。。ため息しか出ない。
>>110 自社製品に使われる基板の設計をする部署に配属されてる。
>>2 は俺に言わせりゃ、単に関数並べときゃいいのに、だ。
アロケーターが括り付けてあるのもキモい。別で用意すりゃいいのに。
なんで統合したがるんだろう。
ゲーム作ったことありません>< でもタスクシステムとかいうものが気になって気になって仕方なくて とにかくこれが憎い(怒)気に入らない(怒) こういう季節性の周期的な発作を呈する自称ハード屋さんに 何をどうしてあげればいいのかなー。ほんとわかんなーい さっさとハロワ行って、おまんま食べれるようになって。 批判の対象を明確に。何をどういう状況で使ったら糞でした(ペッ と書ける生活のゆとりが出来たら戻ってきてください。そんな感じ
>>113 あー、すまん
> アロケーターが括り付けてあるのもキモい。別で用意すりゃいいのに。
> なんで統合したがるんだろう。
んとね、それは
>>2 のCodeZineの記事はゴミだから。気にするな
天下り式になんかそんなことやっちゃった学生さんの文章だから
深く考えちゃ駄目。読み流せ。大人なら
でも余計な機能を取っ払った純粋なタスクシステムって、 タスクを順番に逐次実行していくだけの代物だろ。 いまさらそんなもの本当に必要か? そこが面白いんだよ。
必要だと言う奴には、理由を聞きたいね。
スケジューリングしないスケジューラ
タスクシステムなんて伝統工芸みたいなものだろ
>>111 本職のプロが仕事で使ってるタスクシステムを
素人の君が何で「使えないもの」と結論付けられるのかわからんな。
「"自分には"使えない」という意味で言ってるのか?
あるいはタスクシステム使った市販ゲームなんて都市伝説、と信じてるとか。
「本職のプロが仕事で使ってる」って便利な殺し文句だよな。 COBOLだってAdaだって、本職のプロが仕事で使ってる。
>>121 COBOLもAdaも使えるじゃん?
ボーイングやF-22の制御ソフトウェアはAdaらしいし。
2009年現在、フォーチュン500の90%の企業はCOBOLプログラムを使用中、らしいし。
ホビープログラマの選ばない言語は「"ホビープログラマにとっては"使えないもの」
になるという理屈かな?
「便利な殺し文句」の説明よろ!
また香ばしいのが沸いてきたな
あーだから、ID:ob/tnXgt はタスクシステム使ってればいいと思うよ。
>「便利な殺し文句」の説明よろ! これはあれだな、ここではプロが使ってるとか、そう言うのは誰も求めてないのよ。 タスクシステムを使うと何がどういう理屈でどうすばらしいのか、そういうのが求められてる。 また香ばしい展開になりそうな予感。
だからー、あの人も使ってるから安心〜みたいなのは要らないのよ。 エンジニアなんだったら理屈で説明しやがれ。
理屈で説明しなければならない理屈を説明するのですか?なにそれ。 もし、理屈で説明しないなら、それはその人の主観に過ぎない。 主観は求められていないので、「理屈で説明しない」、は求められてない。 よって、理屈で説明することが求められてる。 ほら、お前らの好きな背理法だぞ。
あいかわらずハード屋さんは逃げてばっかりだな。
>>120 を理屈で説明してみなって。
「ハード屋なんでソフトのこと聞かないでくれる?」って逃げ回ってるけど
"エンジニア"は理屈で説明するって自分で言ったよな。
それとも「僕はハード屋だけどエンジニアじゃなくて奴隷です」というオチ?ww
ソフトのこと聞いてくれてもかまわないけど、経験は無いから、
経験談とか聞かれても、それは答えられない。
逃げないってなんだ?うその経験談でっち上げることじゃなだろ。
>>120 >>116
だいたい、逃げるな逃げるな言われるが、何が求められてるのかさっぱり分からないんだが。 ようは煽りだろ。 もうそういうのもいらねーんだよ。
逃げないってあれか?ゲーム業界に転職して同じ土俵に立てってか? そ、そこはさすがに逃げるだろー
>>131 >>120 と
>>116 に何の関連も無いが。
んで、別にソフトのこと聞いてないし。
「プロも使ってる手法を素人が使えないっていうのはどんな理屈で?」
と聞いてるだけだ。
こんな簡単な質問がそんな難しいか?
話題そらして逃げまわらずに答えなよ。
使えないとは誰も言ってないだろ。メリットが無いと言ってるんだ。 タスクシステムでゲーム作ることは、そりゃできるだろうよ。
>135
使えないもメリットが無いもたいして違わん。主語が無いから。
「自分にとって」なのか「全ての人にとって」なのか、主語はどっちだ?
前者なら誰も疑問を持たないよ。「ああそうなの」って思うだけ。
後者なら
>>120 の質問に答えな。
>>136 後者だ。
「プロも使ってる手法を素人がメリットが無いっていうのはどんな理屈で?」
メリットが無い理屈は
>>116 プロが使ってる理屈は、その人が無能か、もしくはその人の趣味か、社風かなんかだろう。
もともと、アンチはプロが使ってることに意味は無い、という見解で、だからこそアンチなんだから、
そこに理屈を求めるのは擁護派の仕事だろ。
プロがタスクシステム使うのには理屈がある→タスクシステムのメリット ってことだからな。
だからさっきから散々、「プロが使ってる」の理屈を説明しやがれ、と言ってんだ。
>>137 >メリットが無い理屈は
>>116 その理由は「ソフトの経験がないハード屋が想像した理由」だろ。
自分から「経験無いんでわかりません」と明言してるのに、
メリットが無い判断だけできる理由の説明をしろと言ってるの。
>だからさっきから散々、「プロが使ってる」の理屈を説明しやがれ、と言ってんだ。
タスクシステムを使った製品があることは「主張」じゃなく「事実」だから。
理由の説明とか必要ない。
「メリットが無い」という「主張」とは違うことを理解しろ。
>メリットが無い判断だけできる理由の説明をしろと言ってるの。 現に、これだけスレが回ってて、いまだにメリットが出てこないだろ。 これも事実だぞ。
何かを主張する以上、それと矛盾する事実がある場合は筋の通った説明をする義務があるな。 じゃないと「その主張は間違い」ということになる。 >プロが使ってる理屈は、その人が無能か、もしくはその人の趣味か、社風かなんかだろう。 って判断を >ソフトのこと聞いてくれてもかまわないけど、経験は無いから、 って人ができることをおかしいと思わないのかね。
>>139 事実は「"ソフトの経験の無いハード屋さんに理解できる"メリットが出てこない」
だ。「"全ての人の"メリット」じゃない。
なんで「自分一人」に理解できないことは「全ての人」にとっても理解できないこと、と考えるのかね。
その分野の第一人者でもこんなおこがましいこと考えないのに、経験が無いのでわからんと明言してる分野で。
>何かを主張する以上、それと矛盾する事実がある場合は筋の通った説明をする義務があるな。 そっくりそのまま擁護派に言いたいな。 なんでいまだにメリットが書き込まれないんだよ。 この、今まさにここで起こってる目の前の矛盾は無視ですかそうですか。 > >プロが使ってる理屈は、その人が無能か、もしくはその人の趣味か、社風かなんかだろう。 > って判断を > >ソフトのこと聞いてくれてもかまわないけど、経験は無いから、 > って人ができることをおかしいと思わないのかね。 ここ一年ぐらいタスクシステムスレッドにへばりついてて、 結局メリットが書き込まれなかったって経験ならあるぞ。
>>142 >結局メリットが書き込まれなかったって経験ならあるぞ。
過去一年のスレの中に"メリットが書き込まれなかった"?
本当だな?
>事実は「"ソフトの経験の無いハード屋さんに理解できる"メリットが出てこない」 >だ。「"全ての人の"メリット」じゃない。 その、俺には理解できないメリットってどこに書き込まれているの? ぜひ読みたいのだが。 あー、一個だけ面白いのがあったな。 タスクシステムは無能下請けを閉じ込める檻ってのがな。 別にタスクシステムである必要は無いと思ったが。 てか、俺がもしゲーム業界の人間で、そんで、タスクシステムにメリットはない、と言ってるとしたなら、 それはすんなり受け入れられるってこと? さっきから俺が業界人でない事ばかりに「あえて」焦点を当ててくるから、 そう言うことになると思うんだけど。
>>144 >その、俺には理解できないメリットってどこに書き込まれているの?
>ぜひ読みたいのだが。
>あー、一個だけ面白いのがあったな。
こんな矛盾だらけのことを、何の疑問も持たずに発言できるなんて、ある意味才能?
何とかには勝てんっていうけどほんとだな。 矛盾を知覚できない人に矛盾を突きつけても時間の無駄だ。 君の勝ち。おめでとう。 時間の無駄だし眠いので寝る。
いいから、早く俺には理解できないタスクシステムのメリットが 書き込まれているところ教えろや。 言っとくが、「タスクシステムは無能下請けを閉じ込める檻」ってのは タスクシステムのメリットではないぞ。 単にタスクを逐次実行するだけの単純なタスクシステムにはそんな効能無いからな。
王様は服の存在を一般市民に証明することをあきらめられた。
ID:iYQ9vwhm顔真っ赤ワロスw
ごめん(´・ω・`)ショボーン間違えた。
誤:
>>150 正:ID:9ahDY9xP顔真っ赤ワロスw
>>148 裸の王様ってハード屋だったんだ。
ん?引数君=ハード屋=裸の王様?
あれ、このスレのアンチってもしかしてハード屋一人なの?
いつもピンチになると決まって単発IDの支援があるけど
これも自演?
もういいからソースコード書けよ
結局ID:iYQ9vwhmって質問はぐらかすだけで何も答えてないよな。 誰が見ても詰んでるんだから、逃げまわらずに降参すればいいのに。 王手から千日手で逃げ回ってるみたいな展開は往生際が悪すぎ。
タスクシステムって言うのは、わざと非効率かもしれない方法でゲームを作らせて、 効率的なゲームの制御方法をプログラマに考えさせる切っ掛けを作るためにあるんだよ! 現在、古典タスクシステムはゲームプログラミングのための通過点でしかない 現在のメリットよりも、現在のデメリットを考える方が有用だと思う (過去のメリットは考えてもいいけど、出つくしてるだろうし、再確認程度で)
>>152 おいおい、さすが一人ってことは無いだろうww
って昨日からハード屋しか書き込んでないな。
いいのか?アンチはみんなハード屋みたいな
お頭の足りない子扱いされちゃうぞ?
もっとがんばれ!アンチ共!www
>>155 あんたは古典的タスクシステムだけじゃなく
今風のタスクシステムもゲームエンジンもOOPも理解できないんだろ?www
しかしあんたほんとにハード屋か?
抽象化の能力の無い人間がエンジニアなんて無理だろ。
ほんとはソフト屋ですらないニートがソフト屋のふりしてたけど
ボロ出しすぎでこんどはとっさにハード屋って嘘ついてんじゃない?ww
>>155 いや、マジなやつもいるでしょw
このスレで必死になってる信者とかw
159 :
名前は開発中のものです。 :2010/01/11(月) 14:11:01 ID:EIFVML7c
煽り屋がいるからこのスレではタスクシステムのデメリットを指摘しない方がいいよ
煽られるのはデメリットを指摘したからじゃなくて
>>137 みたいに「全ての人にメリットがない」なんて
明言しちゃう馬鹿だからでしょ。
自分から悪魔の証明にはまりこんで、証明求められて逃げ回ってりゃ
イジメの対象になるわな・・・
論理的に隙だらけのこと言ってりゃ、サドっけのあるいじめっ子が
よってきて面白おかしくイジメられるのは世の常。
全ての人にメリットが無いってどうやって証明するつもりなんだろう? 「僕にメリットが理解できないものは全ての人にとってもメリットが無いはず」 と考えてるみたいだけど。 あれ?この考え方って自己と他者の区別がつかない自閉症児特有の思考だぞ? ハード屋は発達障害の疑いありだから一度医者に見てもらったほうがいいぞ。まじで。
ID:9Rd9VjpK と ID:DYplkFdV は書いたが他は知らんがな 俺は前スレで色々ヒントやキーワードを彼に提供してきたのでイジメっ子ではない。 昨夏、女の子の体の仕組みを知らない童貞君のためにスッピン生娘のパンツの中を 見せてやったら「嘘だ!ボクが夢想してたモノはこんなものじゃない!隠すな!」 と童貞君は怒ってしまった。 童貞君は風俗雑誌に掲載される厚化粧ババァ店のシステムが提供するサービスに 翻弄されていたので真実を見せてあげただけなのに。。。 さて、何ヶ月も経過したからそろそろ成長して大人になったかなと思ったら、なんだ 何も変わってねーやと。 世の中のモノ作りの大半が様々な制約条件の下で行なわれる現実を彼は理解しない
これだけ隙だらけで学習能力の無い、その上反発心だけは強い 天然の虐められっ子は貴重なんだけどな・・・ からかえばからかうほど墓穴ほって自爆していくのが何とも 嗜虐心をそそる。
別にお前らが保守しなくてもこのスレは落ちないから安心しろ
頑張って頑張って、相手を弱く愚かに想定しないと、 レスを返すこともままならぬタイプの人間がいる。 正気の人間は、文意に対し、簡潔にレスを返すが、 そうでない人間は、まず必死で言葉を並べてから、 それにまぎれさせる格好でおずおずとレスを返す。
えっ
>>165 まったくその通り。正気の人間なら簡素に答えられるよな。
自分で宣言した「全ての人にメリットがない」とやらの証明をww
君は弱く愚かじゃないから必死で言葉を並べて逃げたりしないよねぇ
>>167 自分で宣言した?
簡潔に言おう。お前は何と戦っているんだ?
\ /  ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"〜〜``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
で、タスクシステムのメリットは数百人程度の大規模開発に発揮されるわけ? 初代タスクシステムの実装チームはどう見積もっても一桁だと思うけど
上の方でも出てた、MVCの考え方でモデルとコントローラを分離してる点だけを見れば、 モデルを多人数で実装するような大規模開発には親和性があるように見える ただ、モデルをTCBから呼ばれるグローバルな関数群で実装するから、 百人規模だと関数の管理が大変だと思う 今の大規模開発なら、モデルはスクリプト言語で実装したりするんじゃないかな
背伸び大好きのメリット君と愉快な仲間たちへ もう少し身の丈に適合した話題を振ってはどうか。 ところで初代タスクシステムって何だい?初耳だな。 数百人程度の大規模開発って何だい?内訳書いてみ 爪先立ちは無用だから。さっさと君たちの土俵に案内してくれ。 どこの誰の自称初代タスクシステムを、どういう状況に適用し 何がどうなったって?
>>170 初代タスクシステムに限定の話なら
まぁ多くても一桁ぐらいだろうな。
>>172 誰に喧嘩を売ってるのか知らんが
初代タスクシステムっていえばタスクの名前をゲーム業界に広めたギャラクシアンのあれだろ。
まぁ今のゲーム業界でタスクシステムっていえばゲームオブジェクトに
定期的に処理を回す”何か”のことだろうけど。
タスクシステム、ジョブディスパッチャ、アクターモデル、コマンドキュー・・・
会社毎にいろいろ方言あるけど、日本のゲーム業界ではタスクシステムが一番
知名度あるかもな。
少なくとも「これはいわゆるタスクシステムで」って言えば大多数のゲームプログラマ
は何をしたいシステムなのか理解してくれるし。
初代タスクシステムとか。。。まーた胡散臭いワードが出てきたわけだが
非プリエンプティブな処理単位の実行待ちキューを中核とする
演算リソースの分配(時間リソースの分配)を行なう低層の機構は
多くのゲームに共通するわけだが、こういう低層の仕様策定・実装に
関与する人間というのは、どんな巨大プロジェクトだろうが数人なわけで。。。
>>170 は一体何を言ってんだって思わね?まるでわかんないんだわ。俺
ゲハ民の常識なのかしら?
【訂正】 “仮に”非プリエンプティブな処理単位の実行待ちキューを中核とする 演算リソースの分配(時間リソースの分配)を行なう低層の機構の話だとして こういうのは多くのゲームに見られるわけだが だな
それとギャラシアン云々だが あれ活性OBJの連結リストなんて使ってねーぞ ギャラクシアン起源説なんて信じてんのは若年層でしょ 都市伝説
古い例だがウォークマンがポータブルプレイヤーの代名詞になってたり ファミコンが”ファミコンショップ”とかゲームの代名詞になってたり 一番最初に出てきた物の名前がその後の類似品の代名詞になるのと同じ感じかね。 タスクシステムも、後発の類似品に対する代名詞的な使われ方の方が多いかも。 十年以上ゲーム業界にいるが、自称タスクシステムってものはよくお目にかかる。 でもギャラガ時代の古典的タスクシステムは未だに現場で見たこと無い。
>>177 そうだったっけ?
Beepか何かの開発者インタビューで話が出てたんじゃなかったかな?
相当昔のことだから記憶があいまい。
ギャラクシアンのパクリ作るためのリバースエンジニアリングでコナミとかセガとか
業界中に広まった技術とかいう話も聞いたことあるが。はて真相は何だろうな。
真相はアーケード基板のROMに入ってる たしか暗号化はされてなかったから抜けばすぐ読めるだろ あとタスクシステムという言葉は比較的新しい。70年代末はない。 それよりもずっと後 ●須氏は「タスクシステム?当時はそんなの聞いた覚えがない」 とおっしゃってる。切れ者だからド忘れはないよ
ほー、そうなのか。 ではタスクシステムの命名はどこ発なんだろうな。 10数年前のスーファミ末期には既にあった気がするが 70年代から現役の開発者ってもう現場には居ないから 聞きようが無いな。
単に自称ベテラン開発者のフカシが広まっただけ説
何だかひねくれたのがいるな 何か嫌なことでもあったのか?
>非プリエンプティブな処理単位の実行待ちキューを中核とする >演算リソースの分配(時間リソースの分配)を行なう低層の機構は >多くのゲームに共通するわけだが、こういう低層の仕様策定・実装に >関与する人間というのは、どんな巨大プロジェクトだろうが数人なわけで。。。 CPUリソースの分配・・・なるほど、 for(;;){ task1(); task2(); task3(); } ですね。
>>184 昔ベーマガとかMSXマガジンとかに載ってたゲームは
みんなそんな感じだったな・・・
・周期的に処理を実行する。 ・周期的なプランニングに従い処理を分割する。 をタスクシステムと定義するなら、ほとんどのゲームはタスクシステムだ。 そんなことを言ってなにが意味があるんだ。あほくさと俺は思う。
>>186 そのほとんどのゲームに必要な処理を作るプログラマは
作ったクラスなりライブラリなりに命名しなきゃいけないわけで。
それが「タスクシステム」って名づけられることが多いってだけでしょ。
そんなにカリカリするような問題とは思えんが。
多分ね、○○システムっていう命名が大げさすぎるんだよね。 中二病的であり、なにかこう、突っ込みいれてみたくなってしまう。 GoFでもなんでもないささいなただのコーディング上のイディオムに対し、 俺俺○○パターンって自分で名づけちゃってる奴をみたり、 GoFの○○パターンを"拡張"したものと呼べないだろうか、などといい始めてしまってたり。
何か分かりやすい別の命名があれば提案して見ればいいんでない?
それが無いのでみんな思い思いに名づけてるんだろうし。
ゲーム業界ローカルだけど、この手の中ではタスクシステムが
一番知名度あるからお手軽なんだと思う。
>>174 みたいな感じで。
分かりやすい別の名前なんてものがつきようがないことこそ問題。 あやふやで、あいまいで、規模の小さいささいな何か、と呼べる。
何が問題なのかよくわからんが・・・ ささいで小さなことなら気にしなければいいんじゃないか? 今のゲーム業界のプログラマはシェーダとか物理エンジンとか 流行の技術には興味あるけど、タスクシステムの名前とか 小さいこと気にしてる人はあんまり居ないのかと。
いや、別の名前ならよかったのに、と言ってるのではない。 名前が付くほどの明確な合意が無い、明確な役割がないと言ってる。 その程度のものでしかないのが問題、今それに大層な名前を与えてるのも問題。 たしかに、どうでもいいといえば、その通り。完全にどうでもいい話題。
タスクシステムなんていう便利すぎる言葉があるから本来なら ○○システム、○○パターンと名づけられるはずだった手法が 全てタスクシステムという名前で呼ばれてしまって 技術交流の障害となっている タスクシステムは日本の技術力向上の障害となっている。l
技術の向上より先に一枚のテクスチャに執着するからその理論は成り立ちません
タスクシステムは日本の技術力向上の障害って・・・ なんだか凄い話ですなぁ
テクスチャ舐めんな ローポリ関連のテクスチャとか職人芸だろ
なんでタスクシステムごときで深刻な話になるんだか・・・ 今のゲーム開発ってJavaとかC++などのオブジェクト指向が中心だから 古典タスクシステムがまんま使われるケースは稀だと思う。 基本的にはタスクはクラス単位で管理するから大規模開発に適してるけど、 個人開発でもその恩恵は十分にある。 タスクシステムの定義自体確定したものがあるわけではないのだから、 モノなり機能なりをタスクという単位に分けてプライオリティを考慮した 処理が行えればそれはタスクシステムと呼んじゃっても問題ないと思う。 上記の処理は関数ポインタ使わなくても実装できるので、たぶん多くの 開発者はタクスシステムを作っているつもりは無くても、結果として タスクシステムと似たような仕組みを作ってると予想する。
だから、そんな曖昧な物に大層な名前がついているのが問題だろ。 さごは予想するって、これまたいい加減に締めくくってるし。
タスクシステム=バズワードでござる の巻
ざこばにみえた
バズワード(buzzword)とは、一見、専門用語のようにみえるが、明確な合意や定義のない用語のことである。 「バズ(buzz)」という言葉は、もともと、蜂がブンブンとうなり続けている様子を表しており、 そこから派生して、世間の群衆が噂話でざわめいている状況を表す言葉として使われている。 つまり、バズ・ワードとは、世間、 あるいは業界一般などの一定の一般的なグループの間で喧伝されてはいるが、 その実態が明確ではない言葉を表している。 結果として、その分野に明るくない人にイメージだけを押し付けたり、 「よくわからないが凄そうなこと」を想起させることを目的とした宣伝文句として使ったりすることも可能であり、 言葉だけが先歩きして広まることも多いため、 事情を知らない多くの人は価値のある言葉としてとらえてしまうことがある。
タスクシステムってそんな大層ものに見えるのかなぁ・・・ よくわからん感覚だ。 文化を知らない原住民にとってはライターが神秘の道具に見えるみたいな感覚なのかね。 ライターがその辺に転がってる現代人はライターに何のこだわりも無いように ゲーム業界のプログラマもそんなとこにこだわってないみたいだし。 ではタスクシステムのアンチってどんな人たちなんだろうな。 自称ハード屋みたいな人たちか?
> タスクシステムってそんな大層ものに見えるのかなぁ・・・ 見えない、つってんのw 名前だけが大層だ、つってんのw > 文化を知らない原住民にとってはライターが神秘の道具に見えるみたいな ライターどころか、ただのとがった木の枝を、 「食物保持システム」と呼んでるようなもん。
204 :
名前は開発中のものです。 :2010/01/19(火) 21:49:46 ID:Kg6lhl+f
いいじゃん、名前くらい付けたって。 そもそもタスクシステムなんて大層な名前とも思えないし、 話題としても入門者用のゲーム開発本や2chにこんなスレが立つ程度だよ。 「〜タスクにバグがある」みたいに会話に使えるし便利だ
sage忘れた 203の言わんとしてることも分からなくはない。 IT全般に言えることだが、ささいなことに大層な名前がつくことは多い。
Web2.0(笑)
日本で言うと お 仕 事 機 構 ババーン!! キャー みたいなもん
それから自称ハード屋よー、ずっとお返事待ってんだけど。待ちくたびれたな
それともノイズフィルターで煽り成分を除去したら全部消えちゃったかい?
まずは
>>107 の質問にさっさと返答してくれ。な
君は、使ったこともない見たこともない対象物についてあーだこーだ薀蓄垂れる
知ったかゲハ厨ではないと俺は信じてる。だから待ってんだわ
210 :
名前は開発中のものです。 :2010/01/20(水) 23:06:18 ID:nEoZHyHP
タスクシステムとオブジェクト指向って相性いいの?
タスクシステムってゲーム業界ローカルのニッチな技術だよなぁ・・・ で、なんで自称ハード屋みたいなタスクシステムとは一生無関係な人が 呼び名云々でアンチになって粘着してるんだろう・・・謎。 なんで?
>>210 前このスレで、ITaskクラスを継承すると、
特定の仮想関数が周期的に呼ばれるのが出てた。
普通にメインループから呼べば良いじゃんって話だが。
>>211 呼び名というより、その仕組み自体が。
普通タスクシステムみたいな仕組みって、
処理の順序を動的に変更する必要に迫られて、
仕方なく実装するものだと思うんだけど。
>>213 答えになってないような。
その理屈だと、ゲームでは処理の順序を動的に変更する必要は無い、
という証明が出来ない限りアンチは間違いということになりそうだが。
>>210 というか後の世代から見ると単なる多態をC言語で頑張って実装してるのが古典タスクシステム
新しい言語があるんだからそれ使えばいいんじゃないの? どうしてゲーム屋はC言語にこだわるの?
勝ち負け、ねぇ…。
そう、勝ち負け。 理論で追い詰められて、反論が出来ないと話題をすりかえて逃げ回ってる人たちは 自分が間違ってるということを認められない負け犬。 負け犬と言われたくないなら自分の間違いを認めるか、逃げ回らずに正々堂々と理論で反論するか。 どちらかにしなさい。
で おまえらどんなゲーム作ったの?
土曜の昼から見えない敵と戦ったりとか。
確かに「タスク信者」なんて見えない敵と戦うアンチはどうかと思うな。 あげく追い詰められて反論できずに話題そらしに必死・・・
必死すぎて気色悪いです
わるいな、いじめっ子なんだ。ww 泣きながら逃げ回ってる馬鹿を見ると追い詰めたくなるんだよ。 ごめんなぁ?必死で逃げ回ってるのに。ww
2ch弁慶はうるさいなぁ しねよ
負け犬と言われたくないなら自分の間違いを認めるか、逃げ回らずに正々堂々と理論で反論するか。 どちらかにしなさい。 俺、何か間違ってること言ってるかね? ごめんなぁ、罵倒しか返せなくなるほど追い詰めちゃって。 でもそれは君が馬鹿だからなんだぞ。
自称いじめっ子とか。
馬鹿がわいてるきいて
>>228 なんか話が見えないよね。
彼の中では相手に対して想定があるみたいだけど。
230 :
名前は開発中のものです。 :2010/01/23(土) 15:34:08 ID:N9O+bpuS
あげろよ。面白いから
タスクアンチなんて馬鹿は自称ハード屋と自演ぐらいしかいないかと思ってたけど まだいるのかね・・・? で、仮に別人だとして、君もハード屋と同じ考えしてるの? だったら同類としてあの理屈に合わない矛盾した説の説明をして欲しいな。 「あんな馬鹿と一緒にするな」って人なら失礼ww
面白いから VIPとヲチにも貼っておいたわ
_ ノn ホー ホケキョ  ̄" ̄ ̄
しかしほんとに逃げ回るか罵倒しかできないんだな・・・つまらん。 ハード屋みたいに立脚点が間違ってて、しかも自分の間違いを 認められない馬鹿をからかうと矛盾だらけの説を出してきて面白いんだけど。 無料で「逆転裁判」してるみたいで矛盾をいくらでも突きつけられる。ww
235 :
名前は開発中のものです。 :2010/01/23(土) 16:25:39 ID:OzaU9I+h
がちきち
でタスクシステムのメリットは動的な処理順番変更ってことでいいの? おれメインで5本ゲーム作ったことあるけど必要になったことないな。 無駄にタスクシステムらしきものを突っ込んだタイトルのバグとり後始末なら何回かやったが。
>でタスクシステムのメリットは動的な処理順番変更ってことでいいの? それ、付加的なもので本質じゃないんだけどなぁ 本職でメイン5本作ったプログラマがこれまでの流れ通してその程度のことしか わからないってのは・・・嘘っぽいなぁ まさかノベル形式のエロゲー5本作ったスクリプタとか同人とかいうオチ・・・? とりあえず作ったジャンルとプラットフォーム、開発規模をヨロ 特定されない程度で。
>>237 じゃあなんなのよ。うそついてるって言うくらいだから教えてくださいよ。
こんなところで言っても意味はないけどコンシューマーでで30万くらいは出てるタイトルやってきたよ。
シューティング、アドベンチャー、RPG、シミュレーション。
PS1/PS2/GameCube/DS/PSP。プログラマーは5〜10人程度。
メモリ管理が便利になるとは思えないし(むしろ複雑になってデバッグが困難になることが多い)
フレーム処理用のインターフェイスの統一ならクラス継承そのもので
これをタスクシステムというならああそうなの?って感じだけど。
これなら確かに誰でも使ってるけど俺の回りではこれをタスクシステムとは呼ばないよ。
>メモリ管理が便利になるとは思えないし これはいわゆるTCBをいつでもどこでも自由につなぎかえるようなものをイメージしたときの話ね。
HtJlbitcのターン
>フレーム処理用のインターフェイスの統一ならクラス継承そのもので フレーム処理用のインターフェイスの統一=クラス継承 俺のまわりでは違うけど。君のまわりではそうなってるの? 説明どぞ
class IFrameInterface { virtual void execute() = 0; virtual void draw() = 0; } これ以上に何が必要でしょうか。 できればそれによるメリットを教えてください。
さらにいうとこれもお題目なだけでわざわざ継承する必要すらないことも多い。
>これをタスクシステムというならああそうなの?って感じだけど。
>これなら確かに誰でも使ってるけど俺の回りではこれをタスクシステムとは呼ばないよ。
>>174 名前が違うだけで使ってるってオチですか?
>おれメインで5本ゲーム作ったことあるけど必要になったことないな。
あれ?前に言ってることと違うような。
周りはみんな使ってるけど俺一人使ってない、ということ?はて。
>>244 >>243 がそうならそうだね。これをタスクシステムって呼んでるの?
でもタスクシステム云々言ってるときに
メリットとそのための実装が明確になっていることを見たことがないので。
タスクシステムと呼んでいた人たちのコードがバグを誘発してて
その複雑なコードはシンプルに書き換えられるという局面によく出会っていた。
>あれ?前に言ってることと違うような。
これよくわかんないからもう少し説明して
>>245 >メリットとそのための実装が明確になっていることを見たことがないので。
メリットが明確になっていないものを
>これなら確かに誰でも使ってるけど俺の回りではこれをタスクシステムとは呼ばないよ。
君のまわりでは誰でも使ってる、と。
必要無いなら誰も使わないはずだけど?はてはて。
>これよくわかんないからもう少し説明して
"必要になったことない"のに"誰でも使ってる"?
はて、誰でもに君は含まれないのかい?
>>246 あのさぁ。こっちは少しでも例だして質問して答えてるんだから
少しは例だしてくれないかな。
>
>>244 >
>>243 がそうならそうだね。これをタスクシステムって呼んでるの?
これはどうなの?これがそうなら「必要あります」
>TCBをいつでもどこでも自由につなぎかえるようなもの
なら「必要になったことない」
という意味なんだけど。
>>243 とは
>>242 のコードをさしてるのか?
ならちがうんじゃない?
こちらの感覚は
>>174 とか
>>178 に近い。
ゲームでは必ず必要になるゲームオブジェに処理を回す"何か"の
代名詞的な意味だ。
で、結局君は何を主張したいんだ?
こっちは
>>137 みたいなタスクシステムもゲームエンジンもOOPも
ゲームオブジェに処理を回す必要も無い、って言ってるハード屋とやらの
矛盾をついてるだけなんだが。
まさか君も同じ考えなのかな?
まぁPS1時代みたいに片手で数えられるぐらいのプログラマ数なら 個々に必要になった箇所で作ってもいいんじゃない?とも思うが 今の外注やらライブラリやらサーバやら込みで3桁のプログラマが コードをいじるプロジェクトで、タスクシステムなり何なり、処理を 回す基底処理を用意しないわけにはいかないし。 タスクシステムは非常にあいまいで名前が紛らわしいってのはあるけど あんまりユニークな命名すると「これは何をするものですか?」って何回も いろんな部署のプログラマに説明しなきゃいけなくなるし。(ドキュメント 用意しても百人超えるプログラマの中には読まないで聞きに来るのが絶対いる) 「タスクシステム」ってゲームプログラマならほぼ知ってる知名度の高い 名前つけてた方が面倒少ないから名前使う、ってレベルだけど。
>>248 >>174 >>178 もそもそも具体的じゃないと思うけど
「定期的に処理を回す”何か”のこと」を
>>242 風に実現してるものはたくさんあると思うけど?
>>242 からもシステムを構築する上でも無駄に複雑にする方法がいくらでもある。
(あまりにも汎用的な記述なんだから当たり前だよね。)
だからもっと具体的に、メリットがある「タスクシステム」はどんなものかを聞きたいのね。
「メリット」と、できれば実装を聞いているの。
少なくとも「メリット」が明確なら実装は聞かなくても推測可能だし。
>で、結局君は何を主張したいんだ?
>>242 >>243 以上の汎用システム化にメリットを感じたことがない。
>>242 を毎フレーム呼び出すコードは普通に一般的だがそれ以上のメリットを備えた
汎用的なゲームシステムのことを「タスクシステム」と呼んでいるなら
そのメリットとはなんなのと質問しているんです。
>>248 でちがうんじゃない?といってるし。
きみも
>>237 で本質的なメリットじゃないっていってるじゃない?
わかりにくかったのかな。
本質のメリットというものを教えて欲しいんです。
別に誰かの意見の支持とかではなく
>>236 に対して
>>237 といったことの具体例を。
不必要に基底が肥大化したタスクシステムに弊害があるのは当然。 んでもゲームで必ず必要になる処理である以上、誰かが何処かで作るわけで。 2桁超えたプログラマが思い思いに勝手に作ってたら収集つかなくなるだろ・・・ で、作ったら命名する必要があって、命名するなら代名詞的なもの使ったほうが 理解しやすいね。ということ。こっちの言ってるメリットの一つはこれ。 PS1とか64とかCubeとか、あの頃はみんなプロジェクト毎に独自タスクシステムっぽいもの 毎回新しく作ってたんだけどねぇ・・・ 今のPS3/360世代で同じことやってると会社つぶれるし間に合わん。 >本質のメリットというものを教えて欲しいんです。 どうも君はプログラム・ロジックレベルのメリットに限定してるみたいだけど。 そのレベルのメリットは「タスクシステムの実装による」としか答えられん。 うちで今使ってる「タスクシステム」と名がつくものはマルチ・非相対コアで並列動作して リソース同期を極力抑えて・・・というようなもの。 これは古典的タスクシステムと似ても似つかないものだけど、使う側のプログラマにとっては キャラ単位、フロントエンドUIのウェジット単位、とかに使えてよくあるタスクシステムと同じ 範囲をカバーするから「タスクシステム」と命名してある。
>>251 うーんそうすると
>>242 でもなにか便利な機能が追加されれば「タスクシステム」と呼ぶわけね。
(違うといってるのはおそらくこれに「独自の」メリットが追加されたものをそう呼んていると読み取った。)
で、そう呼ぶこと自体に意味があるということが
>>237 の真意ってことね?
それはあまりに技術的内容がないな。
たとえば並列化できるシステムは技術的コンセプトなしには作れないし
簡単じゃないことくらいはもちろんわかってるよね。メモリの安全な管理もそう。
UIの要素管理やAI管理もそうでしょう。
ここでの主張は「タスクシステム」と呼ぶこと自体が意味のあることという主張で
具体的な内容は
>>242 以上はないと。
そこまで言うならおれはやっぱり「タスクシステム」って呼ばないほうがいいと思うわ。
ネット見たってTCBがタスクシステムに必須であるような記述も多いし、
いろんな技術的要素をタスクシステムの例として説明しているものが多いし。
で、おれの経験でもタスクシステム云々言ってるコードは不要に複雑になったコードが多かった。
たしかに実装した「定期的に処理を回す”何か”」がシステムっぽいときに
「いわゆるタスクシステム的な」っていうのは通じやすいけど、
それじゃ「タスクシステムってなんですか」ときかれたら答えられないじゃん。
ゲームはいろいろな要素に
>>242 的な形が出現する、それを実装しているといったほうが優しくないか?
言い換えれば「定期的に処理を回す”何か”」ってことだから
>>174 そのものだね。
まあこれだけを意味する用語をおれも知らないけど。
というか
>>137 も
>>174 は否定してないように見えたけど?
(さかのぼるの面倒だったのでID:iYQ9vwhmしか見なかったけど)
>そこまで言うならおれはやっぱり「タスクシステム」って呼ばないほうがいいと思うわ。
それは会社や現場の文化なりルールなり開発者の嗜好なりの問題。
「タスクシステム」以外の名前で通ってる現場もいくつか見てきたし。
タスクシステムという名前を必ず使うべし、と言ってるわけじゃない。
ただうちの場合はロートルのプログラマとか、今は管理者になって現場に居ない上役とかにとって
「タスクシステム」ってのは通りがいいので使ってる。
>というか
>>137 も
>>174 は否定してないように見えたけど?
さかのぼれば色々面白いと思うぞ。
タスクシステムのメリットを否定したいがためにゲームエンジンも、クラスの継承も、OOPも抽象化も全て否定して・・・
「タスクシステムは全ての人にとってメリットが無い!」とまで断言しちゃ
色々からかいたくなるだろ?
「へー、どうやって証明するの?その悪魔の証明」って。www
>>253 >それは会社や現場の文化なりルールなり開発者の嗜好なりの問題。
これは否定できないけど
このスレは「タスクシステム」って何なのメリットあるのってスレだと思うけど。
「定期的に処理を回す”何か”」をタスクシステムって呼びます。
ならそれ自体はだれも議論しないと思うよ。
でも「タスクシステム」と称していろいろな実装についても語られる中
「タスクシステム」をそう理解しろってのも無理な話でしょ。
だって「定期的に処理を回す”何か”」って「ゲームループ」とすら言い換えられる。
>「タスクシステム」をそう理解しろってのも無理な話でしょ。 今のゲーム業界でそー使われてるのが事実だからしょうがないんじゃない? 他にもっと適当な用語があればそれ使いたいんだけど、誰も代案なんて出せないだろうし。 「ファミコンショップ」に行って「何でPS3とか最近のゲームが置いてあるんだ! ファミコンショップだろ!ファミコンのソフト売れよ!紛らわしいだろ!」とか怒られても 「今時ファミコンなんて売れないし・・・そーいうものです」としか答えられん。 技術的な話題をしたいなら、自分で明確なコードなり設計なりを出してから 「ここの問題どうしましょう?」とか聞くのがいいんじゃないの? それかもっと適切なスレに行くか。 >たとえば並列化できるシステムは技術的コンセプトなしには作れないし とかはタスクシステムじゃなくてゲームエンジンなりフレームワークなりの持分かと。 今まで「タスクシステム」と名がつくシステムを数十個見てきたけど、見事にゲーム毎に別々。 2Dアクション系でrect情報持ってるのとか、3D系でシーングラフとくっついてるのとか、 Win32APIのエミュみたいにHWNDとか持ってるわけわからんタスクシステムとか・・・ まぁ基底がごちゃごちゃしたタスクシステムと言われるものはだいたい糞だけど。 そうでない理にかなった自称タスクシステムも沢山見てきたわけで。 で、「全てのタスクシステムはデメリットしかない」と言われると「うーん・・・視野が狭いなぁ」となる。
>>255 いやいやだからきみは「2ちゃんで煽りたい」ってスタンスが透けて見えるんだって。
>>237 では「お前が無知なだけでメリットがあるよ」って雰囲気だしてるし
>技術的な話題をしたいなら、自分で明確なコードなり設計なりを出してから
これを出したら「タスクシステム」の話ではなく「俺システム」の話でしょ。
で共有できる「タスクシステム」の概念は何と質問すると
>>174 こちらが出した擬似コードが
>>242 >今のゲーム業界でそー使われてるのが事実だからしょうがないんじゃない?
>とかはタスクシステムじゃなくてゲームエンジンなりフレームワークなりの持分かと。
>今まで「タスクシステム」と名がつくシステムを数十個見てきたけど、見事にゲーム毎に別々。
結局こう言ってるのにすごい含みを持たせているようにしか見えない。
そんな議論だとだれも食いついてくれないから何かあるように見せる。
それが
>>3 だったり「タスクシステム」にまつわる大きな問題じゃないの?
>いやいやだからきみは「2ちゃんで煽りたい」ってスタンスが透けて見えるんだって。 初めからいってるじゃん。ww 隙だらけの説を吹いてる奴の矛盾をついて楽しむのが目的だって。 たまたま覗いたこのスレに、理論的に隙だらけの奴がいたから遊んでるだけ。 理屈のおかしい主張は突っ込みたくなるだろ?ww 今さらタスクシステムなんてあいまいで初歩的な話、たいして興味ない。 んでもこっちがからむのは話の矛盾している箇所にであって、純粋な技術の話には からまんけどな。相手がからんでこない限り。 で、あんたは「タスクシステムは全ての人にとってメリットの無い」って主張しているのを肯定するのかい? それとも技術的な話の邪魔と思うの? 俺は無料逆転裁判を楽しんでるだけだ。ここは2chだしww
ちょっと考えれば IFrameInterface とでも役割を反映した名前にできるところを 「タスクシステム」なんて内容のわからない名前付けにして済ませてしまう。 そんな名前になってるからメモリ管理やら処理優先度やら妙なものがいっしょくたに なっても、おかしいことに気づかない。あるいは気づきにくい。 そういう悪習を広めるという意味で「タスクシステム」は害悪であって、それを上回る ようなメリットは持っていない。
IFrameInterfaceも何するものなのかいまいちわからないけどな
>>257 論理の飛躍が見えてちょっと恥ずかしいなといってるだけ。
技術的な話を一切シャットアウトしてるのは突込みではなく煽りでしかない。
いっていることは結局
>>174 そうだとしたらこのスレのだれも反論しないよ。
>で、あんたは「タスクシステムは全ての人にとってメリットの無い」って主張しているのを肯定するのかい?
ここ数レスだけを見れば君の主張を否定する点はない。ただそれはこのスレ的には誰も興味ないんだよ。
「俺の環境で概念の共有手段として使っている」といっているだけで
このスレで出てきている技術的な話についてもなにも理解が進むわけがないし
>>3 のようなデメリットに対する反論になるわけでもない。
>それとも技術的な話の邪魔と思うの?
君がかき回しているだけだと思うよ。
>君がかき回しているだけだと思うよ。 そうかい? まぁこっちの楽しみのために技術的な話題をしたいという 真面目な人の邪魔するつもりは無いから退散するよ。 このスレで技術的に意味のある話ができるといいね。
二人が話してる「タスクシステム」は、相互にズレがあるようだな
そもそも論点が違うっていう
そんなものを用語として使うことがw
for(;;)を永久ループって言ってるようなものだよね。
IFrameInterfaceってtaskSystemよりセンスが悪いと思う…
ネットでダウンロードできる実践的なタスクシステムのソースってある? オープンソース化してる市販ゲームって海外が多いから タスクシステムのお手本みたいなのが見つからなくて・・・・
268 :
ハード屋 :2010/01/24(日) 11:49:57 ID:LS2EE4Eu
なんか荒れてるね。皆色々背負ってるみたいだから大変なんだろうね。 「技術」ねぇ。ノウハウの間違いなんじゃないかって。まあいいや。 俺なんかだとあれだけどね。 動的に実行順を制御したい部分が出てきたときは、 個々にモジュール化しちゃうけどね。 たとえば、Zソートだと、描画エンジンに任せたり。 局所性が高い方がカスタマイズしやすいでしょ、 そのスケジューラは描画エンジン専用にしていいわけだから。
経験によって意見がだいぶ違うな 小規模開発の実装プログラマ視点からはタスクシステムは諸悪の根源 大規模開発のアーキテクチャやプログラムディレクター視点からは タスクシステムのような統一処理は必須
全部アセンブラで書くのならタスクシステムは有効かもね このスレではあまり重要視されないけど、複数人で開発しやすい構造だしね
便利なシステムはあったほうがいいけど具体的にどんなものなの?ってことでしょ。 それを具体的にしないと。
ゲームでは必須になる処理だけどジャンルとかプラットフォーム世代とかで 最適解が異なるから、具体的な一つに集約はしないだろう。 最大公約数的に全てのタスクシステム共通の処理だけ抜き出してきても それは実際に使われてるタスクシステムとは似ても似つかないものだから そんなの調べても実際のゲーム開発には役に立たないし。
実際に役に立たない概念・定義できない概念をタスクシステムと呼んでいるなら
それは意味がないでしょう。通常はメリットとその実装方法に意味があるんだから。
(「ゲームシステム」ってあると便利だよね。つくったほうがいいよっていってるのと変わらない。)
例えば、動的な処理順番変更がメリットでその実装方法としてTCBがあり
それがタスクシステムならそれは必要ないことが多い。
必要な場面で使えばいい手法ということになる。
上で「定期的に処理を回す”何か”」っていってるけど
それだけを「タスクシステム」と呼んでいるのならデザインパターンのひとつくらいの意味だね。
デザインパターンでも普通はサンプルコードくらい書けるけど。
>>2 あたりはそういう主張じゃないよね。
タスクシステムはデザインパターンではなくアーキテクチャパターンだろうね。 PACアーキテクチャなんてタスクシステムの親類みたいな感じだし。 アーキテクチャパターンレベルの話にデザインパターンレベルの具体的な実装を 求めても、いろんな実装が出てきてまとまらないのは当然だな。
ここまでタスクシステムへの明白なメリット明言なし。 適切な特性に適切な命名がなされることは、 皆さんご存知の通り、設計としての良い指針。
>>274 アーキテクチャパターンでもいいがサンプルは書けるでしょ。
メリットとそのメリットの明確化のためのサンプルがない用語に意味はあるの?
最悪メリット・目的だけでもあればまだ話はできるが。
それすらもないならアーキテクチャパターンですらないのではないのか?
PACアーキテクチャのどの部分がタスクシステムとの類似点なの?
「定期的に処理を回す”何か”」より具体性が後退してると思うんだけど。
MVCといわないのならこの差に特徴があるの?そんな議論もあまり見たことないが。
今までいろいろ明言されてるタスクシステムのメリットとデメリットって PACアーキテクチャのそれとみごとにかぶるな。 タスクシステム≒PACアーキテクチャのゲーム業界方言 と言っても説明が通じそう。 で、実装レベルの理解が限界の一兵卒には設計レベルのメリットは目に入らない、 という感じか… このスレの現状が見えてきた気がする。
具体的にってのは一兵卒からみた戦術的な話だろう。 銃の上手なうち方みたいな。 アーキテクチャは戦術じゃなく戦略の話だから そのレベルの具体的な一例を戦略の話に求めるのがそもそも変なんじゃないのかな? ちなみにアーキテクチャパターンなら、それを実装するデザインパターン例 の組み合わせが載ってたりするから、そこまで噛み砕いて具体例を要求すれば デザインパターンレベルでの実装例は出せるかもね。
>>279 うん君のレスは中身がないよね
>MVCといわないのならこの差に特徴があるの?
まずこれに答えてみてよ。
>アーキテクチャは戦術じゃなく戦略の話だから
じゃあきみは一平卒にどうやってそれを伝えるの?
>>279 一平卒に分からなくてもかまわないから、
タスクシステムがどういう「戦略」なのか書けよ。
あれか?無能下請けを閉じ込める檻ってやつか?
>>279 具体的な戦略を語ってほしい。
それこそが求められている。
タスクシステムの具体的な何かを知っている人は、
このスレで問い詰められると、いつも最後には逃げる。
>>280 MVCとPACパターンの違いをきいてるのかな?
>PACにおけるCは、GUIに限らずMとVを協調させるという責務を持っている。またPACは明示的に階層構造を定義しているという点でMVCと異なる。
だって。
タスクシステムと違ってアーキテクチャパターンは明確な定義があるからやりやすいな。
あとネットで具体例を出してって本職には難しいんじゃないかな。
仕事のコード出したら大問題だし、説明のためだけにサンプルゲームつくるような親切な例は
>>2 ぐらいじゃないかな。
それで飯食ってる人間に、説明のためだけに無給でコード書くこと要求してそれが通らないと逃げるなって言われるのは…
さすがに甘えすぎじゃない?と思う。
ほんとにやる気があるならGemsのactor周りとかアーキテクチャパターンとかある程度の基礎を自分で勉強して、
それでもわからない箇所があれば自分から具体的な質問を出す方が現実的かと。
質問が具体的なら返答も具体的になるだろ。
って何か「教えて君」に話しているような内容だな、これ。
>>283 >だって。
ようはMVCとPACの違いを意識したことはなかったわけね。
で
>タスクシステム≒PACアーキテクチャのゲーム業界方言
>と言っても説明が通じそう。
それはないだろう。
君が
>タスクシステムのような統一処理は必須
っていってるけどじゃあタスクシステムは何なのってきくと
>タスクシステムと違ってアーキテクチャパターンは明確な定義があるからやりやすいな。
じゃあ「タスクシステム」というものはなんなの?
これも答えず
>仕事のコード出したら
なんて誰も言ってないことを言い訳するし
>>2 の内容にすら触れない
>さすがに甘えすぎじゃない?
何もいえない奴にどう甘えろって言うんだ?
>って何か「教えて君」に話しているような内容だな、これ。
君ののレスから君が何か有意義な考えを持ってるようには読み取れないよ
タスクシステムについて、明確な説明をすることは、 とてもとても大変で、とてもとても難しいことのようだ。 MVCのメリットなら一言で言うと、 俺はモジュール性が高まることにあると思う。 MがVもCも知らなくていいように作れるし、 ユーザからのinputはCが、ユーザへのoutputはVが担う、 という、名前と一致した明確な役割分担が美しいと思う。 交換可能なままで、各役割のクラス階層が育っていくので好ましい。 また、GUIでよくあるインタラクションへ、 ひとつの解をしめしてみせたという、 設計例の共有という意味でも有意義だったと思う。
>>284 ずいぶんつっかかるな。
>それはないだろう。
そう言い切れる根拠を出してくれないかな。
明確に言い切れるということはタスクシステムに関して明確な定義があるということだろうし。
それが皆の納得できるものならこのスレも有意義になるんじゃないのかな?
>>286 結局きみは自分にカードがあるように見せかけるけど一枚も場に出さず人にカードを切れというだけなんだよな。
PACアーキテクチャはMVCとの差を意識することで意味のある概念だろ。
だから後発にもかかわらず存在している。
つまりPACアーキテクチャはMVCとの差を意識することによって意味のある用語となっている。
PACパーキテクチャの方言という説明が有意義だと思うのなら一般にどう使われてるか配慮すべき。
MVCの議論はこのスレにもあった。
それも意識せずにPACアーキテクチャと比較するのであれば
そもそもその概念を有意義に考察しているかどうか疑問に思わざるを得ない。
そもそも
>明確に言い切れるということはタスクシステムに関して明確な定義があるということだろうし。
これは君が答えるべきことだから。
君は何を意味しているの?
おれは
・「定期的に処理を回す”何か”」
・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
のどれのことか具体的にときいてるんだけど。
で「PACパーキテクチャの方言」っていうからどこがそうなのって聞いてるの。
カードがないならないって言えばいい話。
>>287 >PACアーキテクチャはMVCとの差を意識することで意味のある概念だろ。
ちがうと思うぞ。PACはMVCとは別概念。
PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近いんじゃない?
>これは君が答えるべきことだから。
教えて君に答えなきゃいけない義務なんていつの間に出来たんだろう?
妄想の中?おしえて。
ちなみにタスクシステムに関する個人的な見解は
>>272 だ。
ところでカードって何?
>>288 お前のレスが
>>272 で尽きてるならもう
>>274 以降このスレ的に意味のあることは何もないってことだね。
これすら意味ない。
>PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近いんじゃない?
まあもういいけど、これを解釈すれば、
・階層構造が持てること
・描画がデータを直接参照しない
がタスクシステムの特徴ってこととなるけど階層構造はともかく
描画がデータを直接参照しないってすでに「一般的なタスクシステム」をなんら表してないだろ。
でもせめてうえの2つを直接指摘すれば議論にはなったね。
一兵卒に理解できない内容とはとても思えないけど。
ID:KTZGeiZiが断片的に示してくれたタスクシステム像。
>>269 タスクシステムのような統一処理
>>272 ゲームでは必須になる処理
>>274 PACアーキテクチャなんてタスクシステムの親類みたいな感じ
>>277 タスクシステム≒PACアーキテクチャのゲーム業界方言
>>288 PとAが直接参照しない点とCが階層を持てる点でMVCより一般的なタスクシステムに近い
今のタスクシステムって用語はいろんな実装から帰納的に求められた 広い意味を持つ用語だから、具体的な実装の話をしたければ質問側が 具体的な条件を出さないと無意味だね、と。 で実装レベルではないアーキテクチャレベルの話ならPACアーキテクチャ とかが近そうだね、と。 用語のあいまいさの問題と実装と設計と、別々の問題なんだから質問を分別する必要があるんだけどね。 そこが分けられるかどうかが一兵卒とそうでないかの試金石? まぁ何か「意味のあることは何もない」って完結したみたいだからいいか…
煽ってるつもりが煽られて捨て台詞w カッコイイ
タスクシステムとPACなんとかって別に近くないだろ もちろん数あるタスクシステムの中にはPACなんとかっぽい構造または機能を持ってるものがあるかもしれないけど
>>293 煙にまこうとしただけなんだから触れてやるなよ。
>>290-291 自分の考えてる「タスクシステム」とは何かを説明してよ。
たとえを一切使わないで。
ID:KTZGeiZiは間違ったことは言ってないんだけど 相手のレベルに合わせた話ができないのは痛いな。 この人部下の人望無さそう。
タスクシステムについては結局なにも言ってないからな。 応対はかなりひどいけど。
裸の王様インターフェースの実装がまたひとつ。
なんか香ばしいねここ。
>>2 の「古典タスクシステム」って、CodeZineのリンクにあるような
メモリアロケータまで詰め込んだ「固まり」、でいいの?C++なのにいろいろ
意味のない車輪の再発明しちゃってるような。
それなら、Cライブラリ的な何かが提供するメモリマネージャが貧弱で、
コルーチンすらないような組み込み系で「だけ」なら使えるかもね。
というか、そういう組み込み環境で使われる設計的な何かが「タスクシステム」の正体ってことでいいのかね?
(「組み込み環境」は、DS的なもの以下の環境を想定してます。)
とすると、そういうもの(「固まり」)は、あくまで組み込みとか貧弱な環境で必要があるもので、
Windows環境で動くゲーム(アーケード含む)とか、ハイエンド家庭用ゲーム機とか、
リッチな環境だといらないよね?
いやもちろん、「タスクシステム」にも含まれている処理、たとえば個々のオブジェクトに
処理を回したりすることを提供する「何か」は、環境が変わろうと必要で、そういうのは
各ゲーム会社にあるんだろうけど、
>>2 の「古典タスクシステム」を「タスクシステム」である、として説明しているようなページが多い現状で
その「何か」を「タスクシステム」と呼ぶのはどうなのよ、と。
もっと言うと、「何か」を「タスクシステム」って呼んじゃっているようなところって、
「何か」に、「古典的タスクシステム」の要素のうち、もう自前で書かなくても済むようなものまで
組み込んじゃってません?
いやもちろん、業界内で「タスクシステム」といえば「何か」を指すのが当然だ、というのなら別に
構わないんですが、それにしては「古典タスクシステム」の紹介や実装がWebに溢れているなー、と。
結局タスクシステムという名前が好きか嫌いかだけの問題なんだな。
名前の意味すら不明瞭なのが問題
ここはニートに労働のメリット教えるスレと同じだな。 どんなに説明されようと初めから労働のメリットを認めるつもりは毛頭ないニートと ニートを見下したいだけのリア充の終わり無き戦い。 ID:bsBl9MV5は持論と違うことをいくら説明されても馬の耳に念仏で「何もないってない。意味が無い」と繰り返すだけ。 ID:KTZGeiZiは自分の周りだけの業界常識を持ち出して相手を見下したいだけ。 どっちもどっちだ。 おまえらいいからゲーム作れ。
>>306 自分の想定しているタスクシステムってどんなの?
状況に応じて違う、とかいうなら、その状況を自分で前提してでもいいから
たとえとか無しで自分の言葉で説明してみてよ
>>307 レスをたどってはくれないのか・・・
おれは
>・「定期的に処理を回す”何か”」
>・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
>のどれのことか具体的にときいてるんだけど。
>で「PACパーキテクチャの方言」っていうからどこがそうなのって聞いてるの。
一つ目なら必要な機能だけどこれが「タスクシステム」でいいの?
TCBを使って動的な処理順番変更機能を持つものが「タスクシステム」なら
その方法にこだわる必要はないと思う。
なので「タスクシステム」を各々どう想定しているか聞いている。
おれは2番目も含めた説を見ることが多いのでそれは必須じゃないと言うのが持論。
>>304 事実を言ってるだけじゃね?
あんたの持論とは違うから何も読み取れないみたいだけど
そもそもあんた初めから議論するつもりなんて無いだろ
自分の聞きたい答えが聞けるまで人に質問繰り返すだけなんだから
>>272 こそ
>>308 の答えそのものなんだが、これ以上何を期待してるのやら
こんなところで意地張ってないでゲーム製作にでも打ち込んだほうが
あんたにとっても有意義じゃね?
>>309 うん「タスクシステム」が技術的な実体を持たないというならそれでいいよ。
でも含みを持たせてみたりしてるしそもそも「実装はそれぞれ」だけじゃなんの話にもならないでしょ。
そういっているだけ。
>こんなところで意地張ってないでゲーム製作にでも打ち込んだほうが
>あんたにとっても有意義じゃね?
これはそうだけどね。これを突っ込む意図は何?
>>310 >うん「タスクシステム」が技術的な実体を持たないというならそれでいいよ。
あんたのいう技術的な実態って何のこと?
タスクシステム並みにあいまいなんだけど
>これはそうだけどね。これを突っ込む意図は何?
そうだけどね、と納得したならいいんじゃね?あんまり意地はるな
>>311 うーん読み取れないものなのかな
>・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
これは違うの?
>その方法にこだわる必要はないと思う。
ともいっている。これはあいまいなの?
>そうだけどね、と納得したならいいんじゃね?あんまり意地はるな
この板一応技術板だよ。実体のないものと結論付けるのはそれなりに意味があるでしょう。
それすら否定するならこのスレにレスする君の意図は何と聞きたかったの。
あんた笑っちゃうほど
>>309 のまんまだな
人の質問には答えずに質問返し。そしてものすごい意地っ張り…
>>313 >>・それ以外の何か(例えばTCBを使って実装されている。動的な処理順番変更機能を持つ。など)
>これは違うの?
>>その方法にこだわる必要はないと思う。
>ともいっている。これはあいまいなの?
これは返答じゃないの?
むしろこの返答に答えて欲しいんですが。
質問の意図を確認しながら返答することすら許さないの?
>人の質問には答えずに質問返し。
それ俺がそう思っちゃうんだが。
>>309 実例を挙げて、具体的に言ってあげたらいいと思うよ。
自分の関わってるプロジェクトを例に挙げて、
こういう要求の時にはこういう処理をタスクシステムと呼んでる
っていうのをボカさずに説明してあげるべきだと思う。
>>314 >これは返答じゃないの?
返答じゃないでしょ。質問でしょ
>質問の意図を確認しながら返答することすら許さないの?
こっちの質問の答えになってないからね
まぁいいや
これじゃID:KTZGeiZiと同じ結論のわかってる終わり無き戦いに巻き込まれるだけ
なので撤退しますわ
時間は大切にね!
この機能なんの意味もないってそろそろ認めてもいいと思うw
> これじゃID:KTZGeiZiと同じ結論のわかってる終わり無き戦いに巻き込まれるだけ 説明出来ないことを誤魔化すには、その対応は手垢がつき過ぎてる。
320 :
ハード屋 :2010/01/27(水) 21:45:20 ID:1CPLoz/X
あーやっぱこういう流れになったか。 なんていうかさ、たとえ、タスクシステムのメリットが出てきたとしても、 「そのメリットに焦点を当てた専用のモジュールを作れば?」 か 「そのメリットが生きる機能に専属でくっつければ?」 で終わっちゃうんだよな。 メモリ管理やオブジェクトの管理をするモジュールがあってもいいとは思うけど、 タスクシステムにくくりつける必要はないし、その方が可搬性が高まる。 Zソートやあたり判定で動的な実行順制御が必要な場合も、 それぞれのモジュールなりエンジンなりにそういう機能を持たせた方が、 これもやっぱり可搬性が高まる。
最小構成のタスクシステムって、動的に実行順序を制御できるだけの代物だと思うけど、 でも、動的なスケジューリングをするからには、その目的が絶対あるはずだろ。 だったら、その目的の機能内で動的なスケジューリングを勝手にやればいい話じゃん。 たとえば、Zソートだったら描画エンジン内で勝手にやりゃすむはなしだし。 動的スケジューリングってことは、それだけ ややこしい わけで、 汎用性を持たせようとして表に出してくる必要はないよな。
あと、開発手法としてタスクシステムはどうのこうのってのも出てたけど、 そういう動的呼び出しに頼ったやりかたは、そりゃプラグインなんかで使う増設の手法だ。 ゲームで言えば、ModだよMod。あとから拡張するやつ。 まだリリース前で最終ビルド前なのにModはねぇだろ。 だって、まだ、メインループ部は触れるわけだろ? 拡張拡張の延長でゲーム作るわけ?めんどくせ。
プロジェクト管理の面でも、 メインループから明示的に関数なりメソッドなりを呼び出す静的なやり方の方が、 トップダウンで管理しやすいと思うんだがなぁ。
静的のメリットをわかってない奴は多い。違いすらわかってない奴も。 抽象化はメリットがあって初めて必要なもので メリットが小さければ可読性保守性が落ちるだけのことがほとんどということもわかってない奴多い。
>>320 自称ハード屋くんの文章は相変わらず中身がない。批評の対象をきちんと明示していないから。
君が考察し批評している対象物が何なのかきちんと明示してねー、と何度も何度も指摘してるよねぇ。
それはいつ、誰が、誰と、どういう状況で、何を作るために使ったものなんだい?実在するのかい?
ハード屋ともあろう者がこの期に及んで「あーあー聞こえない聞こえない」で押し通すはずないよねぇ
まさか脳内で生成した何かについてあーだこーだ自問自答してるわけもんねぇ
さぁ、さっさと
>>107 の質問に返答してくれ。な。待ってるんだよ
君は、使ったこともない見たこともない対象物についてあーだこーだ薀蓄垂れる知ったかゲハ厨
ではないと俺は信じてる
どっちが中身がないのだか。
前スレで彼の妄想の産物かと疑いたくなる曖昧な批判対象に付き合い ESPを駆使して可能な限り具体的に書くよう努めてきたので勘弁してね 彼の批判する謎のタスクシステム。それが一体何でどういう状況でどう使われ 何が糞だったのかを彼が書かない限りもう駄目だと思うんだ
もー書かなくていいよw
だってこのシステム存在価値ないじゃん
そろそろ気がつかねーと駄目だろ
やっぱ
>>3 は優秀だな
例えば5万円未満で買い揃えられるローエンドのPC、例えば 最底辺のAtomネットブック、で60[fps]でヌルヌル動く程度の こういう同人STGをVS2008EE(のC/C++)+DX9で作ったけれど Codezineみたいな組み方って何でここをこういうふうにするかな なんでこうしないのだろうか、とか。これくらい書けるでしょ。普通。 なぜ彼は書けない?おかしいだろ。前スレからの疑問 彼の批判には、具体的なゲームの仕組みの切れ端すら出てこない。 不自然なくらい綺麗さっぱり無い。不思議だよねぇ おやすみ
>何が糞だったのかを彼が書かない限りもう駄目だと思うんだ 必死さが伝わってきて満足です。
331 :
名前は開発中のものです。 :2010/01/28(木) 03:07:35 ID:wWgILMy0
自称ハード屋は自分が作り出した敵のイメージと戦ってんだよ。 みんなの前でシュッシュッてやってみせてるシャドウボクサーが呟きました 「こいつ使えねー(笑)存在価値なくね?(笑)」 ギャラリーには何が何やら分かりません
334 :
名前は開発中のものです。 :2010/01/28(木) 11:06:32 ID:mX4g322y
手の届かない葡萄は酸っぱいと言い張るしかないアンチの皆さんでした
C++でタスクシステム作ってて ・特定の種類(型)のタスクに定数時間でアクセスしたい ・実行順位を定めたい ・タスクの数を制限したい これらの条件を満たすものをファンクタと型消去とリンクリストで実装したら boost::mpl::listにある型リストにタスクに値するファンクタの型を入れて 各々の要素のメモリ領域を再帰継承のtemplateクラス内部で実体化及びリンクリスト生成、 そのクラスが持っているリンクリストを基底型から順に実行する、 という形になったんだけどこれだとファンクタの種類が多くなった場合に 空リンクリストを見て実行せずに制御だけ返すっていう処理も多くなってしまう。 どうすればもっと軽くできるんだろうか。 それとも、この条件を維持しつつだともうこれ以上最適化できない感じ?
>>320 > なんていうかさ、たとえ、タスクシステムのメリットが出てきたとしても、
> 「そのメリットに焦点を当てた専用のモジュールを作れば?」
> か
> 「そのメリットが生きる機能に専属でくっつければ?」
> で終わっちゃうんだよな。
ところで「タスクシステム」はバズワードなので結局この文章全体が
ほとんど意味を成してない。それではあんまりなのでこのバズワードを
より適切な言葉で置換して、この文章の価値をよりわかりやすくしよう
僕が考えたエターナルフォースブリザードシステムのメリットが出てきたとしても
「そのメリットに焦点を当てた専用のモジュールを作れば?」
か
「そのメリットが生きる機能に専属でくっつければ?」
で終わっちゃうんだよな。
はは、知るかバーカ、って感じだよね
がんばるねぇ
ここだけの話、自称ハード屋はタスクシステムの熱狂的なファン 究極のタスクシステムを追い求め、アンチのふりまでして施しを求める まさに乞食 本物のアンチならタスクシステムを否定するのに都合の良い条件を 引っ張り出し、それを前提に話を有利に進めようと試みるだろう
古典タスクシステムで質問。 弾タスクが地形タスクを知りたい場合、そういう場合どうやって実装すればいいですか? 毎回検索したくないです。
適当な意見。 地形タクスのアドレス持つとか、継承させとくとかじゃダメなの?
弾タスクリストと地形タスクリスト別々に作りゃいいんじゃね
>>341 ,342
レスありがとうございます。丁度同じような事が前のスレで議論されていたのでそっち先に見てみます。
>>341 弾タスクは地形タスクがないと存在すら出来ない見事な設計だなw
死ね
>>344 地形が無いときは見なければいいんじゃないの?
>>340 静的なマップデータを個々にタスクにする必要ないんじゃないか?
移動する足場とか扉とかアイテムみたいなオブジェはタスクでいいけど。
共通のマップ専用処理+その他オブジェの組み合わせが自然だと思う。
>>345 お前のソース、意味のないヘッダインクルードして癒着が酷いんだな
明らかに無駄なつながりだけどそこになんの疑問ももたずにそういうの
ソースに入れちゃうんでしょ?
カプセル化とか全然わかってないな
>>346 たしかに必要ないですね。。。
前スレみた感じだとDBみたいなのを作って検索するというのが結論っぽかったです。
裸の王様もここまでくるのか
>>347 普通は抽象化してるから、独立性が高くなるでしょ?
オブジェクト指向の唯一のメリットなんだから。
地形に依存する処理は地形にやらせればいいわけだし
弾はその処理の契機を与えるだけでいいんじゃない?
>>350 は?弾が地形のポインタもつのは設計が狂ってるって話してんのに
そんなレス返す辺りお前俺の言ってる意味テキトーにしか理解してないだろ
まず弾が地形のポインタもつのがいけない理由がわからん バカな俺に説明してくれ まあ俺だったらグローバルに地形参照してるポインタもしくは地形の変数そのものを置くだろうな そして必要ならリストにも加える
>>352 ああ、君はカプセル化とか気にしない人でしょ?
それじゃまったくわからないだろうね
そしたら全部グローバルにもったらいいで
なにも悪くないよ
ただ、カプセル化とかはわかってないよね
って言ってるだけ
>>351 地形クラスって限定してるならそうなるだろうけど
もっと抽象化したものをやりとりするものじゃないの?
>>352 グローバルに「地形」と限定したものを持つのはまずいと思う。
宇宙や空には地面は無いかもしれないし。
ポインタがNULLなら判定をスキップとかそんなんじゃ駄目なんだろうか
逆に考えてみようぜ 地形が弾の情報をほしくなったらどーすんの?
お母さんに頼んで弾のポインタをもらう。
どっちか一方が知ればいいんじゃねーの それか第三者が調停するか
弾タスクが作られたときに一度、地形タスクのポインタを取得すればいいと思ったんだけど 弾が生きている最中に地形が増えていった場合に対応できないから、 弾が衝突する対象のタスクを入れる専用のリストを設ければいいかな?
俺だったら弾タスクリストも地形タスクリストもグローバルにしちゃうなあ それやると上の人にカプセル化云々で怒られそうだけど 寧ろグローバルのどこがあかんのですか 大規模集団開発ならともかく、個人の小規模のものなんてグローバルでよくね? どの道どっかで作ってそのポインタなりを一々渡したりするんだろ 一々面倒じゃん
一週間ぶりに見る自分のコードは他人のコード
ここに居る人達はFSMにならないような記述をどうやって行ってる? あと今まで古典タスクシステム無視してFSMでしかゲームくんでこなかったから 種類ごとの動作順序がバラバラなのが何だか気持ち悪いよ><
>>362 FSMって有限ステートマシンのこと?
>>FSMでしかゲームくんでこなかったから
具体的にどうやって組むのか教えて。初めて聞いたから知りたい。
FSMは有限ステートマシンの事だよ。 これでゲームを組むっていうのは、大雑把に例えると 1) タイトル画面を管理するタスクが存在する 2) ゲーム本編を管理するタスクが存在する 3) ゲームオーバーエフェクトを管理するタスクが存在する の時、タイトル画面からはゲーム開始できるから (1)->(2) (2)からはゲームオーバーとゲームリセットが考えられるから (2)->(1), (2)->(3) ゲームオーバーするとタイトルに戻されるから (3)->(1) こんなFSMができあがる。 ゲーム中の敵みたいなオブジェクトも 敵生成エフェクト-> 敵が発生する-> 敵が存在する(行動する事が閉じたFSMとして別に繋がっているが省略)-> 敵が破壊される な単純なFSMとして処理の流れを記述できる。 でも、これは一々タスクを4つ作らないといけないし、無理してタスクひとつに詰め込んでも 状態変数を持ってifやswitchなどで内部で分岐処理をしないといけない。 これは非直感的で避けたい。
ごめん。言葉足らずだったね。 今はFSMの代わりにmicrothreadを使おうと調べているんだけど、 これはタスク中でyieldと言われている処理をする事でタスクの実行をプログラムのその行で中断し 次のタスクへ処理が委ねられる。 次回自分のタスクが回ってきた時、即ち次フレームになると yieldの次のステートメントから処理を再開する仕組みっていう解釈でおk? 本質的には割り込みのないmulti threadと同じものだから各microthreadは動作順序が保証されない様に思えるんだけれど どうなんだろう。 勿論動作順序の必要な箇所(描画など)は今までどおりFSMで組むけど、マルチスレッドなんて慣れてないから 「注意しておかないとバグや処理系依存になる」事がありそうで怖い。
>>これはタスク中でyieldと言われている処理をする事でタスクの実行をプログラムのその行で中断し 古典的タスクシステムの実装での話しなら yieldで分割される単位で実行関数作って、状態が変わったら登録関数切り替え。 タスクを通して維持される情報はタスクのワークに、が古典的タスクシステムのやり方かと。 ちなみに古典的なリスト形式じゃなくてツリー構造にして子の生存管理を親に任せれば 上で言ってるタイトルとゲームオーバーと、みたいなシーンも君の言うFSMと同じように階層管理できる。 階層タスクはボス戦艦の船体の親タスクと砲台の子タスク、みたいな使い方でもよく使われる。 リストでも同じことできるけど、親の座標が子の座標に影響したり親がやられたら子も全滅、みたいなのは ツリーで作った方が楽。
>>364 ここでいうFSMってタイトルの選択とかタイトルローカルの情報はどこで持ってるんだ?
グローバル?タイトル関数のstatic変数?
メインループから呼ばれて毎フレーム抜けるんだよな
静的に関数コールでくっついてるってことはクラスのメソッドでもないんだよな
仮にクラスのメソッドだとしたらタイトルがゲームとかゲームオーバーとかのクラスを所有するのか?
なんか色々タスク方式よりずっと気持ち悪く見えるんだけど。
>>361 なんで先週の俺こんなに一所懸命カプセルかしてたんだっけ?
>>366 なるほどー。
階層構造にしてしまうのもやり易そうですね。
今の機能と共存する形で実装できそうなので作ってみます。
>>367 うう、すみません。表現の仕方が悪かったみたいです。
タスクシステムを普通に作ったらタスクが状態としてFSMで記述され、
遷移がひたすらタスクの生成と破棄する処理として置き換わる事を言っています。
366さんも言っているように、microthread等を使わなければyieldで分割される単位でタスクを作って記述が分断されます。
タスク方式よりずっと気持ち悪く見えても、これはタスクシステムそのものなんです。
また誤解を招く表現ですね。
タスクシステムそのものと言っても古典タスクシステムではありません。
実は僕は
>>335 で、そのレスにあるとおりの機能に依存して今まで開発しておりました・・・。
種類ごとの順序がない、定数時間で同じ種類のタスク全てに対する反復子取得できない、
データ構造がC++風のクラスという型レベルのものではなく処理関数と専用の構造体に分かれている、
汎用ワークエリアの容量が不足している事により起きるバグの回避が自動でできない、
そんな古典タスクシステムからできるだけオーバーヘッドを除きつつ逃げる為にいろいろやっております。
371 :
名前は開発中のものです。 :2010/01/31(日) 15:43:20 ID:PBTWOUVl
マイクロスレッド使わなくても、 task::exec() { switch(state) { case TITLE: 条件満たしたらstate=STAGE1; case STAGE1: case STAGE2: } } こんなのでいいんじゃないの?
>>371 使わなくても、じゃなく、使わない方が良いだろうね、大概の場合。
FSMでマイクロスレッド使う場合のディメリットは、
FSMのステートをスタックフレームのPCで「代用」するやり方では、
一種類のステートしか保存できない点。だって、PCは一個しかないからな。
だから、マイクロスレッドでFSMやってると、
複数のステートが絡み合うようになる段階で、逆に苦労する。
>>372 何か勘違いしているみたいですが、マイクロスレッドはyieldが必要なタスクごとに作られます。
釣りな気もしますがマジレス。
>>370 >タスクシステムそのものと言っても古典タスクシステムではありません。
君の頭の中にあるタスクシステムはずいぶん独特みたいだな。
古典的タスクシステムではタスクローカルのデータはタスクワークで持てるけど
今まで作ってたFSMではない静的な方法とやらではどこで持つの?
何か話が通じない・・・ >クラスのメソッドだよ。型消去使ってるから呼び出せる。 それはC++でタスクシステムつかった時の作り方でしょ。 >あと今まで古典タスクシステム無視してFSMでしかゲームくんでこなかったから 何かしらんが、その非タスクシステムでゲーム作ってたときはシーンローカルのデータは どこで持ってたの?
何だか自分の中だけで議論を展開してしまって申し訳ないです。 > 何かしらんが、その非タスクシステムでゲーム作ってたときはシーンローカルのデータは 古典タスクシステムではないけど上のcodepadにあるtemplate classで タスクをFSMとして扱っているから飽くまでもシーンローカルのデータはタスクとして機能している C++のオブジェクトが持っています。 ここでいう古典とは、型レベルでの事前操作をしないC言語で書く事が可能な種類ごとの順序を保証しない タスクシステムです。 C言語でもある程度のコンパイル時のプログラミングはできるんですがチューリング完全ではないので 高度な事はできず、古典タスクシステムしか組めません。 更に、古典タスクシステムを引き合いに出したのは microthreadでタスクの順序が保証されない事と共通点があったからであって シーン処理に関しての考察は不必要で的外れです。
>>357-358 とりあえず定石として2つのものが互いに参照する可能性がある物体ってのは
正しくインスタンスを配置できたのなら必ず同じ階層に並ぶ
つまり、弾が地形のポインタをもつことはできないし
地形が弾のポインタをもつこともできない
グローバル変数や関数を使えばこういう設計ミスを回避することができてしまうが
これは正しい設計をぶち壊してとりあえずグローバル変数関数に頼るただの突貫工事でしかない
上記の場合は弾と地形の上にいるゲームならシーンクラスとかそういうのが弾と地形のつなぎ処理を
書く部分になるのが正しい
>>360 >寧ろグローバルのどこがあかんのですか
こういうの一度も考えたことないのが設計語ってる現実ってあるからなぁ
今後のためになんでダメなのかちょっとは考えたほうがいいよ
どうしてカプセル化するのか?ってのにその答えがある
グローバルはルール無用になるところが問題だけど、 これを理解して実装しているプログラマーがどのくらいいるだろうか。 グローバルをやたら非難するけどシングルトンをやたらめったら使う奴とかいるし。 あと、ポインタを渡したまま消去されてしまうことに関してなんら対策されてないコードもやたらある。
>>378 シーンタスクが毎フレーム、弾タスクと地形タスクの衝突を判定して、衝突したら弾タスクと地形タスクに通知すればいいの?
グローバルあかんのやったら何でグローバルが存在すんのよ 別に何でもかんでもグローバルに頼るとは言うてへんやろ 何でもかんでもグローバルあかんと抜かすほうが何も考えてへんのちゃうやろか
>>381 グローバルなくてもコードはかけるよ。
グローバルを隠す(さらには静的変数をなくす)のは主に「状態の整合性」の維持かな。
グローバルはとりあえず実装するのには便利だけど、
そのままおいておくと拡張するときに、
状態の整合性の確認のためコードを何度も確認する必要がでてくる。
普通、他人のコードはもちろん自分のコードも細部まで覚えてないからね。
インターフェイスを減らして意味を持たせることによって確認の手間を減らす意味がある。
そういう意味ではこのメリットがほとんどない場合は
グローバルで実装したほうが得ということになる。
また、グローバルを使ってなくても上記のメリットがまったくないコードってのもたくさんある。
やたらメンバ変数の多いクラスとかやたらポインタをすべてにたらい回すとか。
細かく言えばグローバルはオーバーレイでも使わない限りメモリを占有するってのもあるが
これはターゲットによってほとんど無視できることもある。
>>381 なんでもかんでもダメだね
ただ、君の方針がそうであるなら下手にカプセル化なんてしないほうがいいと思う
そういう方針であるならもう割り切るべき
設計なんて頭にいれないでデータすべてをエクセルに展開したみたいにすべて並べるように
プログラムを組んだほうがうまくいくと思う
>タスク方式よりずっと気持ち悪く見えても、これはタスクシステムそのものなんです。 FSMはタスクシステムじゃないけどタスクシステムそのもの・・・ なんだか禅問答みたいですな。 古典的タスクシステム≠FSM=何かの自己流C++タスクシステム という意味なのかな? >C言語でもある程度のコンパイル時のプログラミングはできるんですがチューリング完全ではないので >高度な事はできず、古典タスクシステムしか組めません。 Cでは古典タスクシステムしか組めないとなる理由=Cがチューリング完全でないから? すいませんがチューリング完全と古典的タスクシステムの関連性が見えません・・・ >microthreadでタスクの順序が保証されない事と共通点があったからであって つまりタスクシステムというより並列処理の話なのかな? 順番の保証が必要な処理ならスレッドでもタスクシステムでも同期するなり 優先付けるなりする必要があるのでは、という話になるが。
つーか、現場で働いているゲームプログラマーが実際こうです!って書いてくれたらこんな議論しなくていいのになぁ。 守秘義務ってそうとう厳しいのけ?
コードにしたらボロでるじゃん!
> 古典的タスクシステム≠FSM=何かの自己流C++タスクシステム > という意味なのかな? そうです。 > Cでは古典タスクシステムしか組めないとなる理由=Cがチューリング完全でないから? Cは実行時のプログラミングに関してはチューング完全です。 しかし、コンパイル時ではチューリング完全ではありません。 型に順序を与えたりソートといった動作をするにはチューリング完全である必要があります。 コンパイル時に分かっている情報はその時に処理した方が実行時に処理に負担が掛からず利点があります。 具体的な例を挙げればリストに重複した種類のタスクを単一しか存在できないものとして入れてしまい それをエラーとして扱いたい場合があります。 assertマクロを使えばその様な事態はとりあえず実行時にエラーが出る事によって検出できますが 設置したそのステートメントを実行するまで気付きませんし、動的にタスクに種類の情報を与える方法では 実行前に意図したものが原因か、あるいはロジックの不正でデータが書き換わったのか区別できません。 回避するにはそもそもコンパイルできない様にすればいいのですが、型の区別、重複検索はチューリング完全でなえれば実装できません。 他にも人間のミスを予め阻止する予防線を作る必要があります。(読み取り専用のメモリに対する不正な型変換など) > つまりタスクシステムというより並列処理の話なのかな? OSなどに並列の管理を依存するとゲームプログラム自体が同じ状態でも ゲームが干渉できない部分が原因でタスクの前後関係が狂い、再現性がなくなってしまうのでは?といった 懸念がありました。 並列処理に関しては僕はまだ勉強不足な様です。 再現性があり予測が可能な並列動作やyieldの方法を探してきます。
>>385 前に書いたんだけどなぁ
リンクとってないだろうなぁ
質問あるたびに上げるのも面倒臭いし
ただ、見て理解できるだろうか?
初心者って設計がどういうものか全くわかってないから
void*やグローバルでのアクセスを単純に技だと思っちゃうでしょ?
そういう勘違いから卒業してないと意味ないと思うんだよね
俺も駆け出しのころそうだったし
インクルードも神ヘッダ(総合ヘッダ)作って全部詰め込んでたよ
でもそれは一番やっちゃいけないことなんだよね
もちろん方針として割り切ってるならそれはアリ
ただ、あるところではカプセル化してあるところではグローバル使いまくりとか
するぐらいだったら設計なんて凝らないほうが吉
>>387 チューリング完全というよりメタプログラミングのことを言ってるみたいだね。
古典的タスクシステム≠メタプログラミング=君のタスクシステム
C++はテンプレートメタプログラミングができるから君のタスクシステムが実装できて
Cはそれが無いから君のタスクシステムは実装できない。
ゆえにCは古典的タスクシステムしか実装できない、と・・・
集合論的に穴がありそうで突っ込みたくなるけど、まぁそこはいいか。
>ゲームが干渉できない部分が原因でタスクの前後関係が狂い、再現性がなくなってしまうのでは?といった
>懸念がありました。
やっぱり並列プログラミングの話題っぽいね。
ゲーム系でいえばカプコンの MT Framework あたりならネットでそこそこ情報集められて参考になりそう。
>>378 弾が地形に当たったときの処理として
1. 弾が、地形との衝突を判定して自分で消滅する
2. 地形が、弾との衝突を判定して弾を消滅させる
3. お母さんが、弾と地形との衝突を判定して弾を消滅させる
のうちどれを使うか決めようぜ! ってこと?
3の場合、お母さんが概念的にグローバルな存在になるけど
>>385 実際に使ってるのをうpして社内の人間にバレたら給料に影響する
下手すりゃクビ。そこまでして説明したく無い
まぁ自分で書いたコードでも仕事で使ったものなら 会社の知的財産だからねぇ 会社によってはCEDECとか論文とかならいいよ、というのはあるだろうが 匿名掲示板にコードだしていいよという会社はさすがにないだろうね・・・ まぁ今さらタスクシステムをCEDECなりで発表する会社もないとは思うが。
>>390 ならないよね?
まず、ならないってことに同意してもらわないとその先へ進めないよ
じゃあ、ここで指摘してくれる人は現場の意見ってことでOK?
>>394 そんなの誰も証明できないよね?
頭悪いなら2chやめたほうがいいんじゃない?
>>393 なんだか極端にみえるんだけど・・・
C言語の標準出力とかヒープとかはどう考えてるんだろう。
stdoutとかmallocやnewで取るヒープとかはグローバル扱いからは除外?
ANSIで規定されてるからOKとかかな?
>>393 まじで?どうやってお母さんとお話しするの?お手紙?
>>397 ちょっと上のレスすら読まないの?
シーンに持たせるって書いたじゃん
馬鹿にレスつけたくないな
話わからないなら入ってくるなっての
散々アンチをいじり続けて遊んでいた俺が言うのもなんだが 顔も素性も知らん人間にいきなり「タスクシステム作ってテー」「古典タスクシステムでー」 とか言われてもそれは何の理解の補助にも説明の補足にもならんのよな 顔も素性も知らん人間同士ではエターナルフォースブリザードシステムと等価だ
基本的には、喧嘩の調停はお母さんに任せましょう、で丸く収まる
>>398 そのとおり。
>>399 シーンタスクが持つ設計ってダメじゃね? シーンが切り替わるとき
面クリアしたりワープしたりするときに弾はどうなるの?消えるの?
ワープアニメ中に回復アイテム消えたら子供泣くよ?
泣くよね
ゲームタスクが持てばいいのかな
個人的には今現在のマップ情報の各種問い合わせぐらいはグローバル関数なり経由しても許容範囲。 特定のシーンでしか使わないイベント情報とか、そーいうのがグローバルなのは許せんけど・・・ そのゲームの固有のシステム、として一貫性があればグローバルでも悪い設計とは思わん。 特定のゲーム用に作ったゲームオブジェのタスクを別のゲームに使うことなんて・・・ 現実問題、続編作るときぐらいしかありえないし。
>>402 は?お前の中でシーンがどう定義されてるのか知らないけど
シーンの状態の変化レベルの内容で消えられても困る
ワープだってシーンの1状態でしかないだろ
そしたらワープしても弾消えないよな
そもそもお前、会話がおかしい
思い込みが専攻してて他人の話をまともに聞いてない証拠だろ
俺はこの場では弾と地形が存在するクラスをシーンって話の都合上定義しただけで
このときはどうする?このときはどうする?って逐一状態を定義したわけではない
けどお前はかってに自分の中にあるシーンを俺が言ったシーンだと決め付けて
まず、俺にかってに否定意見を押し付けてるけど
正直それはお前が勝手に定義したシーンであって
俺がいったのは弾と地形を包括するもの程度の意味しかもってないんだけど?
それに実際ゲーム作るとなったらシーンは単体再生だけで済むようなゲーム少ないし
ここでその詳しい仕組みまでもってくることないだろ?
話に関係ないから省いたのに無駄なことするよね君
しかも君の指摘した内容いまの話題に関係あるかね?会社でも君みたいな
話題と全然関係ないこと突然言い出す子がいるけどもっと言動考えてしたらどうなの?小学生じゃないんでしょ?
>>406 つまり「シーン」がお母さんね。了解しました。
それなら何の矛盾も齟齬も無いので大丈夫。
>>407 ほら、また、勝手に決めた
君のお母さんってのはグローバルじゃないの?
違うじゃない?なんで同じっていうの?
違うって
なんでそうやって勝手に思い込みで話進めるの?
>>408 概念的にグローバルであればよくて、弾や地形がそれぞれ一意の
お母さんポインタを持ってるってことで、実装の話ではないですよ。
弾や地形のお母さんにもお母さんがいたって不思議じゃないし。
あ、説明が足りないかも。ま、いっか
グローバルな存在 ≠ グローバル名前空間 つーことなんでねーの。たぶん 国境を越えて存在するもの。長命インスタンス。 例えばハードウェアリソースの制御・分配を行う低層の色々。 ブート→電源断の間、ずっと生き続ける実行待ちキュー。
かぶったな。 長命インスタンス → 相対的に長命な存在
>>409 はぁ?逃げるなよ
自分で決めた言葉もう一度定義しなおしたいなら
せめて前にした定義をどう変更するのか明確にしろよ
勝手に会話の中で都合いいように変化させてんじゃねーよ
しかも違うし
違うだろ?
>弾や地形のお母さんにもお母さんがいたって不思議じゃないし。
なんだよ
グローバルなんだろ?
グローバルのグローバルってなんだよ
全然わけわかんねんだよ!
お前技術者やめろよ
仮に彼のいうことを汲んでやったとしても 弾クラスや地形クラスでグローバル的にアクセスできるもんなんてないじゃんw いつまで自分の世界で話してるんだって思うw
>>375 のコードってどうなの?
メタプログラミングとやらに馴染みがないので、
ものすごく、いや、有り得ないほどにウザく感じるんだが。
率直な感想を聞きたいね。
みんな、あんなのを保守していきたいと思う?
>>415 なにこれ。コード読めません。。。。。何をしてるんでしょうか
とりあえず本人による解説待ち
418 :
ハードの人 :2010/02/01(月) 22:41:56 ID:+pYkEDb4
>>415 てか、こんなことしてるからオナニーとか言われるんだろ。
技術屋ってのは、お山に登っても駄目なんだよ。山を崩すから金になるんだ。
登るべき山と崩すべき山を見定めなきゃ
他のタスクの検索するためのDBってどうやって実現すればいい? multisetに識別子とタスクのポインタを格納すればいいかな。
エンジニアとして破綻してる中年がガキに説教垂れてんぞw ハード君は素人オジサンだから子供相手にも余裕が無いよね
>>419 もし、ダウンキャストを嫌うのなら、型ごとにリスト持つしかないよ。
俺まだ若造なんだが。どうでもいいや。 つーか、年寄りは良いよなー。 日本経済の先行きが不安すぎて死ねる。40年持ってくれるだろうか。 あーー高度経済成長期を体験してぇ。
前スレから何度も書かれてることだが 「1タスク = 1オブジェクト」だの「タスク = オブジェクト」といったような 固定観念に縛られた自称タスクシステムは単なるオブジェクトのコントローラだよ 別の言い方をすれば「1タスク = 1オブジェクト」「タスク = オブジェクト」限定で 構わないならばタスク(処理単位)という汎化された概念にスポットライトは当たりようが無いし 意識する必要も無い。ただ単にオブジェクトをタスク言いたいだけちゃうんかとというのが 例えばCodezineのそれ タスクはあくまでも処理単位、処理ステップ。別に上記の(ゲーム)オブジェクトとは 限らないし型があるとも限らない。何らかの理由でそこにある処理の一塊・切り身であり 機械的に演算器に割り当て流し込む存在でしかない
>>424 むずかしくよくわからない。
別に議論したくない
弾幕ものとかって、弾をグループで管理したりとかする?
>>427 case1) an entity is treated by a task
case2) an entity is treated by multiple tasks
case3) a task treats multiple entities
case3 は普通にある
すまん処理じゃなくて管理か 例 ・敵を倒したらその敵の撒いた弾も消滅するケース ・多段式誘導弾、MIRV弾頭、散弾、同時消滅あり 皆親子
あとハード君はタスクシステム云々以前に さっさとゲーム作れるようになりなさい
親子関係はいらないと思ってきた。自弾だったら自機知ってるし。
反対に自機は自弾のことを知っているべきか
>>431 それも親子だろ。子→親の片方向の接続情報というだけの話。
親の認知がないと法的には親子とは認められない(怒)とか
そういう眠たいお話になるなら退散するが
>>433 いや、タスクシステム自体には必要ないという意味で。。。
435 :
ハ(ry :2010/02/02(火) 01:34:02 ID:iDWjAt2l
自機も自弾もデータだろ。 データに知ってるも糞もあるかよ。 データはデータ。そこに転がってるだけの単なるメモリブロック以上の解釈は必要ないだろ。 データに命を吹き込むのが制御構造、つまりプログラムなわけで、 プログラム中の自機と自弾を制御している箇所にそれぞれの在り処が分かればそれでよい。 自弾に自機のポインタを突っ込むことはあるだろうが、 それはそれらを処理するプログラム(関数)から、どの弾がどの機体のものか判別できるように、 便宜上突っ込んだってだけで、単に「そう実装した」っていう以上の意味は無い。手抜き実装。 別に別途、機体と弾の紐付けを管理するテーブルを用意したとしても、それはそれでかまわないわけで。 プログラムが自弾と自機のことを知ることが出来ればなんでも良い。 つまり、自機と自弾を知っているべき者はプログラムで、 自弾も自機も各々を知っている必要は無い。
俺の場合自弾は自機から離れた瞬間自機とは赤の他人としてたわ
自称ハード屋って相当に頭がコチコチのオッサンだよね 恥ずかしいから出てくるなよ
ここってメモリ管理とか処理の流れの受け渡しとかオーバーヘッドの話をするところじゃないの? と思ってたけどただの基地外隔離スレだったのか。
メモリ管理?タスクコントローラが内包するのか? 関係なくね?
別々にしときゃあいいもの一緒にしてしまうのはいつでも糞仕様。 曖昧な名前しか付かない単位でやりくりするのはいつでも糞仕様。
>>435 を何度も読み返してみたがやはりこの人は本当にヤバイな
さすがOOPを否定する超人だけあって凡人には理解できない
誤爆してんじゃねえよwww
ハード屋さんって上のほうでオブジェクト指向を否定してた 凄腕のアンチさんでしょ。どう見ても彼は引数君クラスだね
>>436 >俺の場合自弾は自機から離れた瞬間自機とは赤の他人としてたわ
え?赤の他人って具体的にどういう状態なのそれ?
いくらなんでも弾の出自・所属を知る手段がないなんて話じゃないよね?
なんかスレの血色が良くなってきたなw
>>442 ____
/∵∴∵∴\
/∵∴∵∴∵∴\
/∵∴∴,(・)(・)∴|
|∵∵/ ○ \|
|∵ / 三 | 三 | / ̄ ̄ ̄ ̄ ̄
|∵ | __|__ | < うるせー馬鹿!
\| \_/ / \_____
\____/
自機が弾吐き出す時自弾リストに追加して自機とは親子関係もないってこと 自弾リストが出自・所属の代わりになるのかな
だよな そのリストの全要素は出自・所属がコード上で決定してるから 各要素が出自・所属情報を持つ必要が無いというだけの話で コード上では親子として扱われてる
は?なんで?
ん?あー、すまん。
>>447 の「だよな」は
>>446 の2行目にかかってんだわ
>>447 続き
だから親子関係も糞もないという話にはならねーだろっつーこと。
例えばツリー状コンテナ(内部収納でも外部収納でも可)内の配置で
(動的な)親子関係を表現されてなくとも、コード上で記述された
(静的な)親子関係というものがそこにはあるでしょと
>>429 ありがとう。
でも、グループで管理されてる弾は、ひとつひとつは単発の弾として扱いたいので
普通の弾クラスを継承して、グループ管理者への参照を持つ弾とするのかな。
いいのかなこういうの。
ていうか、弾ごときにクラスとか作ったりするのって普通?
何が普通かももうわからんくなってきた
>>449 は?なにをいっているのか本当にわからない
まーたゴキブリアンチがわかんないわかんないって喚いてんのか 付ける薬ねーな
はぁ?どうせ初心者が意味不明なコード組んでるんだろ? 弾の発射にどうやったら自機と弾とで親子関係なんてできんだよ マジで意味不明w ためしに聞いてみるけど 自機からシーンの弾発射クラスに弾発射のリクエストもらうような実装だと 親子関係ってできるの?これだとできない? それともこの実装でもできることなの?
>>454 >出自・所属
とやらが表現されてるって
>>446 は言ってんだろ?
出自・所属とやらが表現されてて親子関係も糞ねーってどんな状況だよ
論理的におかしいだろ。おかしくねーってんなら説明してみ?
>>455 コードの親子関係はあるってどういう意味なん?
出自・所属 → どこ中
データ構造内で親子関係が表現されてるか ロジックの中で親子関係が表現されてるか というだけのような
>>458 いや親子関係なんてまったくねーの
まったくねーのにあるとか言い出してる人がいるから
なんで?って聞いてるのがいまの俺の状況
なんでもインスタンスのことじゃなくてコード(?)のことらしい
> いや親子関係なんてまったくねーの ID:rRkqKnAN この人誰?ID:zzoDV2n3と同一人物なの?怖い
461 :
ハ(ry :2010/02/03(水) 00:08:58 ID:bEP4Y/OF
だからお前ら親子親子って、いったい何の親子だよ。 生存期間の親子か?座標系の親子か?何かの設定値の親子か?更新順序の親子関係か? なんなんだよ。 第一いろんな親子関係が発生しうるのに、一緒くたにタスクシステムで管理する理屈はねぇんだよ。 理由がねぇ。初めからスレ違い。 それとも何か?親子関係基底クラスでも作って、多重継承するおつもりですか? そもそもからして、タスクシステムは制御構造を管理するためのものだから、 データ構造まで足伸ばすと破綻するんだ。 もとより関係ないものを必要も無いのにくっ付けんなよなー。可搬性ってしらないのかよ。
バカはすっこんでろ
なんかもめてるようだが、 ゲームの仕様上に親子関係があるなら、そりゃプログラム的には親子関係はあるわな。 それともあれか?プレイヤーに「この弾を撃ったあいつに報復してやるぜ」って 勝手に親子関係を見出してもらう類の話をしているのか? そう言うのは因縁って言うんだ。
話に乗っかるけど、因縁の管理ってどうやってやるんだろうね。 ホーミング弾とかって基本的に自機なり敵なりの座標を把握してるわけだけど 因縁変数として敵機のポインタを持っちゃうと、処理上まずいよね? こういうときはどうするのがふつくしいんだろうか
俺は自機と自弾の間には親子関係ないってつもりで言ったんだがな 俺の言う親子関係とは例えば敵の吐き出す弾はその吐き出し元の敵を壊せば皆消滅する この場合敵を親、その弾を子と見て、更新関数呼び出す場合は親の更新関数中で子群の更新関数を呼び出せばいいんじゃないかな それとは違い自機と自弾はそういう関係がないから並列に処理すればいいと思うのだが
>>464 それは俺の言ってる因縁とは意味が違うんだが・・・
ホーミング弾の場合はターゲットを追いかけるって仕様がはっきりしてる。
当然プログラム中にもそう言うコードが含まれてる。
俺の言ってる因縁は、コード上どこにもそんな関係は示してないのに、
プレイヤーが勝手に関係あると思い込んで因縁つけるという。
たとえば、「コンテニューどっかでカウントしてて密かに成績に響いてるんじゃねぇだろうな」とか。
そう言う風に匂わす作りは大切だと思うけど。
>>465 生存期間の親子関係以外は親子関係とは言わないと?
初めから、「親子関係は要らない」とは言わず、「生存期間に依存は要らない」
と書けばよかったものを。
>>465 弾が敵性オブジェクトと衝突しそれを破壊したら
誰の得点を加算するのかどうやって知るんだい?
母機が誰なのかを知る術が必ずあるはずだろう
データ構造なりロジック中でハードコードされてるなり
お、ハード君、今日は冴えてるじゃないか 何か悪いものでも食ったか?
その自機なり自弾なり敵なり敵弾なりを操ってる大元のクラスが知ればいいんじゃねーの
>>467 残念ながら、それを親子関係と呼ぶかどうかは、ID:gGt1YOQG が決めるとこ。
ID:gGt1YOQG の仕様書では、生存期間の依存のみを親子関係と表記するらしいから、
これはもう仕方が無い。
一般的には親子関係というと木構造を指すことが多いのだが、
本人が「親子関係ではなく、ただの木構造です」と言いはりゃそれまでだわな。
>>469 「自」機と「自」弾リストがある。コンテナ(の要素)の所属があるということ。
それが要素の所属であり、その大元のクラスとやらのメンバ関数の中の
ロジック中でそういうものとして取り扱われてるんでしょ?
所属があるということは何らかのヒエラルキーがありその中の位置関係が
あるってこと
これを親子関係も糞もない赤の他人だという主張は非論理的に見えるが
× それが要素の所属であり、その大元のクラスとやらのメンバ関数の中の ○ 君の言うその大元のクラスとやらのメンバ関数の中の
あとよ、ID:rRkqKnAN って誰なの?
それなら親子関係というより兄弟関係といったほうがいいんじゃね
>>475 親子関係の仕様を満たすために、兄弟関係の実装を使ったってんなら、
それは親子関係を表現したといえる。逆もまたしかり。
結局、仕様上はどうなってるのかってだけ。仕様を作った奴がどう言い張るのか。そんなもんは知らん。
>>476 自機の弾を子供と見なすかどうかなんて、仕様書書いた本人にしか分からん。
子供ではなくて、単に自機の打った弾のグループです、と言われればそれまで。
自弾も敵弾も敵も一緒くたにリストなり配列なりに入ってる場合はどうなんだろう?
例えば画面外から謎の隕石が飛んできてそれにあたると自機も敵機も死ぬゲームで
自弾もその隕石と同じように処理されてるとしたら
>>469 の作ったものは寛容に捉えればそういうものだったんじゃないかと推測するんだが
>>465 >俺の言う親子関係とは例えば敵の吐き出す弾はその吐き出し元の敵を壊せば皆消滅する
>この場合敵を親、その弾を子と見て、更新関数呼び出す場合は親の更新関数中で子群の更新関数を呼び出せばいいんじゃないかな
>それとは違い自機と自弾はそういう関係がないから並列に処理すればいいと思うのだが
君の親子関係の定義ってかなり独特というか狭すぎる気がするな
兄弟ってのも何をもって兄弟なんだっつー。赤の他人との閾値は何みたいな
親子関係って生成元と生成先ってだけの関係だったのか それならすまんかった
タスクシステムにどこまで機能を入れ込むかはそのゲームでの使われ方次第だな・・・ 極限までシンプルに、その機能使うタスクだけ別途組込み、という原理主義的な戦略は一見常に正しそうなんだが 実際には全体の8割のタスクが親子関係使ってる、とかのケースなら タスクシステム自体に親子関係の処理を入れた方が全体では綺麗なコードになる。 全体の一割以下のタスクしか使わない機能をタスクシステムの根幹に組み込む、 とかは肥大化したダメな設計の典型だけど。 要はケースバイケースという当たり前の話。 全てのケースを満たす唯一の最適解という銀の弾丸は無いってことだね。
>>481 ケースバイケースが当たり前なのに、なんで「タスクシステム」と呼ばれるものの存在だけは
前提になってるの?
>>478 それはおそらく複数の侵入式コンテナに格納されてるオブジェクトだろうな。
複数のコンテナのパラメータがオブジェクトのメンバ変数として侵入してる。
例えばその「ごった煮」リストであったり、木構造であったり。片方向かもだが
>>482 使った場合の前提でしょ。当たり前すぎの話だからあえて書く必要無いと思ったんだけど。
タスクシステム以外の方がいいケースなら別の方法採用するのは当たり前。
逆にこんなこと聞いてくる方が疑問。
何で目的に対して手段は一つだけ、と考えちゃうんだろう・・・?
>>484 ふーん。当たり前の話と当たり前すぎの話で書くか書かないか切り分けたんだね。
よくわかんないけど、後ろについてる「疑問」もさっぱり脈絡がわかんないけど、まぁいいや。
>>484 ゆとり教育の弊害じゃね?
ゆとりの学校では一個の問題に一個の答えしか教わらないもんだから
どんな問題でも答えは一つしかないと信じてるんだよ。きっとww
アンチの頭はみんなこんな感じ。
「タスクシステムは唯一の答えじゃない!だからまったく使えない!」ってww
>>480 自機と自弾の場合、生成先と生成元という関係に終わらないよ
生成後にも自弾と自機には関連性がしっかりとある。
例えば自弾が敵をぶっ壊したら誰がポインヨゲトするのか、とか
自弾のこの状態変化(敵撃破&消滅)によってポインヨ情報更新処理が
発動する唯一の存在が自機。自弾を所有し放った存在
生成先と生成元じゃなくて生成元と生成先かな
そもそもポインヨ管理自機がするのか 俺の場合自機関係せずゲームクラスでやるがなあ 自機はポインヨノー関与よ 態々自機と自弾関連性持たせる必要あるのか 俺のやり方だと自機と自弾は全くの独立した存在
>>489 それ自機に関するパラメータ・処理の置き場所がコード上で
複数箇所に分かれてる(構造体・クラスが違う)というだけで
自弾の状態変化が自機に関するパラメータ・処理にしっかり
作用してるでしょ
例えば自機についてのオブジェクトAとBがあり異なるコンテナ・
オブジェクトに格納され、AとBは相互に作用がないが両者とも
自機についての情報を格納してる。それだけ
ポインヨ=自機に関するパラメータなのかな 俺はそう捉えてないから違うのかな 俺の場合スコア=ゲームの所有物だから スコア=自機の所有物という捉え方の違いじゃないのか
俺も結局はgGt1YOQGみたいにする。 親子関係なんてどこにもでてこない。 自機と弾はフラットな関係。 それでなーんも問題ない。 相互作用は相互作用として別途用意する。 弾や機体がある使われ方を想定したような設計にしはしない。 何か用のポインタを想定しただけ用意しておくようなことはしない。 弾は弾、機体は機体として自分の内側だけを見とく。
オブジェクト間の直接通信を避けて例えば調停者(mediator?)が オブジェクト間の通信(作用)を仲介しているということならば 実装上の結合度は下がるもののオブジェクト間の関係が 解消されアカの他人になるわけじゃない。調停者がオブジェクトの 関係を承知している。処理フロー、データフローは調停者を 介して繋がっている それが兄弟なのか親子なのかというのは俺の知ったこっちゃないが
mediator,obsererパターンもポインタ相手のもってるだけじゃn
>>493 各オブジェクトは他オブジェクトの情報を直接持たず、
調停者が全て通知したり制御するってこと?
グラディウスのレーザーとかオプションみたいなものだと
レーザーやオプションに自機の位置を伝えるのは調停者?
誰だよw 親子関係とか言ってたクズw
で、解決したのでしょうか?
499 :
名前は開発中のものです。 :2010/02/03(水) 23:23:34 ID:9IuFtIPR
まーた似非平等主義者のお花畑アンチが「私は不当な差別を受けてる」
「差別反対!階級社会断固粉砕!」とか喚いてると聞いて飛んできました
>>497 『あなたと私はフラットな関係です。私を見下さないで下さい(怒)』
ですね。わかります
こう言っちゃ怒られそうだけど言い争ってるの全員糖質っぽく見えるぞ 煽りの内容ももはやタスクシステム関係無いじゃん
「別にアンタ(自機)のために往くんじゃないから。勘違いしないで」 「これで私も一人前の飛翔体だから。半人前扱いしないで」 「もう行くから。金輪際アンタと私は赤の他人だから。バイバイ」 自弾はそう言い残し敵に体当たりして名誉の戦死を遂げ 遺族への報償金は自機の銀行口座にふり込まれた ここまで読んだ
>>501 いや「自機の銀行口座」ではない
自機の上位の存在、世界の創造主、調停者、神、ゲームクラスが“管理”する銀行口座だ
というのが
>>489 それはつまり神が“管理”する自機の銀行口座 ということだろ、というのが俺。
>>491 自機というのは別に1Pで置換しても可。銀行口座は積立口座で置換しても可。
1P・2P協力プレー可能な縦STGなら神は複数の積立口座を“管理”するんだろ。
誰の積立口座なのかを識別する情報が必ずそこにある。1Pの口座、2Pの口座。
1Pに関する情報、2Pに関する情報。
>>500 ヒント:このスレはヲチされておりますw
504 :
ハry :2010/02/04(木) 21:42:38 ID:SJJT8x69
お前ら少なくともタスクシステムの話しろって。親子関係とかマジどうでも良すぎる。 お前ら本当は頭悪いだろ。俺もそんなに良い方じゃないのに、お前らどうするの? 俺が情報系の学科選んだのも、他学科よりも合格偏差値が低かったからだしなぁ。 おっと、自己紹介はここまで。 さっきから自己紹介の粋を出て無い会話が永遠と続いているから 俺もつい自己紹介したくなった。
はたから見てて、何をもめてるのかさっぱり意味不明なんだが。 ESPの範囲外。道端の石ころにさえ気を配る俺を置いてけぼりにするとは、 なかなかやるなー。頭痛が痛いから珍しく放置に放って置く。
>>505 意味の無いものに意味を見出すためには、
頭を強打するか、悪い薬でもする必要がある。
>>505 読み辛いか?
確かにC++の文法(特にtemplate周り)や型操作、
現代の一般的なコンピュータのアーキテクチャ(メモリの動的な確保のコスト、マルチスレッドや実行の並行性)
に関する知識がないと分からないと思うが
それらは今一般的なコンピュータ上で製作時及び実行時に効率良く動くプログラムを作る上で必須。
使えるものを最大限に利用して徒労を回避するのは当たり前の思考だし、
低レイヤーな部分を記述できるC++でそれを実装しようという試みも間違ってない。
>>508 PG脳だな
相手の望むものを意図的にズラして自分の有利なように話ししてるだけじゃん
お前
>>505 の問題を解決するようなレスじゃねーし
>>508 の内容がすべていいわけを敷き詰めて「リンク先は間違ってねぇ!」っていいはってるけど
実際読みづらいと感じた人間にそんなレス付けて君は一体どうしたいのかね?w
うん、分からない言葉が出てきたらぐぐろうね。
>>508 本を本棚に置くために必要な時間は、何回か反復すれば、すぐに見積もれるようになる。
しかし、本棚の整理整頓術は、なかなか身につかないものなんだよ。
特に間違ったOOPやデータ構造主体で物を考えてるうちは。
プログラムの主体はあくまで制御構造であるということや、
モジュールは機能ごとに構築するのが基本だという、
そこいらへんね。理解しなきゃどつぼにはまる。
ホワイトノイズに音楽性を見出せといわれてもなぁ。 スピーカー(話し手)の歪を測定するのには最適だが。
これがホワイトノイズだと思うのは単に理解が足りないだけだよ。 俺の書いてる事にタスクシステムに対する生産性はないからやねうらおの記事をわかるまで読んでみるといい。 古典タスクシステムでネックになっていた特定のタスクへのアクセスが メモリに最適なリニアサーチ、実行時間に最適なハッシュによる検索、古典ではこれ以上できなかった両者のアルゴリズムよりも 有利な実装ができる。 そういう探求が記してあるだけなのに何をそんなに攻撃的になっているんだ?
>>513 そんなもんは普通の脳みそ持ってる奴だったら半年、
遅い奴でも3年ありゃ習得できんだよ。
足下ら先にもう一歩踏み出せるかが重要なんだ。
大体お前、検索が遅いなら事前にインデックス作っとくとか、そんなの当たり前すぎるだろ。
何をいまさら。
型ごとに列挙したいなら、型ごとにリストつくっときゃいいじゃん。
Type値ごとに列挙したいなら、Type値ごとにリストつくっときゃいいじゃん。
配列の空きIndexを高速に見つけたいなら、空きIndexリストつくっときゃいいじゃん。
3分で思いつくことだろー
>>514 同意
まったく無駄だよね
しかもこんなくだらんことわけわからん単語使わなきゃ説明できないとか
自分を過大評価しすぎだろw
酔ってる自分をみる他人の目とかちょっと考えれば恥かしくて表でれないレベル
boost::unordered_map<type_info*,std::list<Task*> > tasksList; struct PseudoIterator { std::list<Task*> container; std::list<Task*>::iterator iterator; void erase() { container.erase(iterator); } }; boost::unordered_map<Task*,PseudoIterator> taskToIterator; んー
PCエロゲワールドの貴公子であらせられる自称高額納税者のアレは リソース制限の緩々な微温湯プラットフォームの小山の大将なんだからさ 彼がタスクシステム云々なんて話を始めるときは眉に唾をたっぷり付けて 聞いとき
大手でプログラマやってるけどコンシューマ機でboostやtemplate使うチームは間違いなく大量のバグを生産してる
Codezineの記事(出た当初からSTGスレで散々に言われてた)を参考として リンクしてる辺りであのPCエロゲ屋の理解のほどを察してやれよ ゲームオブジェクト(エンティティ)を格納したコンテナとその操作についての お話に終始しておきながら、これタスクの話です近代的なタスクのシステム なんですね、などと得意げにどや顔するPCエロゲ屋の姿を想像してごらん なかなかハートウォーミングだろう
>>519 boost::spiritでも使ったのか?w
wをつけてこの程度
俺が泥沼にハマったのはboostとtemplateのせい。俺は悪くない まで読んだ
また文盲が来た
やねはコード書いて主張してる分だけ俺らよりはマシだけどな 粗悪なコードから学べる事だってたくさんあると考えれば 余談だが彼の叩かれっぷりを見てるとネットにソース公開 するのをいつも躊躇ってしまうw その辺のジメジメした日本のネット事情は好かんな
コード書いてるぶん批判しやすいのかもしれない。 まぁ書かれてあるコードがどうあれ、 変な例え話だけよりもコード書いてあったほうがうれしいですよね。
データベースのインデックスみたいなのってどうやって実現するのでしょうか タスクループごとに再構築しなおすの?
何を想定してるのかわからない まずはお前のタスクシステムを説明しろ
このタスクシステムとやらの何が凄いのかサッパリ分からん。
少なくとも、
>>2 に書いてあるような奴の事を言うなら、システムっていうよりは、ただのプログラム上のお作法とかセオリーの部類じゃないのか。
まるでセオリーがすごくないみたいな
一言で
>>2 つってもリンク先によって中身だいぶ違うけどな
>>534 いきなり同期とか意味不明すぎて反応できないぜw
あったま悪いからそんなレスしちゃうんだぜ
>>535 ああ、ごめんなさい。頭悪いのは認めるよ。
必要以上に攻撃的なのはなんなんだwww デスマ真っ只中でイラついてるとかか?
538 :
ハry :2010/02/06(土) 02:40:25 ID:1tXKnkh3
単になれなれしいだけだろう。お互い頭悪いことは分かりきってるし。 頭悪い奴が分別のつかない奴を叩いてる、そんなスレッド。ちょっと変わった愛情表現。
芸は身をタスク
>>529 このタスクシステムとやらの何が凄いのかっていうと
名前だけで「もしかして凄いものかもしれない」と勘違いさせるのには
最高の撒き餌になるってことだろうな。現にお前みたいな慌てん坊さんが
ホイホイ釣られてやって来るわけだから
昨夏にも張ったような気がするが _Y_ r'。∧。y. ゝ∨ノ バカがタスクシステムに ,,,ィf...,,,__ )~~( 幻惑されてる間に _,,.∠/゙`'''t-nヾ ̄"'''=ー-.....,,, ,i i, ,z'"  ̄ ̄ /n゙゙''''ー--... ,i> <i 文明はどんどん発達し r”^ヽ く:::::|::|:::〔〕〔〕 i> <i. ていく・・・・・・。 入_,..ノ ℃  ̄U ̄_二ニ= `=.,,ー- ...,,,__ |,r'''"7ヽ、| __,,,... -ー,,.=' >ーz-,,,...--,‐,‐;;:'''""~ ~''':x.,, ~"|{ G ゝG }|"~ ,,z:''" ___ ~"'=| ゝ、.3 _ノ |=''"~ <ー<> / l ̄ ̄\ .|)) ((| / ̄ ゙̄i;:、 「 ̄ ̄ ̄ ̄| ̄| ̄ ̄ ̄\ ))| r'´ ̄「中] ̄`ヾv、 `-◎──────◎一' ├―┤=├―┤ |li:, |「 ̄ |i ̄i|「.//||「ln|:; ||//__|L_」||__.||l」u|:; |ニ⊃| |⊂ニ| || ,|/ |_. └ー┘ ._| ||/ ヘ 「 ̄ ̄ ̄| /
なんか"タスクシステム"を"ポインタ"に置き換えても成り立ちそうだな、このスレ。 JAVAとかC#とかしか知らない若い子がCのポインタが何なのか理解できないのと同じ臭いがする。 古株にとっては「プログラマでポインタ理解できないなんてゆとり」という感覚なんだろうけど。 「ポインタなんて年寄りの戯言、何のメリットがあるのかわかりませーん」という世代とのギャップが埋められず。
まったく違う
>>3 をポインタに変えたら話が成立しない
ポインタのわからないプログラマの頭の中では 「ポインタなんて裸の王様」が成立してると思うよ
21世紀にもなって今だにポインタやタスクシステムについて熱く討論してる時点で 時代遅れというならそうかもなぁww そんな原始的な話はみんな20年前に通り過ぎてとっくに先に行ってる、と
マルチコアを無駄なく使いきれるフレームワークとかかねぇ まぁこれもPS3とか360が出始めのころの各社が研究してたトレンドだったからもう古いかもねぇ
マルチコアを有効に使うシステムがそれこそ現代のタスクなんじゃないの?
ゲームプログラマの求人見てみるとタスクシステムって言葉出てくるよ 使われてるんじゃないかな
デザパタみたいなもんで名前があることにも意義がある 一番不思議なのは親の敵の様にタスクシステムを 否定する輩がこのスレに現れる事だ 温故知新とも言うし簡単な仕組なんだから 使わないにせよ知ってて損は無いのにね
ヒント:適切な単位に適切な名前
>>551 おっと失礼
訂正させてもらう
×:一番不思議なのは親の敵の様にタスクシステムを
○:一番不思議なのは親の敵の様に
>>2 を
553 :
ハ(ry :2010/02/08(月) 22:21:47 ID:VnpQvf7D
>>550 間違った(というか遅れた)考え方を知ってて特になるって・・・。
確かに自衛の意味ではやくにたつな。
無駄なことを知ってるって超重要だからな。
永久機関の開発に一生を費やしでもしたら、そりゃ悲惨だ。
>>547 >>548 マルチコアを無駄なく使う?俺はトレンドになんねぇとおもうがなぁ。
そう言うのは、forループの並列展開程度にしれっと応じておいて、
他の事に時間を割り振った方が自分のためだろうな。
でもforループの並列展開だったら、SIMDの方が相性良いかもしれん。
ということで、コアは8個程度で打ち止めにして、
今後はSIMDの拡張方面を頑張って欲しいね。
ただ、サーバー用途だとマルチコアの方が有利だし、
CPUメーカー的にはその辺の事情があるんだろうなぁ。
ハァ…ため息しか出ない 静的型付け言語の型情報と 一致しない
すまん途中送信してしまった スレッドレベルではなくインストラクションレベルの並列化の強化に期待とか かなり独自の世界観を持ってるな。。。
1命令でいっせーのーせどんを強化した先にベクトルプロセッサがあり HPC分野では。。。ソフトウェアの開発がスカラー機に比べて簡単とか 聞いたこと無いな
あと並列化なんてループアンローリングだけで十分だろというならば その程度の最適化はコンパイラに任せなさいで終わりだ。アホか
ハードウェアはソフトウェア開発者に優しくありなさいというならば スレッドレベルの並列化(別の言い方をすればSMPな)を前提に進化した ターゲットハードウェアのほうが格段に優しい。SIMD大強化マンセー ベクトルプロセッサマンセーなんてNECかNVIDIAの周り者かっつーの。 糞くらえだ。現場を知らないクズは死ねばいい と思いました。あーすっきり。ワナビー大嫌い
好き嫌いじゃなく、今のゲーム機のアーキテクチャがマルチコアなんだから 使わないわけにはいかないだろうに。 処理落ちしてる時に遊んでるコアがありゃゲームプログラマならコア駆使して 何とかするもんだ。
自称ハード屋(
>>553 )は素人オジサンだから放っといたほうがいい
たまーにマグレでまともそうなこと言ってるように見えるが
基本的にゲーム作れないのでピントがずれてる。たぶんキチガイ
1フレ単位の処理でマルチコアなんて使う場所ねーじゃん せいぜい裏で次のシーンのデータロードしておくか 超複雑なAI(将棋とか)走らせるとかぐらいじゃね? このスレの話題としてマルチコアなんてでること自体おかしくね?
562 :
ハ(ry :2010/02/09(火) 01:18:56 ID:4uRxejvM
>>557 まさしく。並列化なんてしたくねぇ。
だからこそのSIMD。
コア増やす方法だと、キャッシュのコヒーレントの問題で、どっかでコア数の限界が来る。
コア数が少ないからforループを展開しても大して速くならない。
結果、自分でスレッド立ててシコシコする羽目になる。
その点SIMDだとそんなのかんけぇねぇから、並列度をどんどん上げれる。
64ループ分ぐらいを一発で処理できる。もっと多くしても良いだろう。
分岐を展開しなければならない弱点があるが、
そんくらい並列度が上がればペイできるだろう。
コンパイラ拡張して勝手にSIMD展開してくれるfor_parallelとかが組み込まれれば、
気軽に使えるようになる。それでいいじゃない。
>>561 そうなんだよ。
結局マルチコアはサーバー用途に作られたもの。
それをゲームで一生懸命使おうと頑張ってる皆さんは、仕事とはいえご苦労様。
マルチコアが使いやすいとか何の冗談だよ。
マルチコアはスレッド使うって時点で十分面倒だ。可搬性を考慮したライブラリ化がしずらい。
だんぜんSIMDの方が気軽だね。俺は気軽な方がいいや。
>>558 ×周り物 ○回し者
>>548 > マルチコアを有効に使うシステムがそれこそ現代のタスクなんじゃないの?
http://2chart.fc2web.com/2chart/pic/naniwo.jpg タスク(処理単位)ってのは時代で変わるものなのか?違うだろ。
いつの時代もハード、ライブラリによって多種多様。大昔も今も
ハード、ライブラリ毎にタスクの粒度、構成要素、何もかも違う。
時代で一意に定まるタスクなんてないよ
あとマルチコア(マルチプロセッサ)がトレンドだゲンダイだとか眠たすぎる。
複数プロセッサのやりくりなら15年近く前には既に零細のソフトハウスだって
64bit級のために四苦八苦しながらやってた
SIMDの何が良いって、プログラムカウンタが共用なのがいいね。 プログラムは上から下にだらだら逐次実行していくものだという基本に忠実。 それでいて、並列化も行われるわけで。 スーパースカラの投機的命令実行で十分じゃねって言われればそうかもだが。
>>563 君の言うSIMD強化って、具体的にどんな絵を描いてるのかよくわからんのよね。
その新命令って例えば何してくれんの。それはゲームの中の何に使えるの。
ゲームプログラムに共通した、ゲームプログラムに特化した便利なインストラクションセットを
オーダーメイドで作ってもらえちゃうの?それならそれで便利だよねドラえもん
>>563 君はどんな処理をどんな粒度で分割しどんだけの量を並列化するお話してるの?
インストラクションレベルの並列化で十分つーてるんだから当然それは細粒度の
分割に適した多量の何かを処理するお話なのだろうとは思うけど
>>566 普通に64個ぐらいのデータを一つの命令で並列に処理してくれるようにしてくれりゃそれでいいよ。
マルチコアなんてせいぜい4個とか8個とかだろ。苦労してそれじゃね。
>>567 forループの展開って言ってんだから、そりゃ、ループカウンタの粒度での分割だ。
カウンタの0から63までを並列に処理してくれりゃいい。
>>569 それはゲームプログラムの中で具体的にどういう処理なの?
あなたの想定する既存CPUでワークロードの中の何パーセントを
占めてる処理なの?
だから、ループを展開するって言ってるだろ。 ループしてるってことはそこの処理は必然的に重たいわけだ。 そこを重点的に展開するわけだから、それで十分だろ。 ループしてるとこ以外に重たい処理なんてあるか?無いだろ。
どうせ、全体の25%しか並列化できなかったら、 最大でも処理時間は75%にしかならないよ、とか言うんだろ。 でもそんなもんはマルチコアでも一緒だ。 いちいちスレッドの面倒を見なきゃいけない分 小回りがきかないマルチコアの方が分が悪いと思うがね。
ハード君…
ゲームの場合、1フレーム毎に同期をとらなきゃならないという制限があるから、 大きな粒度での並列化には無駄が出来る。 かといって、マルチコアで小さな粒度の並列化をしようと思うと、 コンパイラが自動でやってくれない限りは地獄を見る。 タスクシステム的な何かを用意する必要があるからな。その時点で却下だ。 サーバー用途だとマルチコアはいいものだと思うよ。
何度も何度も何度も何度も言っているが、その記事の「タスク」は、 並列にやらせる仕事の単位をそう呼んでいるだけで、このスレの「タスクシステム」じゃない。
並列更新と同期更新が同じ「タスク」単位になってるから 案外「タスクシステム」と似たような処理なのかもね 使った事ないから本当のところは分からないけど
ゲームを作ったこと無いんだが、タスクシステムってのは リアルタイムシミュレーションゲームを作るのに便利なフレームワークってことでいいのか
魔法のシステムです
茶色の小瓶です
>>581 それゲームオブジェクト(エンティティ)のお話
ユーザー側の、アプリケーションの層のお話
ゲームオブジェクト(エンティティ)は複数の関連・相互作用の図の中に参加するというお話。
そらそうだ。物理的・力学的な繋がり。制御の繋がり。通信の繋がり。組織の繋がり。色々ある。
それぞれのコンテナ(外部収納・内部収納は問わない)に格納される。自然なことだわな
ところで低層のターゲット依存部の中に、非プリエンプティブな処理単位を格納する
レディキューが一本あるとする。これは
>>581 のページ内で言われてるような
「一般化されたゲームオブジェクトのリストを一本持つ」というお話とは一致しないわな
ユーザー側の、アプリケーションの層の中で定義されるゲームオブジェクトの単位と
それより下層の、システム側の、ターゲット依存部の中で定義される処理の単位というのは
分割の基準・動機が違う。そうでないならそれはゲームオブジェクトをタスクいいたいだけの
Codezine状態なんだろ。1task = 1object限定とか。ネット発生型の都市伝説システムだろ
>>573 > どうせ、全体の25%しか並列化できなかったら、
> 最大でも処理時間は75%にしかならないよ、とか言うんだろ。
君はすぐそうやって後頭部を強打したりESP使ったりして妄想先回りするけど
ちと被害妄想が激しすぎるんじゃないのか。そんな警戒しなくていい
> でもそんなもんはマルチコアでも一緒だ。
> いちいちスレッドの面倒を見なきゃいけない分
> 小回りがきかないマルチコアの方が分が悪いと思うがね。
SIMDに適した、細粒度の分解に適した、君に都合のよろしい処理対象を
君は一体全体どういう形でマルチコア(マルチプロセッサ)に配当してるの?
君に都合のよろしいその処理対象はその64-wideのSIMDを使ったほうが
適してるんだからそれでいいじゃない。
で、その、いっせーのーせーどん方式で処理を再構築、データを再配置
しやすい処理は一体なんなの?ゲームの中の何を処理してるの、と
聞いてるだけなの。そしてそれはあなたのゲームではワークロードの
何パーセントを占めていたの?あなたの想定する既存のCPUコアは何?
あなたの想定する既存のターゲットハードウェアは何?
脱線はなるべく無しでお願いしたいものです
シェーダーとメッシュ等のジオメトリって分けますか?
>>585 >で、その、いっせーのーせーどん方式で処理を再構築、データを再配置
>しやすい処理は一体なんなの?
ぱっと思いつくところでは、布との当たり判定とかはマルチコアよりもSIMDの方が相性良いだろう。
ゲームの中には大概人型のキャラクタが出てきて、大概が服着てるわけだから、有用そうだよね。
こまかいことほじくって屁理屈並べても仕方ないんだって。
マルチコアは、
大きな粒度の並列化向け、一方ゲームは1フレームごとに同期が基本
&キャッシュのコヒーレントでコア数増やしづらい
&スレッド使うから関数レベルでの可搬性が保ちづらい
ってんで、ゲーム用途には十分つんでるかと。
サーバー用途だと、何もしなくても恩恵にあずかれるのに、ゲームだと、
MTフレームワークにしろspursにしろ、あんなもん用意しなきゃいけない時点で、
無理やり感が漂ってる。なんていうか、小手先?
仕事の人は大変だね。素直にSIMDの要求しておけば、次々世代あたりでかなうかもよ。
そもそも複数のCPUに向けたデータを用意するだけで疲れるし ぶっちゃけやりたくないなw コンパイラが頑張ってくれたほうがみんな幸せになれそう
ゲームを作ることを目的とするのではなくて オブジェクト指向の勉強を目的とするので 特に問題は無いです。
ゲーム制作はオブジェクト指向の勉強には不向きだと思う
オブジェクト指向を勉強するって意味が分からない。 あれはセンスのもんで、 うまい人が作ったクラスは機能ごとにまとまってて、 下手な人が作ったクラスはデータ構造主体でまとまってる。
オブジェクト指向ってゲーム向きじゃなかったのか
実際のところ、ゲームゲームな感じのゲームには適切ではないと思う。 ラリーXとかプーヤンみたいなゲーム作るときにどう使えばいいのか 無理やりクラスを設計するのは楽しいけど、仕事ではそんなコードにしたくない。 敵も味方も石ころもみんな等価な物理演算っぽいゲームだとうまくハマるとは思うけど 識者の意見を聞いてみたい。
PCや数学由来の技術はメモリ管理が組み込み向きに考えられていない。 机上の空論好きはその辺考えないからね。
データ構造ありきで考えるから難しいんだって。 描画エンジンクラス サウンドエンジンクラス コントローラIOクラス ゲームロジッククラス セーブデータIOクラス データローダークラス リソース共有クラス こんな風に機能ごとにクラス化していけばいいと思うよ。 モジュール化の基本はOOPでも同じ。
それに関する反論(機能分解やモジュール化でも駄目)が design pattern distilledの最初の方に載ってる 勿論その議論の中でもデータ構造によるものとか名詞抽出は論外だけど 8年前のしかも入門書だから今どうかは知らんけど
そろそろその「載ってる」とかそういう表現どまりのレスってやめない? 読んでない奴にとってそれによって何が主張したいのかまったくわからないし 仮に読んでみても本に書いてある意図とレスの主張が全然違うこともあるしで 照合するにもえらい時間がかかるそれを受け手に全部押し付けるってえらい傲慢もいいとこじゃないか? もう引用とかしなくていいから ○○だから、○○である と自分の言葉で説明しろよ それは本のまる写しでもいいからあくまでも自分の発言としてレスにそえろよ
そーそ。デザパタ本なんて糞食らえで読む気しねぇんだよ。 どうせ、おたかいんでしょ?
どっちゃにしろ、ライブラリがそれが持つ機能で掻き集められる物である以上、 無理にでも機能で分割するしかねぇんだよ。答えは決まってる。 後はどう枠にはめるか。
>無理やりクラスを設計するのは楽しいけど、仕事ではそんなコードにしたくない。 失礼な言い方で悪いけど、それって設計者に問題ある気がするが… 無理矢理クラス設計せんといけないような状況に出会った事が無い 俺の経験不足かもしんないけど OOPに問題を転嫁しちゃったら、もうどうにもならんのじゃないか
>>588 >仕事の人は大変だね。素直にSIMDの要求しておけば、次々世代あたりでかなうかもよ。
「僕、素人だから現行アーキテクチャでゲーム作る方法が想像つきません」と。
今のアーキテクチャですら作るの無理って人間はSIMDとか以前にもっと根本的な部分で
何かが不足してるんだと思う。
>>598 相手とレベルに差がありすぎるときは情報の出所を示して自分で学習してもらう、
くらいしかできんよ。
それか抽象的なたとえ話にするぐらいしか。
四則演算も変数も数式も知らない小学生一年生に「因数分解を教えて」って言われて
たとえ話じゃなく具体的に自分の言葉で相手に理解させられるならたいした物だけど。
あ、君なら出来るのかな?
義務教育で9年間かけて理解させることを掲示板のレス一つで理解させることが。
レベルの差、ということにしておきたいんですねw
あ、コレがうわさの
>>3 現象ですねw
>>603 折衷点を見つける気はないってことね
そしたら君が出てくしかないんじゃないの?
悪いけどそんなリンク先なんてだれも読む気もしないし
少なくとも君の言ってる内容とリンク先が完全に一致してる証明ぐらい自分でやってほしいもんだけど
そういう負担をこっちに全部押し付けるなら君とはまったく会話できないな
自分は正しい正しいって必死に弁解してるようにしか見えないけど
仮に君が正しいとしてそれで誰も君の話を聞いてくれなかったとしても
永遠に自分の正しさだけを叫び続ければいいよw独りでw
>>603 自分の言葉で語ればいいと思う。理解するかしないかは読む人が決めるし。
そのわかりやすさも含めて話し手の能力だよね 自分の言葉で語れない奴はどこいっても誰も受け入れない 色んな会社転々とすることになるよ 数式や公式なんて知らなくても相対性理論説明できる人間だっているってことよ
数式公式知らない奴に相対論語られてもさすがに困る
>>609 では小学生一年に因数分解理解させてみて。
自分の発言の証明ヨロww
>>610 アインシュタイン 数学 苦手
でググレ
>>612 >相手とレベルに差がありすぎるときは情報の出所を示して自分で学習してもらう、
私の発言の証明ありがとうww
>>611 極論持ち出して悦にいってるけど
そういう話じゃないよね?
君のレスに興味をもつかどうかの話
まあはっきりいうけど
お前のレスなんて誰も読みたくないから書き込むのやめたら?
って遠まわしに言ってるの
>>612 アインシュタインが本気で数式公式知らないとでも思ってるの?
ベースとしてる電磁気学の数式の理解もできずに相対論の論文がかけたとでも?
>>615 うん、他の人にやってもらったのさw
でもいまの話題でそれって中心じゃないよね?
食いつくところ間違ってるんだけど
>>616 きみのレスに信憑性がないって話だから問題ないでしょ。
結局さ、 >そういう負担をこっちに全部押し付けるなら君とはまったく会話できないな って呆れるほどゆとり思考なんだよね。完全に。 分からない事を分かるようになる労力は分からない人がするもの。 最近のゆとり学校の弊害で 「先生は教える仕事で生徒はお客だから先生が努力して生徒に教えるもの」 って考えてるのが増えてるけど。 >お前のレスなんて誰も読みたくないから書き込むのやめたら? 「僕に努力要求する奴なんて嫌いだ!そんな話聞きたくない!」って どんだけゆとりなんだか。ww
議論じゃなく荒し行為をしたいだけなんだろ。
いや、荒らしってことにしておいて、 議論で負けた場合の体面を保とうとしてる気がする。 こんなスレでなにを守る必要があんのだか。
ID:ZeQP1ZdK お前さー、何関係ないこと言ってんの? 「9年前の〜って本に書いてあったよ」 って言われても、そんな本もってねーし、読んだことねーし、買えってか? 何が書いてあったかぐらい書いてもらわないと、何にもなんねぇじゃん。
>>620 つ 鏡
この自爆率の高さは・・・ハード屋?
俺はここに居る
もはや何スレかわからなくなってきたな
>>617 ああ、反論できないから人格批判して外堀から潰してやろうって作戦ね
.
>>618 自分のレスは読めっていうくせに人のレスはまったく読まないんだねw
もう一度いうけど君のレスなんてつまらないからやめろっていってるの
お前だろ?誰も興味も持てないようなリンク貼って長文連投してるの
このスレにやけに多いけど
誰もよまないし邪魔だからやめてくれないかな
って言ってるの
>>625 レスの信憑性がないこと=人格批判
これに納得する人間がどのくらいいるのだろうか
>>621 9年前の本って何の話?まぁともかく、
>って言われても、そんな本もってねーし、読んだことねーし、買えってか?
知りたいなら取り寄せて買えば?何が問題?
知りたいのは君なんだし。ソースを示してもらっただけでも御の字でしょ。
俺は知りたくねぇ。 反論するなら根拠を示せと言ってるだけだ。
A:このゲームは○○で△△だからおもしろいはずなんだ! B:ああ、そう・・・ って話な 聞き手は○○で△△がどういうものかなんて調べる気もないし ○○で△△を知ってる人間だってそれが上の例でいうとゲームのおもしろさと 直結してるかどうかなんてわかっちゃいない その状況で○○や△△について調べろだのなんだのなんて言われたって 調べないに決まってるだろ 俺のたとえ話はわかってくれたかな? (なんのリンクも引用も必要なくて結構わかりやすく書けたと思うんだけど)
信用のない人間のレスは無視されるか信用に足るか確かめるしかない。 いつまでたっても信用できないものに執着する必要性がない。 レーティングや評価システムのない2ちゃんで 煽りやあらしではなく議論したいと本心から思っているならそこを意識する必要がある。
では
>>629 の状況において○○や△△がどんなものかわかってないBに
Aのゲームの楽しさを否定することはできないのか?
っていわれればそんなことないよね?
こんな状況なんだよ
小学生に因数分解の話とは決定的に違う
>>629 「ああ、そう…」
で話終わってるからこれ以上調べるとかどうとかならん話だな。
このスレと関係ないのでたとえ話として成立してないけど。
>>633 マジで?ねーの?
一応どっかのリンクにはアクセスしてるかと思ったらそれすら怪しいのかもな
本人だって読んでるのかどうかすら怪しくなってきたな
義務教育の批判がギッシリかいてある「学問のすすめ」を薦める
文部科学省ぐらい怪しいなw
結局ID:q7qw6G8dは
>>611 には答えられず義務教育を否定か・・・
自説の誤りを認められずに最後は追い詰められてOOP否定しだしたハード屋
の流れと同じだな。
のうのうとあらわれたw さすがの神経 >知りたいなら取り寄せて買えば?何が問題? >知りたいのは君なんだし。ソースを示してもらっただけでも御の字でしょ。 むなしく響くねぇ。で、どうやって買うの? 君が俺の家に宅配してくれるの?
>>635 その問題が今回の話に適切かどうかもわからないよね
因数分解は義務教育でみんながやるけど
いまは小学生が相手のスレじゃないしね
少なくとも高等教育卒業レベルの知識をラインにしてもいいと思うんだけど
いきなり小学生に因数分解の極論だしね君の
まずは今回の問題と小学生に因数分解の例がたとえ話として適切かどうかの
議論をしてもらいたいね
またどうでも良い話。 反論の根拠として示された入門書が、 まずもって売ってねぇ、誰が書いたのかもわからねぇ、検索にすら引っかからねぇ。 それじゃ根拠になんねぇ。それだけだ。 運河ユニバースで宇宙人に会いました、でも写真はありません。 根拠は運河ユニバース。知りたい人はそこに行けば?そんな話。
因数分解とかはどうでもいいけど
>>597 >design pattern distilledの最初の方に載ってる
まず、この本にどういう風に載っていたのか説明してほしい。
その上で、8年前の本らしいから 今の現状と照らし合わせて
それでも
>>596 がダメだと思った理由を聞かせてほしい。
>>639 > この本にどういう風に載っていたのか
無理だと思うよw 何一つ自分の言葉で語れないから彼はw
とてもとても手間で、とてもとても難しいんだそうだw
やっぱり自分の言葉で語れない奴ってダメだよな まず、バックボーンに信用や共有する知識があってこそ会話って成り立つってことを学習するべきだよ このスレでも毎回、毎回、こんな会話繰り返してるよな また、やったよってうんざりするわ たくさん本読んでるって割りにはなんにも学習しないのな
ざっとレスを読んだがID:q7qw6G8dとID:0/qfWJRvの勝ちだな もうスレ違いはこれぐらいでいいだろう
>>597 が糞野郎なのはともかくとして
>>596 もろくなこと言ってないけどな。
そもそもそれゲーム作ってるのか?ゲーム用ライブラリじゃなくて
ラリーXとかプーヤンを機能ごとにクラス化した場合の話とか提示できないかな
図に出てくる「機能(インターフェース)」ってのは、 関数じゃなくて、あくまでOOPで言うところのインターフェースな。 複数のメソッドが提供されうる。 class hoge { method1(); method2(); method3(); } これ全体で「hogeの機能」ってことな。
>>544 (
>>605 )
ポインタなら、実際に使われてるところを標準ライブラリなり何なりのライブラリから
探せばすぐに具体的に必要性が示せると思うよ。
>>644 これでプーヤンを記述するのはちょっとしんどいかも。
>>644 図まで描いてくれてありがたいが具体性がなくて解りづらい
スーパーマリオでいいから特定のゲームの例か、せめて
>>596 に当てはめた例で書いてもらえないだろうか
あとなんとなく下の塊は上の塊を参照するが、下とか同列の塊は参照できないのかなとは思ったが
下の塊のデータと上の塊の機能が線で結ばれてるのがよくわからない
下の塊の機能から上の塊の機能を呼び出すのではなくて?
「機能と機能が紐づいてデータ構造に」って言うのが説明なんだろうけどピンとこない
できれば具体的なプログラムの方法で説明してくれるとありがたい
>>644 ちょっとまって
機能からデータに線が伸びてるけど
どの辺がカプセル化してあるのか説明してくんない?
あーごめん。 あの図は上が低レイヤー層なんだ。 下が低レイヤー層だと思って見た人には意味不明だわな。 ボトムアップ式に書きたかったんだけど、上から読んでいくことを考慮して、 ボトムを上に持っていったら、上下がさかさまになっちゃったw あの図のミソはクラスとデータの結びつきが弱い点かな。
機能とかではまだ俺が上手く使えてないから説明できんが 敵の狼とか自機の豚とか弓矢とか風船とか肉をクラスにしたらあかんのか
>>650 レイヤー層ってファンクション関数みたいなものか
>>588 ぱっと思いつくところがクロスシミュ程度って何とも言えない違和感あるな。
いいのかそれで。そんなんで。それぐらい君にとって活用法を見出すのが
難しいものということでいいの?その、インストラクションレベルの、データ並列
による高速化手法というのは。だとしたら、君が期待しても君の利得少なくない?
そういえば自称ニート屋君はさ、以前に引数君と呼ばれていなかったかい? 芸風がとても似てるなぁと思ってね。気のせいかな
今やお前の方が痛いのだよ
誰も痛いとは言っていないぞ。君はやはり被害妄想に過ぎるな。 俺は引数君のファンであり、ニートというのはある意味勝ち組だろうとも 感じている。薄給で馬車馬のように働かざるをえない人生を送っている 身としてはニートというのは貴族階級にすら見える。正直羨ましいと思ってる
俺は引数君じゃねぇし、お前でもねぇし、第三者だし、被害妄想とか何言ってんだか。
なんだ気のせいだったのか。それは残念だ。 さて、君はシングルスレッドマンセー教団に所属する貴族様であるから伺いたい。 君がターゲットとしているであろうそのハードウェア。何なのかなかなか答えて くれないので予想をするしかないわけだが、基本スカラー型の汎用プロセッサを 積んでいるのであろう?そのシングルスレッド性能が順調に向上する見込みは あるのかい?それとも緩やかな向上を待ち続ける余裕がある裕福な環境にあるのか。 後者ならこれも羨ましいと思っている
だからSIMDっつってるだろ。
>>650 したら図を書き直すなりなんなりしろよ
もうちゃぶ台はひっくり返ったんだろ?
上下さかさまはわざとだ。
>>659 君がSIMD強化を期待しているそのプロセッサというのは基本スカラー型なんだろ?
で、仕方がないからベクトル型の命令群によるシングルスレッド性能向上に期待している
そうでしょ?
だから、SIMDに期待しているっつってるだろ。頭悪いな。なんでスカラーの話になるんだよ。 スカラーじゃ遅いからSIMDつってんのに。
>>663 だから、それは基本的にはスカラー型なんでしょ?違うの?
こことても重要なの。トランジスタをどこに多く割り振ってるの?
つーかグダグダ言ってねーでさっさとターゲットハードウェアが
何なのか晒せっつーとんの。おわかりになって?
>>664 じゃあCore i7やPowerPCでいいよ。
これのマルチコアに割いてる分のトランジスタを少しはSIMDに回せと。
渋ってた理由が謎だがそうやっと出たか。ありがとうね。 さて、Ci7は4コアだっけ?これを1コアでいいから残りのトランジスタはSIMDにまわせと。 そういうのを期待して64-wideのSIMD。高並列SIMD。これベクトル型のプロセッサよね。 スパコンみたいね これ、同じ計算を沢山のデータにまとめて適用できる処理が主に利得を得るプロセッサよね? 同じベクトル計算、行列計算を大量のデータに適用する、例えば空間を格子でぶったぎる CFDだとか、ゲームならジオメトリ処理やサウンド処理や画像処理などが恩恵を受けるよね? ゲーム用のハードのメインのCPU、おまけにシングルコア。これのリソースの配分として SIMDに資源を大量に割くというのはバランスとしてどうなの?高並列SIMDって柔軟性×よ?
ちゃんと読めよ。少しは回せって書いてあるだろ。 これから先プロセスルールがまだいくらかは改善するとして、 このまま8コア16コアってなっても意味無いだろ。 そこまで行ってもたかだか16倍だ。 だったら少しはSIMDにもトランジスタ回せって。 SIMDは演算器が沢山あるだけだから、 マルチコアみたく、コアごとにキャッシュやらOoO用意したり、 コヒーレント考えたりしなくて良いから、 トランジスタ効率が良いんだよ。 だから、 >SIMDに資源を大量に割く これは無い。 柔軟性に関しても、ゲームの場合、マルチコアよりもSIMDの方が相性よいと思うね。
具体的には、8コアにするぐらいだったら、 6コアにして、あまったトランジスタをSIMDとレジスタとキャッシュに使って欲しい。 それがバランスってもんだと思う。
まあi7フル活用できるようなゲームが出るのはまだまだ先だろうけど 常にハイスペックのGPUを求められるグラフィック面の異常進化に反して 最近のCPUだとゲーム程度じゃパワー余りがちなんだな
セルオートマタ的な処理すればあっという間にCPU時間食うけどね
ごめんちょっと聞きたいんだけども、
C++でstd::listにオブジェクトを突っ込んで、マネージャークラスで管理するってのと、
>>2 ってどう違うの?
そして古典タスクと現代のタスクシステムの決定的な違いは何?
頑張ってスレの内容から読みとこうとしたんだけど、俺には無理みたいだ。
>>671 std::list を使うと同じことを楽チンに、より直接的に実装できるということです。
「タスクシステム」などという実体の無いものを軸にして考えようとするからわからなくなるのでしょう。
それはオブジェクトのリストであり、それ以上のものではないのです。
それ以上の意味付けはすべて、具体的な利用箇所の仕様によって成されるのであって、
それで良いのです。
>>671 C++でstd::listにオブジェクトを突っ込んで
これが
>>2 のタスクシステムでしょ?
>>672 直接的に、というのはオブジェクト一つ一つに、
次のオブジェクト(タスク?)へのポインタを持たせる、って意味なの?
処理の流れとしては同じものって解釈で大丈夫そう?
>>673 std::listを使った実装が古典タスクと大体等価だとすると、
古典じゃないタスクシステムはどうなのか、ってのが見えてこなくて困ってるんだ。
単に効率的な処理を突き詰めているだけなの?
1年前くらいからちょくちょく覗いてはいたんだけど、結局そこが分からなくて今回聞いてみたんだ。
>>674 直接的に実装できるというのは、プログラムの意図に即した記述ができるということです。
必要も無いのに「タスク」などという過度な抽象化をする必要はありません。
敵のリストでも弾のリストでも、必要なものを必要なだけの抽象化レベルでソースに
記述すればいいのです。
キミたち、魍魎を知っているか? 魍魎の匣の魍魎だ。あの魍魎だ。 これ以上は言わなくても分かるだろう?
タスクシステム使った市販ゲームっていっぱいあるんでしょ? その事実がある以上、ゲームなんて作ったことこもなさそうな人たちが いくらタスクシステム必要ないとか言っても、童貞が語る女の口説き方みたいで 説得力0なんだけど・・・
>>679 匿名掲示板でプロの発言しか信用できないみたいな言い方は無粋だなぁ。
飲み屋の酔っ払いが「野茂のフォークはだめだねぇ」とか言ってるのと同じで
素人の愚痴でも別にいいじゃん。2chはそーいうところなんだし。
あんたは飲み屋で「お前はプロじゃないから野茂のフォークなんて分からないだろ!」
とか言って場を盛り下げてる空気読めない馬鹿と一緒。
一生野球しない親父が野球批判したっていいし、一生ゲーム作ることもないハード屋
みたいなのがタスクシステム批判したって別にいいでしょ。
説得力なんて無くてもその話題で盛り上がれれば。2chはそーいうところ。空気読め。
>>680 空気読めてないのお前の方だろw
リアルじゃ「説得力0wうざいwかこわるいw」て思っても言わないけどな
2chならいっていいやん
>>680 飲み屋の酔っ払いはまさか本気で野茂に勝てるなんて考えて話してないだろうけど
ここの坊やたちは、タスクシステムつかってる日本中のゲームプログラマーなんて
タスクシステムを見切った僕に比べればたいしたことないって本気で信じてるんじゃない?
もし飲み屋の酔っ払いが本心から野茂に勝てると信じきって話してたら、周りの人間も同じ突っ込み入れると思う。
「お前の言ってること説得力無い」って。
そーいや自分の名前書くのがやっとの知恵遅れ気味の人たちが、
「ゲームなら僕にも作れるはず」ってゲーム専門学校にたくさん入ってきて
講師が困ってるという話を何故か思い出した。
そりゃ自分に都合のいいレスは支持して当然だろうw そういうのも含めて2chってことだなw
2chなら「僕、野茂です」と誰でも言えるからなぁ それでプロ野球選手と認めてくれるのはよほどピュアな心の持ち主。 そんな人は2chなんてやってないだろうけどww
匿名掲示板で誰が言ったなんて証明できないし意味ないでしょ。
誰が言ったかより何を言ったかでしか判断しようがない。
そのうえでSIMDとかFSMとか何とかパターンとか、聞きかじった難しい言葉を
背伸びして使ってるようにしか見えないアンチの人たちの具体性の無い話よりも、
泥臭い
>>2 の方がまだゲーム作るうえで実用的で参考になると判断する。
>>2 ってなにも書いてないじゃん
自分で何がいいか検証してみたんだろか?
紹介してるもんのメリットを一度でも考えてみたことはあるのかと?
そんな程度のこともできない技術者でいいのか?
>>686 まさにこのメンタリティがタスクシステムの本質。
問題は何年たっても判断基準がこのままの奴らが多いこと。
>>2 が出てからもうかなり時間が立ってるけど
そろそろ追加を検討してもよいサイトって出てきてないの?
>>687 >
>>2 ってなにも書いてないじゃん
ここでピントのずれた話してる人たちより
よほど内容のあること書いてあるけど・・・
何も書いてないじゃなく君にとっては何も理解できない、
ってだけじゃない?
>そんな程度のこともできない技術者でいいのか?
そんな程度のこともできない技術者でいいのか?
さぁ裸の王様のお話がはじまりましたよ。
>>691 じゃあ、タスクシステムのメリットを説明してみせろよw
>>692 またピントのずれた話を・・・
タスクシステムつかった市販ゲームが存在してる時点で
裸の王様とやらは破綻してるんだけど。
まさに
>>544 の通りなんだと思う。
>>693 >>2 にメリット・デメリットと丁寧に解説されてるんですけど・・・
リンク先、そんなに難しいこと書いてないと思うんだけど。
まさか
>>2 に挙がってるメリットが今でもすべて有用なものだとは思ってないよね?
C++標準ライブラリが普通に使える現代的な環境でも有用な
「タスクシステム」ならではのメリットをひとつ引用して見せてくれない?
それを検証するのは面白いかもしれない。
>>694 いや、そうやって誤魔化さないで
はっきりと自分の口で1つだけでいいから挙げてもらえないかな?
>>697 リンク先があるのに何でわざわざ相手に労力かけさせようとするのかな?
wwwのハイパーリンクって何のためにあるかわかる?www
>>23 > って逃げ回って相手に労力をかけさせて諦めるのを待つ見え見えの方法。
相手に労力かけさせたいだけでしょ。
初めから話を聞くつもりがない奴を相手にする人はいないよ。
今気づいたけど、 World Wide Web ってwwwで笑ってるみたいだなwww
まぁ予想通りの展開なわけなんだけども、毎度毎度残念なことだよ。ほんとうに。
>>694 > タスクシステムつかった市販ゲームが存在してる時点で
> 裸の王様とやらは破綻してるんだけど。
そこに歩いてる王様がいるのだから、王様が裸であるわけがない、と?
なんで
>>23 を引用するのかも不思議だ。
メリットの説明をして、ニートに「納得させる」のは難しいかもしれないが、
説明を「して見せる」こと自体は簡単だろう?
その後、相手がどんな批判をしてこようとも、
説明を「して見せた」のならこのスレとはまったく様相が違う。
ここでは、その第一歩すら出てこないのだ。
>>544 にしたって同じ。
ポインタのメリットは?という奴に「納得させる」ことが出来るかどうかは別だが、
メリットこ個別にあげたりして、説明「して見せる」ことなど簡単じゃねえの?
タスクシステムのデメリットと、タスクシステムに代わるフレームワークを示せばいいんじゃない? そっちにメリットがあると判れば、みんな違う方法使うだろう ゲーム作成=タスクシステム、と思ってる人にはそう説明するしかない タスクシステムを使わなければRPGもSTGも作れないと思ってるだろうし、 どのゲームを作るにしてもタスクシステムの構築から始めるだろう それでいて、タスクシステム以外のフレームワークを認めようとしない
>>701 メリットは既に上げられるのにそれは無視してメリットの説明の要求を繰り返してるからね
>>23 のニートが就職のメリット聞いてるのと何も変わらない。下衆なやり口が見え見え。
>>702 >それでいて、タスクシステム以外のフレームワークを認めようとしない
そんなやつ一人でもいたか?
少なくとも全てのゲームをタスクシステムで作れ、なんて奴はこのスレで一度も見たことないんだが。
アンチ:タスクシステムは全てのケースで使えない!
>>136-137 とか
容認派:ケースバイケース、メリットがあるのなら使えば?
>>481 とか
信者:全てのゲームはタスクシステムを使うべし >>アンチの妄想上の見えない敵
>タスクシステムを使わなければRPGもSTGも作れないと思ってるだろうし、
お前の言うように全てのゲームでタスクシステム使えってやつ、過去スレからでもいいから
アンカーつきで見つけ出してくれる?ww
アンチが救いの無い馬鹿だからってそれに反対する奴が同じように馬鹿だと思わないほうがいいぞ
見えない敵との戦い、ご苦労さんwww
あんたは誰と戦っているんだ
なんだかしらんが、ニートが就職のメリットを何度も尋ねるんなら、 何度かは答えてやっていいと思うが。自分の言葉で十分言える。 就職のメリットの一つははお金が手に入ることです。 働かなくてお金が入るならそれがベストじゃないかって? そりゃそうだろうね。俺もそう思うよ。それは羨ましいよ。 ただ、働かなくてお金が手に入ったりする人じゃなければ、 お金を手に入れるには働くのが手っ取り早いね。 他にもメリットはあるだろうけど、今俺が思いついたのはコレだね。
>>705 ニート「何それ?ぜんぜんメリットになってないじゃん。
ほら早くメリット教えろよ、自分の言葉で。
やっぱり誰一人メリット説明できねーwww」
って感じ?このスレのアンチタスクとまったく同じ反応。
その程度のメリットならこのスレで過去いくらでも出てるし。
ニート「さ、早く自分の言葉でメリット教えてwww」
> スレで過去いくらでも出てるし。 過去は知らないんだw すまんw だから今、誰かにメリットを明言してみてほしいんだが。
>>706 > ニート「さ、早く自分の言葉でメリット教えてwww」
うん、じゃあもう一回言うね。
やっぱり俺は賃金をもらえることだと思うよ。
過去スレにもそう言ってた人がいるかもしれないけど、
やっぱり俺は賃金だと思うね。
国が最低賃金を保証してくれてるんだっけ。
だから、どんなに過酷にみえても、
それなりの賃金はもらえるからメリットあると思うよ。
>>707 ニート「過去は知らないんだw すまんw
だから今、誰かにメリットを明言してみてほしいんだが。 」
これに答え続ける馬鹿いると思う?
あと、会社が社会保険の保険証をくれるかもね。 国民健康保険よりはお得だったハズ。 まあ、そういう付加的なメリットもあるかもね。
>>709 逆に、なんで答えることすら渋るのか不明だね。
>>711 ニート&アンチタスク「さ、早く自分の言葉でメリット教えてwww」
渋らずに永遠に相手してくれるんだ。がんばってねwww
だって一度もメリット説明できた人いないもんねw メリットの説明求めるだけで連勝記録さらにアップだよw
>>714 ニート「だって一度もメリット説明できた人いないもんねw
メリットの説明求めるだけで連勝記録さらにアップだよw
働いたら負け!!!」www
ニートにしろ毒男にしろアンチタスクにしろ、認めなければ負けなしで最強だよね。www
働く能力とか、結婚できる魅力とか、ゲーム作る才能とかが無くても
現実を認めない限り最強だから生きていけるwww
連続投稿規制で弾かれてた…。
>>712 やっぱ賃金かな。一言で言うとね。
>>713 永遠に答えなくて良い。一度で良い。
一度で良いから早く自分の言葉でメリット教えてよw
>>716 ニート&アンチタスク「どうした? それで終りか?w」
>>717 ニート&アンチタスク「一度で良いから早く自分の言葉でメリット教えてよw」
720 :
ハ(ry :2010/02/14(日) 15:38:24 ID:OC4y/061
ニートとか出してきてイメージ戦略しなきゃいけない時点で負けてるよ。 低脳すぎてそのことにすら気づかないようだが。
>>719 俺が思うに一言で言うと賃金、お金だね。
で、タスクシステムのメリットは?
>>721 ニート&アンチタスク「早く自分の言葉でメリット教えてよw」
いい加減気づいたら?
>>722 うーん。今日はコレで最後だよ。
やっぱね、俺は就職のメリットは賃金にあると思うよ。
だって就職でもしなきゃお金手に入りそうにないし。
株とかするの? あー。それならそれでも十分かも。
でもね、この先ずっとそれで食っていくのって怖くない?
俺ならちょっと怖いなあ。自信が無い。
だから手っ取り早く安定した収入を得たいがために、
俺なら就職するね。
技術と資金があれば起業とかでもいいだろうけど、
そんなにカンタンじゃないだろうし。
やっぱり、消去法かもしれんが、
お金が欲しかったら就職。
就職のメリットは一言で言うと賃金。
他の人の意見とはまた違うかもしれないし、
ほかにメリット出てくるかもしれないけど。
今日はこんくらいで勘弁してね。
で、タスクシステムのメリットは?
>>723 ニート&アンチタスク「やっぱり誰一人メリット説明できねーwww」
725 :
ハ(ry :2010/02/14(日) 15:52:19 ID:OC4y/061
働くことのメリット: 色々な人と関わることが出来る。 分別がつくようになる。 ある程度の更生力がある。 ID:ujwt9v5u みたいにならなくてすむ。 会社、業界選びは慎重に。
数々の奴がタスクシステムのメリットの説明に挑戦しても結局こんな最期を迎えるんやなw
働くことのメリット:賃金 説得力はともかくひとつでたね でタスクシステムのメリットは?
>>727 説得力なくてゴメンねw
まあ、自分の言葉で精一杯説明してみせたつもりだから、
借り物の言葉じゃないから、そこんとこだけ胸を張りたい。
>>726 それが初めから分かってるからねぇ・・・
過去スレでは親切な人も沢山いたけど、学習能力のある人ならもうこんなの相手にしないでしょ。
ROMれば出てくることを聞くしかできない教えて君の相手をしても無駄。
とにかく論拠を出さなければ議論は始まらない。
説得は相手のベースがあるから成功するかは限らないが
それなりの論拠があれば賛同者は出てくる。
お前を説得できないから論拠は出せないじゃ
>>3 てことだよ。
ID:ujwt9v5uはなんかしらんが自分の殻に閉じこもり始めた。 自己カプセル化となずけよう。(裸の王様現象) 確かにタスクシステムのタスクは他タスクとの関わりが苦手かもしれないけど、 それを自分にまで当てはめる必要は無いんじゃないか。 低能は傷ついてなんぼだと思うがなぁ。
>>729 アンチタスクと容認派では、どう見ても容認派の方が正しいとは思うけど
相手しても無駄とか言うなら初めから2chやる必要も無いんじゃない?
肥溜めに入って糞で汚れるから嫌とか言っても説得力無いというか・・・
相手しても無駄とか言いながらアンチタスクのマネして同じように糞まみれに
なってるあんたもアンチタスクと同じくらい馬鹿に見える。
取りあえず就職のメリットなんて語り続けても仕方ないだろ ここで必要なのは同じメリットでも就職でなくタスクシステムのそれだろ 過去に書いただろとかリンク辿れとか言っても納得させられないぞ まあ語ったところで納得させられるとは限らないが 少なくともこんなどうでもいい議論続けても埒が明かんだろ 取りあえず次の問題に答えろよ 「タスクシステムのメリットを40字以内で説明せよ。」
じゃ、俺から。 1.実行順番を動的に変更できる 2.実行コードとデータをパッケージ化すると、Cellの糞SPUに仕事振れる 3.仕事している振りが出来る 4.現実逃避が出来る
就職のメリット聞かれて「金が稼げる」とか答える程度でいいなら タスクシステムのメリットは「ゲームが作れる」程度で丁度いいんじゃない。
>>734 1.はあまり必要性を感じたことがない
だけどこれがタスクシステムでの一般的なイメージだな。
でこれは必要なら実装したほうがいいんだけど必要ないところでやられると
バグを追跡するのが困難になるというデメリットが残るだけなので困る場合がある。
2.はMTフレームワークで言われてるようなことだろうけど実物見て見ないとなんともいえないな。
それに特化できる実装アイディアを見たことがない。
おれもそういうシステム模索中だけど実用レベルで実装できる人間てそうそういないだろと思う。
並行化のためのシステムや実行順序の最適化・管理はそれなりのアイディアが必要だし。
だからこのネタは議論のネタとして楽しみではある。
で、そこまでやったらおれはタスクシステムとは呼びたくないわ。
だって実装できたのは
>>2 で言われているようなタスクシステムのおかげじゃないもんw。
3.4.はよく見るけどまわりに迷惑かけるからやめてくれw
>>734 >1.実行順番を動的に変更できる
なにこれ?どこで使うの?
壁判定とキャラ判定が逆になったりするの?
>2、3、4
笑えるほど意味ない
>>735 おれは
>>2 のような「タスクシステム」なしに必要な機能をC++べた書きで「ゲームをつくってる」。
具体的には毎フレーム処理用関数のあるクラスをメインループからベタに呼び出している。
切換はswitch。(FSMっぽくなる。)
これによるメリットはベタに処理が書かれているのでデバッガで直感的にデバッグしやすい。
またベタにコードにかくとコードを見るだけでの理解がしやすい。
このシステムには実行順番の動的変更機能はないがそれにより困ったことはない。おれはね。
これが「金が稼げる」と同じくらいのメリットかどうかはその人次第。
ニート(仕事をしない人)に対して就職のメリットを解くのは 仕事をしないに対して仕事をするメリットを解けばよくて解りやすいんだが タスクシステムのメリットはと聞かれても、何に対して話せばいいのかわからんからメリットがあるという説明がしづらいんだよな タスクシステム自体も曖昧で、例えば実行順序を動的に変更できないものもタスクシステムと呼ばれていることがあるし 就職のメリットだって相手が何者かわからなければ、例えば相手が起業を主張してたり、パチプロだったりする可能性がある場合は 金が得られるじゃ通用しないわけだし
つまり、本当は意味ないんだけど 仕方なく使ってるってことだね?
>>739 それこそ
「就職しなくても株やギャンブルで楽して金稼げるから就職のメリット無し」って
ニートが言いだしそうな理屈だな。
結局ID:ujwt9v5uの言うとおりなんだな。
>>740 何のために使ってるかを聞きたいんだよね。
で「ゲームが作れる」ならおれは
>>2 的なものならデメリットも多いし実際使わずにつくれてるから
疑問視するわけ。
次に言われてる実行順番動的変更ってあまり魅力感じないんだけど
これが「ゲームが作れる」に汎用的なメリットあるなら聞いてみたい。
なにか新しい考えがわかるかもしれないし。
で並行化のためにというならもう少し技術的な実体について触れて欲しい。
もしそれで使えると思ったら敬意を持って「タスクシステム」支持者になりますよ。
だって「タスクシステム」として教えてもらったシステムが有用なんだから。
各要素をそれぞれ独立したオブジェクトとして設計する。 それぞれがお互いに絶対依存しないようにする。 (ほかの要素の情報は必ず神様に頼んで取得する) 地形も弾も自機も 同一に見るインターフェースをひとつ用意する。 あとなんかあったっけ?
>>742 だから言ってるでしょ。説得は相手の考え方がベースになるから必ず成功するものではない。
>>730 とにかく論拠とそれに対する反論ということに意味があるんだよ。
無駄ジャン。わかりきってるジャン。じゃ情報量ゼロ。
すくなくともおれは
「実行順番の動的変更機能の必要性は低い」「べた書きでゲームつくれるしメリットもある」
といってるわけだからこれら2つが「俺とはまったく違う」「必要性・メリットはこういうときにある」
のどちらか位は情報くれないと意味がない。
「俺とはまったく違う」以上出せないならああそうかここから違うんだなってあきらめるしかない。
>>744 ちょっとまって何をしゃべったの?
まさか、メリットの話をしてるわけじゃないよね?
・ジャンルを問わず様々なゲームに適用できる ・並列処理をうまい具合に実現できる ・ゲームの流れを自然な形で表現できる ・大規模なゲームも開発できる ・タスクごとに独立しているため、複数人で開発できる なんでレス元に初めから出てるメリットを出さずに実行順番動的変更なんて 誰が言い出したかわからんへんてこな話をしてるんだ?
>>748 あんたのいう根拠の基準を説明してくれ。
>>747 ・ジャンルを問わず様々なゲームに適用できる
これはべた書きにもいえます。
・並列処理をうまい具合に実現できる
これはぜひ教えて欲しいので具体的なヒントください。
・ゲームの流れを自然な形で表現できる
・大規模なゲームも開発できる
・タスクごとに独立しているため、複数人で開発できる
これはそうは思いません。
少なくともべた書きよりデバッグは複雑になります。
これらはクラスベースオブジェクト指向でも同じことがいえるはずです。
(私の解釈ではタスクシステムはクラスの生成呼び出し部分のシステムのはずで
そこがべた書きであってもこのメリットは消えないと思います。)
タスクシステム独自のどこが「クラスベースオブジェクト指向」以上のメリットがあるか
指摘する必要があります。
べた書きで毎回毎回コード書き直してたら 生産性悪すぎる
>>751 実際に書いたことある?
タスクシステム上でも生成・消滅は書くでしょう。
ここをベタに書いたのと生産性が違うと思いますか?
一段抽象化するということはデバッグするとき一段追跡するものが深くなる分面倒になります。
各タスク側自体はクラス記述に比べてなんら生産性の違いはないでしょう。
というかこちらは同じような形になるでしょう。
>>751 それも根拠ないな
例えば5つのケースをベタ書きするのと
一箇所にまとめて書くのとじゃ
ベタは5箇所単純に手を入れればいいけど
一箇所にまとめた場合はそれぞれの差分がif文で分岐してるだろ
実行してみないとどこ通るかわかんねーぞ
結果として生産性最悪になるかもわかんねーなw
ぶっちゃけ早く帰れるのはベタ書きだぜ
っていうかそもそもタスクシステムがベタ書きの反対の表現に使えるかどうかも微妙だけどねw
>>751 まるでタスクシステムを介した機能モジュール群が
使いまわしに優れているかのような言い方だな。
ベタなコードだからこそ、どこども依存しないから、
切り離しが容易で、ライブラリ化しやすいんだろうが。
>>750 つまり、君にとってはべた書きで十分に思えるし並列処理の話はリンク先の
説明読んでも理解できなかった、と言ってるのね・・・
>>753 >ベタは5箇所単純に手を入れればいいけど
>一箇所にまとめた場合はそれぞれの差分がif文で分岐してるだろ
>実行してみないとどこ通るかわかんねーぞ
んー・・・
この考えだとタスクシステム云々以前に、ライブラリや共通処理の関数化とか
構造化プログラムレベルのことを否定しているように見える・・・
なんか同じような処理を少しだけ変えたコピペを量産する典型的なダメプログラマ
の発言に見えて怖いのですが・・・
>>755 すごいね並列化の話が
>>2 に載ってるんだ。
おれは理解できなかったよ。もしよければもう少しだけヒントくれないかな。
まー
>>747 を素直にメリットだと感じるような奴がタスクシステム使ってるってこった。
俺は、タスクシステムのメリットっつったら、
まず筆頭が「実行順序の動的な変更」だと思うがなぁ。
じゃなきゃ、
わざわざプログラムを細切れにしてまでリストに突っ込んでる
意味が無いよ。
並べ替える気が無いのに、なんでわざわざプログラムを断片化して
リストに突っ込む必要があるんだ?何のためのリスト?
って話になる。
それこそ支離滅裂で、メリット以前に意味すら無い。
プログラムを使いまわしたいってだけなら、関数で十分だからな。
>>756 普通に載ってると思うけど、何か別のページ見てるのかな・・・?
それとも並列処理の定義がこのページに載ってる使い方と君の想定が違ってるとか?
その場合はすまんが君の脳内定義がわからんのでこちらには答えようが無い。
>>757 ま、結局プログラマ個人の受け取りかた次第ということなんだろうけど。
そうなると
>>679 のように、使ってる側の方が説得力があるな、個人的には。
>>746 タスクシステムの設計がゲームによって異なるとしても
根っこになる揺るがない部分ってのは必ずあるはずで、
面倒でもそれって何かというのを書き出していった方が
建設的な議論になると思うんで、続きを書いてほしい。
知識の前提の共通化が先だよね。
> ・ジャンルを問わず様々なゲームに適用できる > > これはべた書きにもいえます。 これに対して > べた書きで毎回毎回コード書き直してたら > 生産性悪すぎる と返しただけで別にタスクシステムに対してだけ答えたわけじゃないよ フレームワーク等を利用したほうが生産性あがるでしょ? コード書き直せばテストが増えてしまうし
>>762 この文脈ではタスクシステムの部分を「べた書きに置き換えても」という意味で書いたから
他の人もそう思ったんじゃないかな。
そりゃなんでも書き散らせば生産性が悪いのは同意しますよ。
掲示板で難しいこといってもどうせ伝わらないから、あえて簡単に書くけど、
タスクシステムのタスクの実行を並列化するってことは、
どのタスクをどの順番に実行してもかまわないってことで、
だったら、静的にタスクの実行順を決めてしまってもかまわないってことになる。
てことは、普通にtask1();task2();task3()...とベタでコードに書いてしまっても問題ないってことになる。
副作用に依存関係の無いタスク(並列化可能なタスク)
の実行に、
スケジューラ(タスクシステム)
は必要ないわな。
どの順で実行してもかまわないのにスケジューラ?はて、おかしいよな。
何のためのスケジュール?
実際にはどの順で実行して構わなくても、スケジューラは必要なんだけど、
それは
>>2 には書かれて無いし、話のレベルが違う。
>>764 んー・・・
>俺は、タスクシステムのメリットっつったら、
>まず筆頭が「実行順序の動的な変更」だと思うがなぁ。
と誰もメリットとして上げていない実行順序の動的な変更とやらを自分で上げてから
>どのタスクをどの順番に実行してもかまわないってことで、
>だったら、静的にタスクの実行順を決めてしまってもかまわないってことになる。
>てことは、普通にtask1();task2();task3()...とベタでコードに書いてしまっても問題ないってことになる。
とそれを自分で否定してるのは矛盾してるというか錯乱してるというか・・・
君の言ってることって少なくとも
>>2 で出てるタスクシステムとは直接関係ない話じゃない?
スケジューラ=タスクシステムと限定してしまってるところとか、君の脳内だけにある
何か特定のシステム相手に一人相撲とってるように見える。
また
>>2 と俺タスクとの不一致ですね?
わかりますw
>>765 だったらお前の言うタスクシステムって何なんだ?
もっと言えば、お前の言うタスクシステム内にあるであろう、「タスクのリスト」、
あれはいったい何の為のリストなんだ?
プログラムってのは元より処理のリストで構成されてるのに、
なぜそれを自前で用意するの?なぜ重複して持つの?
func(){ task1(); task2(); task3(); /*←タスクのリスト*/ }
では駄目で、これと同等の物を自前のタスクリストで構成する理由は何?
順番の動的な変更(スケジューラ)目的以外に何があるの?
教えて。
>>743 そもそも
>>739 ってそれだけの内容じゃわかんない部分もあるけどタスクシステムの範疇なんじゃないの?
実行順序の動的変更は不要だから省いて、関数ポインタは苦手だから使わないように変形したしたってだけで
ゲームオブジェクトって呼べるようなデータの配列なりリストなりはあるんでしょ?推測で悪いけど
実行順序の動的変更は描画に関することでスプライトとかと相性がいんだよ
並列化に関しては関わったことないから知らない
配列使ったらタスクシステムですか。 そりゃ、配列の中に関数ポインタが入ってたらタスクシステム的だがな。 >実行順序の動的変更は描画に関することでスプライトとかと相性がいんだよ 描画エンジンの仕事。
770 :
名前は開発中のものです。 :2010/02/14(日) 20:25:36 ID:Q6BMs8gS
>>768 これをタスクシステムと呼ぶんならそういう立場なんだろうからそれでいいよ。
おれは不自然だと思うから呼ばないという立場だけどね。
まずcodezineの記事はまったく用なしになるね。
少なくともcodezineの記事はタスクリストの切換生成消滅管理技術実装の説明であって
最初に出てくる長所がなぜ生まれてきてるかの説明が一切ない。
この長所は技術的には、毎フレーム処理関数あるクラスによる分割によって生まれている。
これってC++とゲームループというアイディアから自然に生まれるものであって
「タスクシステム」と呼ぶのは不自然だと思う。
事実そのように説明されずタスクリストの管理に解説が割かれている記事になっている。
>関数ポインタは苦手だから使わないよう
この精神がおかしい。必要ないものをなぜわざわざ苦手と表現するのか。
関数ポインタは継承があれば(このレベルでは)必要なくなることくらいは理解してるでしょ?
あとスプライトがライブラリもしくはハードで対応してない状況にお目にかかったことがない。
>>767 >だったらお前の言うタスクシステムって何なんだ?
>>2 でいいんじゃない?スレ元のリンクだからこのスレはこれを共通知識として話するんでしょ?
実際には今まで使ったことあるのはこんな単純なコードでは無かったけど、まぁ考え方は共通してるから問題無し。
>プログラムってのは元より処理のリストで構成されてるのに、
>なぜそれを自前で用意するの?なぜ重複して持つの?
その理屈だとJAVAとか.NETのVMとかもレイヤー的に重複してるから不要ってことになるな。
VMはたとえ話だけど、重複してても別に持ったほうがメリットのあるケースってのが存在することは理解できるかな?
重複=不要、では無くメリットがあれば重複も可、ということ。
それが理解できるなら、多人数開発とかゲームオブジェ単位の生成・消滅とか、
ゲーム作るのにあった粒度の単位で切り分けられたほうがいいケースもあるかもね、と想像できそうだけど。
>では駄目で、これと同等の物を自前のタスクリストで構成する理由は何?
駄目、とは言ってないんだけどね。
別にその方法じゃなくても、タスクリスト使ったほうがいいケースもあるんじゃない、といってるだけの話。
その例みたいにtaskが3つしかなくて生存期間も全て一緒、みたいなケースならべた書きの方がいいかもね。
あぁ、あとタスクシステムとか以前にべた書きが最高、と単純に言い切ってしまうようなのは別の意味で・・・
>順番の動的な変更(スケジューラ)目的以外に何があるの?
つ
>>747 ちょっと不思議なんだけど、こちらは今まで順番の動的な変更とやらが必要になったケースってあんまり遭遇してないし
タスクシステムのメリットにそんなのが出てるのも見たこと無いし・・・
どうも
>>2 とは別物に見えるんだけど、君の言ってるタスクシステムって具体的に何?
773 :
名前は開発中のものです。 :2010/02/14(日) 20:44:12 ID:Q6BMs8gS
>>771 なんで不自然だと思うの?
っていいかたは悪いけど、俺もこのスレは
>>2 みたいな「古典的」タスクシステムのスレなのかなと思ってたけど
スレの流れとか見ていて、もっと広義にタスクシステムを捉えるスレだと判断した
そもそも
>>2 は古典であって現在じゃ通じない部分も多いから捉われない方がいいし
タスクシステムをゲームオブジェクトを扱う方法ぐらいで捉える方がいいんじゃないかと提案するって感じだろうか
codezineの記事は読み返してなんか書くことがあったら書くけど、おそらく大したこと書いてないだろう
>>739 でswitchって書いてあったからswitch,case文で関数を呼ぶようなものだと思ったんだけどクラスでメンバ関数を呼び出したりもしてるのだろうか?
>>769 は関数ポインタつかってたらタスクシステム的だって認めてるし
スプライトに関してはこれだけじゃ解らないかもと思ったから説明するけど
でも説明をしてくれる人に悪いんだけど
口を開くたびに
>>2 とは違う俺タスクを紹介してくれるよね?w
>>773 >>739 もタスクシステムと呼ぶのならば特に反論はない。
ただ
>>2 と
>>739 ではタスクリストの管理実装の有無に差がある。
つまり
>>2 はあまり必要性のない技術について解説してるってことでいい?
実際この実装が邪魔になることが多いからね。
ただ並行処理に対応するためには
>>2 でいうタスクシステム的なものが必要になると思われるから
そういう技術はおれもチャレンジ中。
やっぱりひとつ抽象化するために実装・デバッグしづらくなるし
そもそも並行処理のスケジューリングは依存関係の管理など解決が必要な問題がある。
776 :
名前は開発中のものです。 :2010/02/14(日) 21:05:55 ID:gpTdAh1n
三点リーダーやめろよ
777 :
773 :2010/02/14(日) 21:16:00 ID:Q6BMs8gS
スプライトはハードで実装されているんだけど、その性能が不十分というか レイヤー数が4枚とかしかない場合があって、 それ以上の描画優先度(重なっている部分をどう表示するか)を決めたいときには、登録順序でどうにかする必要がある。 そうするとスプライトセットオブジェクトかなんか作って登録前にソートする方法もあるだろうけど、 ゲームオブジェクトを描画優先度順に並べられるようにしとけば処理の中でスプライト登録やっちゃえて簡単に終わる
>>772 > 別にその方法じゃなくても、タスクリスト使ったほうがいいケースもあるんじゃない、といってるだけの話。
随分弱い言い方になったな。ではそのケースとやらを教えてくれ。
.netやJAVAのVMは明確な目的があって使うものだ。
タスクシステムの「タスクのリスト」がどういったケースで有用なのか、
何のために必要なのか。
動的な実行順序変更以外に教えてくれ。
データ構造の連結リスト(双方向リスト)に関数アドレスやら優先順位やらをつけて 後に纏めて処理できるのがタスクシステムの基本的な部分でしょ。 と、これだけでもタスクシステムの構造的なメリットデメリットがわかる。 この構造的メリットが活きてくるケースは少なくないと思うけどなぁ。 タスクシステムに限らず、活かせないのなら使わないほうが良いですね。 ここでメリットを聞いてる人はそういう人でしょう。
>>778 >動的な実行順序変更以外に教えてくれ。
つ
>>747 これで3回目ぐらい?
「おじいちゃんごはんはさっき食べたでしょ」って感じ・・・
いっとくが、タスクのリストってのは
仕事のリスト、処理のリスト、プログラムのリストってことで、
データのリスト、ゲームオブジェクトのリストではないぞ。
ゲームオブジェクトやデータを配列やリストで管理するなんてことは誰でもすることだ。
>>780 タスクシステムはいわばVMもどきなんだから、そりゃやろうと思えば何でも出来る。
だから
>>747 が出来るのは当たり前。でも使わなくても
>>747 は出来る。
あえて使うのは何故かと聞いているのだが。
>>779 データ構造に関数アドレスを付けるんですか、そうですか。
俺はデータ構造はデータ構造、制御構造は制御構造で別物で、
交ぜるのは泥沼化の入り口だと思うがなぁ。
>この構造的メリットが活きてくるケースは少なくないと思うけどなぁ。
具体的によろ。
>>781 >仕事のリスト、処理のリスト、プログラムのリストってことで、
>データのリスト、ゲームオブジェクトのリストではないぞ。
その俺俺タスクシステムの定義は何・・・?
>>2 のタスクシステムはデータ、ゲームオブジェクトのリストという機能も普通に含んでるけど。
元々のタスクシステムからそれら機能を勝手に引いた時点で、君の言う”タスクシステム”
の話は君の脳内でしか意味の無い話になってるんですが。
具体性がなくなってきたから。 for(;;)/*メインループ*/ { obj1.update(); for( size_t i=0; i<obj2_list.size(); ++i ) { obj2_list[i]->update(); } for( size_t i=0; i<obj3_list.size(); ++i ) { obj3_list[i]->update( x, y ); } for( size_t i=0; i<obj2_list.size(); ++i ) { obj2_list[i]->update( u, v, w ); } } これじゃ駄目な理由はいったいなんだ? 引数だって自由に使えるし、こっちのが良いだろ。 ただ、動的な実行順序の変更だけは出来ないけどな。 お前らの欲しいのって、タスクシステムじゃなくてゲームオブジェクトDBなんじゃねぇの?
それ "ゲームの流れを自然な形で表現" することが出来ていると言えるの?
>>783 んー・・・
>>782 の時点で、君の言うタスクシステムは
君以外の人間にとっては無関係というか・・・
君の脳内タスクシステムを使うよりは
>>783 の方がいいと君が判断するなら
君にとってはそれが一番いいんじゃない?
としか言えんなぁ・・・
>>782 >>2 のタスクシステムは便利と感じ、
俺の言う純粋な純粋なタスクシステムは要らないと感じるなら、
単純に引き算すればよい。
(
>>2 のタスクシステム)-(純粋なタスクシステム)=(ゲームオブジェクトDB)
for(;;)
{
container = db::select(型名);
for( itr=container.begin(); itr!=container.end(); ++itr )
{
itr->method();
}
}
これが出来りゃ満足なんだろ。
>>787 >これが出来りゃ満足なんだろ。
君はいったい何と戦ってるの?
「純粋な純粋なタスクシステム」とやらを勝手に脳内で妄想して
「(俺の考えた)タスクシステムは使えない!」って・・・誰に向かって叫んでるの?鏡?
まさに一人相撲。
>>786 残念ながら、俺の言ってるタスクシステムの方が、
>>2 よりも「まだ」まともなんだよ。
>>2 は制御構造とデータ構造をごった煮にしてる時点で、
純粋なタスクシステムよりも寄りいっそうたちが悪いんだよ。
タスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ。別のものなのに。
複数のオブジェクト間にまたがる処理は何処に書くんだって話になる。
ゲームオブジェクトとゲームオブジェクトの間をとりもつのが「処理(タスク)」の重要な機能でもあるのに、
それがゲームオブジェクトにくっついてるって変だよね。
>>788 ここまで提示されても、自分の陥ってる状況が分からないって重症だぞ。
純粋なタスクシステムってのは
>>2 にも含まれてる。
>>2 からアロケーターやらtype値検索機能やらを取り除いて
名前どおり、タスクの処理をする部分のみを抽出したのが「純粋なタスクシステム」だ。
それが本当に必要なのかどうかって話だ。
必要ないなら、
>>2 からタスクの処理をする部分だけを取っ払えばよい。
すると残るものはゲームオブジェクトDBだ。
結局、タスクシステムなんていっても内容はグローバルアクセスできる ごった煮ウンコリストだからなぁ・・・設計とか完全無視の本当のウンコなのに よくこんなもん使おうとするもんだよ の割りには設計云々語ろうとするアフォばっかりだな
チンカスアンチ共は情けないな。目の前に最高のエサがそこに転がってるのに… 珍しくタスクシステム信者が現れているんだから反転攻勢のチャンスよ? 火力をID:eAxvOj2xに集中したまえよ。いくらなんでもこの程度は倒せるだろ…
>>789 >残念ながら、俺の言ってるタスクシステムの方が、
>
>>2 よりも「まだ」まともなんだよ。
すまんが、いきなり
「俺の妄想の方が一般に言われてるタスクシステムよりまともなんだ」
と言い出して
>ここまで提示されても、自分の陥ってる状況が分からないって重症だぞ。
とか言われても・・・
「そうか、重症なんだな。かわいそうに。」と思うだけというか。
君の脳内では何か「純粋なタスクリスト」について考えがあるみたいだけど
それこそ
>>2 みたいに図解つきで説明してくれないかな。
いきなり君の妄想を暴露されても君以外の人間にはチンプンカンプン・・・
お前以外は皆分かってんだよ。
ゲームオブジェクトとタスクの結びつきが無いタスクシステムが
純粋なタスクシステムだ。
各タスクはコンテキストを持つだろうけど、
そこはゲームオブジェクトを入れるための領域ではない。
局所的なFSMの状態変数やゲームオブジェクトへのポインタなどを入れるWork領域。
そこに何を間違ったかゲームオブジェクトそのものを突っ込んで腐った物が
>>2 。
お前は
>>2 のtypeが好きらしいが、あれは最も下劣で目も当てられない代物。
ゲームオブジェクトの管理がしたいなら、DB的なものを作ればよいし(データ構造視点)、
実行順序の動的変更や、CellのSPEに仕事投げたいなら、純粋なタスクシステムを作ればよい(制御構造視点)。
>>2 の出る幕は無い。
>>790 ブログに書かれてることを引用しておきながら
人のことをアホ呼ばわりして
設計云々語るとは君はすごいな
>>793 >お前以外は皆分かってんだよ。
そーかぁ・・・
>>2 のリンク先ページ書いた人はみんな分かってなかったみたいだけど
「僕の考えてることは皆も同じように考えてる」と疑いなく考えちゃう人なのかな・・・
>タスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ。別のものなのに。
これ、純粋にOOPのデータと振る舞いの隠蔽によるカプセル化を否定してる考えみたいに見えるけど
クラスがメンバーとメソッド持つのもごった煮と考える人なのかしら?
>>792 >君以外の人間にはチンプンカンプン・・・
いや申し訳ないけどそらねーわ
タスク = OBJ、 1タスク = 1OBJ とか、こういう勝手な固定観念に縛られたCodezine状態の
自称システムが古典です古典タスクシステムなんですーとか言われてもピンと来ないなぁ
あーいうお粗末な自作連結リストにオブジェクト格納しましたーみたいなものを
タスクシステムでーすとか喧伝してる人は10年くらい前からちょくちょく見るように
なったのは確かだけどね
ま、ローカル用語、バズワードですから、何をどう呼ぼうが好き好きだし、知ったこっちゃないけど
古典タスクシステムというくらいだから古典があるんだろうね?どれ?Codezineの記事か?w
>>795 >
>>2 のリンク先ページ書いた人はみんな分かってなかったみたいだけど
タスクシステムの擁護派でも、
>>2 を擁護できる奴は居ない。お前ぐらいだ。
> >タスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ。別のものなのに。
> これ、純粋にOOPのデータと振る舞いの隠蔽によるカプセル化を否定してる考えみたいに見えるけど
これはちょっと表記がまずかったな。
「全てのタスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ」
と変えとく。
>>795 >
>>2 のリンク先ページ書いた人はみんな分かってなかったみたいだけど
んなこたーない。
>>2 の中ではlogician lordを書いた人間はタスクとOBJの区別を
つけている。松○さんとかいう素人の方は理解できなかったみたいだけど
Cマガで特集記事書いたり禿出版で何冊もタスクシステム本を出したりして
アマチュアの学生相手に布教・普及させようと頑張ってたね。その残滓が君か?
>>797 >タスクシステムの擁護派でも、
>>2 を擁護できる奴は居ない。お前ぐらいだ。
やっぱり「僕の考えてることは皆も同じように考えてる」と疑いなく考えちゃう人っぽいなぁ。
>「全てのタスク(処理)とゲームオブジェクトが密接に結びついてるなんておかしいだろ」
とりあえず
>>2 のタスクシステムのどこにも
「全てのタスク(処理)とゲームオブジェクトが密接に結びつく」
という前提は見つからないのだが・・・
全てのタスク云々はどこから生まれた話なんだろう?これも俺俺タスクシステムの脳内定義?
で、結局メリットはどうなったの?w
>>802 はぁ?どこ引用したか?って聞いてるんだよ
さっさと出せよボケ
引用がばれたら逆ギレかw これは恥ずかしいww
だれかー、俺の替わりにID:eAxvOj2xの相手してー。
特にタスクシステム擁護派に相手して欲しい。
お前らの残党だろ。引き取って面倒みろよ。
>とりあえず
>>2 のタスクシステムのどこにも
>「全てのタスク(処理)とゲームオブジェクトが密接に結びつく」
>という前提は見つからないのだが・・・
http://codezine.jp/a/article.aspx?aid=297 >シューティングゲームを作る場合は「自機」「敵」「敵出現制御」「得点管理」「タイトル画面」など、
>ゲームを構成する全ての要素をタスクとします。
>>804 引用場所を貼ったら終りだけど?
俺がいつ引用なんて貼った?
今日一日でずいぶんスレ伸びたな。 今日のアンチは押され気味というか自爆が多いなwww 陰湿なID:eAxvOj2xと煽られて顔真っ赤なID:OC4y/061の戦い まぁまぁ楽しめたぞwww
>>801 タスクシステムという言葉のメリットか?これの響きは厨二魂を心地よく擽る。
ID:eAxvOj2x みたいな右も左も分からない子を幻惑して遊ぶことができる。
「よくわかんないけどタスクシステムはすごいに違いない!」
「タスクシステムありがたやナンミョホーレンゲー」
こういう信者状態に至るまで育てたらアンチの檻に放り込んで彼らとの相互作用
(化学反応・拒絶反応)を観察する。アンチとの触れ合いの末に信者が強烈な
アンチにジョブチェンジする場合がある。レアポケモンだ。ハード君ともいう
タスクシステムを信じて就活したら大手全部落ちたのではないだろうか。
アンチはゲームプログラマに対する逆恨みの仕方がとにかく半端ない。面白い
>>747 あと、こんな話にならない嘘を書いちゃってる人とかなんも感じないわけ?
結局、挙げてもメリットとして説明できないでしょ?
なんでテキトーに感覚だけで主張しちゃうの?
それで何度も会社で失敗とかしてない?
引用しておいて白々しいw
ぶっちゃけ
>>747 も同じメンタリティでしょ?
多分、これがメリットになるんじゃないかな?とか検証もしないで
テキトーに主張したんでしょ?
そんなことばっかりやってるよね?
嘘吐きだよね君たち
定義のはっきりしないものを感覚以外の基準で判断しようとしても
みんなバラバラのこと言い出すだけで結論なんて出ないだろ。
結局、感覚で判断する
>>679 とか
>>747 程度の答えしか出ないよ。
>>808 そこまで妄想しないと自分を保てなくなってるんなら、
お前こそジョブチェンジの頃合かと。気に病むことは無い。
若気の至りみたいなのは誰にでもあるよ。
ID:OC4y/061 ってもしかしてハード君なの?
そうか、ハード君はタスクシステムに対する旺盛な好奇心が目を引くね。 君はタスクシステムの大ファンだよ。これからも幻惑され続けてほしい
>>781 データ構造はデータ構造、制御構造は制御構造で別物って当たり前でしょ?
タスクシステムなんてTCBの実行と描画を同時に行っていた時代の遺物 もしも、オブジェクトの移動、当たり判定、描画etc.を別の処理単位に分けるなら TCBで全てを済ませるタスクシステムとは相性が悪い 何で、タスクシステムは実行順番を動的に変更できる必要があったのかというと TCBの実行時に描画も行うから、TCB自体を実行前にZソートしておく必要があったため 実行順とは別の順序で描画できるようなフレームワークなら必要ない 結局、タスクシステムを使ったのはコード量を節約したかったからじゃないだろうか TCBの最大数が分かってるにもかかわらずtask1();task2();task3()...としなかったのは 双方向リストとイテレータの方がコード量が少なくてすんだのかもしれない (俺はハード屋じゃないから実際のは分からないけれど)
>>816 まかせとけ。
俺の理想のタスクシステムはこれ。
まずもって、タスクは「処理」だから、書くべき場所は関数の中。まーこりゃ大前提だわな。
void function()
{
task1
{
//処理1をここに書く
}
task2
{
//処理2をここに書く
}
}
もちろん書いた順に実行されることも保障される。
ところで、taskのくだりは無くても支障ないから、取っ払う。
void function()
{
//処理1をここに書く
//処理2をここに書く
}
そうすると普通のプログラムとなり、同時に俺の追及する理想のタスクシステムも完成する。
だから俺は、タスクシステムのアンチであり、同時に信者でもある。
>>819 class TamaHoge : public Hoge{
public void shori{
// 弾の処理
}
}
Class TekiHoge : public Hoge{
public void shori{
// 敵の処理
}
}
とかやっといて、オブジェクトを適当に作って適当に順次shori()を呼び出す
のがタスクシステムの原型になるんじゃないの?
あと、書いた順に実行されることは必須じゃないんじゃない?
>>820 それは仮想関数を使った多態をコンテナと組み合わせたものだね。
仮想関数は便利だ。派生クラスで好きにデータを追加しながらクラスごとに動作を
記述することができるからね。
コンテナは便利だ。オブジェクトが増えたり減ったりするのを実に素直に書き表す
ことができるからね。
で、これを原型として何を加えると「タスクシステム」になるの?
何か加える必要があるの?
>>821 何を足すかは知らん。これで全部かもしれん。
つか、うちはほとんどこれっぽいのでやってるので
これをタスクシステムというなら、確かに便利です。
つーか、これだとシステムってんじゃなくてスタイルだよな。様式?
824 :
名前は開発中のものです。 :2010/02/15(月) 03:18:22 ID:ngtxgrVY
>>819 >>820 これがタスクシステムというならああそうなのって思うが
そう説明してる「タスクシステム」って少なくとも
>>2 じゃないな。
難しく考えなくていいんじゃ?
いろんな処理をタスクという単位にして
リストで繋いで処理する事にタスクシステムって名前が付いてるだけ。
>>2 のWhite Paper - Programming に「処理関数へのポインタ付きワーク構造体の連結リスト」って書いてあるし、
細かく決まりがあるわけじゃないでしょ。
「処理関数へのポインタ付きワーク構造体の連結リスト」な機能があるなら、タスクシステムって言えちゃうんだろう。
OC4y/061とかe+nQn9Mgみたいな人って相手にすると疲れるよね。。。。
引数っての何渡すんだろ 引数なしで統一した方が扱いやすいと思うのだが それに一々毎回毎回引数渡すのやだな
827 :
名前は開発中のものです。 :2010/02/15(月) 08:33:19 ID:ngtxgrVY
>「処理関数へのポインタ付きワーク構造体の連結リスト」 これがいらないっていわれてるんだが
>>827 C++なら不要だよね
Cでの話じゃない?
C/C++関係なく<連結リスト>はなくても動的変更なければ必要ない。 <リスト>ならC/C++ともにないと困難。 配列や呼び出しコード列挙もリストといえばリスト。
だからオールアセンブラ時代のテクだっつーの タスクシステム使うとメモリ使用量も把握しやすいし、複数人で開発もできる オールアセンブラでそれをやるのは大変 今あえてこのシステムを使う必要はないだろ
シーン管理もタスクシステムも同じっしょ
>>818 > タスクシステムなんてTCBの実行と描画を同時に行っていた時代の遺物
どういう話なのか知らんけど
昔のBGとOBJを表示するハードのことなら、あれラインバッファだから
V-BLANK期間内は描画処理というのはやんないよ。パターンテーブル
(VRAM)の書き換えは毎フレームゴリゴリやるような話じゃないし
> もしも、オブジェクトの移動、当たり判定、描画etc.を別の処理単位に分けるなら
> TCBで全てを済ませるタスクシステムとは相性が悪い
んなこたない。ひとつのオブジェの1フレーム分の差分処理を1タスクで
ドベーっと一気にやる必要はない。むしろそうしないことのが多い
logician lordの記事でも移動と当たり判定のタスクは分けてるでしょ
logician lordの記事ってなんですか
>>819 相変わらず進歩ないな。昨夏から同じこと叫んでるだろ君
プログラマの責任の下でそんなふうに性的に列挙、記述できることばかりなら
それでやってりゃいいんだけどよ、おめーみたいなお気楽な庶民と違って
王様は気苦労が多いんだよ。おわかりになって?
なんかタスクシステム許すまじ!って感じの人がちらほらいるけど トラウマかなんかかな? 高級言語メインの現在でもアセンブラだって知ってる方がおいしいし 古い知識でも無いよりあったほうが飯の食いやすい業界だと思うんだけどな そりゃ新しい技術の勉強だけで手一杯ってのは分かるけどもさ
838 :
名前は開発中のものです。 :2010/02/16(火) 08:30:08 ID:KVp6SKGG
おまえはレスも読めないのか
翼システム
840 :
名前は開発中のものです。 :2010/02/16(火) 09:36:42 ID:ckg3nTQc
もう十分議論したわけだから先に進まないと
>>837 彼らは裸の王様とか言ってるから自分には何も理解できないと言ってるんでしょ。
つまり、トラウマというより何も無いということにしないと
自分が馬鹿ということになって自我が崩壊しちゃうから
必死になってる、と。
普通のプログラマなら
>>2 見ても古いやり方だねぇ、程度で終わって
今さら特にこだわることも無いんだけど。
あれを見て何一つ理解できない人たちにとっては、自分は馬鹿という強迫と
見えないゆえに何かすごい秘密でも隠されてるように感じるのかね。
裸の王様ってのはいいたとえだね。逆説的に彼らの馬鹿さを証明してるwww
>>840 まだちらほらと新しく「タスクシステム」と名のつくコードが生まれているけども、
全体的に数はあんまりなくて、ゆっくりと絶滅に向かっているようで安心した。
>>842 はちょっと馬鹿にしすぎで意地悪に見えたけど
>>843 みたいに皮肉られてるのすら気づかないレベルではしょうがないのか・・・
だって
>>842 の文章って裸の王様のストーリー知ってたらおかしいだろ明らかに
突っ込んでほしいの?w
サンタクロースを信じてる幼稚園児並みに純粋なんだね・・・ それぐらい純粋な人じゃないとタスクシステムのアンチなんて奇特なことは出来ないんだろうね・・・
848 :
名前は開発中のものです。 :2010/02/17(水) 09:09:37 ID:4hn/aGE3
また煽りあいか。技術的な話しろ。
タスクシステム否定派が定期的に湧くから荒れる
先人の遺した技術を今更否定した所で誰が得すんだよw
次スレがあるなら
・タスクシステム(
>>2 )での実装を強要するものではありません
・アンチな話題は専用スレを立ててください
ってテンプレに入れといたら荒れなくなるかも知れんなw
一々明文化せんといけんのがかなりアホ臭いが
アホ臭いのはタスクシステ(ry
アンチがいなくてスレが盛り上がるのか?
基地外アンチと基地外信者が他のスレに迷惑をかけないように隔離するのが このスレの存在意義だろう?
アンチはどのようなクラス設計をしているか教えて欲しい。
>>853 フツーだよ
君らはフツーよりメリットがあるからタスクシステムを使うんだから
もちろんフツーがどんなのかなんて説明の必要すらないよね?
ね!
俺は普通にオブジェクトのリストを
>>854 ふつうってなんだよ
ゲームによって変えるのかね
作り方かえるって言われてもなぁ。 描画エンジンと物理エンジンと当たり判定ライブラリと サウンドエンジンとメモリアロケータとその他もろもろ集めてきて、 ゲームロジック部と繋ぎ合わせるだけだしなぁ。
ゲームによって変えるのは当たり前というか。 だって、仕様が違うんだからしかたない。 仕事の奴はそれが仕事だし、趣味の奴は、それが趣味なわけで。 それしないってんなら、仕事がなくなるというか、作る意味が無いというか。 何も一から作れって言ってるんじゃないぞ。 各種ライブラリはそりゃ利用するんだが、 ライブラリごとにインターフェイスがバラバラだから、 そこの整合性を取ってやる仕事は普遍的に残るだろう、という。 ライブラリの面子が毎回変わるんだから、 まとめ方が毎回変わるのは当たり前というか。 でも、仕事ってそう言うものだろ。じゃないと職失う。
>>858 なにか言っちゃあ二言目には「ゲームによって変えるのは当たり前」って
聞き飽きたんだよね
もう意味がわかんない。
1)ゲーム作るよ。仕様ありますよ。プラットフォームも決まってますよ。
2)必要な機能も決まりますよ。使用するライブラリも決まりますよ。調達しますよ。
3)集めてきた材料を繋ぎ合わせますよ。
最後の繋ぎ合わせる部分は自分たちでやらなきゃ仕方が無いじゃん。
そこやらないなら、仕事して無いっていうか。
集めきてはい終わりじゃ素材集じゃん。ライブラリ集じゃん。ゲームじゃ無いじゃん。
ゲーム作るんだから、ゲームの形にするところは自分たちでやるもんだろー。
しかも俺は2)にタスクシステムも分類してあると思ってて、
素材としてタスクシステムは必要かどうか?って話が本筋と思うんだが。
>>856 はなんか変なこと言ってるけど、
タスクシステムを使わない人は、「ゲームによって変えるのかね」じゃなくて、使わないの。
料理作るのにニンジンが必要無いって人に、「ニンジンは毎回変えるの?」って返すのはそりゃおかしいだろ。
使わないんだって言ってるのに。
訂正) 料理作るのにニンジンが必要無いって人に、「ニンジンは毎回変えるの?」って返すのはそりゃおかしいだろ。 ↓ 料理作るのにニンジンが必要無いって人に、「レシピは毎回変えるの?」って返すのはそりゃおかしいだろ。
862 :
名前は開発中のものです。 :2010/02/17(水) 23:10:48 ID:4hn/aGE3
また煽りあいか。技術的な話しろ。
敵が弾をプレイヤーに向けて発射する処理を タスクシステムを使わないで書くとどんな感じ?
for( size_t i=0; i<enemies.size(); ++i ) { if( hoge ) { shots.push_back( new shot( player.x, player.y, enemies[i].x, enemies[i].y ) ); } }
敵が弾をプレイヤーに向けて発射する処理を タスクシステムを使って書くとどんな感じ?
866 :
名前は開発中のものです。 :2010/02/18(木) 02:00:15 ID:ey3FJ+Fd
おまえの環境はメモリが自由でいいな
アロケーターとカスタムコンテナぐらい自分で書けば? my_container.push( new( my_alloc<shot> ) shot(...) ); こうすりゃ文句無いわけ?よくわからん。 どっちにしろタスクシステムと関係ない。
あ、やべ。 my_container.push( new( my_alloc<shot>() ) shot(...) );
869 :
名前は開発中のものです。 :2010/02/18(木) 02:12:20 ID:ey3FJ+Fd
どうかくのかが問題なんだが。その自由な枠組みで。
処理したい順番に書いてけば?
ここら辺の処理はあんま変わんないね
えっ あんま違わないってことは違いがあるんだよな? で、敵が弾をプレイヤーに向けて発射する処理を おまえのタスクシステムを使って書くとどうなるんだ? これとても重要な質問なの
つーかDSPSPでこんなコード書いてたら完成しないぞ
>>873 >864 のコードに由来して特定の環境で受け入れられないオーバーヘッドが発生するとは
思わないんだけど、具体的に何の制限が問題になるの?
まともな C++ コンパイラが使えない( operator new やアロケータのカスタマイズができない)
とかいう事情ならまぁ納得なんだけど、そういうこと?
875 :
名前は開発中のものです。 :2010/02/19(金) 01:26:26 ID:mYNzjBiE
newを自由に呼べるシステムは分断化の回避が難しい。 回避方法は対処療法的なものも含めいろいろあるが 普通考慮するようならあまり自由にnewを呼ばない。
>>875 それってつまり、メモリの断片化に対して operator new のカスタマイズでは不可能な、
より適切な対処があるってことだよね?具体的にどうするの?
最終的に使う領域が固定の配列から切られるとしても、記述としては new (...) shot(...) で
いけるようにしといたほうがいろいろ(可読性とかメンテナンス性とかの面で)有利じゃない?
・・・質問ばっかりで悪いとは思うけど、たまには技術的な話を掘り下げさせてもらえると
有意義かなぁと思ったり。
どうせ弾の上限は決まってるんだろうから、shotsは固定の配列でいいんじゃね
new使わないとコンストラクタ呼び出せないんだっけ
ハードの性能無駄に上がってんだからコアな部分以外は可読性保守性最重視で行きたいね 無駄にトリッキーな処理書かれると忘れた頃に見たときめんどくさい
どこまでいってもメモリは有限です。 またハードを使い切ろうとするとデータサイズは大きくなる。 可読性重視は同意だが無制限なコーディングはバグを誘発する。
>>881 何が言いたいのかわからん。たとえば >864 の処理がどう書いてあれば満足なのさ?
無制限なコーディングなんて言ってないよ ハード能力上がったからそれに依存して適当な設計で良いと 言った訳でもなくて、速度・効率重視の部分とそれ以外で メリハリを付けたいなと あと可読性重視なら適切なコーディング規約で 細部に至るまで事細かくルール化されてるはずで 無制限なコーディングにはならないんじゃないかな
884 :
名前は開発中のものです。 :2010/02/20(土) 02:06:55 ID:EdhnZX12
コーディング規約w
よっぽど理不尽で無い限り、コーディング規約にはしたがうべき。 複数人開発でのソースの読みやすさが担保されるのはコーディング規約だけだ。 あと、1年後の自分にもやさしい。
ズレたコーディング規約って意味ねぇ 型とか先頭につけるのまったく意味ねぇ
>>886 会社の信じるコーディング規約じゃねぇ
お前の信じるコーディング規約を信じろ
嗚呼グレンラガン
なんかこれ結論っぽくないか? タスクシステム=コーディング規約の一種
まぁおまえのタスクシステムはそうなんだろ。 で、おまえの規約はどういう規約なの
891 :
864 :2010/02/20(土) 16:17:39 ID:sG4G6HXV
あのさー、お前らさー、newに上限付けたい?断片か防ぎたい? 言ったじゃん、カスタムアロケーターぐらい作れって。 my_vector< shot * > shots( 100 ); //上限100個 my_pool< shot > shots_pool( 100 ); shots.push_back( new( shots_pool.alloc() ) shot( player.x, player.y, enemies[i].x, enemies[i].y ) ); こうなってりゃ満足なわけ?好きにすりゃいいじゃん。 本当に、どうでもいいことばっか着目するよな。 俺はさ、タスクシステム使わないでゲーム作るとどうなるのか聞かれたから、 1) 用途や型ごとにコンテナにオブジェクトを突っ込む 2) メインループから各コンテナ内のオブジェクトを読み出して処理する をコードで書いたまでで、 アロケーターやプールやコンテナは環境にあったもの用意すりゃいいことぐらい分かるだろ。
どうでもよくないというか、タスクシステムの問題のひとつにメモリ分断化対策が面倒というものがある。 で、タスクシステム使わない方法があまりに無頓着なコードだったら一言言いたくなるのもわかる。 アロケータ書いても問題が解決しないのならなおさら。
>タスクシステムの問題のひとつにメモリ分断化対策が面倒というものがある。
初耳だが。
>>2 で言うTCBって固定長なんだろ?分断化しないじゃん。
まー、891とタスクシステムの違いも分からんやつが要るようなスレじゃ何言っても馬の耳に念仏だが。
>>893 newするクラスの大きさがまちまちだからメモリ分断化対策が必要ってことだよね?
どっちだって良いんだよ。 メモリ断片化対策はアロケーターの仕事だろ。タスクシステムは関係ねぇ。 タスクを基底に持つクラスをnewしたら断片化するってんなら、 class task{}; class my_task: public task{}; new task() ←断片化 そりゃお前、newがしょぼいだけの話じゃねーか。アロケーターがしょぼいだけじゃねーか。 タスクシステム関係ねぇ。
> タスクシステムの問題のひとつにメモリ分断化対策が面倒というものがある タスクシステム使わずとも問題になると思うのはもしかして俺だけ?
>>897 いや正しい。
しかし通常のタスクシステムは生成消滅タイミングが自由なのでさらに混乱することが多い。
まーたロクでもない自作アロケータを内包・癒着させて引き剥がせなくした ウンコの塊にタスクシステムって名前付けたお子ちゃまがいるようだな 893君はさ、「僕ちんの自慢のタスクシステム」の抱える固有の不具合を紹介 するのは別にいいんだが、ちゃんと「僕チンの考えたタスクシステム」の話って ことを断ったほうがいいと思うんだ
>しかし通常のタスクシステムは生成消滅タイミングが自由なのでさらに混乱することが多い。 それも、タスクシステム使わずとも問題になるな。
>>900 いやわかってますよ。まずこれが出来ない奴のほうが多い。
でそれができないままタスクシステム導入してこれまたひどいことになる。
ちなみにこれと同様な現象としてSTL、俺様テンプレートもある。
まぁアロケータの話はスレ違いだね、、、
ID:sG4G6HXV みたいなのが俺様のはタスクシステムじゃねー とか思ってたからこのスレがあれてただけだったという訳かw すべてが氷解した
タスクシステムじゃねぇじゃん。 コンテナにオブジェクトつっこんだらタスクシステムなら、 そりゃもう、何でもタスクシステムじゃん。 いまどきのプログラムなら、コンテナや配列の一つや二つは使うもんだろ。 タスク、仕事、つまり制御に関して何らかの仕組みが提供されないことには、 タスクシステムとは言えんよ。
やはりごった煮リストにしないとタスカーにはなれないな
タスクシステムがごった煮リストかどうかは実装によるんじゃない? なんでもかんでもタスクにするわけじゃないでしょ
データ構造と処理手順をごっちゃにしてるとわかりづらくない?
1)データのポインタやらを配列やコンテナに入れてるのは、 単にデータをそう言う風に管理してるってっだけ。 2)処理とワーク領域のセットのリストを逐次実行するのがタスクシステム。 3)ごっちゃになってるのが、糞タスクシステム。通称CodeZine。具現化された糞。 3)が糞というのはコンセンサスの得られるところ。もはや肩を持つものは居ない。 若気の至りというかなんというか、分別がついていないころは、そういうこともしでかすだろう。 生暖かい目で見守ってあげよう。 2)が必要かどうかは状況による。処理順番の動的変更が出来ることがメリット。 マルチコアの普及に従い、脚光を浴びる事に成るかもしれない。 しかし、出来れば使いたくない、というのがプログラマの本音だろう。 1)もタスクシステムの範疇だと考える奴も居る。頭おかしい。 ミカンを果物で実装したために、リンゴの呼び名がミカンになっちゃった人たち。 下手なアップキャストをしたためにダウンキャストで失敗している。 自分の脳内までごった煮リスト状態なのだろうか。 おそらく、3)に1)が含まれているので、そういう勘違いをしてしまったのだろうが、 タスクシステムの本質が2)であることを、良く考えて欲しい。
>>908 タスクシステムはごった煮リストじゃないって主張してるの?
C++が悪い
処理順番を動的に変更する、ということは、 その背景にあるのは、処理は1本のスレッド上でのみ行われるってことだな。 もしくは、マルチスレッドの各スレッド間同期タイミングをチャート引いて管理出来るようにするかんじ?
すげーな 勝手にタスクシステムを俺解釈して 勝手に脱タスクシステム叫んでるw
少なくとも記事になってるものを対象にしてるだろ。 その記事が間違っているというならどこが違うか指摘してから議論してくれ。
否定派がスレ立ててしつこく
>>2 を入れちゃうからおかしなことになるんだよw
だったらタスクシステムの「ちゃんとした」サイト探してみろって。マジでねぇから。 だいたい大昔のアセンブリ時代の化石か、ごった煮リストかのどっちか。
サイトというか、ソース晒せよ。
それは信者の仕事だろー
タスクシステムを造語した外人エンジニアに このスレを見せたらどんな反応するか見てみたい いろんな意味で 英語圏のフォーラムじゃ水掛け論みたいな内容で荒れてるの あまり見ないから呆れられてしまうかも知れんが…
すげーな。「もっとちゃんとしたサイト載せろよ」って。
知ってるなら貼ればいいだけジャン。
>>2 は違う。
>>2 と違うコード書くと「それもタスクシステム」
あげくに自分はコードもサイトも示さずに「もっとちゃんとしたサイト載せろよ」
まさに
>>3 だな。
>>921 いや、海外にも仕立て屋は間違いなくいる
C++なんて流行るのもその象徴
最近、俺はオブジェクト指向なんてのも怪しく感じるようになってきた
なんも生産性を上げてねぇよコレ
ま、わざわざ職場のルール乱してまで主張しようとは思わないから
こんなところでこっそり言うが
オブジェクト指向はタスクシステムに比べれば相当マシ。 議論のベースが整いやすい。wikipediaの項目くらいはあるし。 歴史的にも構造化など抽象化を推し進めるなかでてきたし。 少なくともカプセル化・継承・多態性は使い方によってはメリットがある。 ただとくにC++はこれらを実現する、またはついでに追加した機能が何でもありになっていて これ以上のデメリットを引き起こすことがかなりある。 とくに組込み系ではEffectiveC++みたいなのだけでは問題が解決しないが 最近のゲーム屋は昔ながらの技術を再検討するより本のうわべをそのまま使うことが多くて・・・ CodeZineのは昔ながらの技術を謎のままC++ととりあえずミックスしてしまったものだけど。
そもそもタスクシステムは日本発じゃないのか 海外はどうなってるのか知らんが あとごった煮リストって何をもってごった煮と言っているのか
>>921 >タスクシステムを造語した外人エンジニアに
意味が分からんのだが。。。
C++やオブジェクト指向に関してはアレだね。 データ構造に着目して考えるならカプセル化などがあって便利なものだから、 データ構造を実装するの関してはどんどん使えばよいと思うよ。 実際STLの中でもvectorやlistが飛びぬけて使いやすいし。 ただ、制御構造や処理との相性は最悪だから、 そこにまで無理にオブジェクト指向を適応しようとしだすと、 とんでもない事になりがち。(仮想関数を初めとして、オペレーターのオーバーロード/ライド) 標準入出力なんてマジで糞いしな。ありゃ一体なんだ。printfの方が随分使いやすい。 「プログラムの本体は制御構造なんだから、データ構造になんか時間かけてらんねぇ。 データ構造はオブジェクト指向でさくっとやるか。」 程度の感覚で良いかと。
>>914 これまでのアンチの基本的傾向として、ゲーム作れない口先だけのお花畑脳童貞小僧が
実験も検証もせず学校で教わった知識だけで知ったような口利いては即バレして恥かく
というお約束パターンを繰り返す、という情けないものだったわけだが、最近のアンチは
やや持ち直しており若干の進歩が見られる。油断してはいけない
と一切技術用語を出さずに煽ってもね。
今までいっぱい書いたからもう書くことあまりないんだわ
>>910 は厄介な子だね。Codezineみたいな噛み付きやすいところに
噛み付いていてくれれば話は楽なのに
レスアンカーすらつけられずに書くことないって。
>>3 そのものだ
>>910 が厄介な子なのは、ハ(ryだから当たり前だ。
さすがにハード君でもあれだけ沢山すっ転べば0.1歩くらいは進むのだな。 ところでハード君は処理の「順番」の変更ができるということに着目してるようだが それはつまり順番の入れ替え、ソートするということに着目してるのかな? データ構造のソートではなく制御構造のソートというのは何を想像してるの?
俺は「処理の「順番」の変更」はいらねぇんじゃねぇかって立場に立ってるわけで。 何を想定しているか聞かれても困るんだが。
ソートが不要なら静的に記述すればいいじゃないかということなの?
そうなるわな。 とはいってもif文とかは使うがな。 わざわざ処理のリストを自前で用意する必然性、そこが問いたいわけ。 ありえるとしたら、 1)処理の順番がダイナミックに変更される 2)ワーク領域の悪用 3)サブコアなど、どっか別のところに処理を投げる こんなところかね。 でもさ、プログラムって基本は処理したいものを処理したい順に書いていくものだと思うよ。 書くときはともかくとしても、読むときはその方が読みやすいわな。
ソースコード中に、プログラマの責任の元で、静的に(制御構文で)記述できる 制御フローならばそうすればいいんじゃない。それは当初から否定されてない
でタスクシステムは何なのという話ではないの?
静的に記述不可能なら、タスクシステムを採用するかどうかは別としても、 何らかの仕組みはいるわなぁ。 俺ならそう言う部分はエンジン化して真っ先に外部に追いやるが。 エンジンって名前はちょっとアレだが。
そう。何らかの仕組みが要るわけ。名前なんざ別にどうでもいい。 タスクシステムという名前よりももっとかっこいい名前がいいなら エターナル何とかでも僕ちんエンジンでも好きにすればいい
静的に記述不可能というのは例えばどのような状況?
例えば、複数スレッド(プロセス)を使う余裕がない貧弱なプロセッサ(コア)があり 例えば、割込で覚醒する(割込ハンドラから登録される)非周期性のタスクがあり どこかに挿入したい
それタスクシステムのタスクとして扱わなければいけない状況が具体的にイメージできない。
スレッドの変わりにタスクシステム使うってのはかなりアホな失言だな。
タスクシステムのタスクって何すか?
処理とワーク領域をセットにしたもの。
自分の仕事しか見えてない人の事
だって、スレッドって非同期で使ってこそだろ。 でもタスクシステムって同期が前提だよね、1/60秒とかで同期するよね、 自分で処理を明け渡すよね、そのタイミングで同期するよね、意味無いよね。
うーん。やっぱ見えてこないッスね。。。
周期駆動系の組み込みシステムでIRQをトリガーに発動するタスクを
捌くとき、つまり
>>942 みたいな要求があるとき、周期駆動のタスク
ディスパッチャーのプライオリティキューにそのタスクを追加するという
のは、定石というか割とありふれたスタイルに見えるんすけど
キューにデータを突っ込めば?なんでタスクを突っ込もうとするの?
というか、さっきまでスレッドの話してたのに、何で割り込みの話に切り替わったのだろう。
>>942 のスレッドの話と割り込みの話ってそれぞれ別の事例なんじゃないの?
俺の読解力が無いだけ?
普通にないだろ
だったら、逆に聞きたいんだけど、 割り込みとスレッドの関連性って何よ。 割り込みで発生した要求をサブスレッドで対応しても、それはそれでかまわないだろうけど、 でもゲームって1/30や1/60周期でポーリング可能なわけだから、 メインスレッドから割り込みの要求に対応するチャンスはいくらでもあるよね。 なんでスレッド作れないから割り込みの要求をタスクシステムでって話に成るの?
君のスレッドとタスクの関連性って何よ
それは俺が聞いてんだよ。 何でスレッド使えないからタスクって話になるんだって。
スレッドが使えないからタスクって何なの
お前が自分で
>>942 に書いてるんじゃねぇか。
池沼かよ。
ハード屋さんの目のフィルターは摩訶不思議だな
>>954 で、
>なんでスレッド作れないから割り込みの要求をタスクシステムでって話に成るの?
って書いてるだろ。
スレッドと割り込みとタスクシステムに一体どんな関係性が?
>>942 で疑問なのが、
1)もしスレッドが自由に使える環境なら、「割込で覚醒する非周期性のタスク」とやらは、
タスクシステムではなくスレッドで実行したいのか。
2)タスクシステムでスレッドの代用が出来るのか。
3)フラグとif文では記述できないのか。
割り込みハンドラでフラグ立てて、そのフラグが立ってるときだけ
処理を実行って感じでいんじゃねぇの。
> 959 :名前は開発中のものです。:2010/02/23(火) 01:28:48 ID:H3z/wak/
> お前が自分で
>>942 に書いてるんじゃねぇか。
> 池沼かよ。
> 962 :名前は開発中のものです。:2010/02/23(火) 02:01:35 ID:H3z/wak/
>
>>954 で、
>
> >なんでスレッド作れないから割り込みの要求をタスクシステムでって話に成るの?
>
> って書いてるだろ。
これってつまり言いだしっぺは己自身だったと・・・
もう一人相撲乙としか・・・
ちょっとまってよ。原文はこれだよね。 Q: 静的に記述不可能というのは例えばどのような状況? A: 例えば、複数スレッド(プロセス)を使う余裕がない貧弱なプロセッサ(コア)があり 例えば、割込で覚醒する(割込ハンドラから登録される)非周期性のタスクがあり どこかに挿入したい 俺の理解では、 「静的に記述が不可能な例えとしては、 スレッドが満足に使えない環境で、 割込みで発生する非周期な処理を、 割込みハンドラ外で実行したい場合などがある。」 これであってる? まー俺のESPは 「それってタスクシステム使ったから静的に記述できなくなっただけじゃねぇの」 と反応しているわけだが。
で、俺が問いたいのは、 何で、 スレッドが満足に使えない環境で、 割込みで発生する非周期な処理を、 割込みハンドラ外で実行したい場合、 静的な記述が不可能 なんだ?ってこと。
もうちょっと書いとくと、
「例えば、複数スレッド(プロセス)を使う余裕がない貧弱なプロセッサ(コア)があり」
これな、この一文。これは何のためにあるわけ?
俺は非常に疑ってるわけ。
この一文で、ID:jPaGif/Yの中で、タスクシステム的な何かを使うという前提が、
勝手に決定してしまってるんじゃないかと。
でも、もしそうだとすると、いくつかの問題が出てくる。
1) 割込み云々のくだりの意味が無くなる。
タスクシステム使うことによって、「静的に記述不可能」は満たされるので、
割込み〜を持ち出す意味が無くなる。
2) スレの流れ的に変。
Q: タスクシステムはどのような場合に使いますか?
A: 静的に記述できない場合。
Q: 静的に記述できない例は?
A: タスクシステムを使うとき。
答えになってない。
そんなアホみたいな展開はさすがに勘弁だから、
原文を最大限好意的に解釈し直す。すると
>>964-965 となったってわけだ。
明日仕事から帰ってくるまでにエレガントな回答を頼むよ。
>>926 大ヒント:輸入した言葉ばかりのこの業界
正解:素人しかここにいない
969 :
名前は開発中のものです。 :2010/02/23(火) 22:47:04 ID:zAzwz6Ie
(キリッ
>>967 で、タスクシステムというものを最初に造語した人って誰なん?
愚鈍な中年にエレガントに教育を施せとは難しい課題だな >割り込みとスレッドの関連性って何よ 真面目な話なんだが、これ本当にお分かりになりませんの? ここから説明を要求されると正直やってらんないわ… 100,000モリタポくらいくれれば個人レッスンやってもいいぞ
LISPでタスクシステムを書けば何か見えてくるかもしれない
タスクシステムは、大農園において確立された奴隷に分業させるための制度のことだろう
また技術的な内容がない煽りばかりになったな
>>973 プログラマの責任の下で静的に記述すればそれで良しの
べた書きアンチとは相性悪いな
なんとかシステムっていうのは、あんまり乱用しちゃいけない。 よくできたと評判のGoFのパターンでさえも乱用は危険。思考停止に陥るから。 常に設計の意味とか、見通しのよさとか、拡張のし易さを考えないといけない。
シングルトンはバカのリトマス試験紙
>>977 「皮肉られてるのすら気づかないレベル」「幼稚園児並みに純粋」とか、
まさに
>>3 の「馬鹿には理解できない」のバリエーションが量産されてるだけに見えるが、
何が言いたいの?
>>977 あー、それハード屋にすげー当てはまるww
「みんな俺と同じで
>>2 がわからないのに、馬鹿と思われたくないから
タスクシステムわかったふりしてるんだろ!」って本気で考えてそうwwww
真性の馬鹿だwwww
しかし、ホントこの業界は仕立て屋が食い荒らしてしまったな まったく意味のない技術が広がりすぎ 検証もなんもされてねーゴミばっかり量産された 技術より話術ってのも現場では当たり前になってるしな
ハード屋とかどう見てもゲームなんて作れ無さそうな人達が技術的に
ピントのずれた話しながらベタ書きしか認めん、とか言っても
個人的には
>>679 と同じ印象しか受けない。悪いけど。
この業界の糞はC++からはじまったな C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが簡単に生産されるようになってる。 正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、 それ自体、C を使う強力な理由になりうる。 -- Linus Torvalds
ハード屋と呼ばれてる人がなぜここまで叩かれてるかわからん ハード屋アンチよりは具体的にレスしてると思うが? ハード屋のレスしてる内容が分からないから叩いてるんだろうか?
煽ってるだけでしょ。 技術的な内容がないもん。
>>985 >553 :ハ(ry:2010/02/08(月) 22:21:47 ID:VnpQvf7D
>間違った(というか遅れた)考え方を知ってて特になるって・・・。
タスクシステムに対するこういう中身の無い発言からアンチだと思われてるからでは?
少なくとも俺よりはゲームシステムに対して精通してるようだけど、
いちいち異なる意見に対して否定的なレスを付けるから叩かれやすいのだと
人間誰しも自分は正しいと思い始めると思考停止に陥るですよ
988 :
ハ(ry :2010/02/24(水) 22:42:34 ID:rAOX0cBU
どの道を行くかは、自分で決めればいいさ。
>>981 を一体誰が救えるよ。
ハード君は四大の情報系卒らしいからそれなりのリテラシーはあるんだよ。 学校の教科書に載ってる範囲ではそれなりの回答が出てくる。 ロートル2Dオヤジ講師にそそのかされてるゲー専のガキンチョ信者相手なら 善戦するスペックはあるよ
どう見ても中身のない煽り
それは単純に、このスレがこんがらがって糞みたいになってるときに わざわざしゃしゃり出てきては交通整理を行ってきた俺の仕事っぷりへの 労いの言葉だろう。技術ではなく仕事への労い。サラリーマンの最低限のマナー。 猿まわしも大変なんだよ。
※このスレッドの書き込みは、タスクシステムを用いたBOTによって行われています
>>989 自己紹介乙
あんまりネットで自分の経歴暴露するのはどうかと思うがな・・・
いやそれは、俺が自分で書き込んだ経歴だ。 あんま変なところに噛み付くなよ。みっともない。 そいつからしてみりゃフォロー入れてるんだから。
最大限好意的に解釈するとそういう評価になるというだけの話でね 学校の教科書ではスカラー型の汎用プロセッサに2048bit超のデータを まとめて1パスで処理しろというのがどういう特殊で異様な要求かという ことまでは教えてくれなかったろうし でもMIMDよりSIMDがソフトウェア開発者に優しいとか、MIMDより SIMDが柔軟であるとか、そういうおかしな事を吹き込む教科書を 読んでるなら、どこの教科書なのか教えて欲しいとは思うね
スカラー型の汎用プロセッサというか基本スカラー型のコアね
SIMDというか64-wideの高並列SIMDね
しかし中身のないスレだったね
王様のお召し物にケチを付ける暇人共はまずゲーム作れるようになれよな
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。