- 1 名前:名前は開発中のものです。 mailto:sage [2009/02/01(日) 12:38:10 ID:rVEgp4cM]
- タスクシステムについての議論、相談、質問、雑談などのスレです
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/
- 62 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 02:38:16 ID:e5oU/vxX]
- >>61
粗探しをしているつもりはないので、疑似コードなり何なりを出してもらえれば 協力はさせてもらうが。 threadというのは生成に時間がかかるものであって事前に作ってpoolingして おくのが普通であって、stack sizeなんか都度指定されたらpoolingしている threadが使い回せない。 つまり、(3)でスレッドを割り当てて欲しいときにstack sizeの指定はいらない。 タスクシステムからのupdate呼び出しのなかでスレッドを割り当てて欲しいときに threadPooler.Run(boost::function(&MyClass::Worker)); とするだけのことではないか? だから、(3)を、普通のタスク(1),(2)と区別する意味が俺にはよくわからないのだが…。
- 63 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 03:06:56 ID:WlW8taMc]
- とりあえずどんな問題を解決したいのか明らかにしてからコード書いてください。おねがいします。
- 64 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 03:10:28 ID:9DTLfrVW]
- >>62
なる、プールされたスレッドってのは考えてなかったです 例に挙げられたコードも分かりやすいと思いますが、 とりあえず>>49の方向でそうした実装を取り入れるなら、 PreemptiveTask のコンストラクタがスタックサイズを引数に取らないようにして、 内部的にプールされたスレッドを使い回すようにすると良さげかもですね それか、必ずプールされているのも都合が悪いことがありそうだから PooledPreemptiveTask のような新しいクラスにそうした実装を組み込むか とりあえず、その辺はより実装に近い部分なので、ゆっくり煮詰めていくたぐいの話ではないですかね 1、2、3をそれぞれ区別するのは、使い手側から見た時に混同せず 明確に区別すべきものだからです(コーディング方法もそれぞれ異なるし) >>62はシステム側の都合から見てるから区別不要に思えるんじゃないかな >>63 え、おれ?ごめん ということですいませんが、そろそろ寝ます 敗北宣言
- 65 名前:名前は開発中のものです。 [2009/02/05(木) 03:50:41 ID:MYSEarFY]
- 近代的タスクシステムの構築(2)
d.hatena.ne.jp/yaneurao/20090204
- 66 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 04:12:57 ID:Ib2V0W+J]
- やねうらおの方からきますたw
まあ、ゲームオブジェクト管理周りをどうするかは作るもん次第、銀の弾丸なしってことで、 それはプログラマの仕事がなくならないってことで、いい話なんじゃね。
- 67 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 07:42:18 ID:V08fWeRa]
- やねも昔ほど強く言わなくなってるな
実は必要無いってもう気付いてるな そもそもタスクシステム、コーティングの手間しか削らない割に記述の複雑さは一級品だからな ベタガキで誰でも読めるソースになるならそのほうがいいだろ 長い期間強く組む為には構造は単純でないと駄目なんだよね
- 68 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 07:42:24 ID:/BuTmFOA]
- >64
1,2,3を混ぜて巡回呼び出ししたい場合というのが存在するから、同一I/Fから呼び出せないと困るぞ。 例えば、全てのtaskにコンテキスト保存が必要では無い場合に一部taskは1で作成するとかな。
- 69 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 17:15:53 ID:tABpRsfL]
- >>32
現代じゃなくて近代なのか。ずいぶん遠慮がちに書くのだなぁ。最初から後退戦か 敗北主義を匂わせれば、相手は正面から斬り付けるのを躊躇うはず、という計算が 見え隠れすんなぁ >いまの視点(2009年)で見たときに拙著(ASIN:4798006033)にて不足している部分を補足するため 今までは利得がどこにあるのかを決定的に見誤っていた、と白状したほうが高感度アップな >成熟したタスクシステム(タスク自体のデバッグを支援するタスクデバッガのような環境を含めて >「タスクフレームワーク」と呼ぶほうがふさわしいかも知れない)は、ゲーム開発において依然として有用であり それにしてもタスクフレームワークとか鼻クソみたいな造語を作るの好きな人が多いな ビデオゲーム開発のためのフレームワークなんだろ? ビデオゲームというのは何かしらの時間ステップで何かしらの逐次処理(数値積分など)を 繰り返すもの。そしてその処理は複数。だから並行処理ないし並列処理することになる どんなものであれ、その内部でジョブステップ(タスク)が駆動するなんて当たり前のこと ありふれたこと。むしろないほうがおかしい なのにビデオゲーム開発のためのフレームワークの看板にタスクを掲げる つまり【タスク】が他のフレームワークには存在しない特徴でありウリだと思い込んでる タスクというキーワードに何か特殊な意味・特定の実装(>>2とか)を連想し、それ以外は タスクではない、という視野狭窄・自己中・ド田舎ルール・カルト信仰が見え隠れするね つまりタスク厨 タスクというキーワードに対する思い入れの強さ。これは>>2、松浦本ベースの劣化 トンデモ情報による刷り込みがやねうらおにも及んでいた可能性を示唆する
- 70 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 20:01:26 ID:1mXFjsrF]
- 何と戦っているんだ?
- 71 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 20:05:59 ID:tABpRsfL]
- >>32
>現代において、タスクシステムを実装するなら、もう少しタスク間通信を抽象化してタスク側から >タスクシステムが保持しているlistには直接触れないようにするべきだが 今度は近代じゃなくて現代なのか はっきり言っちゃうよ。それは時代ではないんだよ。それは開発規模に応じた普遍的な要求なんだよ 例えば大所帯でRPG作るとき、みんながジョブエントリ・タスクエントリのコンテナに直接触れたらどうなる わかるよな? 15年以上前にはビデオゲームの世界にさえジョブモニタやタスクモニタといったものが存在した これは汎用機や組み込みシステムのモニタやOS(RTOS)が大昔に進んだ道を踏襲しているに過ぎない 32bit機が登場した頃には中堅どころでさえブクブクと膨れ上がるゲームのボリュームに汲々としており ジョブを記述するユーザー(スクリプタ含む)にジョブエントリやタスクエントリのコンテナへの自由な アクセスを許可するなんて蛮勇以外のなにものでもないケースは珍しくなくなっていた 一定以上の規模になればユーザーを中枢から隔離するなんて時代を問わず当たり前のこと CだのC++だのアセンブリ言語だの関係ない これを【現代】の流れというなら、それはやねうらおの内なる世界における歴史的系譜を辿る際に 現代の1ページに登場するとある事変に過ぎず。やねうらおの個人的出来事に過ぎない 『やねうらおの歴史 〜やねうらおの近代そして現代〜』というタイトルで出版したほうがいい みんな買うよ
- 72 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 21:33:53 ID:HwyPz9yB]
- ID:tABpRsfLはなんでそんなに日本語が不自由なの?
- 73 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 21:44:34 ID:sYm6Gfdu]
- タスクというキーワードに対する思い入れwww
- 74 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 21:48:23 ID:Kg6Z2A1M]
- やねが今回タスクシステム(なにそれ?)を語りだしたときに
それがどういう規模のゲーム開発のお話なのか、という部分には 一切言及しなかったよな この手のお話には必須の大前提なんだけどバサーリ省いた あらゆる規模にタスクシステムとやらいうものが適用するメリットがあると 考えてるんだろうかね もうこの時点で彼のタスクシステム(はぁ?)論は敗北確率急上昇だろ とても残念だ 少人数・ないし一人のプログラマによる小規模開発ではベタ書きのがいい 彼の言うタスクフレームワーク(あ?)とかいうもの。こいつを構築するために 支払うイニシャルコストがペイできる分岐点ってもんがあるわけ やねはここを見積もってないんだろうね
- 75 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 21:56:59 ID:Kg6Z2A1M]
- 誰と作るのか。何人で?そいつらの戦闘力はいくつ?期間は?実装対象は?
開発機材は?既存のライブラリとかのリソースは?買っていいの? こういうファクターを丸無視してコーディングスタイルとか設計の是非を語ろうったって 解なんて出やしない。だからやねがエロゲ作ってるならエロゲ話のことだと言えばいいんだよ PC用3Dエロゲにおけるタスクシステムの有効性について とかな。あ、3Dは駄目なんだっけこのオッサン
- 76 名前:名前は開発中のものです。 [2009/02/05(木) 22:06:28 ID:Kri4Crxo]
- やねうや夫は2Dオヤジだから一般化して語れないぞ
あとゲーム専用ハードのゲーム開発経験もないんじゃないかな
- 77 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 22:39:01 ID:tABpRsfL]
- やねうらおさんってコンシューマ畑とも縁遠いのか。それは失礼した
DSで死にそうになってるフェードアウトハゲが10年単位の周回遅れで 発明した独自理論を得意げに語ってるのかと思ってた エロゲの人ならこういう発見もアリなんじゃないかな。煉獄へようこそ
- 78 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 23:02:22 ID:AceVSe0N]
- >>36
前々スレから散々におわせていたことをようやく認識した ということだろうね IDだのハンドル云々の話は10年近く前にファミベのよっしんが記事を書いてる www2.tky.3web.ne.jp/~yosshin/memo/000213.html アーケードやコンシューマと無縁なやねなら確実に読んでると思うんだけどね 参考リンクとして貼りゃいいのに よっしん氏が呼んでるタスクシステムという代物と>>2は同一ではないよな >>2はタスクリストとかいうものを周期的にナメまわしてバッチ処理するだけ 「はいこれでオシマーイ。あとはお前らにお任せだっよーん」みたいなゴミカス 最近じゃこれだけでタスクシステムってことで通用するんだから タスクシステムはタスクの相互作用なんて気にする必要まったくないわけ 変な通信機能盛り込むなよ
- 79 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 23:10:23 ID:yvQde++7]
- >>74
d.hatena.ne.jp/yaneurao/20090204 に > すべてのゲームにタスクシステムが必要なのではない。 はっきりと書いてあるのに > あらゆる規模にタスクシステムとやらいうものが適用するメリットがあると > 考えてるんだろうかね とは、とても残念な理解力ですね。
- 80 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 23:15:47 ID:/BuTmFOA]
- >74
> 彼の言うタスクフレームワーク(あ?)とかいうもの。こいつを構築するために > 支払うイニシャルコストがペイできる分岐点ってもんがあるわけ > やねはここを見積もってないんだろうね 逆に、一人で開発してるなら何やってもイイと思うけどね。
- 81 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 23:45:46 ID:/BuTmFOA]
- >12
> update(); > で動くのと > update(jiki,teki,tama,unko); > で動くのとじゃ > プログラムとしては絶対に下のがいい 普通に考えると、visitorに共通コンテキストを持たせてコンテナ内のタスクを巡回処理させる。 引数で渡すなんて愚の骨頂。
- 82 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:09:26 ID:wGKtGJau]
- >>81
>>12=スレ主=基地外が前スレで判明している。触るな危険。
- 83 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:12:08 ID:H1z7Q+5u]
- >>81
引数のない関数ってどうよ? お前、自分が使ってみろって言われたときのこと考えろよ
- 84 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:15:46 ID:4xm8YBEc]
- >83
おまえvisitorの意味判ってないだろ。
- 85 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:18:56 ID:H1z7Q+5u]
- >>84
関係ないね 大事なのは引数で渡すことによって関数無いで変更される恐れのある インスタンスを明確にすること お前のような素人はデザパタの前にC言語でも勉強しろ なにせ引数もよくわからずグローバル変数で渡してるぐらいの低知能なんだからなw
- 86 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:19:44 ID:4xm8YBEc]
- >85
やっぱり判ってないのかw
- 87 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:20:01 ID:1vVyPOFv]
- 釣りにしか見えない
- 88 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:20:20 ID:H1z7Q+5u]
- >>86
引数の有効性はわかったかね?
- 89 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:23:00 ID:H1z7Q+5u]
- >>86
前スレよろしく 今回も俺が特別に教えてあげよう 上のupdate()は関数内で何にアクセスしてるのかまったくわからないが 下のupdate(jiki・・・)はアクセスしてるインスタンスを引数に絞ることができる (グローバル変数を使わないという規約を守れば) これによってデータの安全性が保障されるというわけだよ 君のようにコーディングの効率ばっかりとって 引数もわからんような低知能は俺と話すようなレベルにないということがわかったかね?
- 90 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:26:08 ID:ux7UjNgY]
- >88
ここまでムキになるということは、>12=スレ主ってヤツかwww 修正コストとか考えたこと無いんだろうなぁ。幸せなヤツw
- 91 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:26:51 ID:1vrKKSIM]
- ID:H1z7Q+5uが噂のスレ主だな
一人だけ極端にレベルが低いのにその自覚なし
- 92 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:28:03 ID:Cfc6lR6P]
- こらこら、触るな危険といってるだろうに。
- 93 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:31:12 ID:ux7UjNgY]
- >89
> 下のupdate(jiki・・・)はアクセスしてるインスタンスを引数に絞ることができる 笑っちゃうなwww ということは、ID:H1z7Q+5uはtaskの種類によって引数が変わることが前提か。 もしかしてtask保持コンテナも別に持つ派なのか? 例えば敵タスクがあったとして、雑魚敵Aと雑魚敵Bが異なるコンテキストを必要とする場合とか 考えたこと無いのか? 雑魚敵Aと雑魚敵Bで最小公倍数的な引数を取るupdate関数をつくったら、 それはID:H1z7Q+5uが>89で言っていることと矛盾するって気づかないのか?
- 94 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:34:26 ID:1vVyPOFv]
- 残念なスレ主と遊ぼうのスレはここですか?
- 95 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:52:39 ID:nWDkACnD]
- 押すなよ! 絶対押すなよ!
- 96 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:53:38 ID:ZPF/rc3n]
- >>80
その一人開発ってことは趣味の世界の話でいいよな? プロの一人開発ったってフリーランスという名のプーでもなければ 自分一人の問題じゃねーし、他と折り合い付けないと会社つぶれるしな >>2ベースのゲロゲロフレームワークなんて誰も使いたがらないから作らないよ で、趣味野郎でオナニーフレームワーク?これもあんま意味ないよ女子高生 大多数のパンピースペックの趣味プログラマは無難にサクっとゲーム一本 作りあげる方法を模索する パンピースペックの趣味野郎がオナニーフレームワークとかいうハマリ道に 進んだら大半は生きて還ってこれん。終わり無きライフワークになるだろ まぁそれはそれで楽しい人生なのかもね。否定はしない ゲームではなく部品を作ることに情熱燃やして技巧に走って茨の道へ突進して 何年もの歳月をかけて山篭りして誰にも使われないフレームワークを構築する人生 悪くない。でもその結果が>>2ベースのゲロゲロシステムじゃな。成仏できんの?w
- 97 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:59:04 ID:1vrKKSIM]
- 96もスレ主じゃね?こいつ本当に頭おかしいんだな。
- 98 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:00:52 ID:ZPF/rc3n]
- 引数君と一緒にすんなハゲ
- 99 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:05:33 ID:1vrKKSIM]
- >>98
じゃあ、この残念な引数君にも何か言ってやってくれ
- 100 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:17:02 ID:ZPF/rc3n]
- 引数君がアンチタスクだということは知っているが、前スレ終わりごろの
議論の内容がよくわからん 俺は>>2=チンカスゴミカス だと思ってるが引数君とは批判のベクトルが違うようだ 彼は数種類のクラスに共通のインターフェースを与え、共通のコードから呼び出す というメカニズムを全否定してるのだろうか?だとしたらそれは仮想関数の全否定であり わけわからん 引数君の主張内容がよく分かってない
- 101 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:25:06 ID:1vrKKSIM]
- >>100
>>12
- 102 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:29:48 ID:ZPF/rc3n]
- あぁ?
- 103 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:34:39 ID:1vrKKSIM]
- 引数君の主張なら>>12のリンク先を見れば十分わかると思うんだが、わからないのか?
それとも、あんたも日本語の残念な人か?
- 104 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:39:11 ID:ZPF/rc3n]
- 俺は前スレの>>823だ。何なら他の発言も発掘してこようか?
- 105 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:43:50 ID:OdnmQxD5]
- 引数君の方がまだ技術に近い話をしてる分マシだな。
もしかして彼はひらしょー氏の言うデータと処理の分離を 超まわりくどく主張しているのかな。
- 106 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 01:50:49 ID:1vrKKSIM]
- >>104
前スレ823か。 引数君よりは能力的にマシだということはわかるが、説明がくどく、わかりにくい。 俺はこんな内容の薄い、回りくどい説明を読むのはまっぴらごめんなので、さいなら。
- 107 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 02:08:15 ID:EVIE955W]
- ESP能力に問題があるID:1vrKKSIM は
すべてのアンチタスクがスレ主に見える病気を克服するべき
- 108 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 02:09:41 ID:ZPF/rc3n]
- 超能力能力か
- 109 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 02:12:05 ID:EVIE955W]
- くっ…。どうして「お前はバカを克服するべき」って言ってくれないの?
内容の薄い、回りくどい指摘を読むのはまっぴらごめんなので、さようなら
- 110 名前:名前は開発中のものです。 [2009/02/06(金) 07:38:45 ID:RQ4iGJCo]
- お前等馬鹿は、プログラミングで一番時間がかかるのはどこですか?
と聞かれてコーディングとは絶対に答えないくせに コーディングの手間ばかり減らすことに執着している なかなか読めないプログラムってなんだ? 構造が複雑なプログラムじゃないの? お前等馬鹿は全く逆のことを自己満足のためにやっているオナニストだ プログラマならせめて理詰めで動けよ お前等凡人から理性まで抜いたら猿と変わらないだろ
- 111 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 09:47:48 ID:SpEabv2C]
- >>32
えーと、この人ってイイ歳した何者なの?プロ?パソゲー専門なんじゃない? >ビデオゲーム黎明期においては、オールアセンブラで書くことが普通だったので、 >std::listのような便利なコンテナがあるわけでもなく、技巧的な方法でstd::list >みたいなことを実現していただけ えっえー?この人のいうビデオゲーム黎明期っていつごろのお話なのかな? 70年代?だったらまずZ80アセンブリで>>2を書いてみればいいのに。おかしな人だよ 16bit機時代?intrusiveなコンテナを使った理由がオールアセンブラだから?本当に? 最近は想像だけで昔話を書いても教科書になるのかしら? どこのゲー専の子が犠牲になるのかしら。ちょっと可哀相ね 知らないことは知らないって言えばいいし、足を使って取材しに行けばいいと思う んで、頭下げて監修してもらえばいいと思う。このままじゃあんまりだよ >古典的なタスクシステムにおいてはタスクに番号(プライオリティ)が振られており >番号を指定して特定のタスクのポインタを得ることが出来た えっえー?つーか古典的タスクシステムってなんじゃい?ファンタジーゾーンなの?
- 112 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 10:34:43 ID:wGKtGJau]
- >>111
あんた、何かがしゃべり方がキモイんだけど。 それはそうと、相手は年収何千万もある凄腕のプログラマらしいので、 技術的な反論は是非どこかのブログでやっちゃってください。
- 113 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 21:26:12 ID:+KF0MHRv]
- タスクシステムでグローバル変数使うから駄目だって意見が多いけど、
でも見渡してみると、ウィンドウズのウィンドウだってそういうしくみだしなぁ。
- 114 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 22:07:10 ID:H/Ui7lv7]
- エロゲー製作は大変ナリよ
d.hatena.ne.jp/yaneurao/searchdiary?word=%a5%a8%a5%ed%a5%b2%a1%bc%c0%bd%ba%ee
- 115 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 22:31:40 ID:RQ4iGJCo]
- >>113
ウィンドウ同士であまりやりとりしなくてもあの複雑さだぞ リストコントロール2つを連動させるだけでもやばいくらいの手間 基本的にウィンドウズの作り自体関連がたくさん生まれる処理に向いてない あくまでも独立した動作が前提
- 116 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 22:36:12 ID:nWDkACnD]
- >>113
そう思ったのなら両方とも自分で実装してみて比較検討だ! でも数千行レベルでは使いやすかったやり方が数万行レベルでも同じように使いやすいままかどうかはまた別問題だ! そこは注意な! 王道はグローバル変数使わないことだぞ!
- 117 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 23:12:31 ID:ux7UjNgY]
- また引数クンの登場か。
>93について、具体例を挙げて答えてよ。
- 118 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 23:44:30 ID:H1z7Q+5u]
- >>117
はぁ?何言ってるのかわからない 俺が言いたいのは関数に引数つけろってそんだけだけど? コンテキスト?は? そんなもん使った時点で負けだ馬鹿 設計死んでるんだよ 俺の価値観ではそんなもん使った時点で負け void*となにも変わらない
- 119 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 23:45:58 ID:H1z7Q+5u]
- まあ、用は固定でない引数に意味がないんだよね
俺の価値観からすると
- 120 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 23:53:12 ID:4xm8YBEc]
- >118
> はぁ?何言ってるのかわからない じゃ、具体的に質問するけど、雑魚敵Aと雑魚敵Bに関係性が出てきたらどうするの? 例えば雑魚敵Aは雑魚敵Bを殺すことがある、となった場合に、雑魚敵Aのupdate関数の引数に 雑魚敵Bのリストを渡すの?
- 121 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:21:27 ID:lLkuERdr]
- >>120
>雑魚敵Aのupdate関数の引数に雑魚敵Bのリストを渡すの? それをやってはダメ 哲学的になるけど 基本的に雑魚敵Aが雑魚敵Bを殺す現象ってのは 雑魚敵Aの中の処理でも雑魚敵Bの中の処理でもないでしょ? つまり雑魚敵ABに書くべき処理ではない このアクションはあくまでも雑魚敵Aと雑魚敵Bが存在する空間で起こったことであって それをシーンクラスとしたらそこに書くべき処理じゃねぇかな? オブジェクト指向的にはよ 俺はオブジェクト指向原理主義者(テロリストではないw)だけど 基本的にオブジェクト指向を変な解釈をしないとしたら 種類の異なる(=クラスの違う)雑魚敵A、雑魚敵B、雑魚敵C、雑魚敵Dといたとして それらの関連、つまりAxB、AxC、AxD、BxC、BxD、CxDの関連は全部シーンクラスに書くべきじゃないのかな? そこはオブジェクト指向は手伝ってくれないと思うんだけどね(原理主義者的には) 昔ながらのC言語風味に書いたほうがうまくいくと思うよ
- 122 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:23:19 ID:UFXAc++2]
- >121
> 種類の異なる(=クラスの違う)雑魚敵A、雑魚敵B、雑魚敵C、雑魚敵Dといたとして > それらの関連、つまりAxB、AxC、AxD、BxC、BxD、CxDの関連は全部シーンクラスに書くべきじゃないのかな? > そこはオブジェクト指向は手伝ってくれないと思うんだけどね(原理主義者的には) > 昔ながらのC言語風味に書いたほうがうまくいくと思うよ 今はっきりわかった。キサマはクズだ。
- 123 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:30:10 ID:lLkuERdr]
- >>122
なんでだよ いいこと教えてやったのに 何がどうダメなのか言ってみろ 勉強になるぞ なにせ俺は10年以上もやってんだからな
- 124 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:32:45 ID:NuBn44S3]
- 10年以上ワナビー君ですかwww
ヒッキーニートで親のスネカジリ。楽しそうですねwww
- 125 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:35:05 ID:lLkuERdr]
- >>124
不毛な会話したくないんだ どこがどうダメなのか思ったこと言ってみろ なんとなく漠然とある自分にとっての常識なんて大抵間違ってる場合が多いぞ
- 126 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:38:14 ID:NuBn44S3]
- >125
雑魚敵が20種類くらいいるとして、それが相互に関係しあうことを考えてみろよwww 20種類くらいなら、RTSとかだと当たり前にいるぞ。
- 127 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:38:49 ID:XPRCk6pD]
- というか、どういえばいいんだろう。
あっちのスレでも書いたんだけど、どの処理を誰が担当するかが難しいわけであって、 タスクシステム云々、グローバル変数云々はあんま関係ないと思うんだが。 たとえば、石クラスと、マップクラスと、それらを管理するシーンクラスがあったとして、 ・石に重力を働かせる処理 ・石と石の衝突処理 ・石とマップの衝突処理 は、それぞれどのクラスが担当すべきだろうか。
- 128 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:39:00 ID:qvO9PNvj]
- ヒッキーだが有能なゲームプログラマの発言>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>(越えられない壁)>>>無能な社会人もどきヘタレグラマの妄言 それがここのルールだ。覚えておきな。
- 129 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:39:49 ID:lLkuERdr]
- >>126
そりゃ当然それだけの処理が必要になるだろうね 仮にプログラムの組み方が変わったところで その数が少なくなることは絶対にないからね それを踏まえて何が問題?
- 130 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:40:05 ID:qe8S2N76]
- >雑魚敵が20種類くらいいるとして、それが相互に関係しあうことを考えてみろよwww
>20種類くらいなら、RTSとかだと当たり前にいるぞ。 ダブルディスパッチ
- 131 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:41:54 ID:XPRCk6pD]
- >>126
その莫大な組み合わせを纏めるかどうかは書く人の力量次第だが、 書く場所としてはシーンクラスが良いのでは?ってはなしだろ。 お前が読解力ないだけ。
- 132 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:42:20 ID:lLkuERdr]
- >>127
全部シーンだろうな
- 133 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:43:44 ID:NuBn44S3]
- >128
ヒッキーで無能はどこにいるんだ?
- 134 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:46:56 ID:XPRCk6pD]
- >>132
となると、シーンクラスが肥え太って困る。 モジュール化する何かいい方法は無いですか? オブジェクト指向ってのは、オブジェクト(リソース)の管理は上手いんだが、 オブジェクトとオブジェクトの関連の記述には向いていないんだよなぁ。
- 135 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:48:05 ID:qvO9PNvj]
- >>133
居たら教えてくれ。
- 136 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:48:40 ID:cn84NiHO]
- >>79
どうでもいいけど、やねうらおの文章の引用部分さ > すべてのゲームにタスクシステムが必要なのではない。 これ文脈読めばわかると思うけど、規模じゃなくて種類の話だよね あと、残念な○○っていう表現が大好きなブログがあるよね
- 137 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:49:07 ID:lLkuERdr]
- >>134
ないね オブジェクト指向ではそこが限界 原理主義者の俺が言うんだから間違いない 後はC言語風味にうまく分離して書くしかない
- 138 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:50:51 ID:UFXAc++2]
- >137
> ないね 単にモノを知らないだけだな。
- 139 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:51:10 ID:e1gHG0fD]
- >>127
衝突したかの判定はシーンクラスで、衝突に伴う処理は オブジェクト同士のメッセージ交換ってのが俺のやり方だな。
- 140 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:55:40 ID:UFXAc++2]
- >127
物理エンジンで本物っぽく動かすつもり? それとも2Dのマリオやソニックみたいに、それっぽく動けばいいの?
- 141 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:55:51 ID:lLkuERdr]
- >>138
関連をオブジェクトに見立てて・・・とか馬鹿なこと始める気? 俺、そういうの読み手にわかりにくくなるだけであんまり意味ないと思うぜ 折角オブジェクトが誰にでもわかる表現にするためにオブジェクト指向を使ったのに 変にトリッキーな解釈(関連=オブジェクトだ!)してわかりにくくしたら 本末転倒じゃね? って勝手に関連=オブジェクトの話するだけこいつ馬鹿だなー的 先読みをしてみたけど言いたいことあってる?
- 142 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:56:33 ID:XPRCk6pD]
- でもちょっとまって。
この流れでいくと、タスクシステムで行うべきことは、 ・描画順序の管理 のみ、ということになるな。 その他の処理はすべてシーンクラスで行うと。 晴れて、タスクシステム=グラフィックエンジン ということになり、みんな幸せになると。
- 143 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:56:47 ID:hO/vsQBF]
- >>127
俺なら重力は重力クラスが担当、衝突は衝突クラスが担当するようにする。 重力に引かれたい奴は重力クラスに登録するように!
- 144 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:56:49 ID:vE7+xmqT]
- オブジェクト指向的には、当たり判定は関連をクラス化すればおk
- 145 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:00:11 ID:vE7+xmqT]
- >>127
石に重力が働くというのなら地面みたいなものがあるはずだから、 石ー重力ー地面としてこの重力をクラスにすれば使いまわしも出来ていい
- 146 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:03:06 ID:UFXAc++2]
- >143
つ 【オールドタイプの魂】
- 147 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:04:31 ID:cn84NiHO]
- >>121
>基本的に雑魚敵Aが雑魚敵Bを殺す現象ってのは >雑魚敵Aの中の処理でも雑魚敵Bの中の処理でもないでしょ? >つまり雑魚敵ABに書くべき処理ではない YES >それらの関連、つまりAxB、AxC、AxD、BxC、BxD、CxDの関連は全部シーンクラスに書くべきじゃないのかな? シーンでも神でも何でもいいけど、ゲーム世界の物理現象の調停者wが 介在し、結果を双方(作用する2体)に通知するというのは全くもって普通 珍しくない
- 148 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:06:44 ID:lLkuERdr]
- ていうか目をさませ
もしオブジェクトが20種類いてそれぞれが関連をもつとしたら 少なくとも a=オブジェクトの状態の数の総和 aC2(aの中から2つ選んだときの重複のない組み合わせだっけ?) の数だけ処理を書かなきゃいけないことには どう組んであろうが変わりはないんだぞ >>147 なんのメリットがあってそんなわかりにくい書き方をするんだ 無駄だろ
- 149 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:09:32 ID:lLkuERdr]
- あ、aC2じゃ同じオブジェクト同士が抜けてるなw
- 150 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:10:08 ID:XPRCk6pD]
- >>145
重力をクラス化するのは個人の趣味だろうが、 使いまわせるかどうかは怪しいな。 細切れの小さなクラスが1000個ぐらいあって、 それぞれにそれぞれが関係しあって一つの生態系をなし、 結果としてゲームになっている・・・とか。 そういうのって想定外の仕様変更には弱いからなぁ。 まぁゲームの方向性にも寄るのだろうが。
- 151 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:13:32 ID:cn84NiHO]
- >>148
ゲームワールドをゲームエンジン内部で時間発展させてるからさ 衝突イベントでユーザー定義のコールバック関数が呼ばれるやつだ
- 152 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:14:32 ID:UFXAc++2]
- >147
普通に考えてそれか。 じゃ俺も普通に考えてみるかな。 雑魚敵Aが雑魚敵Bを攻撃して殺す場合、Aは攻撃判定用不可視オブジェクトXを作成する。 BにはXに対する応答のみ、つまりXに当たったら死ぬ、という処理を書く。 攻撃判定用不可視オブジェクトを必要に応じて複数作り、それぞれ攻撃する側はそれを作成し、 攻撃を受ける側はそれに対する応答処理を書く。 シーンクラスには、雑魚敵コンテナと同じレベルで攻撃判定用オブジェクトのコンテナを追加して、 そこで相互の判定をする。
- 153 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:22:50 ID:lLkuERdr]
- >>151-152
いや、だから全然わかってねぇな なんかお前等変な組み方してるけど 関連の処理を仕様である分、全部書かなきゃいけないことは変わらないんだろ なんでわざわざ間になんか挟むの? なんか得になんの?金もらえんの? 素直にシーンオブジェクトに必要な数だけ処理かけよw 何をどうしたくてそんな複雑な仕組みにするんだw オブジェクトXなんていきなり見てお前のそれ誰が理解してくれるんだよ>152 どうせドキュメントもかかねぇしよまねぇだろ っていうか手間増やしてるしw
- 154 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:26:57 ID:XPRCk6pD]
- >>152
不可視オブジェクトXの受け渡しは誰が行うんだ?
- 155 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:30:03 ID:lLkuERdr]
- ちなみに俺はオブジェクト指向原理主義者であると同時に
C++をはじめとするオブジェクト指向言語が大嫌いなんだ だってなんのメリットもねぇよこの言語ども・・・w だってよ・・・処理が集中・複雑化するのってシーンクラスみたいなところであって 別に個々にオブジェクト単位にできる部分は誰も苦労してねぇよマジで ってみんなにはないしょだよw ってところで>>147につけたレスは内容まちがってたな俺 すまんこ
- 156 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:30:17 ID:NuBn44S3]
- >153
> なんでわざわざ間になんか挟むの? 雑魚敵が増えた時の修正が少なくてすむ。 攻撃判定オブジェクトを間に挟むことで、複数種の雑魚敵が同属性の攻撃だしても、一つの攻撃判定オブジェクトとの 関連処理に還元できる。
- 157 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:32:09 ID:vE7+xmqT]
- >>150
使いまわすってのはコード的にって事ね 数が多い場合は面倒くさいけど一個一個やっていくしかないなぁ 上位概念のオブジェクトを作れるんであればいいけど STGでいうなら弾 - 衝突 - 敵 では無くて 自機 - 弾判定 - 敵みたいに
- 158 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:36:16 ID:cn84NiHO]
- >>152
>Aは攻撃判定用不可視オブジェクトXを作成する。 そう。AABBとか、高速飛翔するならカプセル、線分を空間上に射出するわけだ Xがそのうちどっかのバカに命中(得点ゲット)したときの通知が欲しけりゃ おまえらの大好きなオブジャーバーパティャーンでXにAを登録するやつだ subjectはX。observerはA >BにはXに対する応答のみ、つまりXに当たったら死ぬ、という処理を書く。 まぁ、何かが自分に衝突したら呼ばれるコールバック関数(オブジェクト)を 登録してるわけだから、その中でユーザー独自の死ぬ処理を入れるわけだ 炎を吹いて墜落するなり、爆発四散するなり好きに振舞え
- 159 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:37:24 ID:lLkuERdr]
- >>156-157
>雑魚敵が増えた時の修正が少なくてすむ。 だからならないって 必ず仕様の分だけ処理かかなきゃならないんだよ (それが汎用デフォルト処理に挿げ替えられるかどうかは別として) >使いまわすってのはコード的にって事ね コード的なんて気にすんなマジで 関連がいっぱいになると無駄に共通化した処理が必ず邪魔になる 30回コピペして終わる程度の使いまわしなら30回コピペする気でいろ そのぐらいでちょうどいい
- 160 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:38:36 ID:XPRCk6pD]
- >>155
いや確かにそのとおりだと思う。 ただ、シーンクラスみたいなところに処理が集中するのは、 ゲームにオブジェクトとオブジェクトの関係が多いからだと思う。 一般アプリやツールは、リソースの管理がメインなので、 オブジェクト指向も役に立つのだろう。
- 161 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:39:17 ID:dNGvkNLd]
- ID:lLkuERdrはド素人だろ。こんなクルクルパーは相手にするだけ無駄。
- 162 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 01:43:47 ID:NuBn44S3]
- >159
> >雑魚敵が増えた時の修正が少なくてすむ。 > だからならないって > 必ず仕様の分だけ処理かかなきゃならないんだよ 新規雑魚敵が今までの他の雑魚敵と同じ攻撃を出すのなら、それと同種の攻撃判定オブジェクトを 作成するだけで終了。 オマエのやりかただと、新規雑魚敵と既存雑魚敵全ての関係について処理を全て一つ一つ書くまで終わらない。
|

|