トップページgamedev
1001コメント529KB

タスクシステム総合スレ part4

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/02/01(日) 12:38:10ID:rVEgp4cM
タスクシステムについての議論、相談、質問、雑談などのスレです

part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/
0262名前は開発中のものです。2009/02/08(日) 12:49:10ID:9yKZ63FM
>>261
じゃあ、>>12(前スレの>>824付近)からはじまるタスクシステムの欠点についてはどうなの?
タスクシステムなんて使うからバグが増えるんだけど?
0263名前は開発中のものです。2009/02/08(日) 15:04:22ID:L1xVTjvz
また引数クンかwww
0264名前は開発中のものです。2009/02/08(日) 15:15:51ID:eFHTuswi
自分が理解できてないことを判断できないやつって、根本的に開発に向いていないよね
0265名前は開発中のものです。2009/02/08(日) 15:20:07ID: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点について具体的な解答をしてもらいたいものだな。
0266名前は開発中のものです。2009/02/08(日) 15:32:54ID:L1xVTjvz
あぁ、もうあと2点。

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

もあわせて聞きたいね。
0267名前は開発中のものです。2009/02/08(日) 15:51:32ID:/7HQNkAm
スーパーサイヤ人が最強だろ、雑魚め、クソが
よくよく考えてみるとクソクソ連呼するDBはなかなか下品だな
十年前に偉大なる将軍やねうおらさまと喧嘩した奴が
3D使いこなしているのを見て、やねうおらというひとは
この十年間何をやって痛んだと疑問に思ったが
そんなことは些細なことだと思った、
科学よりも宗教の方が強い世の中じゃからな
目的目標を欠いた設計論なんてクソの役にもたたぬよ
0.0001ミリの誤差も修正できる神業を極めたところで
家を建てる設計の助けにはならん
0268名前は開発中のものです。2009/02/08(日) 15:54:55ID:L1xVTjvz
>267
全然最強じゃない。
ttp://www38.atwiki.jp/saikyouhero/?cmd=word&word=%E5%AD%AB%E6%82%9F%E7%A9%BA&type=normal&page=%E5%AD%AB%E6%82%9F%E7%A9%BA(%E3%83%89%E3%83%A9%E3%82%B4%E3%83%B3%E3%83%9C%E3%83%BC%E3%83%AB)
0269名前は開発中のものです。2009/02/08(日) 16:15:03ID:gX7P2DSs
>>267
本題に関係ないツッコミで申し訳ないが
科学は宗教の一分野として発生した
これ豆知識な
0270名前は開発中のものです。2009/02/08(日) 16:19:34ID:9yKZ63FM
>>265
俺、ID:lLkuERdrだからテキトーにこのスレからIDとって
まず思想を読んでみてくんない?
0271名前は開発中のものです。2009/02/08(日) 16:20:45ID:/7HQNkAm
大局話してる最中に細部語り出す奴ってうざいよねー
細部語ってる最中に大局話し出す奴ってうざいよねー
何が言いたいかって言うと俺最強俺超天才
定義を明確にしない限りいくらでも攻撃できるし
定義を明確にしない限りいくらでも逃げつづれられるぜ
タスクシステム最強カルト最強
3Dなんかできなくてもタスクシステムさえあれば
スーパーサイヤ人だ
神の奇跡を信じよ、それがタスクシステムである
3Dはできないけどタスクシステム最強である
0272名前は開発中のものです。2009/02/08(日) 16:27:03ID:iVlGRjYy
>>242
Zソートすればいいだろ
予めグループ化して描画するのはタスク云々とは関係がないし
0273名前は開発中のものです。2009/02/08(日) 16:28:49ID:1so7d3Ot
お前ら、人に仕事割り振ってもらわないと、自分では何もできないタイプだろ?
0274名前は開発中のものです。2009/02/08(日) 16:29:22ID:L1xVTjvz
>270
ok。
クズは失せろ。
0275名前は開発中のものです。2009/02/08(日) 17:04:08ID:KsHb+JeN
タスクシステムとか気取った物言いしてるからどんな高尚なもんかと思ってみれば、
何のことはねぇ、MediatorパターンとObserverパターンを組み合わせただけじゃねえか、
アホらし。すかしてんじゃねえよ、ぼんくら共が!
0276名前は開発中のものです。2009/02/08(日) 17:06:27ID:L1xVTjvz
デザパタやタスクを銀の弾丸か何かと勘違いしてないか?
0277名前は開発中のものです。2009/02/08(日) 17:11:51ID:lbrou4Vq
パスタといえば俺ば明太子パスタが一番好きだな
0278名前は開発中のものです。2009/02/08(日) 17:18:44ID:+p9NdvYA
ループさせすぎw
書いてるの同じ人だろw
0279名前は開発中のものです。2009/02/08(日) 17:27:25ID:/7HQNkAm
この無限ループを味わいたくなければ
タスクシステムなんてわけのわからない幻想は捨て去るんだな
無限ループで苦しむ時間を3Dの勉強に費やせば
ポリゴンの一つもレンダリングできるようになる
やねうおら大先生みたいにわけのわからない長文を書いて
わけのわからないタスクシステムの解説を書くような老後をっ
送りたいならばそれも止めはしない
それも人生よ

