タスクシステム総合スレ part4at GAMEDEV
タスクシステム総合スレ part4 - 暇つぶし2ch79:名前は開発中のものです。
09/02/05 23:10:23 yvQde++7
>>74
URLリンク(d.hatena.ne.jp)

> すべてのゲームにタスクシステムが必要なのではない。

はっきりと書いてあるのに

> あらゆる規模にタスクシステムとやらいうものが適用するメリットがあると
> 考えてるんだろうかね

とは、とても残念な理解力ですね。

80:名前は開発中のものです。
09/02/05 23:15:47 /BuTmFOA
>74
> 彼の言うタスクフレームワーク(あ?)とかいうもの。こいつを構築するために
> 支払うイニシャルコストがペイできる分岐点ってもんがあるわけ
> やねはここを見積もってないんだろうね

逆に、一人で開発してるなら何やってもイイと思うけどね。


81:名前は開発中のものです。
09/02/05 23:45:46 /BuTmFOA
>12
> update();
> で動くのと
> update(jiki,teki,tama,unko);
> で動くのとじゃ
> プログラムとしては絶対に下のがいい

普通に考えると、visitorに共通コンテキストを持たせてコンテナ内のタスクを巡回処理させる。
引数で渡すなんて愚の骨頂。

82:名前は開発中のものです。
09/02/06 00:09:26 wGKtGJau
>>81
>>12=スレ主=基地外が前スレで判明している。触るな危険。

83:名前は開発中のものです。
09/02/06 00:12:08 H1z7Q+5u
>>81
引数のない関数ってどうよ?
お前、自分が使ってみろって言われたときのこと考えろよ

84:名前は開発中のものです。
09/02/06 00:15:46 4xm8YBEc
>83
おまえvisitorの意味判ってないだろ。

85:名前は開発中のものです。
09/02/06 00:18:56 H1z7Q+5u
>>84
関係ないね
大事なのは引数で渡すことによって関数無いで変更される恐れのある
インスタンスを明確にすること
お前のような素人はデザパタの前にC言語でも勉強しろ
なにせ引数もよくわからずグローバル変数で渡してるぐらいの低知能なんだからなw

86:名前は開発中のものです。
09/02/06 00:19:44 4xm8YBEc
>85
やっぱり判ってないのかw

87:名前は開発中のものです。
09/02/06 00:20:01 1vVyPOFv
釣りにしか見えない

88:名前は開発中のものです。
09/02/06 00:20:20 H1z7Q+5u
>>86
引数の有効性はわかったかね?

89:名前は開発中のものです。
09/02/06 00:23:00 H1z7Q+5u
>>86
前スレよろしく
今回も俺が特別に教えてあげよう

上のupdate()は関数内で何にアクセスしてるのかまったくわからないが
下のupdate(jiki・・・)はアクセスしてるインスタンスを引数に絞ることができる
(グローバル変数を使わないという規約を守れば)
これによってデータの安全性が保障されるというわけだよ
君のようにコーディングの効率ばっかりとって
引数もわからんような低知能は俺と話すようなレベルにないということがわかったかね?

90:名前は開発中のものです。
09/02/06 00:26:08 ux7UjNgY
>88
ここまでムキになるということは、>12=スレ主ってヤツかwww
修正コストとか考えたこと無いんだろうなぁ。幸せなヤツw

91:名前は開発中のものです。
09/02/06 00:26:51 1vrKKSIM
ID:H1z7Q+5uが噂のスレ主だな
一人だけ極端にレベルが低いのにその自覚なし

92:名前は開発中のものです。
09/02/06 00:28:03 Cfc6lR6P
こらこら、触るな危険といってるだろうに。

93:名前は開発中のものです。
09/02/06 00:31:12 ux7UjNgY
>89
> 下のupdate(jiki・・・)はアクセスしてるインスタンスを引数に絞ることができる

笑っちゃうなwww
ということは、ID:H1z7Q+5uはtaskの種類によって引数が変わることが前提か。
もしかしてtask保持コンテナも別に持つ派なのか?

例えば敵タスクがあったとして、雑魚敵Aと雑魚敵Bが異なるコンテキストを必要とする場合とか
考えたこと無いのか? 雑魚敵Aと雑魚敵Bで最小公倍数的な引数を取るupdate関数をつくったら、
それはID:H1z7Q+5uが>89で言っていることと矛盾するって気づかないのか?

94:名前は開発中のものです。
09/02/06 00:34:26 1vVyPOFv
残念なスレ主と遊ぼうのスレはここですか?

95:名前は開発中のものです。
09/02/06 00:52:39 nWDkACnD
押すなよ! 絶対押すなよ!

96:名前は開発中のものです。
09/02/06 00:53:38 ZPF/rc3n
>>80
その一人開発ってことは趣味の世界の話でいいよな?
プロの一人開発ったってフリーランスという名のプーでもなければ
自分一人の問題じゃねーし、他と折り合い付けないと会社つぶれるしな
>>2ベースのゲロゲロフレームワークなんて誰も使いたがらないから作らないよ

で、趣味野郎でオナニーフレームワーク?これもあんま意味ないよ女子高生
大多数のパンピースペックの趣味プログラマは無難にサクっとゲーム一本
作りあげる方法を模索する
パンピースペックの趣味野郎がオナニーフレームワークとかいうハマリ道に
進んだら大半は生きて還ってこれん。終わり無きライフワークになるだろ
まぁそれはそれで楽しい人生なのかもね。否定はしない

ゲームではなく部品を作ることに情熱燃やして技巧に走って茨の道へ突進して
何年もの歳月をかけて山篭りして誰にも使われないフレームワークを構築する人生
悪くない。でもその結果が>>2ベースのゲロゲロシステムじゃな。成仏できんの?w


97:名前は開発中のものです。
09/02/06 00:59:04 1vrKKSIM
96もスレ主じゃね?こいつ本当に頭おかしいんだな。

98:名前は開発中のものです。
09/02/06 01:00:52 ZPF/rc3n
引数君と一緒にすんなハゲ

99:名前は開発中のものです。
09/02/06 01:05:33 1vrKKSIM
>>98
じゃあ、この残念な引数君にも何か言ってやってくれ

100:名前は開発中のものです。
09/02/06 01:17:02 ZPF/rc3n
引数君がアンチタスクだということは知っているが、前スレ終わりごろの
議論の内容がよくわからん
俺は>>2=チンカスゴミカス だと思ってるが引数君とは批判のベクトルが違うようだ
彼は数種類のクラスに共通のインターフェースを与え、共通のコードから呼び出す
というメカニズムを全否定してるのだろうか?だとしたらそれは仮想関数の全否定であり
わけわからん

引数君の主張内容がよく分かってない

101:名前は開発中のものです。
09/02/06 01:25:06 1vrKKSIM
>>100
>>12

102:名前は開発中のものです。
09/02/06 01:29:48 ZPF/rc3n
あぁ?

103:名前は開発中のものです。
09/02/06 01:34:39 1vrKKSIM
引数君の主張なら>>12のリンク先を見れば十分わかると思うんだが、わからないのか?

それとも、あんたも日本語の残念な人か?

104:名前は開発中のものです。
09/02/06 01:39:11 ZPF/rc3n
俺は前スレの>>823だ。何なら他の発言も発掘してこようか?

105:名前は開発中のものです。
09/02/06 01:43:50 OdnmQxD5
引数君の方がまだ技術に近い話をしてる分マシだな。
もしかして彼はひらしょー氏の言うデータと処理の分離を
超まわりくどく主張しているのかな。

106:名前は開発中のものです。
09/02/06 01:50:49 1vrKKSIM
>>104
前スレ823か。

引数君よりは能力的にマシだということはわかるが、説明がくどく、わかりにくい。

俺はこんな内容の薄い、回りくどい説明を読むのはまっぴらごめんなので、さいなら。

107:名前は開発中のものです。
09/02/06 02:08:15 EVIE955W
ESP能力に問題があるID:1vrKKSIM は
すべてのアンチタスクがスレ主に見える病気を克服するべき

108:名前は開発中のものです。
09/02/06 02:09:41 ZPF/rc3n
超能力能力か

109:名前は開発中のものです。
09/02/06 02:12:05 EVIE955W
くっ…。どうして「お前はバカを克服するべき」って言ってくれないの?
内容の薄い、回りくどい指摘を読むのはまっぴらごめんなので、さようなら

110:名前は開発中のものです。
09/02/06 07:38:45 RQ4iGJCo
お前等馬鹿は、プログラミングで一番時間がかかるのはどこですか?
と聞かれてコーディングとは絶対に答えないくせに
コーディングの手間ばかり減らすことに執着している
なかなか読めないプログラムってなんだ?
構造が複雑なプログラムじゃないの?
お前等馬鹿は全く逆のことを自己満足のためにやっているオナニストだ
プログラマならせめて理詰めで動けよ
お前等凡人から理性まで抜いたら猿と変わらないだろ

111:名前は開発中のものです。
09/02/06 09:47:48 SpEabv2C
>>32
えーと、この人ってイイ歳した何者なの?プロ?パソゲー専門なんじゃない?

>ビデオゲーム黎明期においては、オールアセンブラで書くことが普通だったので、
>std::listのような便利なコンテナがあるわけでもなく、技巧的な方法でstd::list
>みたいなことを実現していただけ

えっえー?この人のいうビデオゲーム黎明期っていつごろのお話なのかな?
70年代?だったらまずZ80アセンブリで>>2を書いてみればいいのに。おかしな人だよ
16bit機時代?intrusiveなコンテナを使った理由がオールアセンブラだから?本当に?

最近は想像だけで昔話を書いても教科書になるのかしら?
どこのゲー専の子が犠牲になるのかしら。ちょっと可哀相ね
知らないことは知らないって言えばいいし、足を使って取材しに行けばいいと思う
んで、頭下げて監修してもらえばいいと思う。このままじゃあんまりだよ

>古典的なタスクシステムにおいてはタスクに番号(プライオリティ)が振られており
>番号を指定して特定のタスクのポインタを得ることが出来た

えっえー?つーか古典的タスクシステムってなんじゃい?ファンタジーゾーンなの?



112:名前は開発中のものです。
09/02/06 10:34:43 wGKtGJau
>>111
あんた、何かがしゃべり方がキモイんだけど。

それはそうと、相手は年収何千万もある凄腕のプログラマらしいので、
技術的な反論は是非どこかのブログでやっちゃってください。

113:名前は開発中のものです。
09/02/06 21:26:12 +KF0MHRv
タスクシステムでグローバル変数使うから駄目だって意見が多いけど、
でも見渡してみると、ウィンドウズのウィンドウだってそういうしくみだしなぁ。

114:名前は開発中のものです。
09/02/06 22:07:10 H/Ui7lv7
エロゲー製作は大変ナリよ
URLリンク(d.hatena.ne.jp)

115:名前は開発中のものです。
09/02/06 22:31:40 RQ4iGJCo
>>113
ウィンドウ同士であまりやりとりしなくてもあの複雑さだぞ
リストコントロール2つを連動させるだけでもやばいくらいの手間
基本的にウィンドウズの作り自体関連がたくさん生まれる処理に向いてない
あくまでも独立した動作が前提

116:名前は開発中のものです。
09/02/06 22:36:12 nWDkACnD
>>113
そう思ったのなら両方とも自分で実装してみて比較検討だ!

でも数千行レベルでは使いやすかったやり方が数万行レベルでも同じように使いやすいままかどうかはまた別問題だ!
そこは注意な! 王道はグローバル変数使わないことだぞ!

117:名前は開発中のものです。
09/02/06 23:12:31 ux7UjNgY
また引数クンの登場か。

>93について、具体例を挙げて答えてよ。

