- 1 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 11:25:39 ID:aSgRO8Wl]
- タスクシステムについての議論、相談、質問、雑談などのスレです
part5 pc11.2ch.net/test/read.cgi/gamedev/1234977661/ part4 pc11.2ch.net/test/read.cgi/gamedev/1233459490/ part3 pc11.2ch.net/test/read.cgi/gamedev/1226199100/ part2 pc11.2ch.net/test/read.cgi/gamedev/1196711513/ part1 pc11.2ch.net/test/read.cgi/gamedev/1173708588/ ・タスクと呼ばれる実装は、非常に多岐に渡ります 古典タスクシステムについての話題は「>>2」と明示してください そうでない場合はカスタム版であることを明示してください ・人を憎んで言語を憎まず
- 170 名前:名前は開発中のものです。 mailto:sage [2009/04/07(火) 20:08:43 ID:WMY4fAPQ]
- お金稼げてるからいいんじゃね?
それを否定するともっとお金稼げるなら俺もアンチになる
- 171 名前:名前は開発中のものです。 mailto:sage [2009/04/07(火) 20:20:07 ID:chqHE1jh]
- >>170
金がほしいならゲーム会社なんて辞めたほうがいいぞ かなりマジで 業務系いけば、ゲーム系で月14〜5万でこき使われてる人ならいきなり給料倍とかある
- 172 名前:名前は開発中のものです。 mailto:sage [2009/04/07(火) 21:33:44 ID:ulVvxTge]
- ID:EEKBitmgはもうあまりにレベルが低すぎて、みんなスルー状態だな。
- 173 名前:名前は開発中のものです。 mailto:sage [2009/04/07(火) 23:00:06 ID:chqHE1jh]
- >>172
俺は並列のがうぜぇ
- 174 名前:名前は開発中のものです。 mailto:sage [2009/04/07(火) 23:06:56 ID:2stCxtH4]
- まあフェードアウトオヤジ臭という意味では
並列さんとやね先生は同じ体臭を放ってるけどな
- 175 名前:名前は開発中のものです。 mailto:sage [2009/04/07(火) 23:23:22 ID:wsnDcgD2]
- だいたい、アタマがまともな本職やセミプロは、こんなところで『オレ様スゲーだろwww』とか
書き散らかさないって。
- 176 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 00:39:13 ID:DU4wvLd/]
- 本人も、今頃しまったと思ってるころだろ。
- 177 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 01:29:22 ID:9bhojcbs]
- てゆーかここ
どんだけ偉人ばっかりなんですかw みんなめちゃくちゃ上から目線なんですけどwwww
- 178 名前:名前は開発中のものです。 [2009/04/08(水) 07:38:26 ID:uu59oW9Z]
- 別にそんな感じはしないけど
何か気に入らないレスが付いちゃった?
- 179 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 09:16:12 ID:Ju8SopqO]
- 並列擁護は「第三者の"人達"から見て」 的なレスが多くてうんざりだな
国際社会とか地球市民とかそういう匂いがする 語ってる内容はどっちも滅茶苦茶なのでもうどうでもいいんだが まあ勘違い分裂君劇場みたいなノリでヲチしようや
- 180 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 09:18:37 ID:0OsF5j6c]
- ワンダつまらんかったな。初日にクリアしてすぐ売った。
- 181 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 10:02:02 ID:DTjWnb4t]
- じゃ、そろそろタスクシステムについて議論していこうか。
- 182 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 11:29:12 ID:ZcZVPfWq]
- タスクシステムの主な役割
・単位時間内に1回何かを実行する為の窓口 ・生存管理 ・依存の管理 こんなものかな?
- 183 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 12:10:26 ID:6q9I65fW]
- タスクシステムはそこにある、ただそれだけだ
- 184 名前:名前は開発中のものです。 [2009/04/08(水) 20:23:55 ID:uu59oW9Z]
- メリットやデメリットのあるタスクシステムなんてタスクシステムとは言えない
女子供は黙ってみてろ?
- 185 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 23:24:44 ID:Ju8SopqO]
- その疑問符は何だ?
- 186 名前:名前は開発中のものです。 mailto:sage [2009/04/08(水) 23:41:33 ID:P81F6nRk]
- 語尾上げで、柳原可奈子的可愛さを演出してみたんじゃないか?
- 187 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 00:22:04 ID:q+cTqKgL]
- むしろ姫ちゃん的な〜?
- 188 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 01:27:01 ID:FGj8z8j8]
- そういう使い方にしても間違ってるような
- 189 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 05:09:42 ID:0O2qwazX]
- 雑談ストップ?
- 190 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 18:55:18 ID:/k3TfSjT]
- タスクってCしかできない人のための技法?
- 191 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 19:04:45 ID:trH83J91]
- あまねく言語でタスクパターンは実装可能ですよ。
- 192 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 20:14:35 ID:/k3TfSjT]
- 非常にサラッと内容をチラ見してきたけど、まあ特に議論するべきことでもないな
- 193 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 22:57:42 ID:n4y/QroV]
- FlashのSTGで、EntityとかActorとか作ってやってるのを見たことがあるな。
- 194 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/09(木) 23:40:00 ID:vLLC2UDG]
- バカにつける薬は無いと言われることもあるけれど厨房は今日も元気です
さて、そんな厨房でもタスクシステムとかいう怪しげなものに取り憑かれる 人々というのが、なーんか筋の悪そうな人が多そうだなーということに気付く 筋が悪いというのは、ガラが悪いという意味では区、頭が鈍いというかバカ というか、一から十まで具体的に作り方を手解きしてもらわないとなーんにも 動かすことができないセンスの悪そうな人、という意味 こういう生意気書くとまたボコられるわけですが、この直感は当たってると思う >>128 例えばこういうの。もう何言ってるのかサッパリ分からない。思考が腐臭を放ってる。 >・単位時間内に1回何かを実行する為の窓口 なにそれ。役立たずの糞みたいな仕掛けをねじ込もうとしてるだけじゃん。 居るだけ詐欺の盲腸の無駄飯食らいの穀潰しのないほうがマシな無駄な機構を 何故かゲームプログラムの中に噛ませたがるタスクバカの香りを放ってる >・生存管理 なにそれ。something managerなの?生存管理?何してくれるの? タスクディスパッチャーが何で生死を司るの?ゲームのシミュレーション結果で 決定されることを、なぜタスクディスパッチャーごときが口を挟むの?設計腐ってない? 余計なお節介をして茶々を入れてくる強烈にウザイものにしか見えない。吐き気がする >・依存の管理 なにそれ。またsomething manager?依存の管理?何してくれるの? タスクディスパッチャーに把握させる依存関係って具体的に何?それをどうしてくれるの? なんか臭そう。
- 195 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/09(木) 23:43:36 ID:vLLC2UDG]
- >>193
EntityやらActorやらいう要素があるのはごく自然なことだよね でも、このスレのタスクバカに言わせれば、それはタスクシステムらしいよ。 バッチイからあっち行けって思う
- 196 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 00:22:24 ID:1GdYQJdO]
- なんで>>128が叩かれてるんだろうと思ったら>>182か
2chブラウザとか使ってないのかな
- 197 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 00:25:41 ID:4YdM/w1Y]
- 関数インポがメインのタスクシステムを使わずにC++の仮想関数でやるのは速度不足か?
CPU400MHZのPDA用に上記の方法で作ったことあるがとても快適に動作したがなあ。 携帯ならともかく今のハイスペックのマシンでタスクシステムいらんだろ
- 198 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/10(金) 00:33:26 ID:FNQAiqo/]
- >>194
間違えた!>>182だった。>>128ごめんなさい>< まぁ別に>>182にしても恨みはないからごめんなさい
- 199 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 00:38:46 ID:RpmvrcVd]
- >>197
関数いんぽとC++の仮想関数なら(規格には無いけど)同じ仕組みだから もともと差はないはずだよ。 まあ、ろくに定義されてない言葉でループ必至のネタに 自転車置場の議論を楽しんでるだけなんでそういう真面目な話いらんねん。
- 200 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/10(金) 00:39:22 ID:FNQAiqo/]
- >>197
別に関数アドレスや仮想関数が絶対悪だと言ってるわけじゃない 使い方の問題。使いどころの問題 わけも分からず処理を細切れにバラしてごちゃ混ぜ連結リストにぶち込んでなめて スバラシーデース。自動デース。窓口デース。とか寝言ほざいてる間抜けが嫌いなんだ
- 201 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 00:59:03 ID:zmUDuwgv]
- >>199
C++の仮想関数は、関数ポインタからの関数呼び出しと比べると 普通の実装なら間接参照が1回増えるんじゃない? 差は無いってことは無いと思うよ。まぁ大した差じゃないと思うけど。 あとタスクシステムの場合の関数ポインタの使い方は、仮想関数の代わりというよりは 状態に合わせた処理に直接ジャンプする(状態による場合分けをなくす)という 意味合いが大きいんではなかろうか。 これもまぁテーブルジャンプを一段挟めばいいだけではあるけれど。
- 202 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/10(金) 01:21:33 ID:FNQAiqo/]
- タスクバカのことだからvptrを書き換えて関数セットを丸ごと取り替えて喜んでそうだけどな
タスクバカって脳みそが中二のオジチャンだからさ、クラス図を完全無視して自在に変化する オブジェクト、とかにワクワクするんじゃないかな
- 203 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 01:34:48 ID:zmUDuwgv]
- >>202
だからなんだよ。 うぜぇ。
- 204 名前:名前は開発中のものです。 [2009/04/10(金) 07:27:26 ID:fVKjkvAM]
- まあ、要は退化してるってことだな
- 205 名前:名前は開発中のものです。 [2009/04/10(金) 08:01:06 ID:Enyn0370]
- 小沢 「外食しないと言ったんだから、チャーハン作れ」
麻生 「じゃあまずご飯炊かないと・・・・・」 小沢 「なぜご飯を炊くんだ!ご飯を炊く暇があったらチャーハン作れよ!」 麻生 「ご飯を炊かなきゃチャーハン作れないよ。お米研いだだけだし」 小沢 「そんなことは聞いていない。今すぐチャーハンは作れるのか」 麻生 「(まずご飯炊かないといけないから)今すぐには作れない」 小沢 「外食止めたんだぞ、今すぐに作るのが筋じゃないか!」 麻生 「お米研ぐ→ご飯炊く→チャーハン作る、なのわかる?三・段・階。わかる?」 小沢 「とにかく、すぐチャーハン作れ!」
- 206 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 09:36:54 ID:yz3HG861]
- >>205 +民は巣でやってろ
- 207 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 11:21:34 ID:BJAImmDI]
- ID:EEKBitmg ◆HSP4mee/SU は
メモリ何ギガもあるマシンだけを対象にしたゲームをシコシコ作ってなさい。
- 208 名前:名前は開発中のものです。 [2009/04/10(金) 12:00:12 ID:GpZ/KC5r]
- なんか面白そうな話題だったのにHSPしか使えない馬鹿が
暴れたせいで途端にスレのレベルが下がったな こいつ、いい加減、いなくならねーかな
- 209 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 12:54:33 ID:Y8VaBVxa]
- このお題(タスクシステムの是非)に関しては、アンチ側が中東の米軍並みに有利なはずなのに
なんで互角以下の劣勢なんだ?
- 210 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 13:04:18 ID:ytUDTzAB]
- コテつけてまで自己顕示するほどのアンチってタスクバカよりたちわるいね
- 211 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 13:05:59 ID:ytUDTzAB]
- クラス図とか、オブジェクト指向言語、オブジェクト指向プログラミングはこうあるべしという強迫観念の最たるものだよね
- 212 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 17:33:29 ID:1zCtaiSY]
- >面白そうな話題
kwsk
- 213 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 18:30:28 ID:LKxV/Lgc]
- 誰でもいいからそろそろ、
タスクシステムはこうこうこういうところがダメだから これからはこうこうこういうものを使うべきだ! って主張してくれねーかな。 ちなみにタスクシステムを実際に使ったことなかったりするのは論外。 説得力がまるで無いし、比較しないと意味が無い。 あと、机上の理論を聞いてもしょうがないので、 こういうものに移行したらこういうメリットがあったって話も聞きたい。 喧嘩したいだけのお子様や 妄想たっぷりのニートはもうお腹いっぱいです。
- 214 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 19:08:05 ID:KfvFah+k]
- 実際にお仕事してきてるなら、タスクシステムは経験してるはずだよね
- 215 名前:名前は開発中のものです。 [2009/04/10(金) 19:56:07 ID:fVKjkvAM]
- ダメだの前にメリットをあげてくれよ
話を元に戻そうか?(笑) タスクシステムのメリットってなんですか?
- 216 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 20:02:44 ID:sH8kBZbv]
- 本職の人は守秘義務とかあるし、具体的な話はできないんじゃない?
- 217 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 20:06:05 ID:0HZaI+RC]
- タスク厨:デメリットあげろ
アンチタスク:メリットあげろ どっちも説明するつもりないんだな まぁ面倒なのはよくわかるけど
- 218 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 20:52:43 ID:GZm91cCj]
- タスクシステム派に足りないのは
「大規模C++ソフトウェアデザイン」の「5.2 昇位(escalation)」の概念。 上位レベルコンポーネントの存在を軽視しすぎ。 そして巡回依存性、相互依存性の怖さを軽視しすぎ。 5ページだけ、立ち読みでいいから1度読むといい
- 219 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 21:03:03 ID:KfvFah+k]
- 教えてもらったとおりの発想とスタイルでしかプログラミングできないんすなぁ
- 220 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 21:07:37 ID:GZm91cCj]
- >>219
お仕事でタスクシステムを教わったんですね 分かります
- 221 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 21:13:36 ID:9juAqapQ]
- タスクシステムを使った イコール 相互依存性があがる
というわけではないしなぁ。
- 222 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 21:19:09 ID:I/tIMbxt]
- 俺良く分らんながら考えてたんだがC++でタスクシステム実装しようとすると面倒にならないか
Cのが合うんじゃないの
- 223 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 21:22:56 ID:o/eQJnMQ]
- もともとCやアセンブラで考え出されたものだからね
- 224 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 21:26:49 ID:o/eQJnMQ]
- Windowsプログラムのカーネルはタスク処理だが、(イメージが違うけど)
窓AP作成のユーザーから見れば、イベントドリブンのシステムだから。 タスク部分はフレームワークに吸収してもいいかもしれん。
- 225 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 22:34:08 ID:GZm91cCj]
- >>221
そこでもう一押し、「相互依存性を完全除去」まで行くと違いが見える。 10から1にするのはどっちもできるが、1から0にできるのは片方だけ。 0にすると設計の見通しが利く。小さいようで大切なこと。
- 226 名前:名前は開発中のものです。 mailto:sage [2009/04/10(金) 23:09:59 ID:GZm91cCj]
- 具体的に脱タスクシステムでやることは単純、・・・でもないけど下記の通り。
もし相互依存性があるオブジェクト群があったら、 1、オブジェクト群の上位に親クラスを作成する 2、オブジェクト群の相互依存箇所を抽出して親クラスのメソッドにまとめる これを相互依存性が無くなるまで繰り返す。(相互依存性の多さにあらビックリ) 同位のオブジェクト間の相互依存性は上位に丸投げして解決してもらう。 1アンチとしてはこれお勧め。
- 227 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 02:21:52 ID:GEBPDovg]
- タスクにはデメリットになりうる注意点が多々あると思うが、利用者側が注意してタスク実装していけば回避できる箇所も多い
あと、汎用的なタスク設計は存在しなくて、作るゲームによってその都度チューニングしてる なんだかんだ言ってもタスクは便利なんだよね
- 228 名前:名前は開発中のものです。 [2009/04/11(土) 02:23:50 ID:pUi3qAut]
- 汎用部分はベースクラスにして継承して振る舞いを実装するとおもうのだが・・・
- 229 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 02:30:57 ID:FAassbBg]
- とりあえず確認させてくれ
おまえらバズワードって言葉知ってるか?
- 230 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 02:36:07 ID:pR/Rfe6E]
- 「>>2」のことか?
- 231 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 02:39:50 ID:GEBPDovg]
- 勿論継承するのがいいんだけど、色々と制限厳しい開発なんで、タスク周りはプロジェクト毎に直すようにしてる
タスクは総じて癖が強いが、扱い慣れるとごりごり書けるのがいいよね。プロジェクト終盤のデスマで有用だった。
- 232 名前:名前は開発中のものです。 [2009/04/11(土) 07:11:31 ID:JQKbxyD0]
- スレッドでいいじゃん
- 233 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 08:44:55 ID:VwbI10yZ]
- 並列はもう出てこれないだろうな
- 234 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 09:54:27 ID:BwFqfbII]
- >>225
別に相互に依存する必要がないならば、 タスクシステムでも相互依存性は0にできると思うけど。
- 235 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:09:00 ID:shgrRKkW]
- >>226
結局コードが膨れ上がるだけじゃないすか 本人は奇麗にまとめ上げた気分で気持ちいいかもしれないけど、無駄な作業すなぁ
- 236 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:10:53 ID:shgrRKkW]
- アンチの意見で、なるほどコレは参考になるっていうのが無いのう
まだ並列さんのが実際の現場の実装の片鱗を語ってるだけあってよかった
- 237 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:13:12 ID:lG5C2wBT]
- >>234
相互依存性が 0 ならプロジェクト毎に直すなんてことにはならない。
- 238 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:17:32 ID:FPJVr62U]
- >>237
相互依存性が 0でもジャンルとかプラットフォームの世代が 異なればそれにあったものに変更すると思うが。
- 239 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:18:00 ID:lG5C2wBT]
- >>235
依存性を排除してモジュール化を進めていけば再利用可能なコードができる。 「再利用」っていうのはプロジェクト毎にコピーしていじるってことじゃないよ。 同時に、既存のコード( C++ 標準ライブラリや Boost など含む)と組み合わせることが やりやすくなる。そうなれば理解しやすい形に近づくことにもなる。 お釣りがくるよ。
- 240 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:19:09 ID:shgrRKkW]
- 所詮開発厨なんだから、はりきる必要はないべ
形にさえなればオケオケ どんなに奇麗に実装したところで、厨にミソカスに言われるだけなのにね
- 241 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:21:46 ID:lG5C2wBT]
- >>238
それは「変更する」部分がジャンルとかプラットフォーム世代に依存してる状態だろ。明らかに。
- 242 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:25:31 ID:FPJVr62U]
- >>241
それらに一切依存しない、なんてシステムが現実的に使い物になるのかね。 なんか机上の理屈をこねてるだけのような感じがするな。
- 243 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:27:26 ID:lG5C2wBT]
- >>236,240
並列さんの話が「現場の〜」だと信じられるのに、依存性の排除は主観で拒絶か。 自分の考えに近いかどうかが判断基準なんだろうな。おめでてーな。
- 244 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:31:13 ID:hS6DOynO]
- >>237, 243
ジャンルやプラットフォームに依存しないタスクシステムは作れるし、 それでやってるところはあるよ。 ただ、そういうのって汎用的になりすぎてむしろ使いづらいから ジャンル毎にカスタマイズするところもあるってだけの話。 >自分の考えに近いかどうかが判断基準なんだろうな。おめでてーな。 でた!自己PR!
- 245 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:32:24 ID:lG5C2wBT]
- >>242
たとえば C++ 標準ライブラリはゲームのジャンルやプラットフォームの世代に 一切依存しないが、現実のゲーム開発でもとても有用だ。わかりやすい話だろ。
- 246 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:35:37 ID:FPJVr62U]
- PS1世代は完全にC++使えなかったし、PS2でもローンチではSCEはC++を非推奨にしてたけど…
C++標準ライブラリがゲーム機で普通に使えるようになったのってXBOX/PS3/360からだよ。 これほどプラットフォームの世代に依存してるものを「一切依存しない」って…
- 247 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:37:34 ID:VwbI10yZ]
- C++標準ライブラリでゲームで便利なものって何かあったっけ?
- 248 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:37:59 ID:lG5C2wBT]
- >>244
その「カスタマイズ」というのがコードを変更することではなく、ジャンルに合わせて 使い方を変えるということなら問題ない。そうではなくてプロジェクト内にコードを コピーしていじる必要があるのなら、それはまだ依存性の問題が残っているということ。 要するに "Open-Closed Principle" というやつ。 www.morijp.com/masarl/homepage3.nifty.com/masarl/article/dp-ocp-2.html 「モジュールは拡張に対して開いて (Open) おり,修正に対して閉じて (Closed) いなければならない」
- 249 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:42:39 ID:VwbI10yZ]
- >>248
タスクシステムはライブラリではなくフレームワークだからコピーでよい。 コピーしない方針なら、継承使って拡張していくことになるが、 コピーできる環境なら継承よりコピーの方が良い。
- 250 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:43:36 ID:hS6DOynO]
- 完全にライブラリ化してるタスクシステムあるけど。
というわけで、依存性の話はタスクと関係ないってことで じゃ、依存性がどーたらという話はこれで終ね。
- 251 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:48:00 ID:lG5C2wBT]
- >>246
それらの制限は当時のコンパイラやライブラリ実装の問題のせい。依存性の問題じゃない。 たとえば同じ仕様の標準ライブラリが、新しい gcc のレベルならそれらのプラットフォームでも 余裕で使えるだろう。 例が理解しにくかったのなら「C 標準ライブラリ」に置き換えて読み直してみるといい。同じ話だ。
- 252 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:48:57 ID:VwbI10yZ]
- だから、タスクシステムはライブラリというよりはむしろフレームワークだ。
頭の悪い奴だな。
- 253 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:52:12 ID:FPJVr62U]
- >>251
>それらの制限は当時のコンパイラやライブラリ実装の問題のせい。依存性の問題じゃない。 プラットフォームの性能からくる制約を一切無視してるなぁ… gcc自体は当時でも余裕でC++対応してたのに、なんでPS1で使えないようにしてたか、考えてみた方がいいかも。 それに「C標準ライブラリ」だってSFC時代のゲーム中動的にmalloc使うなんて考えられない、というハード世代を考えると同じこと。
- 254 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:55:32 ID:lG5C2wBT]
- >>249
> コピーできる環境なら継承よりコピーの方が良い。 コードをコピーしたほうが良い?最悪だろ、常識的に考えて。 コピー元がバグってたらいっこずつ直して回るはめになるんだぞ? それに対して、何が「良い」というの? 「ライブラリではなくフレームワークだからコピーでよい」というのも理屈がわからんな。 ライブラリとフレームワークとのどういう違いからそういう話になるの? とりあえず Wikipedia 見てみたが、「コピーでよい」となるような話は見当たらなかった。 ja.wikipedia.org/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF
- 255 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 12:56:31 ID:hS6DOynO]
- ↑依存君と名付けよう
- 256 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 13:00:19 ID:FPJVr62U]
- 5年周期でハードが一新されて、そのハードをどこまで使い切るかが
売り上げに影響するゲームプログラムというジャンルで、 どこかの本にのっていた「再利用性」って教義を原理主義者みたいに唱えて 「8bitのハードでも64bitのハードでも変更無く使えるプログラムが正しい。」 なんて、頭がお花畑のゆとり発想だよ… こーゆー分野ではタスクみたいにハード世代にあわせて、動的メモリ確保しない、とか リスト+ポインタ、とか仮想関数で、とか、環境にあった実装を別にした方がいい。
- 257 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 13:04:37 ID:VwbI10yZ]
- >>254
頭悪いんだったら黙ってろよ。 >コードをコピーしたほうが良い?最悪だろ、常識的に考えて。 >コピー元がバグってたらいっこずつ直して回るはめになるんだぞ? 逆に色んなプロジェクトから参照されまくってたら、 もはやバグを直すタイミングすらないのだが。
- 258 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 13:42:34 ID:GEBPDovg]
- >>256
共感できるわ。 自分も再利用性などを考慮していたらいつまで経っても終わらないし、無駄に肥大になったり使い勝手が悪いので、 とりあえずタスクベースとなるコードをコピーしてきてゲーム毎にカスタマイズして使うことにしてる。
- 259 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 13:53:14 ID:lG5C2wBT]
- >>253
んー。そういう性能の要求っていう依存があることも確かにあるねぇ。 じゃぁ >245 の例を qsort() なり std::sort() なりに置き換えて読み直してみてもらえると 言いたかったことは伝わってくれないだろうか?
- 260 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 13:59:34 ID:hS6DOynO]
- >>259
アホ、依存性を無くした方がいいっつーことはみんなわかってんの。 でも、完全に無くすなんてのは現実的に難しいし、 そうするべきでもないことがあんの。 理想と現実っての知れよ。 最近本で読んで嬉しくて触れ回りたいんだろうけど、 アホみたいに理想論言ってないで現実を見ろ。
- 261 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:11:22 ID:lG5C2wBT]
- >>256
> 「8bitのハードでも64bitのハードでも変更無く使えるプログラムが正しい。」 そのほうがいいのは確かだろ? で、今は全体的なスペックの向上やコンパイラの進歩によって移植性の高い、 再利用性の高いプログラムを書くことはかなり現実的になってきている。 今時、動的確保しないとか仮想関数使うかどうか、とか、そんなところの違いで 「ハードをどこまで使い切るか」というような差が出るなんて考えられないでしょ。
- 262 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:14:18 ID:lG5C2wBT]
- >>257
> 逆に色んなプロジェクトから参照されまくってたら、 > もはやバグを直すタイミングすらないのだが。 バージョン管理ツール使ってればそんなことにはならない。 テスト段階に入っていて最新のバグ修正を入れることが得策でないプロジェクトは バージョン固定するなりブランチ作るなりすればいいよ。
- 263 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:19:50 ID:lG5C2wBT]
- >>258,260
完全に依存をなくせとは言わないけど、せめてプロジェクト毎にコピーしていじるとか 恐ろしいことを堂々と言わない程度にはモジュール化できるだろってこと。 そんなに本質的に切り離しが難しい依存関係ってどんなのがあるの? そういう例を挙げてもらえると話がわかるかもしれない。
- 264 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:24:42 ID:hS6DOynO]
- 「完全に依存をなくせとは言わない」とか寝ぼけてんのか…?
お前が「完全に依存をなくせ」って言ったからこの議論が発生したのに。 221 名前:名前は開発中のものです。[sage] 投稿日:2009/04/10(金) 21:13:36 ID:9juAqapQ タスクシステムを使った イコール 相互依存性があがる というわけではないしなぁ。 225 名前:名前は開発中のものです。[sage] 投稿日:2009/04/10(金) 22:34:08 ID:GZm91cCj >>221 そこでもう一押し、「相互依存性を完全除去」まで行くと違いが見える。 10から1にするのはどっちもできるが、1から0にできるのは片方だけ。 0にすると設計の見通しが利く。小さいようで大切なこと。
- 265 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:37:57 ID:VwbI10yZ]
- >>262
バージョン管理ツールが各プロジェクト責任者に自動で了承取ってくれるのか?
- 266 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:39:53 ID:lG5C2wBT]
- >>264
ごめん、それ、違う人。 あぁ、「最近本で読んで」とか言われてたのはそのせいか。 >218 の本も読んだこと無いよ。 まぁ基本的にその人と考えてることは同じなんだろうけど、「依存」の中に大昔の ハードの制約とかも入るような話になっちゃったら 0 にしろとは言い切れないねぇ。
- 267 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:44:16 ID:hS6DOynO]
- 結局タクスシステムとは関係ない話ということでよろしいか?
- 268 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:47:58 ID:VwbI10yZ]
- いやあるね。
基本的にタスクシステム自体がゲーム仕様に「依存」するからこういう展開になるわけで。
- 269 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:50:55 ID:lG5C2wBT]
- >>267
依存関係の切り離しも含めてモジュール分割やコード再利用の努力をすれば、 すぐにタスクシステムなんてものは標準コンテナや仮想関数を持った インターフェースクラスなどに分解され、残るのはゲーム依存部分となり システムと呼ぶほどのものは残らなくなるだろう、と考えている。 そういう意味でも >263 の質問に答えが欲しい。あと >254 も、かなぁ。
- 270 名前:名前は開発中のものです。 mailto:sage [2009/04/11(土) 14:51:36 ID:FPJVr62U]
- >>266
ハードの制約は大昔も未来も変わらんよ。 非対称マルチコアに最適なタスク管理とか、最近はそっちの方面に流れてるし 実行環境を一切考慮しない唯一の最適なシステムなんてハードが進化し続ける限り不可能。
|

|