タスクシステムはイディオムのようでイディオムではなく
デザインパターンのようでパターンではなく
フレームワークのようでフレームワークではないのだよっ
思い知ったか、このメスブタどもめ
0280名前は開発中のものです。2009/02/08(日) 17:41:19ID:6h7R5+5k
>>265
少し違う話になるが、複雑な状態をもつインスタンスは外部から状態遷移させると危なくないか?

俺は外部からはメッセージ送るまでに留めて、実際にメッセージ処理して状態遷移するのは、個々のインスタンスに任せる。
これだと処理が1フレーム遅れたり、場合によってはメッセージ捨てられることもあるんだが、それでも外部から状態の詳細隠蔽できる利点を優先してる。
0281名前は開発中のものです。2009/02/08(日) 17:41:21ID:+p9NdvYA
あなたややねうらお先生みたいにわけのわからない長文を
書くような大人にはなりません。
0282名前は開発中のものです。2009/02/08(日) 17:52:59ID:/7HQNkAm
やねうらお大先生様は自分の過去を正当化するために恥を上塗りしているだけ
俺はそう思う
ただ長く理解しづらいまわりくどいわけのわからないことを書いて惑わすだけ
定義も何もない、ただそれっぽいことを誰にも理解できないように書いて
適当に権威のありそうなものを付け加えて
ごまかしているだけ、子供のいいわけ、自己保身を計っているだけ
あの人は小説家にでもなればいいよ、回りくどい文章を書いて
1を100に水増しして本を書いて適当に売ってればいいよ

タスクシステム語ってる連中の気に食わない点の一つとして
定義を明確にしようとしない
設計の話だと思って設計の話をすると
急にイディオムの話に切り替えやがるし
それに合わせてイディオムの話をしていると
また急に設計の話に戻しやがる
結局何をやってるかわかってないから、適当に話をつなげるしかないのだろう
自分たちが過去やってきたことを無駄にしたくないという思いが
タスクシステムを正当化しなければならないという
何が言いたいのかというと、つまり私は空腹だということだ
0283名前は開発中のものです。2009/02/08(日) 17:55:52ID:iVlGRjYy
IGDAあたりがタスクシステムはこういうもの
って定義してくれりゃ…

IGDAってセミナー案内以外何かやってるんか?
0284名前は開発中のものです。2009/02/08(日) 18:54:27ID:2s89IpB8
やねうらお大先生は、年収数千万の天才プログラマなんだから
ゲー専みたいな馬鹿の集まり、相手にしなくてもいいんじゃね?
0285名前は開発中のものです。2009/02/08(日) 19:28:37ID:/7HQNkAm
ゲー専みたいな馬鹿の集まりを金づるにしてるから年収数千万なんだよ
俺が気に食わないのはやねうらお本人よりも
それを無自覚に賞賛している信者連中の方
考えることを放棄している
三年毎に取り巻き信者が一掃されてるのが笑える
難しくて凄そうで権威のあるやねうらお大先生の言うことを
理解したような風に賞賛すれば俺も近いレベルの有能プログラマになれるんだ
といったところか、おこぼれクレクレ君
本当に理解してないからメリットとデメリットも知らないし
適用すべき箇所がどこなのかも知らない
だからとりあえず使ってみて、満足して
布教して、さらに満足する
これをこうやったらこうなってここが良くなるってのが全くない
手に入れたぞ、使うぞで完結している
それを自覚できないから、多少難しい観念を理解することはできない
つまり3Dは複雑すぎて手が出ない、又はすぐに挫折する
でも俺優秀俺天才って言いたい、そう他人に思ってもらいたい
その願望をかなえるための夢のシステム
それこそがタスクシステム
男のロマン
巨乳大好き
おっぱい最高
そういうことだ
0286名前は開発中のものです。2009/02/08(日) 19:33:57ID:/7HQNkAm
ゲー専の扱いがひどいなと思ったので追記しておくけど
ゲー専にも学校ごとに二、三人ぐらいは優秀なのがいるよ
逆に優秀な大学出てても、ろくにプログラムかけないで口だけのもたくさんいる
IPAの岡田くんは最高だがな
0287名前は開発中のものです。2009/02/08(日) 20:16:29ID:9yKZ63FM
>>282
>ただ長く理解しづらいまわりくどいわけのわからないことを書いて惑わすだけ
>定義も何もない、ただそれっぽいことを誰にも理解できないように書いて
>適当に権威のありそうなものを付け加えて
>ごまかしているだけ
あるねー
そういうのやねうらおだけじゃなかったけどね
昔は多少わかりにくくても考えながら聞いてやったけど
いまって時代が変わったってのもあるよね
もう別に奴等の言うことをわざわざ理解してやる義理も必要もないし
情報が氾濫しすぎてて何かしゃべっても説明責任はてめぇの方にあんだよバーカ
で終わる話にもなってるからそういうのに騙される奴も減ってきたよね