118:名前は開発中のものです。
09/02/06 23:44:30 H1z7Q+5u
>>117
はぁ?何言ってるのかわからない
俺が言いたいのは関数に引数つけろってそんだけだけど?
コンテキスト?は?
そんなもん使った時点で負けだ馬鹿
設計死んでるんだよ
俺の価値観ではそんなもん使った時点で負け
void*となにも変わらない

119:名前は開発中のものです。
09/02/06 23:45:58 H1z7Q+5u
まあ、用は固定でない引数に意味がないんだよね
俺の価値観からすると

120:名前は開発中のものです。
09/02/06 23:53:12 4xm8YBEc
>118
> はぁ?何言ってるのかわからない

じゃ、具体的に質問するけど、雑魚敵Aと雑魚敵Bに関係性が出てきたらどうするの?
例えば雑魚敵Aは雑魚敵Bを殺すことがある、となった場合に、雑魚敵Aのupdate関数の引数に
雑魚敵Bのリストを渡すの?

121:名前は開発中のものです。
09/02/07 00:21:27 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:名前は開発中のものです。
09/02/07 00:23:19 UFXAc++2
>121
> 種類の異なる(=クラスの違う)雑魚敵A、雑魚敵B、雑魚敵C、雑魚敵Dといたとして
> それらの関連、つまりAxB、AxC、AxD、BxC、BxD、CxDの関連は全部シーンクラスに書くべきじゃないのかな?
> そこはオブジェクト指向は手伝ってくれないと思うんだけどね(原理主義者的には)
> 昔ながらのC言語風味に書いたほうがうまくいくと思うよ

今はっきりわかった。キサマはクズだ。


123:名前は開発中のものです。
09/02/07 00:30:10 lLkuERdr
>>122
なんでだよ
いいこと教えてやったのに
何がどうダメなのか言ってみろ
勉強になるぞ
なにせ俺は10年以上もやってんだからな

124:名前は開発中のものです。
09/02/07 00:32:45 NuBn44S3
10年以上ワナビー君ですかwww
ヒッキーニートで親のスネカジリ。楽しそうですねwww

125:名前は開発中のものです。
09/02/07 00:35:05 lLkuERdr
>>124
不毛な会話したくないんだ
どこがどうダメなのか思ったこと言ってみろ
なんとなく漠然とある自分にとっての常識なんて大抵間違ってる場合が多いぞ

126:名前は開発中のものです。
09/02/07 00:38:14 NuBn44S3
>125
雑魚敵が20種類くらいいるとして、それが相互に関係しあうことを考えてみろよwww
20種類くらいなら、RTSとかだと当たり前にいるぞ。

127:名前は開発中のものです。
09/02/07 00:38:49 XPRCk6pD
というか、どういえばいいんだろう。
あっちのスレでも書いたんだけど、どの処理を誰が担当するかが難しいわけであって、
タスクシステム云々、グローバル変数云々はあんま関係ないと思うんだが。
たとえば、石クラスと、マップクラスと、それらを管理するシーンクラスがあったとして、
・石に重力を働かせる処理
・石と石の衝突処理
・石とマップの衝突処理
は、それぞれどのクラスが担当すべきだろうか。


128:名前は開発中のものです。
09/02/07 00:39:00 qvO9PNvj
ヒッキーだが有能なゲームプログラマの発言>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>(越えられない壁)>>>無能な社会人もどきヘタレグラマの妄言

それがここのルールだ。覚えておきな。

129:名前は開発中のものです。
09/02/07 00:39:49 lLkuERdr
>>126
そりゃ当然それだけの処理が必要になるだろうね
仮にプログラムの組み方が変わったところで
その数が少なくなることは絶対にないからね

それを踏まえて何が問題?

130:名前は開発中のものです。
09/02/07 00:40:05 qe8S2N76
>雑魚敵が20種類くらいいるとして、それが相互に関係しあうことを考えてみろよwww
>20種類くらいなら、RTSとかだと当たり前にいるぞ。
ダブルディスパッチ


131:名前は開発中のものです。
09/02/07 00:41:54 XPRCk6pD
>>126
その莫大な組み合わせを纏めるかどうかは書く人の力量次第だが、
書く場所としてはシーンクラスが良いのでは?ってはなしだろ。
お前が読解力ないだけ。

132:名前は開発中のものです。
09/02/07 00:42:20 lLkuERdr
>>127
全部シーンだろうな

133:名前は開発中のものです。
09/02/07 00:43:44 NuBn44S3
>128
ヒッキーで無能はどこにいるんだ?

134:名前は開発中のものです。
09/02/07 00:46:56 XPRCk6pD
>>132
となると、シーンクラスが肥え太って困る。
モジュール化する何かいい方法は無いですか?

オブジェクト指向ってのは、オブジェクト(リソース)の管理は上手いんだが、
オブジェクトとオブジェクトの関連の記述には向いていないんだよなぁ。

135:名前は開発中のものです。
09/02/07 00:48:05 qvO9PNvj
>>133
居たら教えてくれ。

136:名前は開発中のものです。
09/02/07 00:48:40 cn84NiHO
>>79
どうでもいいけど、やねうらおの文章の引用部分さ

> すべてのゲームにタスクシステムが必要なのではない。

これ文脈読めばわかると思うけど、規模じゃなくて種類の話だよね
あと、残念な○○っていう表現が大好きなブログがあるよね


137:名前は開発中のものです。
09/02/07 00:49:07 lLkuERdr
>>134
ないね
オブジェクト指向ではそこが限界
原理主義者の俺が言うんだから間違いない
後はC言語風味にうまく分離して書くしかない

138:名前は開発中のものです。
09/02/07 00:50:51 UFXAc++2
>137
> ないね

単にモノを知らないだけだな。

139:名前は開発中のものです。
09/02/07 00:51:10 e1gHG0fD
>>127
衝突したかの判定はシーンクラスで、衝突に伴う処理は
オブジェクト同士のメッセージ交換ってのが俺のやり方だな。

140:名前は開発中のものです。
09/02/07 00:55:40 UFXAc++2
>127
物理エンジンで本物っぽく動かすつもり?
それとも2Dのマリオやソニックみたいに、それっぽく動けばいいの?

141:名前は開発中のものです。
09/02/07 00:55:51 lLkuERdr
>>138
関連をオブジェクトに見立てて・・・とか馬鹿なこと始める気?
俺、そういうの読み手にわかりにくくなるだけであんまり意味ないと思うぜ
折角オブジェクトが誰にでもわかる表現にするためにオブジェクト指向を使ったのに
変にトリッキーな解釈(関連=オブジェクトだ!)してわかりにくくしたら
本末転倒じゃね?

って勝手に関連=オブジェクトの話するだけこいつ馬鹿だなー的
先読みをしてみたけど言いたいことあってる?

142:名前は開発中のものです。
09/02/07 00:56:33 XPRCk6pD
でもちょっとまって。
この流れでいくと、タスクシステムで行うべきことは、
・描画順序の管理
のみ、ということになるな。
その他の処理はすべてシーンクラスで行うと。
晴れて、タスクシステム=グラフィックエンジン
ということになり、みんな幸せになると。

143:名前は開発中のものです。
09/02/07 00:56:47 hO/vsQBF
>>127
俺なら重力は重力クラスが担当、衝突は衝突クラスが担当するようにする。

重力に引かれたい奴は重力クラスに登録するように!

144:名前は開発中のものです。
09/02/07 00:56:49 vE7+xmqT
オブジェクト指向的には、当たり判定は関連をクラス化すればおk

145:名前は開発中のものです。
09/02/07 01:00:11 vE7+xmqT
>>127
石に重力が働くというのなら地面みたいなものがあるはずだから、
石ー重力ー地面としてこの重力をクラスにすれば使いまわしも出来ていい

146:名前は開発中のものです。
09/02/07 01:03:06 UFXAc++2
>143
つ 【オールドタイプの魂】


147:名前は開発中のものです。
09/02/07 01:04:31 cn84NiHO
>>121
>基本的に雑魚敵Aが雑魚敵Bを殺す現象ってのは
>雑魚敵Aの中の処理でも雑魚敵Bの中の処理でもないでしょ?
>つまり雑魚敵ABに書くべき処理ではない

YES

>それらの関連、つまりAxB、AxC、AxD、BxC、BxD、CxDの関連は全部シーンクラスに書くべきじゃないのかな?

シーンでも神でも何でもいいけど、ゲーム世界の物理現象の調停者wが
介在し、結果を双方(作用する2体)に通知するというのは全くもって普通
珍しくない

148:名前は開発中のものです。
09/02/07 01:06:44 lLkuERdr
ていうか目をさませ
もしオブジェクトが20種類いてそれぞれが関連をもつとしたら
少なくとも
a=オブジェクトの状態の数の総和
aC2(aの中から2つ選んだときの重複のない組み合わせだっけ?)
の数だけ処理を書かなきゃいけないことには
どう組んであろうが変わりはないんだぞ

>>147
なんのメリットがあってそんなわかりにくい書き方をするんだ
無駄だろ

149:名前は開発中のものです。
09/02/07 01:09:32 lLkuERdr
あ、aC2じゃ同じオブジェクト同士が抜けてるなw

150:名前は開発中のものです。
09/02/07 01:10:08 XPRCk6pD
>>145
重力をクラス化するのは個人の趣味だろうが、
使いまわせるかどうかは怪しいな。

細切れの小さなクラスが1000個ぐらいあって、
それぞれにそれぞれが関係しあって一つの生態系をなし、
結果としてゲームになっている・・・とか。
そういうのって想定外の仕様変更には弱いからなぁ。
まぁゲームの方向性にも寄るのだろうが。

151:名前は開発中のものです。
09/02/07 01:13:32 cn84NiHO
>>148
ゲームワールドをゲームエンジン内部で時間発展させてるからさ
衝突イベントでユーザー定義のコールバック関数が呼ばれるやつだ

152:名前は開発中のものです。
09/02/07 01:14:32 UFXAc++2
>147
普通に考えてそれか。

じゃ俺も普通に考えてみるかな。

雑魚敵Aが雑魚敵Bを攻撃して殺す場合、Aは攻撃判定用不可視オブジェクトXを作成する。
BにはXに対する応答のみ、つまりXに当たったら死ぬ、という処理を書く。

攻撃判定用不可視オブジェクトを必要に応じて複数作り、それぞれ攻撃する側はそれを作成し、
攻撃を受ける側はそれに対する応答処理を書く。

シーンクラスには、雑魚敵コンテナと同じレベルで攻撃判定用オブジェクトのコンテナを追加して、
そこで相互の判定をする。

153:名前は開発中のものです。
09/02/07 01:22:50 lLkuERdr
>>151-152
いや、だから全然わかってねぇな
なんかお前等変な組み方してるけど
関連の処理を仕様である分、全部書かなきゃいけないことは変わらないんだろ

なんでわざわざ間になんか挟むの?
なんか得になんの?金もらえんの?
素直にシーンオブジェクトに必要な数だけ処理かけよw
何をどうしたくてそんな複雑な仕組みにするんだw

オブジェクトXなんていきなり見てお前のそれ誰が理解してくれるんだよ>152
どうせドキュメントもかかねぇしよまねぇだろ
っていうか手間増やしてるしw

154:名前は開発中のものです。
09/02/07 01:26:57 XPRCk6pD
>>152
不可視オブジェクトXの受け渡しは誰が行うんだ?

155:名前は開発中のものです。
09/02/07 01:30:03 lLkuERdr
ちなみに俺はオブジェクト指向原理主義者であると同時に
C++をはじめとするオブジェクト指向言語が大嫌いなんだ
だってなんのメリットもねぇよこの言語ども・・・w
だってよ・・・処理が集中・複雑化するのってシーンクラスみたいなところであって
別に個々にオブジェクト単位にできる部分は誰も苦労してねぇよマジで

ってみんなにはないしょだよw

