タスクシステム総合スレ part4
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/02/01(日) 12:38:10ID:rVEgp4cMpart3 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/
0513名前は開発中のものです。
2009/02/14(土) 11:07:09ID:xuJiOY9g>>std::vectorだとinsert/deleteがO(N)になるけどオブジェクトが増えてくるとまずくない?
>空きインデックス保持&削除時NULL代入式なのでO(1)のはず・・・
そこまで見てなかった。ごめん。
一時的にオブジェクトを1万ぐらい作って、その99%がdeleteされた場合、
すかすかのstd::vectorが残るのでgarbageは何らかの条件でやったほうがいい気はするけど
まあ、それはそれやね。
> 型の種類が増えると、型自体の検索のオーバーヘッドがどうなるかというのはちょっと心配だ。
> なんせdynamic_castはむちゃくちゃ重いからなぁ。
型ごとに分類するため一回traverseしていいなら、dynamic_castなんか使わずに
typeidでそのアドレスで分類したほうが速いでしょう。
>>structにtypedefは不要。
>マジでしらんかった。勉強になりました。C++すげー
うん
struct XXX
{
};←最後型名とか書かない。
どうも、あなたのソースは書き方がC++としては素人っぽいので、
C++をもう少し勉強しよう。
0514名前は開発中のものです。
2009/02/14(土) 11:13:13ID:xuJiOY9g>>staticでOperandListを持っているのがダサイね。static禁止!
>うーん、これに関しては、static使わないとなると、引数を持ちまわらないといけなくなるから勘弁ねがいたい。
なんで?
TaskSystemがOperandListを持っているなら、素直に
taskSystem.AddOperand(boost::function…)
↑これ指定するだけのことだけど、これがそんなに嫌?
0515名前は開発中のものです。
2009/02/14(土) 11:52:44ID:V87nWtWS「taskSystem」はグローバル変数?
とにかく、OperandListがプロセス中で唯一になれば、あとはどうでも。
0516名前は開発中のものです。
2009/02/14(土) 12:02:55ID:AT9MJLSnまた、目的も計画性も無しにとりあえず組んでみた?
会社だったらその作業に誰にどんな理由で金払わせるの?
説明してよ
0517名前は開発中のものです。
2009/02/14(土) 12:11:31ID:V87nWtWS0518名前は開発中のものです。
2009/02/14(土) 12:27:01ID:q8lA0UPYまーたプロ気取りお説教君がブリブリしてるのか
その学生さんが投下したネタの趣旨くらい適当にESPで汲み取ったれや。な
爪先立ちのワナビー君とかモバゲ底辺のクズにはそんな心の余裕はないかい?ん?
0519名前は開発中のものです。
2009/02/14(土) 12:28:31ID:g0on6kGh他のクソ・パターン?・サンプルにも突っ込んでやれよ。
0520名前は開発中のものです。
2009/02/14(土) 12:29:11ID:AT9MJLSn問題はその意味不明な行動理由だよ
毎回毎回目的もなく脊髄反射的に動いて後から自分の行動に理由付けするから
わけわからない方へいくんじゃないの?
0521名前は開発中のものです。
2009/02/14(土) 12:35:03ID:g0on6kGh自他に害及ぼさない限りにおいて。
0522名前は開発中のものです。
2009/02/14(土) 12:38:40ID:q8lA0UPYおめえ、前スレで頭鈍いせいで話に付いてけなくて説明責任!説明責任!とか
吠えてたバカタスカーだろ
0523名前は開発中のものです。
2009/02/14(土) 13:23:18ID:xuJiOY9g> 「taskSystem」はグローバル変数?
> とにかく、OperandListがプロセス中で唯一になれば、あとはどうでも。
なぜそれがグローバル変数だと思うのだ・・。それはある意味やばいぞ。
グローバル変数もstatic変数もまともなC++のクラス設計では使わないし、使う必要もないのだが。
class GameMain
{
TaskSystem taskSystem;
void Start()
{ ... }
};
int main(...)
{
GameMain().Start();
return 0;
}
こうなってると思ってくれ。
0524名前は開発中のものです。
2009/02/14(土) 13:40:46ID:krP7oFWE最後のGameMain().Start()はGameMainのテンポラリオブジェクトを作ってそのメソッドを呼び出しているのか。
お前、C++の相当のマニアだな?
0525名前は開発中のものです。
2009/02/14(土) 13:50:03ID:ojCD6VCw感動した。
0526名前は開発中のものです。
2009/02/14(土) 13:56:13ID:vCXBLjPV昔C言語の話題で「ポインタなんて難しい言葉つかってえらそーに!
そんなの使わないでもプログラム組めるんだよ!」と涙ながらに吼えてるのを
見たことがあるが…
彼は今もポインタという言葉にトラウマを抱えて生きているのだろうか。
0527名前は開発中のものです。
2009/02/14(土) 14:27:14ID:q8lA0UPYそのお話とタスクシステム話はどう結び付くんだい?
ポインターは意味が明らかなわけだが、タスクシステムはどうよ?
みんな俺俺プログラムだよな。定義不明瞭。みんなバラバラ
なーんてというと『いや共通項は>>2だから。実装付きできちんと定義されてるし。ナムコだし』と擁護&釈明してくる
じゃあと>>2に共通する謎仕様、謎実装を追求すると今度は
『オイラのタスクシステムは違う』
『現代的タスクシステムはもっとすごい(はず)』
とか逃げる
じゃあやっぱローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー
というと、『言葉狩りがしたいだけか。名前が気に入らないだけだろ』と知能障害をきたす
パープリンすぎてトラウマになるな
0528名前は開発中のものです。
2009/02/14(土) 14:33:38ID:V87nWtWSそれだと他所の関数や他所のクラスがtaskSystemへのポインタを知るための仕組みが居るから困る。
taskSystem(の中のOperandList)は、ぶっちゃけデータベースだからプロセス毎に一つあればそれでよい考え。
やりたいことは、
ゲーム中で使うデータ(オブジェクトなど)は全部データベースに登録する。
データを処理するときは、データベースにリクエストする。(このとき排他処理も自動的にかける)
リクエストに引っかかったデータはすべて並列的に処理される。(データが多い場合は各コアで並列に)
ねらいどころは、
排他処理の自動化。データ構造に基づいてロックをかけるのでデッドロックしない。
処理の自動並列化。
すべてのデータがデータベースに登録されているので、データ構造が明確。
処理の流れが基本一本道なので、どこで誰がなにをしているかすぐ分かる。
0529名前は開発中のものです。
2009/02/14(土) 14:56:39ID:vCXBLjPV> みんな俺俺プログラムだよな。定義不明瞭。みんなバラバラ
> じゃあやっぱローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー
何か権威から定義付けされてない言葉は公衆の場で使うな、ということかい?
たとえばデザインパターンが生まれる前からあれらのアルゴリズムはみんな俺俺実装で使われてたし
その時代に彼らは自己流な命名で呼び合ってた。むしろGoFみたいに定義されてる方がマレ。
ふつーにゲーム作ったことあるプログラマなら「タスクシステム」と言われれば
どんなことをしたいシステムなのかだいたい想像つくし。よほどの新人でもない限りその程度で事足りる。
現場ごとにのローカル定義用語なんて開発現場じゃいくらでもあるよ。
それらを厳密に定義した言葉じゃないと認めん、なんて言ってたら社会生活おくれんだろ。
まぁ、ここは開発現場じゃなくてゲーム作りたくて挫折した人とかもいて
何かコンプレックスを刺激されるのかもしらんが、そんなトラウマになるほど思いつめなさんな。
0530名前は開発中のものです。
2009/02/14(土) 14:57:04ID:V87nWtWSこれは無理か。
・データベースへのリクエスト時はデータベース全体をジャイアントロック。
・しかし、リクエストそのものは並列実行される。
こうだな。
0531名前は開発中のものです。
2009/02/14(土) 14:57:19ID:krP7oFWE> ぶっちゃけデータベースだからプロセス毎に一つあればそれでよい考え。
データベースにしてもサイトごとに仮想化して何個も用意するじゃん。
ゲームにしても、全然別の2つのゲーム(例えばミニゲームを2つだとか)を動かしうるなら、
そんな何の関係もないオブジェクトを同じOperandListに登録するのは嫌だし、無駄だ。
> それだと他所の関数や他所のクラスがtaskSystemへのポインタを知るための仕組みが居るから困る。
それは実装技術が足りてないだけだろ。
一体、どういうコードを想定してんだ?
ちょっとソースを例示してくれ。俺が書き直してやる。
0532名前は開発中のものです。
2009/02/14(土) 15:15:06ID:q8lA0UPY>何か権威から定義付けされてない言葉は公衆の場で使うな、ということかい?
人と会話するときはきちんと相手の話を聞こうや
それが文章なら、質問する前によく読み返そう
大人の常識でしょ?というか学校で教わったでしょ?
自分で引用した文くらいちゃんと読もう。な。
はい、では大きな声で復唱しましょー
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
脳みそに染み渡った?質問どうぞ
0533名前は開発中のものです。
2009/02/14(土) 15:21:00ID:XyngaOK40534名前は開発中のものです。
2009/02/14(土) 15:22:55ID:vCXBLjPVまぁ落ち着けや。
別にポインタ分からなくてもプログラムは作れるし
タスクシステム分からなくてもゲームは作れるさ。
君に理解できないことを他人が理解できたからって君が劣っているわけじゃないよ。
人間には個性があるんだから。君にしか出来ないことがあるかもしれない。
涙を拭いて外に出よう。
0535名前は開発中のものです。
2009/02/14(土) 15:23:33ID:vvv9+ke/デザインパターンは良く出る形でメリットがあるものを厳選している
タスクシステムは良く出る形だがメリットがないものを実装だけ俺俺定義している
デザインパターンの本で実装があまり重視されていないのは
メリットデメリットや問題解決などの方が重要だから
一方タスクシステムは実装ばかり重視されてそれ以外がない
よって同一のものではない、形だけが近い別物となる
ちなみにアンチパターンには該当してるみたいだけどね、タスクシステム
次はC++イデオム話ですか、やれやれ
イディオム話をするってことはどうやらフレームワークの話ではないらしい
0536名前は開発中のものです。
2009/02/14(土) 16:01:59ID:q8lA0UPYあれあれ?そうあってほしいの?そう思い込みたいの?
自称大人なのに言うに事欠いて妄想世界にイっちゃうの?
脳内世界で願望を実現して心穏やかになったところ悪いんだけど、何度も聞くよ?
>>529読んでね。脳みそに染み渡った?
で、↓の疑問は氷解した?
>何か権威から定義付けされてない言葉は公衆の場で使うな、ということかい?
もちろん氷解したよね?
0537名前は開発中のものです。
2009/02/14(土) 16:06:35ID:fs9yxo5u0538名前は開発中のものです。
2009/02/14(土) 16:08:51ID:t8bxwdC6>>510よりも良くなればアンチの勝ち。
良くならなかったらタスカーの勝ちだな。
0539名前は開発中のものです。
2009/02/14(土) 16:10:52ID:g0on6kGh結局言葉遊びか。外に出ろ
>>534わろた
0540名前は開発中のものです。
2009/02/14(土) 16:50:55ID:vvv9+ke/>>>510よりも良くなればアンチの勝ち。
>良くならなかったらタスカーの勝ちだな。
負けました、コード見たけど何がなんだかよくわからなかった
俺の知能じゃあ理解できないや
それにしてもタスクシステムはとっても便利な気がします
まさに神に選ばれた超天才のみが使いこなせるという
伝説の剣、そういわゆるゴッド神装備であることを痛感いたしました
俺は凡人だから使わないだろうけど
天才の方々は頑張ってください
凡人の俺はシェーダーでもいじってます
0541名前は開発中のものです。
2009/02/14(土) 17:13:51ID:AT9MJLSnまた、目的もなくとりあえず組んじゃった?
そういう行動改めた方がいいよ
自分では頑張ってるつもりなのにいつも結果に結び付かない状態になるよ
ソース読んであれこれ評価してる奴もおかしい
目的もなにもわかってないのになんであーだこーだ言えるの?
テキトーに気分で評価してテキトーなコメント入れてない?
ちゃんと目的を満たしているかどうかが評価ポイントじゃない?
0542名前は開発中のものです。
2009/02/14(土) 17:14:15ID:krP7oFWEあの程度のコードすら読めないとはよっぽど馬鹿なんだろうな
タスク派とかアンチタスク派とか以前にプログラマとして失格
お前みたいなクルクルパーに絡まれるやねが気の毒だ
0543名前は開発中のものです。
2009/02/14(土) 17:15:10ID:krP7oFWEお前みたいなクルクルパーもこのスレにはいらないからどっか行ってくれ。
0544名前は開発中のものです。
2009/02/14(土) 17:21:40ID:vvv9+ke/>タスク派とかアンチタスク派とか以前にプログラマとして失格
>お前みたいなクルクルパーに絡まれるやねが気の毒だ
おっしゃるとおりです
くやしいっ、でも感じちゃう、ビクビクッ
0545名前は開発中のものです。
2009/02/14(土) 17:29:48ID:vvv9+ke/問題領域がちょっと微妙な気もした
描画とロジックを混在させるのはまぁ、みなかったことにして
ロジックが細切れで、流れは見づらくないだろうかと思った
計算する部分を重視して、それがどう組み合わされているのかの部分が
ブラックボックス化するのには何か意味があるのでしょうか
俺にはその辺の意味が理解できなかった
まぁ、アンチタスカーで敗北者の俺の意見なんて無視していいよ
タスカーは神いわゆるゴッドなのだから気にするな
0546名前は開発中のものです。
2009/02/14(土) 17:32:45ID:laLZtnFH0547名前は開発中のものです。
2009/02/14(土) 17:48:23ID:krP7oFWE> 描画とロジックを混在させるのはまぁ、みなかったことにして
本当に馬鹿なんだなぁ。あれがあのフレームワークの真骨頂なのに。
あのフレームワークは、オブジェクトのinteractionを定義できるようになっているから、
描画すらも、Windowとobject(画面に表示すべき物体)とのinteractionとして定義できるってことだ。
なんで一番大切なところを見なかったことにするかな…
あんたはクルクルパーなんだから、アンチタスカーなんかを名乗ってくれるなよ。
アンチタスカーがみんなクルクルパーだと思われるじゃん。
0548名前は開発中のものです。
2009/02/14(土) 17:54:46ID:wj98RZ4Cで?結局、なんのためのソースだったの?
意味不明な行動してんじゃねーよ
いきなりソースもってきて「どうよ?」とか馬鹿か、頭おかしいのか?
0549名前は開発中のものです。
2009/02/14(土) 17:59:14ID:UJelYgTfおもしろい
void Loop() の相互作用が一覧で見れるってとこがかなりいいね
俺的難点を挙げるなら、「Tasksystem.h」何やってんだかワカンネェ orz
というあたりか。
・staticで定義された唯一のリストにデータを一緒くたに持ってる(型を気にせず)
・TASK1()とかTASK2()とかの引数に指定された型を元にリストから対象データを検索して処理を適用してる
この2点の意図を読み取るのがやっとだった。
演算子の意味づけ変更しちゃうともうC++じゃないね。俺的ゲーム用汎用スクリプト言語って感じ。読めない(俺が)。
他にはデータの保持方法がリストに全突っ込みってのがいいのか悪いのか判断がつかない。あまり問題は無い気もするが。
全体通してみると相互作用が見やすいという利点があって、逆に明確な悪いとこは今すぐ思いつかない。
データアクセス時に検索処理が間に入る分だけ、普通に変数定義しまくって変数名で直接アクセスするよりも重そうだなという程度。
ゲーム部分の可読性は高いし、性能が問題になったらデータ定義方法変えればいい話だし、かなりいけてる気がする。
今までのタスクシステムよりは断然こっち使う方が良い。先につながる。
ちなみに俺はアンチタスクシステム派です。
0550名前は開発中のものです。
2009/02/14(土) 18:02:25ID:Py1NnjYOお美しい・・・
0551名前は開発中のものです。
2009/02/14(土) 18:25:49ID:krP7oFWE頭がおかしいのはお前。あのレベルのソースすら読めないならプログラマの資格なし。
低脳がほざくんじゃねえ!
0552名前は開発中のものです。
2009/02/14(土) 18:30:38ID:ojCD6VCwごった煮リストにすることの利点が、相互作用を
"ちゃちゃっ"と記述ことにあるんだよ
と解釈したのだけれど、自分は結構面白く感じたし、、
十分利点になると思う
速度はどうなの?とか実装的問題は賢い人がなんとか解決するとして。
すると、中身でごった煮になっていない方法もありえるのかも
因みに自分もアンチ
0553名前は開発中のものです。
2009/02/14(土) 19:00:13ID:vvv9+ke/おっしゃるとおりバカでございます
有名なフレームワークの名前は一通り存じてございますので
名前をおっしゃっていただきさえすれば理解することもできましょうが
なにぶん、新種のフレームワーク事情にうといものでして
名前もわからないと何がなんだかわからぬのでございます
問おう、何のフレームワーク?
これだけ、罵ったんだから当然知っているだろうし答えられるよね(はーと)
0554名前は開発中のものです。
2009/02/14(土) 19:06:36ID:krP7oFWE何言ってんのかわからん。
510をフレームワークと呼んで何が悪いんだ?
0555名前は開発中のものです。
2009/02/14(土) 19:13:09ID:vvv9+ke/>510をフレームワークと呼んで何が悪いんだ?
何言ってるんですか
フレームワークといったらMVCやDocument-Viewなんかのことですよ
基本ですよ、知らないはずがないじゃないですか
もし、知らないでフレームワークフレームワークきゃはきゃは言ってたら馬鹿ですよバカ
新種のフレームワークなら名前を付けてください名前を
既存のフレームワークのような口ぶりで語るから
有名なフレームワークと勘違いしたじゃありませんか
あやまってください、お天道様にあやまってください
あやまれよぅ><
0556名前は開発中のものです。
2009/02/14(土) 19:13:48ID:vCXBLjPV結局、言葉遊びで批判はできるけどプログラムで証明することは出来なかったということか。
0557名前は開発中のものです。
2009/02/14(土) 19:14:30ID:q8lA0UPY>> 描画とロジックを混在させるのはまぁ、みなかったことにして
>本当に馬鹿なんだなぁ。あれがあのフレームワークの真骨頂なのに。
あのフレームワークて何?まさか>>2?
描画?真骨頂?OBJやBGを出力してくれる回路積んでた当時の話?
OBJの描画処理つーても基本的にはOAM(OBJの属性情報を入れるRAM。位置とかパターン番号とか)の
指定位置を書き換えるだけ。更新、状態遷移が確定したついでにOAMの指定位置を書き換えてたってだけ
真骨頂?は?
>あのフレームワークは、オブジェクトのinteractionを定義できるようになっているから、
>描画すらも、Windowとobject(画面に表示すべき物体)とのinteractionとして定義できるってことだ。
何いってるのこのバカタスカーは?頭蓋の中に何入ってるの?うんこ?
0558名前は開発中のものです。
2009/02/14(土) 19:16:49ID:krP7oFWE本当に馬鹿なんでね?ソフトウェア工学でフレームワークって言ったら
http://en.wikipedia.org/wiki/Framework
A software framework is a re-usable design for a software system (or subsystem)
この程度の意味だろ。
510は十分、re-usable designだと思うんだが。
0559名前は開発中のものです。
2009/02/14(土) 19:17:49ID:krP7oFWE基地外死んでくれ。
あのソースすら読めないならプログラムを語る資格はあんたにゃ無い。
0560名前は開発中のものです。
2009/02/14(土) 19:27:38ID:q8lA0UPYなんであのフレームワークとか言うんだ?
本人がタスクシステムつー名前付けてるんだから
>>510のタスクシステムて呼んであげればいい
>>2との共通部分はごった煮ってだけだけど
作者の意思は尊重されるべき
0561名前は開発中のものです。
2009/02/14(土) 19:28:26ID:krP7oFWEああ、そういう意味なら、勝手に呼び変えて悪かった。
0562名前は開発中のものです。
2009/02/14(土) 19:29:53ID:vvv9+ke/アーキテクチャパターンの話だと思ったんじゃがのぅ
違ったようじゃのぅ、何の話をしておるのかさっぱりじゃのぅ
しかし、そのスーパータスクシステムフレームワークを使う効能は
なんじゃろのぅ
わしゃいなかものじゃけぇ、ようわからん
0563名前は開発中のものです。
2009/02/14(土) 19:46:22ID:vCXBLjPV無理に理解する必要無いでしょ。特に必要性を感じてないなら。
別に他の方法で実装することもできるんだし。
自分のスキルにあった好きな方法で作ればいいんでない?
いくつかゲーム作ってれば、そのうち「あぁ、ここで使えば便利かも」って思える日が来るかもしれないし。
ゲームのタスクシステムなんて必要性を感じて、あれば便利だと思う人が使えばいいだけのもの。
誰も使用を強制なんてしてないよ。個人で作る範囲ではね。
0564名前は開発中のものです。
2009/02/14(土) 20:04:51ID:vvv9+ke/なるほど、あんたがやねうらおさんか又はそれに類する人ですね
タスクシステムはカルトや偽科学と同じ有害なもので
関わったものをほぼ間違いなく不幸にするだろう
カエルとびをすれば足腰が鍛えられるよって言う時代もあっただろう
焦って高い技能を取得しようとしている人を騙して(本人にその自覚はないだろうが)
あのおかしなパターンの使い方のくせを身に付けさせてしまったら
まともなパターンの使い方を覚える枷となる
ゼロからやるよりも長い時間を費やすことになるだろう
そして、あなたは長い時間をかけて嫌われていくのだろう
自らの無知を自覚せず行動するものは多数の者を傷つけるのだろう
あんたは何もわかっていない、又はわかっていて騙している悪人だ
私はあんたに要求する、黙るか、もっと考えろと、そして私欲を捨てろ
うんこでもしながらよく考えるんだな
0565名前は開発中のものです。
2009/02/14(土) 20:11:13ID:vCXBLjPVあのな
あんた一つの目的を達成する方法は一つしか無い、と考えてるのかい?
別にタスクシステムの考え方は万能じゃない、一つの方法に過ぎんよ。
使えるときには使う、他の方法がいいときは他の方法を使うって柔軟性が無いと
プログラマなんてできんよ。
方法はたくさん知ってるほうが有利だろ、タスクシステムを頭に入れたら
頭の中それだけになって他の方法を入れられないような鶏頭なら別だが…
0566名前は開発中のものです。
2009/02/14(土) 20:20:42ID:KRjtx6a7シンプルな相互作用と、シンプルなインスタンスなら簡単に書けて良いけど、
ちょっと規模が大きくなると辛そうな気はするな。
たとえば FPS だと、ヒット判定は総当りではなく BSP なり何なりで空間分割しないと
キツいが、こうなると TASK2() 使えない。もちろん"タスク”の枠組みでも書けなくは
ないが、ベタ書きより複雑になったら意味ないので。
メンバ変数全部 public も辛いかなぁ。アクセス保護の観点では、Star と Windows の
相互作用では m_x, m_y, m_w を readonly でアクセスしたいが、TASK1(Star) では
メンバ変数全部 read/writeしたい。
あとメンバ変数直接アクセスする仕組みだと、分割コンパイルにも支障が出るかなぁ。
処理が全部 Loop() に集中するから、こいつは Star や Window など全クラスの
定義を知っている必要がある。
また、Star などが単純で状態をほとんどもたないなら良いんだが、状態が複雑になると
外から直接メンバ変数を書き換えるのは危ない。たいていの場合、ヒット判定して、ヒット
してたら双方にメッセージを送っておくだけで、すぐには処理しない。で、後で自分の
Update() 処理の中でメッセージを受け取ってきて、自分の状態とメッセージを照合して
状態遷移する。
この辺の仕組みを入れようとすると、逆に複雑になりそうな気がする。
最後に欠点じゃないけど、タスクの派生クラスをどう扱うかは悩みどころだ。たとえば
Star を継承した Blackhole があったとして、こいつは TASK2(Star,Star) で参照される
べきか無視されるべきかの指定はあったほうが良いと思う。
0567名前は開発中のものです。
2009/02/14(土) 20:27:11ID:krP7oFWEポエマーいい加減死んでくれ
プログラムが読めない低脳がプログラム語るんじゃねえ
0568名前は開発中のものです。
2009/02/14(土) 20:36:30ID:q8lA0UPY寝言は寝て言え
たとえば、アンチタスクシステム側である俺が何故一貫して『>>510のタスクシステム』を
一切叩かないかというと、それが>>2とは提供する機能も実装も異なり、そして思想レベルでも>>2とは異質だから
たまたま同じタスクシステムという名、固有名詞を産みの親より授かった実態の全く異なるプログラムでしかない
俺の攻撃対象である>>2とそれを誉めそやして猿まねしてる石器人とは異質すぎる
0569名前は開発中のものです。
2009/02/14(土) 20:47:33ID:krP7oFWE実装も思想レベルでもありふれたタスクシステムと変わらないと思うが。
510の実装のキーポイントは、型を指定しての列挙だろう。
タスクのinteractionを書けるが、それにしても2つの型を指定して列挙してforeachを2重に回して
書いているのと何ら変わりがない。
これらの必要性は従来のタスクシステムでも散々言われてきたことだ。
0570名前は開発中のものです。
2009/02/14(土) 20:48:47ID:q8lA0UPYそいつはうんこうんこ言う詩的な便意君だろ
うんこが詰まると思考も詰まる体質なのかしらんが言動の水準が不安定だな
0571名前は開発中のものです。
2009/02/14(土) 20:49:11ID:vCXBLjPVあれ?
いつのまにか俺俺タスクシステムは攻撃対象から外れたんだ。
まぁ、それなら話は早い。
今時>>2と同じコードを使った古典的実装の化石なんてまずお目にかかれない。
今使われてる自称タスクシステムはほとんど拡張された俺俺タスクシステム改だよ。
>>2だけが限定なら見えない敵と戦うだけ時間の無駄だからやめとけ。
0572名前は開発中のものです。
2009/02/14(土) 20:54:30ID:ojCD6VCw>ヒット判定は総当りではなく BSP なり何なりで空間分割しないと〜
型から判別するのが方針である以上、判別がそれと違う方法を取る空間分割は
確かにこれに入れないほうがいいと思う
>メンバ変数全部 public も辛いかなぁ。
これは上手くやればなんとかできないだろうか........できないか
列挙と処理を一緒にやっちゃってるから、ここらへんに歪みがでてるんだろうな
列挙だけやらせて、その結果を使ってその別の場所に放り込むように
したほうがいいかもしれない
見た目はとっても面白いんだけれどもなぁ
0573名前は開発中のものです。
2009/02/14(土) 21:01:44ID:krP7oFWEおいおい。書いた本人は、C++は素人なんだからそんなところ突っ込んでやるなよ。
本当は、2つの型の相互作用させるのにしても、510のソースのように単純に
ループを2重に回すと要素数の2乗に比例する時間がかかるから、
指定された2つの型のものを1回のtraverseで、個々のvectorにでも格納して、
そのvector同士に対してfunctorを呼び出してやったほうがいいに決まってる。
だけど、まあ、そのへんは、コンセプトデモってことで別にいいんでね?
0574名前は開発中のものです。
2009/02/14(土) 21:06:12ID:krP7oFWE> 最後に欠点じゃないけど、タスクの派生クラスをどう扱うかは悩みどころだ。たとえば
> Star を継承した Blackhole があったとして、こいつは TASK2(Star,Star) で参照される
> べきか無視されるべきかの指定はあったほうが良いと思う。
510は前者の実装。後者の実装にしたければ、dynamic_castしているところをtypeid
の比較に変更するだけ。
まあ、そのへんは突っ込んでも仕方ないかと。
0575名前は開発中のものです。
2009/02/14(土) 21:08:48ID:krP7oFWE> メンバ変数全部 public も辛いかなぁ。アクセス保護の観点では、Star と Windows の
> 相互作用では m_x, m_y, m_w を readonly でアクセスしたいが、TASK1(Star) では
> メンバ変数全部 read/writeしたい。
これに対してな。
0576名前は開発中のものです。
2009/02/14(土) 21:09:32ID:wj98RZ4C>だけど、まあ、そのへんは、コンセプトデモってことで別にいいんでね?
>>510は目的なんか何も言ってないんだけど?
0577名前は開発中のものです。
2009/02/14(土) 21:11:32ID:krP7oFWEあのソースが本チャンで使えるものだと思ってるなら、お前は頭おかしい。
0578名前は開発中のものです。
2009/02/14(土) 21:20:32ID:krP7oFWE> for(size_t _i1=0; _i1<_size; ++_i1)\
> for(size_t _i2=0; _i2<_size; ++_i2)\
> {\
> if(NULL==dynamic_cast<Operand1 *>(Operand::OperandsList[_i1].Head())){ continue; }\
> if(NULL==dynamic_cast<Operand2 *>(Operand::OperandsList[_i2].Head())){ continue; }\
ここにしても、一つ目のifを2つ目のforより手前に書けばいいものをわざわざ内側に書いてるのは
わかりやすく見せるためだけであって、速度的な観点からすれば無駄以外の何ものでもないんだが。
これがコンセプトデモで無いなら何だと思うんだ?
0579名前は開発中のものです。
2009/02/14(土) 21:22:55ID:UJelYgTfアンチが反応するのは
「タスク=ゲームオブジェクト」システム
俺俺タスクシステムか、C++なんちゃってタスクシステムか、 >>2 かは関係無い。
0580名前は開発中のものです。
2009/02/14(土) 21:26:00ID:krP7oFWEまあ、510のプログラムすら読めないクルクルパーは論外としてな。
アンチタスク派はそもそもタスクシステムを何だと思ってたんだろうかな。
型を指定しての列挙は例えば、やねですら何度もしつこいぐらいに書いているのに。
http://d.hatena.ne.jp/yaneurao/20090203
やねの提唱するタスクシステムでも、510の書き方が出来るわけで、彼にしても
こういう書き方をすることも含みに持たせているのにそれすら
このスレのアンチタスク派はわかってなかったんだろうな。
まあ、結局、こうだろ。
俺>>(超えられない壁)>>やね>>510 >>(超えられない壁)>>このスレのアンチタスク派
0581名前は開発中のものです。
2009/02/14(土) 21:27:52ID:vvv9+ke/バカな奴、墓穴を掘ったな
俺の言葉で語るということは、俺のフィールド上に上がるも同然
フレームワークを選択する場合に必要な情報というものもあるだろう
というわけで、タスクシステムのメリットとデメリット等を
教えてもらおうか
0582名前は開発中のものです。
2009/02/14(土) 21:28:43ID:krP7oFWEなんか知らんが510のプログラムすら読めないポエマーは引っ込んでろ。
0583名前は開発中のものです。
2009/02/14(土) 21:35:46ID:q8lA0UPY文盲妄想更年期障害脳軟化タスクオヤジか
てめえはまず俺の質問に答えろ
>あれ?
>いつのまにか俺俺タスクシステムは攻撃対象から外れたんだ。
おめえはまず両目の瞼と眉を洗濯バサミで挟んで>>527を100回読み返しな
巡回ナメナメは得意なんだろ?ナメるように読め
俺は、議論で窮すとてめえの都合で狭義(は?)だの広義(はぁ?)だのの
新解釈をクリエイトして逃げ回ってるタスカー気取りのカス共が大嫌いなんだよ
0584名前は開発中のものです。
2009/02/14(土) 21:41:12ID:krP7oFWEそいつはどうでもいいから、俺と遊んでくれ。
510のプログラムについてもっと建設的に語り合おうぜ。
0585名前は開発中のものです。
2009/02/14(土) 21:41:39ID:q8lA0UPY>まぁ、それなら話は早い。
>今時>>2と同じコードを使った古典的実装の化石なんてまずお目にかかれない。
>今使われてる自称タスクシステムはほとんど拡張された俺俺タスクシステム改だよ。
おい、また妄想か?てめぇの身の回りのローカル情報か?検証可能なのか?
悪いこた言わねー。黙って目を皿のようにして過去ログ読み返せ
ほれ、21世紀にもなって松浦本や逆引き本で嬉しい嬉しいて喜んでる奴いんじゃねーか
今もが泳いでそうな奴がそこらにいるんじゃないか?あ?
>>>2だけが限定なら見えない敵と戦うだけ時間の無駄だからやめとけ。
てめえに都合の悪いクリーチャー共の存在を無かったことにしようとしても無駄だからやめとけ
0586名前は開発中のものです。
2009/02/14(土) 21:45:21ID:vvv9+ke/>>2を読んでみても実装方法しか書いてありませんっ><
しかも、>>2は違うとまで言われましたっ><
「それは広義のタスクシステムだよ」とわけのわからないことを言われましたっ><
フレームワークの話だと思っていたらイディオムの話でしたっ><
イディオムの話だと思っていたらやっぱりフレームワークの話でしたっ><
海外ではまったく見かけられません、有名な本にも載っていませんっ><
プログラム読めるのになぜか読めないことにされていますっ><
挙句の果てに、なぜか集中攻撃を食らいますっ><
0587名前は開発中のものです。
2009/02/14(土) 21:45:31ID:krP7oFWE誰と戦ってんだ。俺と戦おうぜ。俺と。
0588名前は開発中のものです。
2009/02/14(土) 21:46:46ID:krP7oFWEあんたは510のソースを読めなかったんだから、あと半年ほどROMってなよ。
0589名前は開発中のものです。
2009/02/14(土) 21:49:41ID:q8lA0UPYちょっと待て
今ネトゲやりながらだから頭使うレスできない
0590名前は開発中のものです。
2009/02/14(土) 21:51:10ID:wj98RZ4Cタスクシステムを使うことによって何のどんな問題が解決するの?
0591名前は開発中のものです。
2009/02/14(土) 21:51:17ID:vCXBLjPVノコギリのメリットとデメリットを説明するには骨が折れるなぁ…
タスクシステムの考え方はゲーム作るうえで便利だから、というのは
自分で経験して体感するのがいいと思う。
数当てゲームとか○×ゲームみたいな小さいゲームじゃなくて
ステージ制シューティングとかそれなりに複雑なゲームを作ってみるといいんでないかな。
タスクシステムを使うにしろ使わないにしろ、そーいったシステムの必要性は理解できるようになると思う。
もっといい実装があるなら使わなきゃいいだけの問題だし。
ゲ製作技術に居るってことはゲーム作りたいんでしょ?
たぶんここで屁理屈こねてるより有意義だと思うぞ。
まぁ、それが出来ないコンプレックスからタスクシステム憎しになってるなら
もう何も言えんが…
0592名前は開発中のものです。
2009/02/14(土) 21:54:10ID:wj98RZ4Cで?誰のなんの質問に答えた気になってるの?
馬鹿じゃないの
0593名前は開発中のものです。
2009/02/14(土) 21:54:23ID:vvv9+ke/>あんた一つの目的を達成する方法は一つしか無い、と考えてるのかい?
俺は天才なので数多の戦術から最適な戦略を模索します
>別にタスクシステムの考え方は万能じゃない、一つの方法に過ぎんよ。
>使えるときには使う、他の方法がいいときは他の方法を使うって柔軟性が無いと
>プログラマなんてできんよ。
>方法はたくさん知ってるほうが有利だろ、
だから俺はずっとそう言ってるでしょうが
>タスクシステムを頭に入れたら
>頭の中それだけになって他の方法を入れられないような鶏頭なら別だが…
選択するときに必要な情報がない、全くない、誰も答えない
何度も聞いてるのにタスカーはみんな無視、誰も答えない
メリットとデメリットがわからないものを選択肢に入れろと?
何をバカなことを、わはは
それさえ答えてくれれば話は進む
さぁ、遠慮せずにメリットデメリット等の
タスクシステム特有の情報を惜しむことなく我輩に告げるがよい
チンチン、まだー?
0594名前は開発中のものです。
2009/02/14(土) 21:54:38ID:krP7oFWEそんなことどうでもいいから510読んだ感想でも書いてよ。
0595名前は開発中のものです。
2009/02/14(土) 21:55:04ID:KRjtx6a7問題は、コンセプトを維持したまま本チャンで使えるように改修できるかどうかだな。
俺は、あの"タスク”はネタとしては面白いが、使える場面は極めて限られると思う。
ちょっと複雑な処理をしようと思うと、逆に枷になる。
ネタとしては面白い。
0596名前は開発中のものです。
2009/02/14(土) 22:00:50ID:vvv9+ke/結局、答えられないんじゃん
うちの宗教に入るメリット?
うーん、とりあえず入っちゃって考えればいいよ
さぁ、入会だ
だってよ、ふぅ危ないところだったぜ
こっちは質問は明確でずっとそういい続けてきたのに
タスカーはみんな無視してきた、ずっとだ
何がいいたいかと言うと
ばーかばーかちんじゃえ
0597名前は開発中のものです。
2009/02/14(土) 22:04:44ID:wj98RZ4C何をやるにも目的をはじめにおかない
自分のとった行動の理由を後で考える
とった行動の優劣の判別ができない・させない
これらは他にどんなことができる奴であろうが技術者として最悪だ
何も生み出せない
この先素質や直感だけじゃ解決することができないような仕事をやるハメになるだろうよ
そんときにこの有様ではなにもできない
成長しねぇっつの
>>510が出てきたときにソースがあるってだけで飛びついて
目標もなにもねぇのに評価なんてはじめた馬鹿は何か考えて評価したのか?
目的がわからねぇのにてめぇ、何を評価しようとした?
0598名前は開発中のものです。
2009/02/14(土) 22:07:49ID:KRjtx6a70599名前は開発中のものです。
2009/02/14(土) 22:09:18ID:ojCD6VCw0600名前は開発中のものです。
2009/02/14(土) 22:09:48ID:krP7oFWE目的って、あのソース見て目的がわからなければ相当の低脳だろ。
プログラム一行でも書けんのか?
プログラムかけねぇヤシはすっこんでろ。
0601名前は開発中のものです。
2009/02/14(土) 22:15:03ID:UJelYgTf> 処理の流れが基本一本道なので、どこで誰がなにをしているかすぐ分かる。
これを達成しつつ、
> 処理の自動並列化。
これを実現したいということだよね。
そのためにデータ共有を制御したいということだよね。
> ・データベースへのリクエスト時はデータベース全体をジャイアントロック。
これは分かる。
> ・しかし、リクエストそのものは並列実行される。
意味不
ロックされてるのに?
もしロックしてるやつが書き込みしてたらReadOnlyですら保証されないよね
あと、
> すべてのデータがデータベースに登録されているので、データ構造が明確。
メモリ上の情報だけでなくデバイスもデータとして扱うとデータ間に依存関係あると思うんだ。
DirectXデバイスとTextureとか。その辺不明確では?
>>510 のコードの半分も理解してない(読めない)俺が間違ってる?
0602名前は開発中のものです。
2009/02/14(土) 22:16:34ID:wj98RZ4Cそうやって明確に答えずに変な解釈ばっかりするからこのスレはこんな有様なんだよ
そうだと思ってたことが実は違うなんてことは頻繁に発生する
わかった気になるのが一番怖い
ためしにお前がどう考えたのか>>510に確認とってみろ(別人かどうかは知らんけどなw)
0603名前は開発中のものです。
2009/02/14(土) 22:17:36ID:KRjtx6a7できない。
0604名前は開発中のものです。
2009/02/14(土) 22:17:56ID:LGQXbjlW同じコードから読み取れるものが皆同じってのはちょっとありえないと思うわぁ
0605名前は開発中のものです。
2009/02/14(土) 22:19:14ID:wj98RZ4C本気でその状態で怖いわ
ジャンプにナ○トってカオスな漫画があるけど
このスレも全く同じようなカオスな状態で全然笑えない
プログラマでこれかよって感じ
>>599
それは技術者にとって負債にしかならない
0606名前は開発中のものです。
2009/02/14(土) 22:34:50ID:VBVBn6GZ苦し紛れに罵倒するだけで、結局プログラム的な反論がほとんど無いのかよw
口汚くても有意義な情報が見られるかもと思ってpart1から見てたのに、
アンチタスク派にはホントがっかりだわ。最初から最後まで口だけか。
もーそうやって一生罵倒してろよ。
お前らはもうソレしか出来ないんだから。
やっぱゲ製板の住民だよ、お前ら。
0607名前は開発中のものです。
2009/02/14(土) 22:37:58ID:wj98RZ4Cだからぁ
そうやって主旨を横にどかして感情だけでしゃべるなよ馬鹿
本当にプログラマかてめーは
今日の飲み会盛り上がりましたね!?
って妙な確認とってくる新人かてめーはw
ソース自体を公開するのはいいよ
でもそのソースの目的を明確にしてもらわなきゃなにも判断できないだろ
0608名前は開発中のものです。
2009/02/14(土) 22:40:24ID:UJelYgTfども。やっぱり。
というかもう >>566 で危ないって書いてたんすね
さっき読んだ時はなんか難しいこと言ってんなー、位で理解できてなかった
0609名前は開発中のものです。
2009/02/14(土) 22:49:40ID:segjkn8U正直俺も>>601同様の疑問を持ったけど
C++は参照透明な純粋関数型言語ではないので、副作用だのオブジェクトの破棄だのが
色々ネックになりそうに見える
単なるISAMならともかく
まともなRDBなどでは読み取り一貫性のようなものを保障するためには
相当にしち面倒くさいことをやっているが
0610名前は開発中のものです。
2009/02/14(土) 22:52:53ID:wj98RZ4Cは?
俺にはメリット(=目的でなきゃ駄目だろ?)がまったく見えねー
>>528に書いてあるのはただの処理内容だろ?
やりたいことは〜って文章からまったくつながってねぇよ
C言語やる前に日本語どうにかしろよレベルだろコレ
0611名前は開発中のものです。
2009/02/14(土) 22:54:10ID:segjkn8U>排他処理の自動化。データ構造に基づいてロックをかけるのでデッドロックしない。
>処理の自動並列化。
>すべてのデータがデータベースに登録されているので、データ構造が明確。
>処理の流れが基本一本道なので、どこで誰がなにをしているかすぐ分かる。
これはメリット=目的だと受け取っていいんじゃないの?
できてるかどうかはともかく、ね
0612名前は開発中のものです。
2009/02/14(土) 23:04:48ID:vvv9+ke/それを達成するための手段はいくつあってもいいけど
その手段それぞれにメリットデメリットがある
タスクシステムも手段の一つに過ぎない
さっ、教えてくれ
■ このスレッドは過去ログ倉庫に格納されています