相手を煙にまける環境っていうのは相手側が説明を理解しなきゃいけない立場であるときしか役に立たない
いまは2chですらそういうの華麗にスルーされて終わりだしねw
前スレでもどっかのエライ人系(英文w)のリンク貼ったレスは全部無視だしねw
0288名前は開発中のものです。2009/02/08(日) 20:33:36ID:VfZ7TaKb
ID:/7HQNkAm
独演会はもう終わったのか

まぁしかし、
奴のマイナスの社会的影響は大だな。
奴の原稿にダメ出し出来ない出版社も無能だが。
0289名前は開発中のものです。2009/02/08(日) 21:14:56ID:PqcaRaMD
なぜタスクシステムごときでここまで荒れるんだ?
ゲームを一本でも自作したことあるやつなら何らかのタスク管理システムは作ったことあるだろ。
で、このシステムはここが便利だったとかダメだったとか、いろいろなジャンル作ってく中で
洗練されたシステムが作れるようになってくもんだ。その程度のもの。
0290名前は開発中のものです。2009/02/08(日) 21:16:46ID:+gs/6E3g
part3から追ってる限り壮絶なアンチがいるみたい
0291名前は開発中のものです。2009/02/08(日) 21:34:21ID:L1xVTjvz
引数クンx2とobserverクンがひとりいるっぽい。
0292名前は開発中のものです。2009/02/08(日) 21:49:45ID:150rW63B
・タスクという名前が気に入らない
・ゲームオブジェクトを抽象化できない
・タスクシステムを使っている現場でひどい目にあった
アンチの理由は大体こんなとこかな。

3番目は稀に、タスクシステムを使わない、自分なりの方法を確立してる人もいるっぽいけど、
それを啓蒙するわけでもなく、罵詈雑言に終始しているので、まあ、同じ穴のムジナかと。
0293名前は開発中のものです。2009/02/08(日) 21:52:43ID:eFHTuswi
>>289
そうそう、そうなんだよね。
いいとこはのこして、今のゲーム制作で問題あるなら変えていけばいいだけのことで、それを何と呼ぼうがどうでもいい。
そんなことすら理解できないバカが一人か二人騒いでるだけなんじゃないの?
0294名前は開発中のものです。2009/02/08(日) 22:04:40ID:gynQYFxx
そうそう、そうなんだよねって、よっぽど気があうのね?
おまいは井上香美か?
0295名前は開発中のものです。2009/02/08(日) 22:13:16ID:mZ7S8TgR
ポエマーは愛されてるな
0296名前は開発中のものです。2009/02/08(日) 22:22:01ID:VfZ7TaKb
・問題
・解決策としてのフレームワークの仕様
・フレームワークの設計と運用ルールと実装
分けて考える必要がある。

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

タスクシステム使って酷い目にあったっていうのは、
単に運用ルールを確立・周知していなかったからじゃないのか、という気がする。
0297名前は開発中のものです。2009/02/08(日) 22:29:49ID:9yKZ63FM
じゃあ、大局的なこととして

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

これをはっきりさせてよ
っていうと全くまともなレスが帰ってこないからなw
んで>>282の内容に戻るとw
0298名前は開発中のものです。2009/02/08(日) 22:31:54ID:iemYL3IE
引数で渡すのもきめえ。
キャストするのもきめえ。
Setter/Getter作るのもきめえ。
グローバルで通信するのもきめえ。
ピザな神に任せるのもきめえ。