ってところで>>147につけたレスは内容まちがってたな俺
すまんこ

156:名前は開発中のものです。
09/02/07 01:30:17 NuBn44S3
>153
> なんでわざわざ間になんか挟むの?

雑魚敵が増えた時の修正が少なくてすむ。
攻撃判定オブジェクトを間に挟むことで、複数種の雑魚敵が同属性の攻撃だしても、一つの攻撃判定オブジェクトとの
関連処理に還元できる。


157:名前は開発中のものです。
09/02/07 01:32:09 vE7+xmqT
>>150
使いまわすってのはコード的にって事ね

数が多い場合は面倒くさいけど一個一個やっていくしかないなぁ
上位概念のオブジェクトを作れるんであればいいけど
STGでいうなら弾 - 衝突 - 敵 では無くて 自機 - 弾判定 - 敵みたいに

158:名前は開発中のものです。
09/02/07 01:36:16 cn84NiHO
>>152
>Aは攻撃判定用不可視オブジェクトXを作成する。

そう。AABBとか、高速飛翔するならカプセル、線分を空間上に射出するわけだ
Xがそのうちどっかのバカに命中(得点ゲット)したときの通知が欲しけりゃ
おまえらの大好きなオブジャーバーパティャーンでXにAを登録するやつだ
subjectはX。observerはA

>BにはXに対する応答のみ、つまりXに当たったら死ぬ、という処理を書く。

まぁ、何かが自分に衝突したら呼ばれるコールバック関数(オブジェクト)を
登録してるわけだから、その中でユーザー独自の死ぬ処理を入れるわけだ

炎を吹いて墜落するなり、爆発四散するなり好きに振舞え

159:名前は開発中のものです。
09/02/07 01:37:24 lLkuERdr
>>156-157
>雑魚敵が増えた時の修正が少なくてすむ。
だからならないって
必ず仕様の分だけ処理かかなきゃならないんだよ
(それが汎用デフォルト処理に挿げ替えられるかどうかは別として)

>使いまわすってのはコード的にって事ね
コード的なんて気にすんなマジで
関連がいっぱいになると無駄に共通化した処理が必ず邪魔になる
30回コピペして終わる程度の使いまわしなら30回コピペする気でいろ
そのぐらいでちょうどいい

160:名前は開発中のものです。
09/02/07 01:38:36 XPRCk6pD
>>155
いや確かにそのとおりだと思う。
ただ、シーンクラスみたいなところに処理が集中するのは、
ゲームにオブジェクトとオブジェクトの関係が多いからだと思う。
一般アプリやツールは、リソースの管理がメインなので、
オブジェクト指向も役に立つのだろう。

161:名前は開発中のものです。
09/02/07 01:39:17 dNGvkNLd
ID:lLkuERdrはド素人だろ。こんなクルクルパーは相手にするだけ無駄。

162:名前は開発中のものです。
09/02/07 01:43:47 NuBn44S3
>159
> >雑魚敵が増えた時の修正が少なくてすむ。
> だからならないって
> 必ず仕様の分だけ処理かかなきゃならないんだよ

新規雑魚敵が今までの他の雑魚敵と同じ攻撃を出すのなら、それと同種の攻撃判定オブジェクトを
作成するだけで終了。

オマエのやりかただと、新規雑魚敵と既存雑魚敵全ての関係について処理を全て一つ一つ書くまで終わらない。

163:名前は開発中のものです。
09/02/07 01:45:32 lLkuERdr
>>160
一般のアプリだって同じだよ~w
絶対にボタンとかツールバーの処理なんてウンコぐれーだろ
メイン画面の処理の強烈さといったらない
メインに集中してなくても絶対にどっかに偏るw(ツールウィンドウとか・・・)
部品は平均200行程度しかないのにメインで10万越えで放置されてるソースとか多いぞw

164:名前は開発中のものです。
09/02/07 01:48:10 hO/vsQBF
>>146
もれなくリストに登録しておいた。

>>121
もしBがAに殺された時、「うわああああ!」って悲鳴を上げるなら、
その悲鳴を上げる動作はBでやるべきだと思う。
AがBを殺した時、「やっほお!!」って喚声を上げるとしたら、それはAが行うべき内容だろう。

シーン(あるいは調停者)がやるべきことと言ったら、Bに対して「お前はAに殺された」ってメッセージを送ることと
Aに対して「お前はBを殺した」ってメッセージを送ること。

なんかややこしくなってきた。
皆えらいわ。


165:名前は開発中のものです。
09/02/07 01:48:40 XPRCk6pD
>>158
今、攻撃判定用「不可視」オブジェクトXって言ってるのだから、
弾をXにしてしまうと、弾が不可視になって困る。
弾が飛ぶってのなら、弾は普通のクラスにすべきだろう。
で、弾と雑魚敵Bの間で攻撃判定用不可視オブジェクトXをやり取りする・・・と。

なぜインターフェイスでやらないのか。攻撃判定用オブジェクトとか馬鹿げてるよ。

166:名前は開発中のものです。
09/02/07 01:58:57 lLkuERdr
>>162
>オマエのやりかただと、新規雑魚敵と既存雑魚敵全ての関係について処理を全て一つ一つ書くまで終わらない。
基本的にはそうだと思ってるし、そうでなければおかしいと思ってる
第一、お前が書かない処理はどうなるんだ?
プログラマならこれが答えられなければダメだろ?

それとお前がしてるのはあくまで仕様の話であって設計の話ではない
決まっていない仕様をむりやりプログラムの仕組みで解決しようとしている
必ずすべての組み合わせ分の関連を把握するべき
その上で共通な処理を共通であるように書いたらいい
(デフォルトを「何もおきない」としたら何も書かなければいい)

ちなみに俺はオブジェクトごと必ず関連をすべて書き出している
雑魚敵Ax雑魚敵BがいたとしてAのステータスが3種類、Bのステータスが2種類だとしたら

   B1 B2
A1 S1 S2
A2 X  X
A3 X  X

X はなにもおきない
S1は爆発
S2は押される

とかねw地道にw実際はもっとでかくて多いぞwゾッとするぐらいな
例えばステータス1から2にうつるときのステータス1-2が問題になったりねw
書き出してるっていってもそこまで明確でもないんだよね、それでも見える分ぐらいはやるべきだと思ってる

167:名前は開発中のものです。
09/02/07 02:00:43 NuBn44S3
>165
不可視ってつけたのはちょっと余分だったかもな。別に可視でもいいんだ。STGの場合は、
弾という可視の攻撃判定オブジェクトを介して敵と自機が攻撃しあってるわけだ。

例えば格闘ゲームでパンチなりキックなりするばあい、攻撃判定の瞬間だけ拳や足先に
不可視の攻撃判定オブジェクトを作るというのはよくやること。この場合は、その攻撃判定
オブジェクトに『威力』なり『方向』なりの属性を与える。攻撃を受ける側は、その『威力』なり
『方向』なりを攻撃判定オブジェクトが当たった位置と一緒に見て、それぞれのダメージモーションを
再生したりダメージ処理に移行する。

波動拳(のような何か飛び道具)なら、可視の攻撃判定オブジェクトになるだけ。

スクリューパイルドライバー(のような何か近接巻き込み方攻撃)なら、巻き込み範囲を持つ不可視の
攻撃判定オブジェを作って、それにそれぞれへのコールバックを持たせる。当たったらコールバックを
よんで攻撃側・被攻撃側それぞれに対してモーション発動なりなんなりをする。


168:名前は開発中のものです。
09/02/07 02:00:43 cn84NiHO
>>165
>不可視

あ、この部分は見落としていた

>>152は「一瞬で目標に到達するレーザーみたいな攻撃(視覚効果なし)」
を想定してたのかな

169:名前は開発中のものです。
09/02/07 02:02:12 NuBn44S3
>166
ガンバレw
努力の人はさすがにすごいと思うよw

学習できない無能はもっとすごいと思うけどねw

170:名前は開発中のものです。
09/02/07 02:03:15 XPRCk6pD
>>162
だから処理纏めたいときは普通はインターフェイスとか使うの。
オブジェクトのやり取りなんかしない。

class X{ public: virtual void hoge()=0; };
class A : public X{ public: void hoge(){} };
class B : public X{ public: void hoge(){} };

for(int i=0; i<tasks.size(); ++i){
X *x = dynamic_cast<X *>(tasks[i]);
if(!x){ continue; }
x->hoge();
}

とかすれば処理は纏められるだろ。
で、どう纏めるかは問題ではなく、これをどこに書くかが問題なんだ。

171:名前は開発中のものです。
09/02/07 02:04:03 cn84NiHO
>>167
格ゲのAABB当たり判定か。把握

172:名前は開発中のものです。
09/02/07 02:06:52 NuBn44S3
>170
で、どこに書くの?

間にオブジェクトを介在させる場合は、書くべき場所はひとつしかないけどね。

173:名前は開発中のものです。
09/02/07 02:15:06 cn84NiHO
>>166
>   B1 B2
>A1 S1 S2
>A2 X  X
>A3 X  X

>X はなにもおきない
>S1は爆発
>S2は押される

あれ。当たり判定表はアリだと思うが…


174:名前は開発中のものです。
09/02/07 02:26:27 XPRCk6pD
>>172
シーンクラスが良いのではないかということになってる。

>>167
オブジェクトを作るのは、インスタンスを複数にするためであって、
処理を纏めるためではないと思うぞ。

175:名前は開発中のものです。
09/02/07 03:15:44 cn84NiHO
>>174
シーンが肥え太る?ゲームエンジン(神)が肥え太ってんだよ

肥え太ったゲームエンジン(神)が作りしシーン
その中での現象に関して肥えた神にお願い・お祈り・お伺いするためのインターフェース
これをシーンが提供してる。それだけのことだ

神と交信するためのインターフェース(シャーマン、イタコ)は色々ある
物理エンジンにしかアクセスできないインターフェースとか
どのインターフェースを使えるかはゲームオブジェクト(アクター)によりけり

あとおまえやねうらおじゃない?睡魔に耐えてたらESPが冴えてきたぞ
外れてたらごめんね。もし当たってたら一言言わせろ
あんたさー知りもしない昔の話を捏造してペラペラしゃべってる暇あんなら
一次情報にアクセスしてきっちり裏取れよな
あれじゃネット発のタスクシステム都市伝説の怪文書がまたひとつ増えただけじゃん
松○とドングリだろ。悔しくないのか?足使えよ足
ネットとか2ちゃんで怪情報かき集めて本書くな

176:名前は開発中のものです。
09/02/07 03:17:17 cn84NiHO
アンカーミスだ。>>134
ばいばい

177:名前は開発中のものです。
09/02/07 03:31:08 dNGvkNLd
>>175
横レスですまんが、やねうらおに関しては、
遠藤さんとも面識があるみたいだし、
URLリンク(d.hatena.ne.jp)
吉村さんとも知り合いみたいだし、
URLリンク(d.hatena.ne.jp)
岩谷さんが取り上げるぐらいだし、
URLリンク(d.hatena.ne.jp)
彼は2chなんか端っから相手にもしてないだろう。

自分の説が正しいと思うなら是非どこかのブログで
今回の記事に反論してみてくれ。俺はそれを楽しみにしている。

178:名前は開発中のものです。
09/02/07 03:42:55 lLkuERdr
今回の記事は魅力ないでしょうよw
前スレでタスク信者が詰まってたところ全部無視だものw

179:名前は開発中のものです。
09/02/07 03:46:47 dNGvkNLd
俺はweak_ptr使って実装するっての一つにしても為になったがな
まあ、あの記事から何も学べない奴は学習能力がアレなんだろうな

180:名前は開発中のものです。
09/02/07 03:56:42 zBw0rbcy
ID:lLkuERdrは10年以上プログラムやってて( >>123 )、
C++が使えない( >>125 )ってぐらいだから、まあ、本当にアレなんだろうけどな・・