てな感じで同じく悩み続けてる俺にはここ最近の話はとても参考になってる。
だからもっとやれ。ただし脳内じゃなくてちゃんとわかるようなコードつけてな。
0299名前は開発中のものです。2009/02/08(日) 22:37:30ID:/7HQNkAm
いやいや
俺はごく基本的で大局的な見解しか示してない
局部的な話は一切していない
さぁ、タスクシステムを大局的に語るがよい
又は3Dでタスクシステムを使うがよいww
偉そうな名前を持った偽科学は消毒だー
0300名前は開発中のものです。2009/02/08(日) 22:40:34ID:9yKZ63FM
>>298
オブジェクト指向の常識に従う限り
ゲームのシーンクラスの肥大化を防ぐ手はねーよ
トリッキーな解釈をして関連をクラスにするとか
ってのは一つの逃げ道かもしれねーな
ただ、それをしたところで俺の上のほうのレス(ID:lLkuERdr)を読んでもらえば分かると思うが
書かなければならない処理の絶対数はどんな組み方をしても変わらない

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

もし、他の可能性を探すならオブジェクト指向を覆すような新しい設計思想が必要
0301名前は開発中のものです。2009/02/08(日) 22:46:01ID:L1xVTjvz
>297
オマエは煽るふりをして自分の理解できないところを質問しているだけだろwww
0302名前は開発中のものです。2009/02/08(日) 22:48:37ID:L1xVTjvz
>300
関連の総数が爆発するのは、不味い設計しているからだ。
そういうのはそもそもゲームの仕様からして不味い。
それをそのまま唯々諾々と実装するようなID:9yKZ63FM=ID:lLkuERdrは馬鹿の見本。
0303名前は開発中のものです。2009/02/08(日) 22:48:38ID:9yKZ63FM
>>301
いままでこれが説明できた人間はいないぜ
無理すんなよw
0304名前は開発中のものです。2009/02/08(日) 22:49:57ID:VfZ7TaKb
>>297
「大局的」の意味がよく分からんが。
あくまで、たとえばの話として・・・

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

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

ところで問題は、それこそ色々あるから、そんなこと聞くだけ野暮だと思うが。
0305名前は開発中のものです。2009/02/08(日) 22:50:00ID:L1xVTjvz
>303
自分が知らないものは存在しないも同然かww
0306名前は開発中のものです。2009/02/08(日) 22:50:23ID:9yKZ63FM
>>302
は?もうお前のくだらない戯言に騙される奴はいないんだよ
オブジェクトが20個あってそれぞれが影響しあうなら
当然それだけの処理がいるの
設計をどうこねくりまわしたってその数が減ることは物理的にないんだよw
0307名前は開発中のものです。2009/02/08(日) 22:54:09ID:PqcaRaMD
>>296
>タスクシステムを使うことによって何のどんな問題が解決するの?
タスクを管理できる。ただそれだけ。
タスクシステムを使わずにタスクをどーやって管理するの?
switch/caseかな?

まぁ、どんな方法だろうとタスク管理をするシステムをタスクシステムというんだから
ゲームにタスクがある以上タスクシステムが無いというのはありえないと思うが。
0308名前は開発中のものです。2009/02/08(日) 22:58:14ID:9yKZ63FM
>>305
は?ちょっと聞くけど
使わないで組んだこと1度でもあるの?

>>307
頭悪すぎ
まず、タスクシステム使わなきゃタスクって単語すらでない
のに何が聞きたいの?
タスクシステム使う前提で話してどーすんだよ
理屈でモノを考える力をどっかに捨ててきたのか?お前
0309名前は開発中のものです。2009/02/08(日) 23:00:15ID:L1xVTjvz
>306
> 設計をどうこねくりまわしたってその数が減ることは物理的にないんだよw

キサマの設計のクソさ加減は、>121見れば判るからwwwww
0310名前は開発中のものです。2009/02/08(日) 23:00:40ID:/7HQNkAm
>>304
いや、タコスシステムとやらを使わなくても書けるだろ
タスコシステム使ったらどういう恩恵が得られるのかってーのに興味があるんだよ
普通の人々は
早くなるーだの、コードが短くなるーだの、読みやすくなるーだの、拡張しやすいーだの
そういうことを聞いてるわけだ
書けるんだよ書けるんだよって、書ければいいのならHSP使った方が手っ取り早い
0311名前は開発中のものです。2009/02/08(日) 23:01:44ID:PqcaRaMD
>>308
>まず、タスクシステム使わなきゃタスクって単語すらでない
OSのマルチタスクってタスクシステムの話かな?
タスクってのは「処理の単位」以上の意味は無いから
ゲームに処理がある限り「タスク」は存在するんだけどね。
0312名前は開発中のものです。2009/02/08(日) 23:01:46ID:DctRL+eT
ID:9yKZ63FMの主張は、「mediator」と一言言えば済む話に見えるけど
なんか違うことを言ってるんだろうか
0313名前は開発中のものです。2009/02/08(日) 23:02:42ID:3SPyMiZ9
>>307
タスクとかいう言葉を何の定義もなく使うところがキモいです。
たとえば>>304を実現するのに普通の人はタスクなんて使わないので
管理の必要もないわけでさ。