181:名前は開発中のものです。
09/02/07 04:20:56 lLkuERdr
>>179-180
あんたが複数IDを使えるのはもうわかってるよ
このスレのはじめのほうでもやってただろ?
でもいいの?
あんた自分より賢い人には絶対にたてつかないクズじゃん
俺なんかに噛み付くと反撃が痛いんじゃない?w

182:名前は開発中のものです。
09/02/07 04:26:54 XPRCk6pD
weak_ptr とかはもうすでにみんなやってるでしょ。
そこはそんなに。本質とは違うというか。
別にタスクが死ぬごとに各タスクのOnDeleteTask(Task *)がコールされるとか言う実装でもかまわないわけで。
全般にわたって高速化のことしか書かれていないが、そんなの正直どうでも良い。
ってのが感想。

183:名前は開発中のものです。
09/02/07 04:52:05 dNGvkNLd
>>182
> 別にタスクが死ぬごとに各タスクのOnDeleteTask(Task *)がコールされるとか言う実装でもかまわないわけで。

それは、何かweak_ptrを勘違いしてそうだな・・。

OnDeleteTaskのときに、被参照ポインタをどうやって無効にするんだ?

184:名前は開発中のものです。
09/02/07 04:55:04 dNGvkNLd
>>181
> あんた自分より賢い人には絶対にたてつかないクズじゃん

それは、俺を他の誰かと勘違いしてねーか

俺はC++わからないとか、デザパタわからないとか、
そんなド素人と話しても得ることがないから、そういう奴とは話さないだけだよ

185:名前は開発中のものです。
09/02/07 05:10:37 XPRCk6pD
>>183

class my_task : public task
{

task *m_ptask1;

public:

virtual void OnDeleteTask(task *ptask)
{
if(m_ptask1==ptask){ m_ptask1=NULL; }
}

};

186:名前は開発中のものです。
09/02/07 05:15:04 dNGvkNLd
>>185
ああ、言わんとしていることはわかったし、あんたはまともなプログラマに属すると言えるとは思うが、
そのコードだとオブジェクトの削除はO(N^2)になるよな。

俺の現場ではそんなコードは全然現実的じゃないんだが。
あんたは本当に数万オブジェクトの出てくる規模のゲーム書いたことあるの?

187:名前は開発中のものです。
09/02/07 05:18:34 XPRCk6pD
ただ、これらの話題で絶対出てくるのが、
オブジェクトのdeleteが、他のオブジェクトの何かの処理の引き金になるのは変だって話。

188:名前は開発中のものです。
09/02/07 05:20:49 dNGvkNLd
もちろん185の実装は別に間違っちゃいないので、俺の183は発言を撤回する。
185があまり良くない実装だと理解した上で確信犯的にやっているんだろうから。

189:名前は開発中のものです。
09/02/07 05:24:50 dNGvkNLd
>>187
> オブジェクトのdeleteが、他のオブジェクトの何かの処理の引き金になるのは変だって話。

(そういう議論が発生するのはわかるが)それは、変じゃないだろう。
被参照ポインタの無効化というのは、そもそもそういうものだから。

190:名前は開発中のものです。
09/02/07 05:43:13 XPRCk6pD
>>186
まぁ10000も出すとなぁ・・・
ともかく、weak_ptrぐらい自前で書けるし、他の方法もあると言いたかった。
つーか、10000もオブジェクト出すって、何のゲームよ。

191:名前は開発中のものです。
09/02/07 05:54:06 dNGvkNLd
>>190
> ともかく、weak_ptrぐらい自前で書けるし、他の方法もあると言いたかった。

weak_ptrと同性能のものを自前で書くだけでも結構大変だと思うがな。
少なくとも現場のプログラマがやるのは時間の無駄で車輪の再発明以外の何物でもないと思うのだが。

> つーか、10000もオブジェクト出すって、何のゲームよ。

いまどきの3Dのゲームでは、足や手のパーツごとに接触判定を持っていて、それぞれのパーツが
独立していて、それぞれがC++のオブジェクトになってたりするのだが。

192:名前は開発中のものです。
09/02/07 06:30:12 XPRCk6pD
いや、ま、どういうか。
再発明だろうがなんだろうが、あまりどうでもよくて、
要するに、そういうところで困ってる人はいないだろうと。

余談だが、
そもそも、不正なポインタをオブジェクトが抱え込んでしまっているような状況事態がバグに近いわけで。
昔weak_ptrのようなものを使ったコードも書いたことがあるが、釈然としなかった。
だって、lock出来るときと出来ないときでコードが分岐するなんて、変だ。
そういう仕組みに頼ってると、オブジェクトの所有権がどこにあるのかわからないコードになりがち。
オブジェクトは作ったやつが削除すべきという結論に達したが。。

193:名前は開発中のものです。
09/02/07 06:46:43 dNGvkNLd
>>192
> そもそも、不正なポインタをオブジェクトが抱え込んでしまっているような状況事態がバグに近いわけで。

そんなことはない。

シューティングで、子分より親分が先に倒されることは普通にありえるだろ?
子分は親分のポインタを保持していてはいけないのか?違うだろ?

そういうとき、どういうコードを書くつもりでいるんだ?コードで示してくれ。

194:名前は開発中のものです。
09/02/07 06:49:26 dNGvkNLd
>>192
> オブジェクトは作ったやつが削除すべきという結論に達したが。。

これも全くのでたらめ。

シューティングでボスがザコをどんどん生成するときのことを考えてみてくれ。
ボスはザコより先に逝っちまうことがあるだろ。

ザコから参照されているからボスはいつまでもオブジェクトを解放しないのか?違うだろ。

オブジェクトの所有者は、そのオブジェクトを生成した奴(ボス)にあってはいけないんだ。
もしそう設計しているならそれは設計上の誤り。



195:名前は開発中のものです。
09/02/07 07:11:16 XPRCk6pD
>>193
>シューティングで、子分より親分が先に倒されることは普通にありえるだろ?
>子分は親分のポインタを保持していてはいけないのか?違うだろ?

>そういうとき、どういうコードを書くつもりでいるんだ?コードで示してくれ。

親分も子分も、シーンクラスが管理すればよい。

>シューティングでボスがザコをどんどん生成するときのことを考えてみてくれ。
>ボスはザコより先に逝っちまうことがあるだろ。

なぜボスがザコを生成する必要がある?
シーンクラスがザコを生成、削除すればよい。

Cのmallocにはweak_ptrのような仕組みは用意されていないが、世のプログラムはちゃんと動いている。
windowsのウィンドウハンドルにもweak_ptrのような仕組みは用意されていないが、ちゃんと動いている。
なのにゲームではweak_ptrに頼らざる得ない状況になるというのなら、それは設計が悪いからだろう。
だけど止めはしない。weak_ptrをつかってゲームを書いてみるといい。きっと後悔するから。

196:名前は開発中のものです。
09/02/07 07:23:17 dNGvkNLd
>>195
> 親分も子分も、シーンクラスが管理すればよい。

うわ。それはひどい。なんか、またド素人と話している予感。

子分を生成したくなるタイミングは親分が親分のロジックにおいて決定するのだから、
あんたの作りでは、親分がシーンクラスに対して子分の生成を依頼するコードが必要になる。
どんな依頼コードを書くの?それ書いて見せてくれないか。

> windowsのウィンドウハンドルにもweak_ptrのような仕組みは用意されていないが、ちゃんと動いている。

何を勘違いしているのか知らないが、WindowsのHANDLEもweak_ptrも目的は全く同じなんだが。

197:名前は開発中のものです。
09/02/07 07:27:41 Smy/5DJP
シューティングでボスとザコが居て、ボスとザコが何故か紐で繋がってたとする。
紐の管理はボスとザコのどちらですべきか?

答えはどちらでもなく、
ボスとザコと紐を管理するボス戦クラスを作って、全部纏めてそっちで管理すべき。

198:名前は開発中のものです。
09/02/07 07:28:38 dNGvkNLd
>>195
> ゲームではweak_ptrに頼らざる得ない状況になるというのなら、それは設計が悪いからだろう。

「ゲームではweak_ptrに頼らざる得ない」なんて俺は言ってないからな。

weak_ptrを使えば簡単に書けるものを、馬鹿が車輪の再発明したり、weak_ptrを知らないがために
複雑な設計になっていたりすると言ってるだけなんだが。

199:名前は開発中のものです。
09/02/07 07:37:27 dNGvkNLd
>>197
> ボスとザコと紐を管理するボス戦クラスを作って、全部纏めてそっちで管理すべき。

まあ、それは否定しないが、「そっちで管理すべき」の「管理」の方法は?

200:ID:XPRCk6pD
09/02/07 07:40:43 Smy/5DJP
ID変わってしまったけど、俺がID:XPRCk6pDな。

>>子分を生成したくなるタイミングは親分が親分のロジックにおいて決定するのだから、
>>あんたの作りでは、親分がシーンクラスに対して子分の生成を依頼するコードが必要になる。
>>どんな依頼コードを書くの?それ書いて見せてくれないか。

依頼などしない。直接シーンクラスに書く。直接がいやなら、子分と親分を管理する大親分クラスを作って
そっちで管理する。

>>何を勘違いしているのか知らないが、WindowsのHANDLEもweak_ptrも目的は全く同じなんだが。
ハンドルは同じ値が再利用される可能性もあるわけで。

201:ID:XPRCk6pD
09/02/07 07:50:35 Smy/5DJP
>>199
>まあ、それは否定しないが、「そっちで管理すべき」の「管理」の方法は?
好きにすれば?
複数のクラス同士が双方向にコミュニケートするような状況さえ回避できれば、
あとは考えることなんてないね。

202:名前は開発中のものです。
09/02/07 07:55:22 dNGvkNLd
>>200
> 依頼などしない。直接シーンクラスに書く。直接がいやなら、子分と親分を管理する大> 親分クラスを作ってそっちで管理する。

まあ、それでも組めなくはないのであんたが実際にゲームを書けないとは
言うつもりはないが、しかし、あんたは、大きなゲームを作ったことがなさそうだな。

オブジェクトが無数に出てきて広大なフィールドを歩けるタイプの
汎用的な3Dエンジンなんかを作れば俺が言ってる意味がわかると思うんだが。

まあいいや。お互い意見が対立しているわけでもなさそうなので、俺はもう寝る。

203:名前は開発中のものです。
09/02/07 08:17:52 lLkuERdr
>>200
俺もシーンクラスに書く
その設計でいいと思うぜ

ID:dNGvkNLdは普通に頭悪いだろw
質問攻めしてるけど明らかに予想外の答えにうろたえてるだろw

204:名前は開発中のものです。
09/02/07 08:28:02 dNGvkNLd
>>203
C++すら使いこなせないド素人は黙ってな

205:ID:XPRCk6pD
09/02/07 08:57:06 Smy/5DJP
>>202
そういうコテコテしたプログラムも書いたことがあるが、今では間違いだったと考えている。
少し前までは私も「オブジェクトは自立しているべきであり、周りの状況を判断し、自分で行動すべきだ」、
と考えていた。私もまだ若かったし、C++がそういう設計思想であることも手伝って、そういう勘違いをした。
作ってみたらうまくいかず、考えてみたら、オブジェクト同士の関係を見落としていることに気がついた。
ゲームはオブジェクト同士が関係しあって初めてゲームになる。
そこを重点的に記述できないことには楽しいゲームを作ることは難しい。
昨今の大作ゲームがどことなく味気ないのもそのあたりが原因では?

206:名前は開発中のものです。
09/02/07 09:17:54 dNGvkNLd
>>205
> 昨今の大作ゲームがどことなく味気ないのもそのあたりが原因では?

それは、全然的外れだろう。

本当に現場のことは何も知らないんだな。

せいぜい同人ゲーでも作ってなよ。

207:名前は開発中のものです。
09/02/07 09:21:58 lLkuERdr
>>206
苦しくなると話の趣旨と違うところだけつまんで
人格批判からレスの全部否定に入るっておきまりのパターンなのなw

208:名前は開発中のものです。
09/02/07 09:29:38 dNGvkNLd
>>207
C++すら使いこなせないド素人はこなくていいよ

209:名前は開発中のものです。
09/02/07 10:06:26 iAQtrtU5
c++使わなければどうでもいい話題ばっかだな


210:名前は開発中のものです。
09/02/07 10:18:48 hO/vsQBF
>>192
deleteされたポインタを直接参照しているオブジェクト全てにその旨通知するように設計したいと思った。

>>193
子分::親分からの指令(親分へのポインタ) みたいなメソッド作って、
子分は親分からの指令があった時だけ、親分へのポインタを参照しながら協調動作すればいいんじゃね。
子分が親分のポインタを持つ必要は無いよ。


>>197
ボスと雑魚は紐なんか無視して、それぞれ独立に動いていい。
紐は自分のグラフィックを表示しつつ、ボスと雑魚に対して「これいじょう伸びないよ」的な力(or メッセージ)を与える。
それ以外の点では、紐は普通の登場キャラと同じような扱いで良いと思う
シーンクラスに何か特別なことを書く必要なんて無いよ。


211:名前は開発中のものです。
09/02/07 10:51:31 lLkuERdr
>>210
どっちにしてもシーンみたいなクラスあったほうがいいじゃん

212:名前は開発中のものです。
09/02/07 11:11:23 lLkuERdr
>子分は親分からの指令があった時だけ、親分へのポインタを参照しながら
子分のクラスなんだから子分の処理だけで完結したいと思わないんか?
カプセル化っていうの?

213:名前は開発中のものです。
09/02/07 11:13:45 hO/vsQBF
>>211
うん、あった方が良いと思う。
実際にシーンクラスが何を担当するのかはここに居る人それぞれが全く違うイメージを持ってそうだけど。

214:名前は開発中のものです。
09/02/07 11:47:33 hO/vsQBF
>>212
子分は親分と協調し、親分は子分と協調するのだから、
お互いに通信しあう仕組みは必要で、完全に分離するのは不可能だと思う。

ふと思えば、俺の方法だと、子分が死んだことを親分はどうやって感知するんだって思ったw


215:名前は開発中のものです。
09/02/07 15:40:54 NuBn44S3
>174
おまえはタスク=ゲームオブジェクト派か。
プログラミングなんて、正しく動くなら何やったっていいんだよ。くだらない価値にこだわってると
伸びないぞ。

216:名前は開発中のものです。
09/02/07 16:25:49 21jTa7Aw
シーンクラスって作る価値があるのかね
シーンってメニューやスコアやRGPならフィールドや戦闘なんかのことだろ
一つのゲームに必要なシーンなんて十もないんじゃないか
そしてそれぞれのシーンに共通点なんてほとんどない
共通しているのはデータ取得メソッドみたいなのだけ
各シーンは遷移するけどstateパターンを適用しても
メリットはほとんどない
そんなどうでもいい部分を考えている暇があるなら
うんこでもして寝てしまえ
このうんこ野郎ども

217:名前は開発中のものです。
09/02/07 18:36:36 vE7+xmqT
>>216
2個以上なら作る価値はあると思うがね

218:名前は開発中のものです。
09/02/07 19:39:16 21jTa7Aw
なんでもできちゃうクラスみたいなのを作るからバカになる
つけちゃえばぱわーあっぷみたいなガキの発想じゃあるまいし
なんでも作ればいいってもんじゃない
二つしかないクラスに親クラス作ってクラスが三つになって
すごいんだぞーとかバカじゃねーの
ばーかばーかしんじゃえ
そんなとこに柔軟性持たせる暇があったらうんこでもしてろ
うんこうんこ

219:名前は開発中のものです。
09/02/07 19:48:57 B+kDbAoq
なんでもできちゃうクラスみたいなのを作るからバカになる
つけちゃえばぱわーあっぷみたいなガキの発想じゃあるまいし
なんでも作ればいいってもんじゃない
三つしかないクラスを統合してクラスが二つになって
すごいんだぞーとかバカじゃねーの
ばーかばーかしんじゃえ
そんなとこに柔軟性持たせる暇があったらうんこでもしてろ
うんこうんこ

220:名前は開発中のものです。
09/02/07 20:03:53 lLkuERdr
>>214
だからシーンに書けよw

221:名前は開発中のものです。
09/02/07 20:08:26 VeizsAKm
シーン。。。

222:名前は開発中のものです。
09/02/07 20:10:02 qvO9PNvj
>>219
でもよ、
「あれもしなきゃ、これもしなきゃ」って状況で、修正作業が発生して、
2回だけでも同じ修正作業をやるのって、憤慨「ウガアーゥアーッ!!」状態にならね?
C++使ってるなら、template(汎用クラス)の親クラスは使わな損々。

223:名前は開発中のものです。
09/02/07 20:22:54 21jTa7Aw
シーンをまたがって修正しなければならない項目なんてほとんどないから
考えるだけ無駄
メニューと戦闘のシーンでの共通項目なんてあるのかよ
メニューと戦闘で使う共通キャラのモーションがおかしいから修正だぜ
サブクラスにしておいてよかった俺天才超天才
なんて場面は百年に一度しかねーよ
どうしても作りたければ似たようなシーンで共通の親クラス持てばいい
何度も言う、そんなくだらないコードを書く暇があるなら
うんこしているほうがまし
うんこをしていると新しいアイデアが生まれると過去の偉人も言ってた

224:名前は開発中のものです。
09/02/07 20:43:13 hO/vsQBF
>>223
>共通項目
それはつまり、タスクシステムのことだと思うよ!

225:名前は開発中のものです。
09/02/07 20:47:22 B+kDbAoq
>>222

親分クラスと子分クラス間の通信をシーンクラスが受け持つなら
シーンクラス1箇所で修正済むんじゃない?

>>223
シーンクラス否定したり肯定したり、立場がワカンネ
もしかして否定したいのって「シーンクラス」じゃなくて
「抽象化されたシーンを統一的に管理するクラス」?

226:名前は開発中のものです。
09/02/07 20:47:40 21jTa7Aw
すげぇぜタスコシステム
共通項目がない、なんの関係もなかった複数のオブジェクトを
無理やり関連付けやがった
やべぇな、俺には真似できねぇぜ

227:名前は開発中のものです。
09/02/07 20:48:43 qvO9PNvj
「シーン=メニューと戦闘」の入出力の具体が不明だが、
ウンウンきばっている段階(=設計の段階)で、
なんであれ抽象化できる部分はなるべく抽象化しておくんじゃねえの?

期限が決まっている状況であれば、なおのこと、それくらいの安全策は取るよな。

228:名前は開発中のものです。
09/02/07 21:01:07 21jTa7Aw
>>227
一気に食おうとするな分けろ
夏休みの宿題なんてものは毎日少しずつやるもんだ
共通点なんて無理に抽出してもそれはオナニーだ
シーンごとに分けろ、目標を分けろ
メニューだけ作って完成させろ
戦闘だけ作って完成させろ
最後に適当にくっつければいいだけだ
全部同時に作って完成させる能力もないくせに
一度に全てをこなそうとするな
俺らは凡人だから、凡人にふさわしいやり方がある

規模の増大が複雑さのインフレを招くのは常識
それを回避するためにそれぞれの規模を抑えて
できるだけ分離して開発するんじゃねーか
完成した複数のシステムをできるだけ触らないようにしてくっつければ
それでいいんだよ
俺らは天才じゃねーから
スーパー天才のやねうらお連中の言うことなんて聞かなくてもいいんだよ
俺らは凡人だ、凡人には凡人にふさわしいやり方がある

そして余った時間を使って
スーパーウンコタイムを楽しもうじゃないか
存分に

229:名前は開発中のものです。
09/02/07 21:01:45 B+kDbAoq
>>227
そして実装も終盤に差し掛かった段階で唐突に仕様変更が入り
抽象化して見えなくしておいた情報を使うために苦しむんですね
わかります

230:名前は開発中のものです。
09/02/07 21:05:45 qvO9PNvj
>>229
仕様変更に柔軟に対応できるような抽象化を見極めるのもワザのうち。

231:名前は開発中のものです。
09/02/07 21:09:34 lLkuERdr
そんなのするから無駄に時間がかかるんだよ
って俺の10年以上の経験が言ってる

232:名前は開発中のものです。
09/02/07 21:13:12 B+kDbAoq
>>229
そう、ワザ要るよね
初めてのゲームジャンルとかだとまだワザが足りないから完全には見極め切れない
全く抽象化しないか本当にかるーくしとく位でちょうどいい

233:232
09/02/07 21:14:49 B+kDbAoq
まちがえた
>>230

234:名前は開発中のものです。
09/02/07 21:22:28 21jTa7Aw
どこにでもいるんだよ
将棋やってるのに穴熊を囲うことだけを考えて
大局を見ずに
穴熊が出来たと思ったら既に敗戦濃厚な戦局になっていたという
そういうおばかさんが

タスクシステムにこだわったところで
3Dを出来るようになるというわけではないということを
超天才が身を持って教えてくれた
この教訓を未来に生かそうではないか諸君
そしてうんこを私に

235:名前は開発中のものです。
09/02/07 21:25:18 qvO9PNvj
亀レスだが・・・

>>159

俺も、タスク間通信は、独立した当たり判定モジュール(クラスで実装)に任せている。
でもなあ・・・。

>関連がいっぱいになると無駄に共通化した処理が必ず邪魔になる
>30回コピペして終わる程度の使いまわしなら30回コピペする気でいろ
>そのぐらいでちょうどいい

言っていることはすごく分かるんだが、俺の場合、共通化する努力は続けているって感じだな。
ゲーム中のキャラの相互作用なんて、大体が抽象レベルでは、似通ったプリミティブな交差判定に落ち着くから、
共通化できるところは共通化しておくと、使い回しが利くんだよな。もちろんキャラの魅力は半減するが。
未出のメンバ構成のプロパティを持つキャラを追加する場合は、新規に作らざるを得ないよね。

当たり判定の共通化を突き詰めたゲームってなんだろな?
一昔前に乱発されたベルトコンベアアクションみたいなものか?
最終成果品としては、単調な作業を強いられるゲームだったよな。
最近の3Dゲーも、相互に影響しあうロジックが単調なのが多いな。

236:名前は開発中のものです。
09/02/07 21:54:35 WyIbglrc
綺麗だと思ったタスクシステムの実装って関数型言語で作られたプログラムくらいしかないな
現行のC++やJavaは言語そのものがスマートじゃないもの…
いくら頑張っても泥臭さは残るし、作った本人が胸を張ってもやっぱり泥臭さは残ってる

アンチがいるのは理想論に近い良い手本がそこらに転がってないせいもあると思うし、あまり邪険にしないでやってほしい

237:名前は開発中のものです。
09/02/07 23:03:54 36NfOdFl
クックック。世の中には手段の為なら目的を選ばないどうしようもない奴がいるんだよ。

諸君。私はタスクシステムが好きだ。
(以下略)

238:名前は開発中のものです。
09/02/07 23:10:25 B+kDbAoq
話題循環に飽きた俺が勝手に今後のスレ行き先予想

1.現状維持
 アンチタスクシステム派がタスクシステム派の不備を指摘し続ける。
 ずっとアンチのターン。あと10~15年位?(根拠は無い)
2.タスクシステム派勝利
 タスクシステムをそのまま維持した上で弱点を補強するような改善策が
 どっかからか出てきてアンチタスクシステム派が納得してスレから去る。多分無い。