と書こうとしたら>>308に書かれてた。
0314名前は開発中のものです。2009/02/08(日) 23:08:29ID:150rW63B
>>306は、
マリオがクリボーに触れたときの処理と、ノコノコに触れたときの処理は別々に書くのか。
0315名前は開発中のものです。2009/02/08(日) 23:08:51ID:PqcaRaMD
>>313
ギャラがやゼビウス時代の古典的ナムコタスクシステム(関数ポインタ+ワーク)や
マルチコアのジョブ時間管理やりソース共有管理まで行うMTフレームワークレベルのものも
広義のタスクシステムなんだけど。

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

それとも何か特定の1つのタスクシステム実装についてのみ語っているのか?
0316名前は開発中のものです。2009/02/08(日) 23:15:44ID:buJH1feo
>>315
オレはアンチじゃないけど
「広義のタスク」が何を指すのか不明では?

>>49の「タスクとはすなわちフレームをまたいだ継続的処理の抽象化」を言ってる?
0317名前は開発中のものです。2009/02/08(日) 23:16:26ID:rDw772wv
広義の話するなら広義と書こうぜ。
収拾つかなくなるだろ。

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

これをウンコを管理するウンコシステムと呼んで区別しよう。
話はそれからだ。
アンチが叩いてるのはこのウンコの部分なんだから。
0318名前は開発中のものです。2009/02/08(日) 23:17:51ID:L1xVTjvz
>317
> 古典的ナムコタスクシステム(関数ポインタ+ワーク)

『コンテキスト保存によるフレーム間の継続性』が抜けてるぞ。
0319名前は開発中のものです。2009/02/08(日) 23:19:54ID:VfZ7TaKb
>>310
トムヤムクンプロセッサってのは聞いたことしかないから、よく知らん。
結局、並列動作処理フレームワークの実装がブラックボックス依存なんじゃねえの、それって。
ブラックボックス依存で構わないんだったら、ネガキャンするなと言いたい。
0320名前は開発中のものです。2009/02/08(日) 23:23:26ID:+Lu8guC0
とりあえず、描画タイミング、ゲームオブジェクトの移動、当たり判定なんかの処理は一定間隔で行いたい。
だから、単純なゲームのとあるシーンは以下のようになる。
while(1) {
  描画
  ゲームオブジェクトの移動
  当たり判定
  時間調整
}

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

シーンの数だけループができた。
じゃあ、このループを一般化して、ハードコーディングではなく、外部からのスクリプト読み込みなどで
動的に生成できないかと悩んでみると、タスクシステム(っぽい何か)に行き着いた。
0321名前は開発中のものです。2009/02/08(日) 23:23:57ID:DctRL+eT
>>318
ただのFSMではなくコルーチン&スケジューラが実装されていたのなら
そう書いてもらったほうが分かりやすい
0322名前は開発中のものです。2009/02/08(日) 23:28:08ID:xD+TYCTG
>>298
指標をいくつか決めて実装手法ごとに○×付け。一番○が多いのを使う。
これでいいんじゃね?

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

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

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

C++がやれること多すぎて悩むの疲れたのならいっそもっと選択肢少ない言語に変えてみたら?
Cとかに。わりと本気で。
#レスなげえ、俺きめえ。ごめんね
0323名前は開発中のものです。2009/02/08(日) 23:36:38ID:buJH1feo
C縛りは問題の本質を考える上でいいと思うが
納得しない人たちもいると思う


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

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが簡単に生産されるようになってる。
正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、
それ自体、C を使う強力な理由になりうる。
-- Linus Torvalds
0324名前は開発中のものです。2009/02/08(日) 23:36:54ID:VfZ7TaKb
「ホットスーププロセッサ」・・・チッ、気取った名前付けやがって。
「タスクシステム」を批判できる立場にねーだろ。
0325名前は開発中のものです。2009/02/08(日) 23:42:17ID:L1xVTjvz
>324
いやいや、作ったソフトにどんな名前をつけるかは作者の権利だ。
それについてどうこう言うのと、『タスクシステム』という名前についてアレコレ言うのは
違う気がするぞ。
0326名前は開発中のものです。2009/02/08(日) 23:44:14ID:VfZ7TaKb
>>325
悪い、ちょい嫉妬しただけだ。
大人げなかったな。
0327名前は開発中のものです。2009/02/08(日) 23:46:18ID:L1xVTjvz
いや、落ち着いて逝こうぜ。
0328名前は開発中のものです。2009/02/08(日) 23:48:32ID:iemYL3IE
>>322
確かになー。
本当に悩むべきはそんなところじゃねーだろーっていつも頭では思うんだけど、
「もし理想のやり方が見つかれば、二度と悩まなくて済む」って甘い罠に取りつかれちゃうんだな。

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

ゲームにおけるデータ構造・クラス設計・パターン2
http://pc11.2ch.net/test/read.cgi/gamedev/1211544659/
0329名前は開発中のものです。2009/02/08(日) 23:49:52ID:/7HQNkAm
タスクシステムとやらにこだわる人は
HSP使った方がいいよ、資源の無駄
かっこつけてC++なんて使う意味ないって
俺かっこいい超天才C++使いこなす俺超天才って言って
一ヶ月かけて作ったゲームも
HSPなら三日で作れるから
所詮タスクシステムなんてその程度
DSL的アプローチとしてはHSPの方が有益
タスクシステムはうんこ
うんこに指差してうんこって言って何が悪い
これはうんこじゃないやいって言ったところで
それはうんこだ
うんこうんこ
0330名前は開発中のものです。2009/02/08(日) 23:54:43ID:L1xVTjvz
あぁ、ウンコが何か吠えているw
0331名前は開発中のものです。2009/02/09(月) 00:03:05ID:jAkDZVno
>>328
いっぺん表作っちゃえば二度と悩まなくて済むよ
処理時間短縮重視ならこれ、メモリ使用量極小を狙うならこれ、
とかって簡単に決定できる

まぁ、大体PCならメモリとかCPUなんて潤沢に使えるから気にせず
コードの可読性だけでさくっと決めていい気がするけど
0332名前は開発中のものです。2009/02/09(月) 00:28:43ID:xIvd3PJC
>>315
普通にできるだろ
馬鹿かお前大丈夫か?
ていうか一度でも組んでみてから言ってくれよ

つーか、お前、タスクシステム云々がどうとかそういうところこだわる前に
プログラマとしてヤバイだろw
0333名前は開発中のものです。2009/02/09(月) 00:54:39ID:rrMBb3Sk
実際HSPでもシューティングゲームぐらい作れるしな。
0334名前は開発中のものです。2009/02/09(月) 01:34:23ID:K+aHd4rk
HSPで済むならそれを使っておけばいいんだよ。
適材適所。
0335名前は開発中のものです。2009/02/09(月) 01:44:30ID:Tt5KtR55
>>315
なーにが広義のタスクシステムだ。バッカじゃねーの?このカッペ野郎
毎度毎度テメェの都合でローカル用語の解釈を変えてんじゃねー
あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな

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

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

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

一方、プレイヤーや敵キャラなどは、上の前提条件が成り立たない。相互依存が多く、処理も一度「移動、ヒット判定、死亡判定」と決めたら、まず変更しない。
困難なポイントが違うので、解決策も必然的に変わってくる。
0337名前は開発中のものです。2009/02/09(月) 12:40:04ID:Q7FeorJ2
>>336

これでFA。
0338名前は開発中のものです。2009/02/09(月) 13:30:04ID:DGIHyZBW
>>335
>あと"ジョブ時間管理"とか訳のわかんねー用語を発明すんな
まだ君の頭では理解できないことかもしれないけど
”MTフレームワーク”でググって勉強してみれば意味が分かるかもね…
0339名前は開発中のものです。2009/02/09(月) 16:20:33ID:rrMBb3Sk
もうちょっと違う切り口から。
今、ゲームを ウィンドウ と DirectX と ゲーム管理 と ゲームオブジェクト の4つに分けて考える。
データの流れ(処理の流れ)に着目すると、
  DirectX        → ウィンドウ
    ↑               ↓
  ゲームオブジェクト ← ゲーム管理
という関係が成り立っている。
ウィンドウと入力と出力に分解すると、
  ウィンドウ(in)→ゲーム管理→ゲームオブジェクト→DirectX→ウィンドウ(out)
となり、<入力>→<プログラム>→<出力> という昔ながらのシンプルなモデルになる。

ところがここにオブジェクト指向の概念(データ構造でプログラムを分解する)を導入すると、
  ウィンドウ→DirectX→ゲーム管理→ゲームオブジェクト
となり、前述のデータの流れ(処理の流れ)
  ウィンドウ(in)→ゲーム管理→ゲームオブジェクト→DirectX→ウィンドウ(out)