3.「タスクフレームワーク総合part5」になる
 タスクシステムの利点?であるデバッガ等々の外部ツールを必須装備とし、
 その作り方を初心者に優しく指南。
 利点強化によるごり押しでアンチを一掃。多分無い。
4.「タスク系総合part5」になる
 アンチ勝利。part1から欠陥があると指摘され続けても「そこはお前の技術力が足りないせいだ」
 的なコメントばっかり続くのを見て初心者が冷めた。
 ただ、既存のタスクシステムは捨てるものの、

   「タスクシステムもタスクフレームワークもだめぽorz
    でもMTフレームワークがあるさ!」
   「タスクシステム総合=task system総合=タスク系総合だ。文句あっか」

 みたいな流れで「タスク」という概念の在り方・使い道を模索する方向に。
 マルチコアCPU当たり前になってきてるしね。
5.スレから人がいなくなる
 不況で、、、とか、
 ゲーム製作より動画製作のがおもしれぇw、とか

いちアンチとしては4あたりに行ってくれると気兼ねなく去れるんだ。
っていうかむしろその辺議論したいんだ。

239:名前は開発中のものです。
09/02/07 23:16:17 Smy/5DJP
しかし、タスクシステム自体は描画順の管理という大仕事があるから必要だよなぁ。

240:名前は開発中のものです。
09/02/07 23:22:01 Smy/5DJP
というか、アンチ派はどうやって描画順を管理しているのか。

241:名前は開発中のものです。
09/02/07 23:23:10 Qq/VuJ9k
描画順って何だ
3DならZバッファで終了とかじゃねえの

242:名前は開発中のものです。
09/02/07 23:24:20 dNGvkNLd
>>241
3Dでもエフェクトや半透明は描画順が必要だよ。
あんた、3Dのまともなプログラム、やったことなさそうだな…。

243:名前は開発中のものです。
09/02/07 23:27:28 Qq/VuJ9k
>>242
なるほど把握した
トン

244:名前は開発中のものです。
09/02/07 23:35:33 UFXAc++2
>238
> いちアンチとしては4あたりに行ってくれると気兼ねなく去れるんだ。

素直に『アンチタスクシステム総合スレ』でも立てたらイイジャナイか。

245:名前は開発中のものです。
09/02/07 23:38:11 UFXAc++2
>240
その辺は描画エンジンが描画順を制御するようにしてる。
タスク(というかゲーム内の各要素)の更新順と、それらの描画順は正直関係ない。

246:名前は開発中のものです。
09/02/08 00:29:39 +GgCMkwp
>>245
タスク(というかゲーム内の各要素)と描画エンジンが扱う各要素のクラスは共有?

247:名前は開発中のものです。
09/02/08 00:48:21 9yKZ63FM
>>246
>>245ではないがそんな無駄な仕組みにはしないほうがいいだろ

248:名前は開発中のものです。
09/02/08 01:00:09 buJH1feo
>>238
オレはいち擁護派だが普通に4に行って欲しいね

同じことを続けていれば、なんだっていずれ通用しなくなるのは当たり前
古き良きタスクは穏便に「古典タスク手法」の棚に収めて、新しい合意を作っていけばいい
どう考えても4が建設的だろう
オレがアンチを叩く理由は単に非建設的だからだし

249:名前は開発中のものです。
09/02/08 01:08:11 /7HQNkAm
3Dできるやつでタスクシステム賞賛してる奴っているのかどうかに関心がある
3Dできないレベルの奴がキャンキャンほえても所詮雑魚
サイヤ人とスーパーサイヤ人ぐらいの差がある
3Dでのタスクシステムの実例とやらをこの目でみてみたいものだ

250:名前は開発中のものです。
09/02/08 01:09:52 gynQYFxx
3Dできる奴できない奴とか言ってる時点で・・・

251:名前は開発中のものです。
09/02/08 02:34:19 2s89IpB8
3Dになったところで何ら変わらないよ

252:名前は開発中のものです。
09/02/08 03:03:37 ydU34I03
タスクシステムって決まった定義がないからなぁ…
しかも前提によって最適なタスクシステムは異なる。

シューティングとアドベンチャーで最適なタスクシステムは違うだろうし
携帯とかファミコンレベルのチープ環境と、PCやPS3クラスのリッチな環境とでは最適なタスクシステムも違うだろ。

前提が違うのにたった一個のシステムがベスト!ってのはありえん。

253:名前は開発中のものです。
09/02/08 03:12:20 HPpX5vQi
タコスはやっばりメキシコで食うのが一番だと思う。

254:名前は開発中のものです。
09/02/08 04:05:03 L1xVTjvz
ムーチョス・グラシアス!!!

255:名前は開発中のものです。
09/02/08 04:20:27 g+SgJHl1
>>252
この中の「タスクシステム」を「システム」に置き換えてもまったく意味は変わらない。
ほんと、意味の無い言葉だよ。

256:名前は開発中のものです。
09/02/08 08:34:14 mZ7S8TgR
3Dが全くダメなばかりにいつも後続のガキ共に鼻で笑われてきた2Dオヤジ
2Dオヤジにとってタスクシステムとは、プライドを保つための最後の砦だった
心の支えだった。自己のアイデンティティを投影してまで愛していたんだ
なのに、お前らときたら…

257:名前は開発中のものです。
09/02/08 10:46:39 PqcaRaMD
>>256
2Dやってた世代が現役の現場なんてあんまり残ってないと思うが…
仮に残ってたとしたらやっぱりその世代がタスクシステム周りをやるのが妥当だと思う。

3Dが最新技術だから、ってのではなくタスクシステムは作るのに経験が必要だから。
3D、コリジョン、物理エンジン、AI、etc...はゲームの全体から見たらガワの部分。
ゲームの状態遷移やオブジェクト管理をするタスクシステム的なものはガワではなく屋台骨部分で、
この部分はゲーム毎に最適なものが異なり、設計するのには部分だけでなく全体を見通せるだけの経験が必要。
まぁ、いわゆるメインプログラマーの仕事の範疇。

3Dやシェーダー周りはプログラマの花形っぽくみられるジャンルだから若者には人気なんだけどね。

258:名前は開発中のものです。
09/02/08 11:23:33 9yKZ63FM
そんなもん構築するだけ時間の無駄なんだけどねw

259:名前は開発中のものです。
09/02/08 11:32:03 2s89IpB8
そんなもん構築するだけ時間の無駄って思ってる奴は三流なんだけどねw

260:名前は開発中のものです。
09/02/08 11:44:16 PqcaRaMD
>>259
まぁ、テトリスサイズのゲームならタスクシステム構築とかしなくても作れるけど
ある程度大きいものだとそれなりの管理システムが無いとなぁ

日曜大工で犬小屋を設計図も柱も無しで作った人が
家やビルも同じように作れる、と思ってるのかもね。

261:名前は開発中のものです。
09/02/08 11:51:17 HiTeQllp
では
3Dでタスクシステクを採用している漏れが最強で敬われ存在なのだな
まあ精々がんばりな
3Dができないorタスクが理解できない下賤者ども

262:名前は開発中のものです。
09/02/08 12:49:10 9yKZ63FM
>>261
じゃあ、>>12(前スレの>>824付近)からはじまるタスクシステムの欠点についてはどうなの?
タスクシステムなんて使うからバグが増えるんだけど?

263:名前は開発中のものです。
09/02/08 15:04:22 L1xVTjvz
また引数クンかwww

264:名前は開発中のものです。
09/02/08 15:15:51 eFHTuswi
自分が理解できてないことを判断できないやつって、根本的に開発に向いていないよね

265:名前は開発中のものです。
09/02/08 15:20:07 L1xVTjvz
例えば、tekiAとtekiBがいたとして、teki_baseから派生させるとする。

class tekiA : public teki_base { ... };
class tekiB : public teki_base { ... };

それぞれが自機と関係性があるとし、そしてそれぞれが関係するワークを引数として持つ、

tekiA::update( jiki, mahou_kougeki );
tekiB::update( jiki, boss_cho_tsuyoi );

という関数があったとする。

1. このupdate関数の呼び出しはどのようになるのか?
2. tekiAがjikiの状態を変更したら、tekiBにとってそれは予期せぬ変更でないのか?

引数クンには、この2点について具体的な解答をしてもらいたいものだな。

266:名前は開発中のものです。
09/02/08 15:32:54 L1xVTjvz
あぁ、もうあと2点。

3. tekiAとtekiBをteki_baseから派生させるのは、是か非か?
4. teki_baseにupdate仮想関数を作成して派生クラスで実装する方式を取らないのは何故か?

もあわせて聞きたいね。

267:名前は開発中のものです。
09/02/08 15:51:32 /7HQNkAm
スーパーサイヤ人が最強だろ、雑魚め、クソが
よくよく考えてみるとクソクソ連呼するDBはなかなか下品だな
十年前に偉大なる将軍やねうおらさまと喧嘩した奴が
3D使いこなしているのを見て、やねうおらというひとは
この十年間何をやって痛んだと疑問に思ったが
そんなことは些細なことだと思った、
科学よりも宗教の方が強い世の中じゃからな
目的目標を欠いた設計論なんてクソの役にもたたぬよ
0.0001ミリの誤差も修正できる神業を極めたところで
家を建てる設計の助けにはならん

268:名前は開発中のものです。
09/02/08 15:54:55 L1xVTjvz
>267
全然最強じゃない。
URLリンク(www38.atwiki.jp)(%E3%83%89%E3%83%A9%E3%82%B4%E3%83%B3%E3%83%9C%E3%83%BC%E3%83%AB)


269:名前は開発中のものです。
09/02/08 16:15:03 gX7P2DSs
>>267
本題に関係ないツッコミで申し訳ないが
科学は宗教の一分野として発生した
これ豆知識な

270:名前は開発中のものです。
09/02/08 16:19:34 9yKZ63FM
>>265
俺、ID:lLkuERdrだからテキトーにこのスレからIDとって
まず思想を読んでみてくんない?

271:名前は開発中のものです。
09/02/08 16:20:45 /7HQNkAm
大局話してる最中に細部語り出す奴ってうざいよねー
細部語ってる最中に大局話し出す奴ってうざいよねー
何が言いたいかって言うと俺最強俺超天才
定義を明確にしない限りいくらでも攻撃できるし
定義を明確にしない限りいくらでも逃げつづれられるぜ
タスクシステム最強カルト最強
3Dなんかできなくてもタスクシステムさえあれば
スーパーサイヤ人だ
神の奇跡を信じよ、それがタスクシステムである
3Dはできないけどタスクシステム最強である

272:名前は開発中のものです。
09/02/08 16:27:03 iVlGRjYy
>>242
Zソートすればいいだろ
予めグループ化して描画するのはタスク云々とは関係がないし

273:名前は開発中のものです。
09/02/08 16:28:49 1so7d3Ot
お前ら、人に仕事割り振ってもらわないと、自分では何もできないタイプだろ?

274:名前は開発中のものです。
09/02/08 16:29:22 L1xVTjvz
>270
ok。
クズは失せろ。

275:名前は開発中のものです。
09/02/08 17:04:08 KsHb+JeN
タスクシステムとか気取った物言いしてるからどんな高尚なもんかと思ってみれば、
何のことはねぇ、MediatorパターンとObserverパターンを組み合わせただけじゃねえか、
アホらし。すかしてんじゃねえよ、ぼんくら共が!

276:名前は開発中のものです。
09/02/08 17:06:27 L1xVTjvz
デザパタやタスクを銀の弾丸か何かと勘違いしてないか?

277:名前は開発中のものです。
09/02/08 17:11:51 lbrou4Vq
パスタといえば俺ば明太子パスタが一番好きだな

278:名前は開発中のものです。
09/02/08 17:18:44 +p9NdvYA
ループさせすぎw
書いてるの同じ人だろw