と相反してくる。
この問題を解決するには、データ構造とデータの流れ(処理の流れ(制御構造))をそれぞれ別々に記述できる
C言語が最強ということになる。カプセル化なにそれ。
0340名前は開発中のものです。2009/02/09(月) 16:42:01ID:rrMBb3Sk
わけのわからない例題は読みたくないという人へ。
プログラムの三大要素は
・データ構造(struct、etc)
・制御構造(function、etc)
・定数(define、etc)
である。
それぞれ別のものだから、別々のところに別の方法で別々に作成するのがCスタイル。
一方、データ構造に合わせて制御構造と定数を分断し、すべてデータ構造に括り付けるのがC++スタイル。
当然、C++スタイルでは制御構造は制御的に意味のないところで分断される。
また、C++には制御構造をどこでも分断できるようにするためのナイフが用意されていて、それが仮想関数。
プログラマは仮想関数を使いデータ構造にしたがって制御構造を分解する。
晴れて本来一つのまとまった処理だったものがあちらこちらに散らばる。
0341名前は開発中のものです。2009/02/09(月) 16:43:55ID:kpyVvUs4
>>340
わけがわからないから3行でまとめて。
0342名前は開発中のものです。2009/02/09(月) 16:47:46ID:rrMBb3Sk
>>341
今一度C++で何が起こったか考えるべき。
データ構造と制御構造と定数はそれぞれ別々のもの。
一つに纏めようとするのはナンセンス。
0343名前は開発中のものです。2009/02/09(月) 16:54:17ID:Q7FeorJ2
MVC
知らない奴は
サヨウナラ
0344名前は開発中のものです。2009/02/09(月) 17:06:06ID:rrMBb3Sk
MVCとか的外れもいいとこ
0345名前は開発中のものです。2009/02/09(月) 17:10:20ID:iuuYPzaN
定数を分ける意味がわからん
0346名前は開発中のものです。2009/02/09(月) 17:11:46ID:OcO9vKc8
>  ウィンドウ→DirectX→ゲーム管理→ゲームオブジェクト
>となり、前述のデータの流れ(処理の流れ)
>  ウィンドウ(in)→ゲーム管理→ゲームオブジェクト→DirectX→ウィンドウ(out)
>と相反してくる。

ミドルウェア(グローバル関数)→ゲーム管理(シーンクラス)→ゲームオブジェクト(クラス群)→ミドルウェア
こうならいいのかな。よく分からんけど。
0347名前は開発中のものです。2009/02/09(月) 17:23:48ID:rrMBb3Sk
>>345
C++とかだと、定数は、
class C
{
private:
 enum{ HOGE_MAX=10, PIYO_SIZE=100, };
public:
 enum{ ERR_MEM=1, };
};
とかするのが美徳とされている。
0348名前は開発中のものです。2009/02/09(月) 17:38:52ID:qRHH/+SE
>>336
それは、プレイヤーや敵キャラのループはハードコーディングしかありえないって意味?
あるいはループとは違う仕組みとか。(タイマ割り込みとか)

>>339-340
それは単なるプログラミングスタイル(表現)の違い。
Cを始めとする手続き型言語を用いたプログラミングでは処理を始めから最後まで小説のように一本の線で書くことが得意。

それに対しC++やJavaを始めとするオブジェクト指向な言語によるプログラミングでは地図のように、オブジェクト間にはりめぐらされる道(ネットワーク)によってプログラムを表現しようとする。
だからソースを上から順番に読めば全体が理解できるとかいう話では無くなる。
C++で書かれたプログラムの全体を理解したいのであれば、クラス図(UML)でも書き起こすと良いと思うよ。
Doxygen対応のコメント書いておけば自動生成できるし。
0349名前は開発中のものです。2009/02/09(月) 17:45:46ID:rrMBb3Sk
>>346
 ゲームオブジェクト(クラス群)→ミドルウェア
の部分はどうなってるの?
1.ミドルウェアはグローバルであり、どこからでもアクセスできる。
2.ミドルウェアへのアクセサは処理の都度、引数でもらう。
3.ゲームオブジェクトはミドルウェアへのアクセサを内部に保持している。
  (ゲーム管理クラス経由、など間接的な場合を含む)
0350名前は開発中のものです。2009/02/09(月) 17:51:54ID:OcO9vKc8
>>349

0351名前は開発中のものです。2009/02/09(月) 18:07:00ID:pOUPLq7j
で?
なんかごちゃごちゃ長いけど
タスクシステムが何の問題の何を解決するのかでたのかい?
0352名前は開発中のものです。2009/02/09(月) 18:10:33ID:rrMBb3Sk
>>348
>それに対しC++やJavaを始めとするオブジェクト指向な言語によるプログラミングでは地図のように、
>オブジェクト間にはりめぐらされる道(ネットワーク)によってプログラムを表現しようとする。

あなたは「オブジェクト指向では地図のように〜〜」と言うが、その理由までは考えないのか。
また、そういう性質はゲームに向いていると思う?
「地図のようにはりめぐらされるネットワークによってプログラムを表現」したい?
それに例えオブジェクト指向でも、地図のようにはりめぐらされるネットワークは決して歓迎されていない。
0353名前は開発中のものです。2009/02/09(月) 18:22:40ID:rrMBb3Sk
>>350
データ構造よりもデータの流れ(処理の流れ)
  ミドルウェア(グローバル関数)→ゲーム管理(シーンクラス)→ゲームオブジェクト(クラス群)→ミドルウェア
を重視した設計だね。
0354名前は開発中のものです。2009/02/09(月) 18:51:16ID:ixLiaNv+
次の新説
タスクシステムは実はフレームワークだったのだよ
なにー!?
0355名前は開発中のものです。2009/02/09(月) 18:53:31ID:Tt5KtR55
>>338
> まだ君の頭では理解できないことかもしれないけど

http://www.google.co.jp/search?hl=ja&q="ジョブ時間管理"
"ジョブ時間管理"との一致はありません

google様が聞いたことねーっつってるわけ。意味わかる?
お前はそんだけ奇特な用語をポコポコ発明してるわけよ
自覚ねーの?ワナビーだから?知ったかクンだから?巣篭もりしてっから?
とっとと部屋から出ろよバーカ


で、もしかしてお前、ジョブスケジューラとかジョブスケジューリングのことが言いたいの?
だったら何で

>”MTフレームワーク”でググって勉強してみれば意味が分かるかもね…

何でMTフレームワークでググって勉強とかいう超絶的に頭悪そうなお話になるのかな?
ジョブスケジューラとかジョブスケジューリングってもっと汎用的な、OSの概念だよねぇ?
MTフレームワークのお勉強?低学歴ワナビーは紹介記事を読んだだけでお勉強になるの?
おめぇそんなんで何かを知っちゃった気になれるわけ?ワナビーが背伸び発言するには十分なの?



0356名前は開発中のものです。2009/02/09(月) 18:59:43ID:ixLiaNv+
タスクシステムは何なの
イディオムなの?
デザインパターンなの?
フレームワークなの?
それとも、それらを超越した存在、神いわゆるGODなの?
それとも、新しいプログラミング言語のプロトタイプなの?
それとも、やっぱりただのうんこなの?
謎は深まるばかりだ

"working time management"
マイナーなつづりだな、きっと一部の選ばれしものだけが読める
論文かなんかで秘密裏に発表されているんだろう
俺ら凡人に対してそんな高度な言葉を使うなんて
普通に嫌な奴だな
0357名前は開発中のものです。2009/02/09(月) 20:37:24ID:Tt5KtR55
>>275
mediatorやobserverがゲームプログラムの中に登場するというなら問題ない
タスクシステム(>>2)の中にmediatorやobserverがあるというなら知能障害確定だな

ねーよ。どこにも

前スレで>>2はオブサーバーだとか言って喚いてたバカに何度も何度も何度も
何で?何で?何で?何で?何で?何で?何で?何で?何で?何で?何で?
と質問責めにしたが、まともな返事は返ってこなかった
0358名前は開発中のものです。2009/02/09(月) 20:47:32ID:xIvd3PJC
>>357
帰ってきてたじゃん
アレだろ?
更新タイミングはメッセージじゃね?
って返答だっただろ?
んでそうだよ→ちがうよ→そうだもん→ちがうもん・・・以下ループ
で終わったじゃん
俺は当事者じゃねぇけどw
0359名前は開発中のものです。2009/02/09(月) 21:03:37ID:Tt5KtR55
ビデオゲームにおけるジョブ。ジョブを分解したタスク
タスクという内部の処理単位を扱う何らかのシステムであるわけだ
>>2はビデオゲームにおけるあらゆる処理を1/60[sec]で起床させる


何で?何で?何で?何で?何で?何で?何で?何で?何で?何で?
バカ?バカ?バカ?バカ?バカ?バカ?バカ?バカ?バカ?バカ?

ほれ。これに答えた奴は一人もいねーよ
0360名前は開発中のものです。2009/02/09(月) 21:18:37ID:8Rt3AtN0
機械語で組んでた頃のテクニックの代替手段なんて今はいくらでもあるんだから好きに作ればいいのに
0361名前は開発中のものです。2009/02/09(月) 21:25:02ID:Tt5KtR55
だよねぇ
■ このスレッドは過去ログ倉庫に格納されています