279:名前は開発中のものです。
09/02/08 17:27:25 /7HQNkAm
この無限ループを味わいたくなければ
タスクシステムなんてわけのわからない幻想は捨て去るんだな
無限ループで苦しむ時間を3Dの勉強に費やせば
ポリゴンの一つもレンダリングできるようになる
やねうおら大先生みたいにわけのわからない長文を書いて
わけのわからないタスクシステムの解説を書くような老後をっ
送りたいならばそれも止めはしない
それも人生よ

タスクシステムはイディオムのようでイディオムではなく
デザインパターンのようでパターンではなく
フレームワークのようでフレームワークではないのだよっ
思い知ったか、このメスブタどもめ

280:名前は開発中のものです。
09/02/08 17:41:19 6h7R5+5k
>>265
少し違う話になるが、複雑な状態をもつインスタンスは外部から状態遷移させると危なくないか?

俺は外部からはメッセージ送るまでに留めて、実際にメッセージ処理して状態遷移するのは、個々のインスタンスに任せる。
これだと処理が1フレーム遅れたり、場合によってはメッセージ捨てられることもあるんだが、それでも外部から状態の詳細隠蔽できる利点を優先してる。

281:名前は開発中のものです。
09/02/08 17:41:21 +p9NdvYA
あなたややねうらお先生みたいにわけのわからない長文を
書くような大人にはなりません。

282:名前は開発中のものです。
09/02/08 17:52:59 /7HQNkAm
やねうらお大先生様は自分の過去を正当化するために恥を上塗りしているだけ
俺はそう思う
ただ長く理解しづらいまわりくどいわけのわからないことを書いて惑わすだけ
定義も何もない、ただそれっぽいことを誰にも理解できないように書いて
適当に権威のありそうなものを付け加えて
ごまかしているだけ、子供のいいわけ、自己保身を計っているだけ
あの人は小説家にでもなればいいよ、回りくどい文章を書いて
1を100に水増しして本を書いて適当に売ってればいいよ

タスクシステム語ってる連中の気に食わない点の一つとして
定義を明確にしようとしない
設計の話だと思って設計の話をすると
急にイディオムの話に切り替えやがるし
それに合わせてイディオムの話をしていると
また急に設計の話に戻しやがる
結局何をやってるかわかってないから、適当に話をつなげるしかないのだろう
自分たちが過去やってきたことを無駄にしたくないという思いが
タスクシステムを正当化しなければならないという
何が言いたいのかというと、つまり私は空腹だということだ

283:名前は開発中のものです。
09/02/08 17:55:52 iVlGRjYy
IGDAあたりがタスクシステムはこういうもの
って定義してくれりゃ…

IGDAってセミナー案内以外何かやってるんか?

284:名前は開発中のものです。
09/02/08 18:54:27 2s89IpB8
やねうらお大先生は、年収数千万の天才プログラマなんだから
ゲー専みたいな馬鹿の集まり、相手にしなくてもいいんじゃね?

285:名前は開発中のものです。
09/02/08 19:28:37 /7HQNkAm
ゲー専みたいな馬鹿の集まりを金づるにしてるから年収数千万なんだよ
俺が気に食わないのはやねうらお本人よりも
それを無自覚に賞賛している信者連中の方
考えることを放棄している
三年毎に取り巻き信者が一掃されてるのが笑える
難しくて凄そうで権威のあるやねうらお大先生の言うことを
理解したような風に賞賛すれば俺も近いレベルの有能プログラマになれるんだ
といったところか、おこぼれクレクレ君
本当に理解してないからメリットとデメリットも知らないし
適用すべき箇所がどこなのかも知らない
だからとりあえず使ってみて、満足して
布教して、さらに満足する
これをこうやったらこうなってここが良くなるってのが全くない
手に入れたぞ、使うぞで完結している
それを自覚できないから、多少難しい観念を理解することはできない
つまり3Dは複雑すぎて手が出ない、又はすぐに挫折する
でも俺優秀俺天才って言いたい、そう他人に思ってもらいたい
その願望をかなえるための夢のシステム
それこそがタスクシステム
男のロマン
巨乳大好き
おっぱい最高
そういうことだ

286:名前は開発中のものです。
09/02/08 19:33:57 /7HQNkAm
ゲー専の扱いがひどいなと思ったので追記しておくけど
ゲー専にも学校ごとに二、三人ぐらいは優秀なのがいるよ
逆に優秀な大学出てても、ろくにプログラムかけないで口だけのもたくさんいる
IPAの岡田くんは最高だがな

287:名前は開発中のものです。
09/02/08 20:16:29 9yKZ63FM
>>282
>ただ長く理解しづらいまわりくどいわけのわからないことを書いて惑わすだけ
>定義も何もない、ただそれっぽいことを誰にも理解できないように書いて
>適当に権威のありそうなものを付け加えて
>ごまかしているだけ
あるねー
そういうのやねうらおだけじゃなかったけどね
昔は多少わかりにくくても考えながら聞いてやったけど
いまって時代が変わったってのもあるよね
もう別に奴等の言うことをわざわざ理解してやる義理も必要もないし
情報が氾濫しすぎてて何かしゃべっても説明責任はてめぇの方にあんだよバーカ
で終わる話にもなってるからそういうのに騙される奴も減ってきたよね

相手を煙にまける環境っていうのは相手側が説明を理解しなきゃいけない立場であるときしか役に立たない
いまは2chですらそういうの華麗にスルーされて終わりだしねw
前スレでもどっかのエライ人系(英文w)のリンク貼ったレスは全部無視だしねw

288:名前は開発中のものです。
09/02/08 20:33:36 VfZ7TaKb
ID:/7HQNkAm
独演会はもう終わったのか

まぁしかし、
奴のマイナスの社会的影響は大だな。
奴の原稿にダメ出し出来ない出版社も無能だが。

289:名前は開発中のものです。
09/02/08 21:14:56 PqcaRaMD
なぜタスクシステムごときでここまで荒れるんだ?
ゲームを一本でも自作したことあるやつなら何らかのタスク管理システムは作ったことあるだろ。
で、このシステムはここが便利だったとかダメだったとか、いろいろなジャンル作ってく中で
洗練されたシステムが作れるようになってくもんだ。その程度のもの。

290:名前は開発中のものです。
09/02/08 21:16:46 +gs/6E3g
part3から追ってる限り壮絶なアンチがいるみたい

291:名前は開発中のものです。
09/02/08 21:34:21 L1xVTjvz
引数クンx2とobserverクンがひとりいるっぽい。

292:名前は開発中のものです。
09/02/08 21:49:45 150rW63B
・タスクという名前が気に入らない
・ゲームオブジェクトを抽象化できない
・タスクシステムを使っている現場でひどい目にあった
アンチの理由は大体こんなとこかな。

3番目は稀に、タスクシステムを使わない、自分なりの方法を確立してる人もいるっぽいけど、
それを啓蒙するわけでもなく、罵詈雑言に終始しているので、まあ、同じ穴のムジナかと。

293:名前は開発中のものです。
09/02/08 21:52:43 eFHTuswi
>>289
そうそう、そうなんだよね。
いいとこはのこして、今のゲーム制作で問題あるなら変えていけばいいだけのことで、それを何と呼ぼうがどうでもいい。
そんなことすら理解できないバカが一人か二人騒いでるだけなんじゃないの?

294:名前は開発中のものです。
09/02/08 22:04:40 gynQYFxx
そうそう、そうなんだよねって、よっぽど気があうのね?
おまいは井上香美か?

295:名前は開発中のものです。
09/02/08 22:13:16 mZ7S8TgR
ポエマーは愛されてるな

296:名前は開発中のものです。
09/02/08 22:22:01 VfZ7TaKb
・問題
・解決策としてのフレームワークの仕様
・フレームワークの設計と運用ルールと実装
分けて考える必要がある。

アンチは、もっぱら実装の局部的な問題をもってして、
全部を否定しようとしているだけ。
基地害オナニー独り芝居。

タスクシステム使って酷い目にあったっていうのは、
単に運用ルールを確立・周知していなかったからじゃないのか、という気がする。

297:名前は開発中のものです。
09/02/08 22:29:49 9yKZ63FM
じゃあ、大局的なこととして

タスクシステムを使うことによって何のどんな問題が解決するの?

これをはっきりさせてよ
っていうと全くまともなレスが帰ってこないからなw
んで>>282の内容に戻るとw

298:名前は開発中のものです。
09/02/08 22:31:54 iemYL3IE
引数で渡すのもきめえ。
キャストするのもきめえ。
Setter/Getter作るのもきめえ。
グローバルで通信するのもきめえ。
ピザな神に任せるのもきめえ。

てな感じで同じく悩み続けてる俺にはここ最近の話はとても参考になってる。
だからもっとやれ。ただし脳内じゃなくてちゃんとわかるようなコードつけてな。

299:名前は開発中のものです。
09/02/08 22:37:30 /7HQNkAm
いやいや
俺はごく基本的で大局的な見解しか示してない
局部的な話は一切していない
さぁ、タスクシステムを大局的に語るがよい
又は3Dでタスクシステムを使うがよいww
偉そうな名前を持った偽科学は消毒だー

300:名前は開発中のものです。
09/02/08 22:40:34 9yKZ63FM
>>298
オブジェクト指向の常識に従う限り
ゲームのシーンクラスの肥大化を防ぐ手はねーよ
トリッキーな解釈をして関連をクラスにするとか
ってのは一つの逃げ道かもしれねーな
ただ、それをしたところで俺の上のほうのレス(ID:lLkuERdr)を読んでもらえば分かると思うが
書かなければならない処理の絶対数はどんな組み方をしても変わらない

俺はこれでも10年以上やってきたので設計思想で
できることとできないことが判別できるようになった
だから迷いがなくタスクシステムを糞だと言い切れる

もし、他の可能性を探すならオブジェクト指向を覆すような新しい設計思想が必要

301:名前は開発中のものです。
09/02/08 22:46:01 L1xVTjvz
>297
オマエは煽るふりをして自分の理解できないところを質問しているだけだろwww

302:名前は開発中のものです。
09/02/08 22:48:37 L1xVTjvz
>300
関連の総数が爆発するのは、不味い設計しているからだ。
そういうのはそもそもゲームの仕様からして不味い。
それをそのまま唯々諾々と実装するようなID:9yKZ63FM=ID:lLkuERdrは馬鹿の見本。

303:名前は開発中のものです。
09/02/08 22:48:38 9yKZ63FM
>>301
いままでこれが説明できた人間はいないぜ
無理すんなよw

304:名前は開発中のものです。
09/02/08 22:49:57 VfZ7TaKb
>>297
「大局的」の意味がよく分からんが。
あくまで、たとえばの話として・・・

○問題設定
プレイヤーキャラを常に画面上に存在させておき、プレイヤーの操作に反応させる。
一定時間ごとに、ライバル・キャラを画面上に発生・消滅させる。
キャラ接触の結果として、随時、火花を画面中に発生させる。
火花は発生後、画面上でアニメーションさせて1秒後に消滅させる。
ライバル・キャラ、火花は複数同時に存在し得るものとする。
画面上での全キャラのFPS当たり移動スピードや、火花アニメのFPS当たり状態遷移スピードは、固定とする。
火花は画面上最前面に表示されるようにする。
(その他細かいルールは割愛)

この問題を解決する方法の一つとして、タスクシステムの存在意義がある。

ところで問題は、それこそ色々あるから、そんなこと聞くだけ野暮だと思うが。

305:名前は開発中のものです。
09/02/08 22:50:00 L1xVTjvz
>303
自分が知らないものは存在しないも同然かww

306:名前は開発中のものです。
09/02/08 22:50:23 9yKZ63FM
>>302
は?もうお前のくだらない戯言に騙される奴はいないんだよ
オブジェクトが20個あってそれぞれが影響しあうなら
当然それだけの処理がいるの
設計をどうこねくりまわしたってその数が減ることは物理的にないんだよw

307:名前は開発中のものです。
09/02/08 22:54:09 PqcaRaMD
>>296
>タスクシステムを使うことによって何のどんな問題が解決するの?
タスクを管理できる。ただそれだけ。
タスクシステムを使わずにタスクをどーやって管理するの?
switch/caseかな?

まぁ、どんな方法だろうとタスク管理をするシステムをタスクシステムというんだから
ゲームにタスクがある以上タスクシステムが無いというのはありえないと思うが。

308:名前は開発中のものです。
09/02/08 22:58:14 9yKZ63FM
>>305
は?ちょっと聞くけど
使わないで組んだこと1度でもあるの?

>>307
頭悪すぎ
まず、タスクシステム使わなきゃタスクって単語すらでない
のに何が聞きたいの?
タスクシステム使う前提で話してどーすんだよ
理屈でモノを考える力をどっかに捨ててきたのか?お前

309:名前は開発中のものです。
09/02/08 23:00:15 L1xVTjvz
>306
> 設計をどうこねくりまわしたってその数が減ることは物理的にないんだよw

キサマの設計のクソさ加減は、>121見れば判るからwwwww

310:名前は開発中のものです。
09/02/08 23:00:40 /7HQNkAm
>>304
いや、タコスシステムとやらを使わなくても書けるだろ
タスコシステム使ったらどういう恩恵が得られるのかってーのに興味があるんだよ
普通の人々は
早くなるーだの、コードが短くなるーだの、読みやすくなるーだの、拡張しやすいーだの
そういうことを聞いてるわけだ
書けるんだよ書けるんだよって、書ければいいのならHSP使った方が手っ取り早い

311:名前は開発中のものです。
09/02/08 23:01:44 PqcaRaMD
>>308
>まず、タスクシステム使わなきゃタスクって単語すらでない
OSのマルチタスクってタスクシステムの話かな?
タスクってのは「処理の単位」以上の意味は無いから
ゲームに処理がある限り「タスク」は存在するんだけどね。

312:名前は開発中のものです。
09/02/08 23:01:46 DctRL+eT
ID:9yKZ63FMの主張は、「mediator」と一言言えば済む話に見えるけど
なんか違うことを言ってるんだろうか

313:名前は開発中のものです。
09/02/08 23:02:42 3SPyMiZ9
>>307
タスクとかいう言葉を何の定義もなく使うところがキモいです。
たとえば>>304を実現するのに普通の人はタスクなんて使わないので
管理の必要もないわけでさ。

と書こうとしたら>>308に書かれてた。

314:名前は開発中のものです。
09/02/08 23:08:29 150rW63B
>>306は、
マリオがクリボーに触れたときの処理と、ノコノコに触れたときの処理は別々に書くのか。

315:名前は開発中のものです。
09/02/08 23:08:51 PqcaRaMD
>>313
ギャラがやゼビウス時代の古典的ナムコタスクシステム(関数ポインタ+ワーク)や
マルチコアのジョブ時間管理やりソース共有管理まで行うMTフレームワークレベルのものも
広義のタスクシステムなんだけど。

これらを一切使わずに>>304を実現できる普通の人っているのか?

それとも何か特定の1つのタスクシステム実装についてのみ語っているのか?

316:名前は開発中のものです。
09/02/08 23:15:44 buJH1feo
>>315
オレはアンチじゃないけど
「広義のタスク」が何を指すのか不明では?

>>49の「タスクとはすなわちフレームをまたいだ継続的処理の抽象化」を言ってる?

317:名前は開発中のものです。
09/02/08 23:16:26 rDw772wv
広義の話するなら広義と書こうぜ。
収拾つかなくなるだろ。

古典的ナムコタスクシステム(関数ポインタ+ワーク)

これをウンコを管理するウンコシステムと呼んで区別しよう。
話はそれからだ。
アンチが叩いてるのはこのウンコの部分なんだから。

318:名前は開発中のものです。
09/02/08 23:17:51 L1xVTjvz
>317
> 古典的ナムコタスクシステム(関数ポインタ+ワーク)

『コンテキスト保存によるフレーム間の継続性』が抜けてるぞ。

319:名前は開発中のものです。
09/02/08 23:19:54 VfZ7TaKb
>>310
トムヤムクンプロセッサってのは聞いたことしかないから、よく知らん。
結局、並列動作処理フレームワークの実装がブラックボックス依存なんじゃねえの、それって。
ブラックボックス依存で構わないんだったら、ネガキャンするなと言いたい。

320:名前は開発中のものです。
09/02/08 23:23:26 +Lu8guC0
とりあえず、描画タイミング、ゲームオブジェクトの移動、当たり判定なんかの処理は一定間隔で行いたい。
だから、単純なゲームのとあるシーンは以下のようになる。
while(1) {
  描画
  ゲームオブジェクトの移動
  当たり判定
  時間調整
}

次にタイトル画面を表示するシーンが欲しいなと思ったら、もう一つループを追加する
while(1) {
  描画(タイトル画面表示)
  キー入力
  時間調整
}

シーンの数だけループができた。
じゃあ、このループを一般化して、ハードコーディングではなく、外部からのスクリプト読み込みなどで
動的に生成できないかと悩んでみると、タスクシステム(っぽい何か)に行き着いた。


321:名前は開発中のものです。
09/02/08 23:23:57 DctRL+eT
>>318
ただのFSMではなくコルーチン&スケジューラが実装されていたのなら
そう書いてもらったほうが分かりやすい

322:名前は開発中のものです。
09/02/08 23:28:08 xD+TYCTG
>>298
指標をいくつか決めて実装手法ごとに○×付け。一番○が多いのを使う。
これでいいんじゃね?

どういった表現方法使ったってどうせ全部「データの受け渡し」であることには変わりない。
概念的には一つのことを実現しようとしてるだけ。

もし引数の概念が無い言語ならグローバル変数使わざるを得ないし、
グローバル変数の概念が無い言語なら引数使わざるを得ないかもしれない。
この辺の手法の差異なんて言語に左右されるような瑣末なこと。

C++ではたまたまいろいろな手法が利用可能だけども
概念的には「データの受け渡し」だけが目的なんだから、
CPU使用時間とかメモリ使用量とかソース可読性とかそういった瑣末な指標によって選択すればいい。
「C++におけるデータ受け渡しの実装手法はどれが一番概念的に優れてるか」とか悩むのは
そもそも問いかけの選択からして間違ってる。どれも概念的には「データの受け渡し」で同一のもの。比較不可。
優劣が付けられるのは前述の瑣末な指標で比較した場合のみ。

C++がやれること多すぎて悩むの疲れたのならいっそもっと選択肢少ない言語に変えてみたら?
Cとかに。わりと本気で。
#レスなげえ、俺きめえ。ごめんね

323:名前は開発中のものです。
09/02/08 23:36:38 buJH1feo
C縛りは問題の本質を考える上でいいと思うが
納得しない人たちもいると思う


オレはC++大好きデザパタ大好きだが、自戒をこめてこの言葉を君たちに

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが簡単に生産されるようになってる。
正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、
それ自体、C を使う強力な理由になりうる。
-- Linus Torvalds

324:名前は開発中のものです。
09/02/08 23:36:54 VfZ7TaKb
「ホットスーププロセッサ」・・・チッ、気取った名前付けやがって。
「タスクシステム」を批判できる立場にねーだろ。

325:名前は開発中のものです。
09/02/08 23:42:17 L1xVTjvz
>324
いやいや、作ったソフトにどんな名前をつけるかは作者の権利だ。
それについてどうこう言うのと、『タスクシステム』という名前についてアレコレ言うのは
違う気がするぞ。

326:名前は開発中のものです。
09/02/08 23:44:14 VfZ7TaKb
>>325
悪い、ちょい嫉妬しただけだ。
大人げなかったな。

327:名前は開発中のものです。
09/02/08 23:46:18 L1xVTjvz
いや、落ち着いて逝こうぜ。

328:名前は開発中のものです。
09/02/08 23:48:32 iemYL3IE
>>322
確かになー。
本当に悩むべきはそんなところじゃねーだろーっていつも頭では思うんだけど、
「もし理想のやり方が見つかれば、二度と悩まなくて済む」って甘い罠に取りつかれちゃうんだな。

つーかなんかタスクシステムに限った話じゃなくなってるな。
↓こっちの話題だなすまん。

ゲームにおけるデータ構造・クラス設計・パターン2
スレリンク(gamedev板)

329:名前は開発中のものです。
09/02/08 23:49:52 /7HQNkAm
タスクシステムとやらにこだわる人は
HSP使った方がいいよ、資源の無駄
かっこつけてC++なんて使う意味ないって
俺かっこいい超天才C++使いこなす俺超天才って言って
一ヶ月かけて作ったゲームも
HSPなら三日で作れるから
所詮タスクシステムなんてその程度
DSL的アプローチとしてはHSPの方が有益
タスクシステムはうんこ
うんこに指差してうんこって言って何が悪い
これはうんこじゃないやいって言ったところで
それはうんこだ
うんこうんこ

330:名前は開発中のものです。
09/02/08 23:54:43 L1xVTjvz
あぁ、ウンコが何か吠えているw

331:名前は開発中のものです。
09/02/09 00:03:05 jAkDZVno
>>328
いっぺん表作っちゃえば二度と悩まなくて済むよ
処理時間短縮重視ならこれ、メモリ使用量極小を狙うならこれ、
とかって簡単に決定できる

まぁ、大体PCならメモリとかCPUなんて潤沢に使えるから気にせず
コードの可読性だけでさくっと決めていい気がするけど

332:名前は開発中のものです。
09/02/09 00:28:43 xIvd3PJC
>>315
普通にできるだろ
馬鹿かお前大丈夫か?
ていうか一度でも組んでみてから言ってくれよ

つーか、お前、タスクシステム云々がどうとかそういうところこだわる前に
プログラマとしてヤバイだろw

333:名前は開発中のものです。
09/02/09 00:54:39 rrMBb3Sk
実際HSPでもシューティングゲームぐらい作れるしな。

334:名前は開発中のものです。
09/02/09 01:34:23 K+aHd4rk
HSPで済むならそれを使っておけばいいんだよ。
適材適所。

335:名前は開発中のものです。
09/02/09 01:44:30 Tt5KtR55
>>315
なーにが広義のタスクシステムだ。バッカじゃねーの?このカッペ野郎
毎度毎度テメェの都合でローカル用語の解釈を変えてんじゃねー
あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな

お前いつもそんなふうに新しい用語をクリエイトしながら他人とお話しするの?



336:名前は開発中のものです。
09/02/09 07:48:20 tQgf226p
>>320
タイトル画面や戦闘シーンは、相互依存がほとんどなく、インスタンス数もたかが知れてる。また処理パターンが仕様変更で変わる可能性がある。

そういう用途には、std::list<> に virtual void exec() だけ実装したクラスのインスタンスを入れておいて、定期的に呼び出してやれば良い。システムと呼ぶ程のモノじゃないがな。

一方、プレイヤーや敵キャラなどは、上の前提条件が成り立たない。相互依存が多く、処理も一度「移動、ヒット判定、死亡判定」と決めたら、まず変更しない。
困難なポイントが違うので、解決策も必然的に変わってくる。

337:名前は開発中のものです。
09/02/09 12:40:04 Q7FeorJ2
>>336

これでFA。

338:名前は開発中のものです。
09/02/09 13:30:04 DGIHyZBW
>>335
>あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな
まだ君の頭では理解できないことかもしれないけど
”MTフレームワーク”でググって勉強してみれば意味が分かるかもね…



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch