[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 21:46 / Filesize : 382 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 02:21:01 ID:k4ODtuXP]
タスクシステムについての議論、相談、質問、雑談などのスレです

part4 pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 pc11.2ch.net/test/read.cgi/gamedev/1173708588/


・タスクと呼ばれる実装は、非常に多岐に渡ります
 古典タスクシステムについての話題は「>>2」と明示してください
 そうでない場合はカスタム版タスクであることを明示してください

・人を憎んで言語を憎まず

412 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 04:17:44 ID:9dNNEqpm]
前程知識の無い人間にその前程から導き出された結果だけ理解することは不可能。
そんなことが出来るならそもそも学校教育なんて不要ってことになる。

ネットで「説明して」ってだけでそーいった知識が理解できると思ってて
理解できないことは自分に必要な知識や経験が無いからじゃなくて相手が悪いって考えではねぇ…

そんな人間に必要なのは「説明」ではなく「教育」だけど、それをネットに求めるのは無理があるな。
ネットで出来るのは知ることだけ。理解はまた別物だよ。

理解したきゃ自分で学習しなきゃね。

413 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 04:34:09 ID:MIErf48U]
得意げになってるとこ悪いけど、極論で言い訳されてもね・・・。
説明できなかった以上、説得力皆無なんだけどなあ。

414 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 04:35:59 ID:MIErf48U]
つーか説明できるかどうかは相手の理解力関係ないよ?
説明の甲斐とか質とかじゃなくて、できるかどうか聞いてんのにさ。

415 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 04:43:30 ID:xuNYhNP2]
>>412
でも前スレの>>510>>641の比較みて>>510のが
いいって奴って勉強不足どころか
頭が悪いよ

416 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 05:00:42 ID:9dNNEqpm]
>>414
いままでの過去スレで利点も欠点もほぼ説明され尽くしてるけど。
「自分に理解できない」=「説明されてない」では無いことをまず「理解」しなさい。

417 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 05:02:11 ID:lmuwAfAn]
何くだらない議論してるんだよ。人間としてどうよ。

418 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 05:53:50 ID:xuNYhNP2]
>>416
ほとんど嘘だったけどな
自動化なんてないしごった煮がDBとか言い出す恥ずかしい奴もいたし
タスク信者どもも統制がとれてるとは思えなかった
そんな中でたのが>>510>>641だしこれはループのカッコを
マクロに変えただけのような恥ずかしい代物

そろそろ誰か説明してもいいだろ

419 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 05:58:08 ID:xuNYhNP2]
その前々スレあたりでは
引数が使えないことでグローバル変数・関数が野放しになる危険がある
っていう話題も出たな
欠点ばっかりは覚えてるな

利点はごった煮にしてデータすべてにアクセルできるとか言ってたけど
正直、プログラムのプも字知らないような素人の書き込みっぽくてタスク信者の
総意とか思えないんだよね
データすべてにアクセスできるから自動並列化の話とは矛盾するね
並列に処理するもんだけはどうしたってデータは分離しないと動かないからね

420 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 05:59:35 ID:MIErf48U]
>>415
>>510が良いなんて一言も言ってねぇーw
なんでそう平気で話を捏造するの?アンチの習性なの?死ぬの?

>>416
「自分の言葉」で説明できない負け犬に用はありません。
お前に限らないが、
過去スレで議論し尽くされたソレを見て
ソレを理解できた連中ならさらっとここで説明できるだろうに。

過去の連中にばっか振って、自分じゃ語れないなんて、
何も作ったことないし理解もしてない口だけなのがバレバレじゃないか。



421 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 05:59:50 ID:xuNYhNP2]
個人的にはタスク信者はもう詰んでると思うね
会社で理詰めの議論を要求される場面で問い詰められたら
発狂するしかねーよマジで

422 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 06:37:02 ID:kmmpN5+q]
アンチはフレームワークとか一切使ったことのないただの基地外HSPerだろ。


423 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 10:09:48 ID:XFHzOPV1]
ザ・基地外列伝

抽出 ID:YgfxUXIw (3回)
抽出 ID:keyUucFf (2回)
抽出 ID:5sdzoLlH (4回)
抽出 ID:44i95qjG (2回)
抽出 ID:AbjSLDmb (2回)
抽出 ID:Yb+qou2I (3回)
抽出 ID:kmmpN5+q (6回)

こんな役に立たない奴を抱えているタスカーは大変だな。
アンチで良かった。


424 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 10:16:22 ID:XFHzOPV1]
しかし、ここまで惨めな奴は珍しいな。
ID:kmmpN5+qはウンコちゃんと命名してあげよう。
別にコテハンにならなくてもいいよ。
言ってる内容でウンコちゃんだとすぐに分かるから。

425 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 10:48:12 ID:kmmpN5+q]
>>423-424
基地外はお前だよ、お前。

426 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 12:46:52 ID:I7MayTRi]
もーいーよーだれか説明してよ、まとめてくれよー。
うち頭悪くていいから。長くても4レスぐらいでまとまるでしょ?

427 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 18:00:32 ID:+HiGpNcL]
>>426
>264

428 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 18:45:16 ID:3VRI83Xk]
ぶっちゃけると誰にでも理解できるものじゃないと思う。
少なくともポインタを理解できる頭は必要。
"使える" と "理解できる" は違うよ。

429 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 18:48:07 ID:xuNYhNP2]
>>428
なにその使っていけばレベルがあがるみたいな言い方?
タスクシステム自体プログラム言語の進化を完全に否定してるものなのにw
型も引数も否定して彼等はどこへいくのか・・・

430 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 19:17:01 ID:lmuwAfAn]
アンチタスカーの頭の悪さが目立つな。



431 名前:510 mailto:sage [2009/03/01(日) 19:35:00 ID:lmuwAfAn]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8946.zip
作りかけだけど。
前スレで言ってた参照構造を実装した。
オブジェクトの参照構造がreference_structure.cppで定義されてる。
タスク内において、それの定義にしたがってオブジェクトが参照される。
今日はここまで。

432 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 19:36:50 ID:bNWlMx7s]
アンチタスカーですが
>CodeZine:本格的なシューティングゲームを実現するタスクシステム(タスクシステム,シューティング,ゲーム)
>codezine.jp/a/article.aspx?aid=297
このコードはひどいね
重複してるし 未使用領域もある
メンバ関数も無駄にstaticで意味がない

もっと調べればもっと叩くところはでるだろう


で タスク信者に言う ソースで語れ
嫌なのか?さらしたくないのか?逃げるだけか?ライバルを作りたくないのか?逃げるのか?

答えろ

433 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 19:43:26 ID:3VRI83Xk]
>>429
使っていけばレベルがあがるとは言ってない。

local.joelonsoftware.com/wiki/%E3%82%B2%E3%83%AA%E3%83%A9%E7%9A%84%E9%9B%87%E7%94%A8%E9%9D%A2%E6%8E%A5%E3%81%AE%E3%81%99%E3%81%99%E3%82%81
>どうやら大部分の人々はポインタを理解するための脳の一部分を持たずして生まれてくるようだ。

俺にはこれを否定できない。
同じ大学で勉強したはずの友人の例を見てきてるから。

434 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 19:44:25 ID:aHmLTao6]
>>431
これはひどい

435 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 20:39:37 ID:/NI8vJIH]
>>432
> このコードはひどいね
> 重複してるし 未使用領域もある

どれが未使用領域?

436 名前:ID:EEKBitmg mailto:sage [2009/03/01(日) 20:42:30 ID:MlhdTCDS]
>>433
そんな馬鹿な!世界は広大だな
PICのプログラムを組む実習とかあったが
HWIトリガーにしてアドレス入りレジスタ
使ってROMエリアのデータ(配列)読んで
所定の計算して出力とか、脳筋体育系も
ヤンキーも出来てたぞ。出来なきゃ留年
チョンボして他人のソース丸パクできない
やればひどい制裁を受けるから

ポインタ使えないんじゃなくて、そういうのを
使う必要がない言語や環境しか経験してないから
単に不慣れなだけじゃないの?

437 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 20:56:06 ID:1CyuAS5Y]
ポインタを使えない人は本当に居る。
不慣れとかそういう話でなく、ポインタの仕組みは理解できても、
(コーディング上において)ポインタを使うメリットが理解できない。ってタイプ。

知り合いに、値渡しで関数に与えていて、わざわざ冗長なコードを書いていたから指摘したら、
本人いわく、ポインタは知っていてもあえて使わないんだとさ。

438 名前:ID:EEKBitmg mailto:sage [2009/03/01(日) 21:18:09 ID:MlhdTCDS]
>>437
んー。そうかー
値渡しで組んでも動くからいいやーって人かな
CPUパワーもRAM容量も余りまくりでジャブジャブ
使ってもいいよーっていうターゲット(ハードウェア)
を使える環境だからそういうふうになるんじゃないかな

貧弱環境でタイムクリティカルな処理しろって
状況に放り込めば参照渡し使うと思うけど

439 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 21:24:04 ID:1CyuAS5Y]
どんな環境でもポインタで参照渡し使った方が軽いし、コード記述量も減るというのに、
彼のとった選択肢は"ポインタは分かり辛いから使わない"だとさ。
だったらCやめればいいのにと思った。

440 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 21:24:27 ID:aHmLTao6]
>>438
前に ACM Newsletter か何かで読んだが、教育レベルとか計算機環境に
よらず、一定割合でプログラミングがダメな人は存在するそうだ。

いい大学の CS に入ってくるような人間でも、適性ない人間はどうにもダメ
らしい。





441 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 21:25:01 ID:aHmLTao6]
>>439
っつか、ゲームプログラミングやめれば良いのにな。

442 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 21:34:18 ID:bNWlMx7s]
>>435
読めばよい

443 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 21:38:28 ID:XFHzOPV1]
>>431
#include "Tasksystem.h"
#include "reference_structure_macro.h"

このヘッダがzipに入ってないね。

444 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 22:03:38 ID:1CyuAS5Y]
このスレ見て、身の回りのいろんなPGを見ていて思うに、
ゲームプログラマには、大別してクリエイター型とエンジニア型が居ると思うわけよ。

■クリエイター型(C型)
ゲーム製作を美術・芸術・メッセージ表現の一種と捉え、作品の完成を目指して鍛錬する。
ゲームが完成することを最終目標としているために、エンジニア型に対して結果が全てと見下している。
ゲームとしての表現力を増すのような技術がローコスト(手間要らず)で導入であれば積極的に採用したいが、
ゲーム製作において足枷になるような技術については、嫌悪する傾向がある。
駆け出しの頃はスクリプター寄りの傾向。将来的にはPDに向いている。
プログラミング能力は低いので他業種での潰しが利き辛い。

■エンジニア型(E型)
ゲーム製作を自己のプログラミング能力向上のための試金石と捉え、ライブラリの完成を目指して鍛錬する。
フレームワーク作りに熱中し、何時まで経ってもゲームは完成しない。
新規技能・技巧をいち早く取り入れる風潮があり、汎用性・完成度・移植性などを重視する傾向がある。
技術的に稚拙なクリエイター型について、プログラム知識の無さに嫌悪することがある。
駆け出しの頃はライブラリ製作+サンプルゲームを作る傾向。将来的にはメインPGに向いている。
プログラミング能力が高いので他のSE業種に移行しやすい。

445 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 22:04:44 ID:1CyuAS5Y]
で、今までのレスの流れも見ていて、ここからは完全に独断だが、
アンチタスク派は、ずっとC型でPG経験の浅い若年層が多い気がする。
・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。
・プログラム技能が未熟で、TCBなり、関数ポインタによるスケジューリングを理解できない/扱えない。
・実際にタスクシステムを使ったコーディングに従事したことがあり、タスクシステム特有の束縛された記述方法に嫌悪感を示す。
・ただタスク派をおちょくって遊びたいだけ。

一方、タスク派は、ずっとE型でPG経験の長い壮年層が多い気がする。
・OOP時代を迎え言語もコンパイラも発達し、タスクが過去の遺産であることを認めない。未だにタスクシステムをプロの技巧と賞す。
・タスクによるスケジューリングが完全汎用であると勘違いし、これを理解できない人を煽る。
・ゲーム内容の実際の記述において、タスク管理によるコーディングがどれほど厄介なのか理解できない。
・ただアンチタスク派をおちょくって遊びたいだけ。

と見ている。

個人的には、中庸が一番。
始めはE型で自作ライブラリが完成してから、C型に移行するプログラマーが理想なんだがね。
もしくはPG2名で完全分業し、E型がライブラリとスクリプトを提供して、C型がゲーム内容を記述するのでも良いと思ってる。


446 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 22:59:06 ID:aHmLTao6]
>>445
> ・コンシューマ開発で、C++も無かったASM時代において、タスクシステムが成した業績と歴史を認めない。
若者でも、/* You are not expected to understand this */ とか読んだことあれば
十分だよ。

447 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 01:17:33 ID:Ggk4JG/+]
>>442
>432
> 嫌なのか?さらしたくないのか?逃げるだけか?ライバルを作りたくないのか?逃げるのか?

448 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 02:04:32 ID:qNJJjYLT]
実際にタスク改みたいなシステムでゲーム何本か作ったことがあれば
いろいろあれの欠点で苦労するから純粋なタスク信者ってのはありえないけどね。
でも単純なアンチってのもまた無い。

ジャンルや環境によっては今でも十分使い物になるから。というか今の携帯機クラスの性能のゲーム機で
動いてるゲームのかなりの数がいわゆるタスク改で実装されてる。
それに純粋なタスクシステムの欠点はそれぞれ回避方法があるので使い分けができる。

ジャンルによってはタスク改ではない違う作り方のものもあるけど、アクション系ではいわゆるタスクの進化系以外の
実装はあんまりお目にかかったことが無いな。
少なくとも日本産に限っては。海外産はあんまりソース見る機会無いから知らんが…

449 名前:名前は開発中のものです。 [2009/03/02(月) 07:26:29 ID:N5eJa8sN]
ぜってーそんなことねぇよ(笑)
こんなマイナーシステム普通使わねぇだろ

450 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 15:49:57 ID:2YZpDjg8]
ミニゲーム集みたいなゲームだとタスクシステムは向いてると思うけどね
同じインターフェースで全く遊び方の違うゲームを数十個つくらにゃいけない場合とか
一つ一つにかかるコストを大幅に削減できる



451 名前:名前は開発中のものです。 [2009/03/02(月) 17:55:09 ID:N5eJa8sN]
向いてねぇよ
ごった煮だから弾の処理で何が呼ばれててもおかしくない
ということは弾だけなにかほかに使おうと考えても
ソースの癒着が酷くて切り出して使うということはできないというわけだよ
わかったかね

452 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 18:02:00 ID:hIPGPAIG]
よく>>451見たいな書き込みを見るけど
タスク間のアクセスはタスクシステムが間に入るから
癒着がひどいっておかしくないか

453 名前:名前は開発中のものです。 [2009/03/02(月) 18:16:36 ID:N5eJa8sN]
それじゃなんのためのごった煮なの?
どこからでも呼び出したかったんじゃないの?
つまりそれは、すべてを呼び出している可能性だってあるということだよ
だってそのためにごった煮にしたんでしょ?
ミサイルのターゲットをポインタの保持で解決したかったんじゃないの?(笑)

454 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 18:25:42 ID:hIPGPAIG]
例えば全てを呼び出してるとして
ミサイル以外のタスクをソースから排除しても
ターゲットが見つからずにまっすぐ飛んでくだけでしょ
ターゲットのポインタなんて抽象クラスへのウィークポインタか
インクリメンタルIDのどっちかだし

455 名前:名前は開発中のものです。 [2009/03/02(月) 18:33:27 ID:N5eJa8sN]
そんな話してねぇよ馬鹿
全部呼び出せるってことは全ヘッダーファイルが必要になるってことだろが
それとも今更カプセル化守って弾のクラス内には他のゲームオブジェクトは一切入ってこない
って方向転換するか?それでもいいぜ(笑)

456 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 18:48:04 ID:hIPGPAIG]
なんで全部呼び出せるなら全ヘッダーがいるんだ
派生先のポインタが欲しければ各自でキャストすればいい
それが嫌ならビジター作ってタスクシステム内のタスク全部なめればいい
なんで弾のクラス内に他のゲームオブジェクトが入ってくるんだ
そんな話出てきたか?めんどいんで方向転換ってことでいいです。

457 名前:名前は開発中のものです。 [2009/03/02(月) 18:56:46 ID:N5eJa8sN]
キャストするにはだな・・・え〜そっから〜(笑)
さすがにそのレベルはかつてないな(笑)

458 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 19:19:04 ID:hIPGPAIG]
いやあ俺馬鹿だからさ優しく教えてよw

459 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 19:32:05 ID:Rv93cI1M]
>>457
面白いからもっとやって(笑)

460 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 19:36:16 ID:wHsdSnqf]
俺も見てるよ。面白い展開になりそうだからもっと熱く語り合ってほしい(笑)



461 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 19:57:05 ID:VFyVP2iT]
まだごった煮言ってるのかw
なにも進歩ないなw

462 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 20:14:04 ID:iymFeNpw]
キャストするクラスのヘッダーだけでいいだろ?
全部は必要なくね

463 名前:ID:EEKBitmg mailto:sage [2009/03/02(月) 20:44:58 ID:0jBbfc+e]
>>444-445
C型なのかな。肝炎みたいだね。「おまえの場合は脳炎だろ」とか言われそうだけど

助教授に言われたことがある
『例えばお前が作ってるゲームなんてものは技術的には枯れた要素技術の集合体であり
CASEツールで機能分析すれば、その大半は汎用のコンポーネントを結合したものとして
表現される。』と

『開発工程全体を見たとき、お前はおそらく遊び・面白さの部分を煮詰める反復作業に
 時間の多くを費やしているのだろう。ならば、ワークフロー・データフローの設計も
 そこを優先するだろ常識的に考えて。与えられてる状況(道具、人、時間、etc)にあわせて
 構造化設計すれば、最終的な結論はH**は神言語となる。わかったな?』

私は心を打たれた。この人はC型のようなE型のようなH型だ

助教授はいわゆるベーマガ世代というものらしい。本人に言わせれば『PIOとかRAMとかテクノ(何とか)を
知らないようなガキにベーマガ世代とか言われるとイラっと来る』ということらしいけど、まぁとにかく
そういう世代らしい

助教授にタスクシステム(>>2)のページを見せた。反応は「組み込みシステムを劣化猿真似してるのか」
みたいなかなり淡白なものだった
『ワークRAMが少ないゼッパチマシンでこんな贅沢な組み方してたのか?』
『70年代にこれやってたって本当か?』『メガドラとか16ビットのアーケードゲームの話じゃないのか?』
と聞き返された。そんなことは厨の俺が知るはずもないし答えられるはずもなかったから
「だってこの人(LogicianLordの人)がギャラクシアンはこうだって言ってるからそうなんじゃないすか><」
と知能障害・思考停止な返事をしたら『ふーん。あっそう』と言われた

むかつく。誰か教えて

464 名前:ID:EEKBitmg mailto:sage [2009/03/02(月) 21:27:36 ID:0jBbfc+e]
『当時は毎月、目を皿のようにしてマイコン雑誌を読み漁ったが"タスクシステム"なんて言葉は見た記憶無いな』
『俺にとっては雲の上のプロプライエタリな世界だったから。そういうプロの世界の隠語なのかな。』
『しかし30年以上経過して陳腐化したからって吹き出物みたいに今更出てきても仕方ないだろこんなもの』
『PCでさえベクトルプロセッサ化したビデオチップにマルチコア化したCPUが普及した現代においてこんな一本道の
 逐次処理コードを使ってたんじゃハードは遊び放題だな。お前らのゲームボーイ(←DSのことらしい)で使ってるテクか』
『ステートマシンの逐次処理用の優先度付きキューを手作りしてたのか。今ならboostか次期C++標準のライブラリ
から出来合えのコンテナでも引っ張ってくればいいんじゃないの。あと、機能分析すればこの実装になる必然性はない』
『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は高速化される
 という先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素なCPUアーキテクチャに
 依存した公式に過ぎない。定理ではない』

『くだらない話をふってないで、お前は早く課題レポートを提出しなさい』

うぜぇオヤジだ


465 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 23:57:02 ID:j9iR0+6m]
>>464
> マイコン雑誌
この辺の単語の使い方に、世代を感じるなぁ。

466 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 00:35:53 ID:RAMjL7VZ]
テクポリは最初技術系の雑誌だったんだね
アダルトゲーム雑誌になってからしか知らないや

467 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 00:54:38 ID:nTxu8UVE]
>>463-464
何…?このポエム

今もタスク進化系が使われ続けてる現実を前にして
現実逃避してるのかな?


468 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 01:06:03 ID:gnPoJpgi]
ID:N5eJa8sNはタスクシステムを使うとタスクシステムに全部のheaderをincludeしなければ
ならなくなるとか言っていた例の基地外だろ。

こんな低脳がアンチタスカーだから、アンチはみんな頭がおかしいと思われるんだ。

こんな奴、プログラマですらないので、この板から出てけよ。

469 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 01:43:30 ID:e/qFL/0J]
>>467
シーングラフはタスクシステムの外国版(笑)
タスクシステム改(笑)
タスク進化系(笑)

出るわ出るわ。怪しげな僕んちのソフトウェアアーキテクチャ発展史
萎びた僻地で密教みたいにひっそりやってきた「俺んちのベストプラクティス」
そいつがお前にとってのプライスレスなのはわかるけどな
何の具体的な情報も開示せずに世間に認知してもらおうなんて考えちゃダメ
世の中そんなに甘くない

公にされず標準化もされないド田舎・ローカルのソフトウェアアーキテクチャや
ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
顔真っ赤にして反論したりしない。黙ってる。そこを分かれ。出てくんな。みっともねー
幾つだよお前。誰だよ

反論するならお前の言うタスク進化系って奴が世間に認知される
ソフトウェアアーキテクチャ、ベストプラクティスとなるよう、きちんと文書にして
発表すべきだ

現在、世間の前に出てるタスクシステムに関する文献の中で唯一
書いた人間の出自が現場出身であることが垣間見えるのは秀和の
逆引きゲームプログラミングだけ。これを超えるものをお前が書けばいい




470 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 01:50:47 ID:e/qFL/0J]
>>468
あー、やっぱあいつだよな
ヘッダーがどうのとか言い出した瞬間にイカ臭かったもんな



471 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:03:06 ID:nTxu8UVE]
>>469
>ベストプラクティスと自認している者は、何の資料も出せない状態で世間の前で
アンチじゃなくてもあんな原始的な仕組みをベストプラクティスと自認している人はいないと思うぞ。

あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。
「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。
だから資料出せ、教えろ、説明しろってうるさいのか。

472 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:09:19 ID:e/qFL/0J]
>あぁ、アンチって実はタスクシステムに過度に期待してる人たちなのかもね。
>「こんな自分でもタスクシステムが理解できたらゲームが作れる…」って。
>だから資料出せ、教えろ、説明しろってうるさいのか。

今度はアンチは実は信者論か。がんばるねー
アクロバティックな発想に翻弄されちゃうねー
生ゴミの臭いを好き好んでかぎ回るのは信者なんだけど
アンチは臭いものは臭いんだからとっとと捨てればー?
とアドバイスしてあげてる分まだ常識があるねー


473 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:22:24 ID:e/qFL/0J]
ま、タスカーは大人しくサンドバッグにされてろってこった
今更開陳したところで世間に八つ裂きにされるのが目に見えてるからな
俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから
とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す
なんてマゾっけたっぷりの趣味は無い

474 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:37:34 ID:gnPoJpgi]
ポエマーもいらねーから出てってな

475 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:42:58 ID:e/qFL/0J]
DSLポエマーと間違われるとは光栄だねー
タスクシステムを叩く材料が不足したら呼んでね。補給してあげるよ
アンチ応援してるよ。あーねみー。ばいばーい

476 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:53:26 ID:eCcH4IzT]
顔まっかなのはお前だろうに

477 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:57:23 ID:eCcH4IzT]
>俺は絶対に晒さない。何年も前に廃棄したゴミアーキテクチャだから
>とっくに葬り去ってお墓に入れたものをわざわざ引っ張り出して晒す
>なんてマゾっけたっぷりの趣味は無い

要するに、お前は過去の自分と戦ってるのか?
お前の暗い過去を皆に押し付けないで欲しい。

478 名前:名前は開発中のものです。 [2009/03/03(火) 07:34:27 ID:NIkO1+LI]
ヘッダー全部インクルードしないと必要なときに必要なものが呼び出せないから
タスクシステム使ってるなら総合ヘッダーに全部インクルードしてあると思うよ
仮に必要なものだけだとしても関連をもったものは全部インクルードしてやる必要があるから
この構造で作ったら切り離すのは容易じゃないよ

479 名前:名前は開発中のものです。 [2009/03/03(火) 07:50:27 ID:NIkO1+LI]
それと関連をすべてタスクにするとか嘘ついてるけど
ポインタの保持を関連タスクに強制するうえ
パラが一つでも必要になったらタスクを新しく作らなければならない
折角、ごった煮にした意味がまるでないけどそれでいいの?
だんだんタスクなんて作らないほうがいいって結論になりそうで俺は満足だけどね

480 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 08:19:58 ID:gnPoJpgi]
>>478
お前が頭がおかしくて、プログラムの組めないド素人なのはよくわかったから
もうこの板に来んな



481 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 08:53:25 ID:HSt7mZci]
>>478
んなこたない


アンチな俺でも同意できる箇所が見当たらない

482 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 10:09:41 ID:T2e1Wx7e]
一番要らない子なのはウンコちゃんだろう。
全レス内容無しってのが凄い。

483 名前:名前は開発中のものです。 [2009/03/03(火) 12:43:55 ID:NIkO1+LI]
じゃヘッダー無しでどうやってキャストしてんだよ
まあ、これは無理でしょ

タスク信者が必要な分だけインクルードしてるなんて考えられないから
ごった煮を表現するために総合ヘッダー絶対あるだろ
だからタスク信者の書くソースは分離できない
さらにタスク信者は引数使えないから総合ヘッダーにグローバル変数の塊もあるだろうし
奴らのソースはカプセル化なんて不可能と言っていい
テンプレートは使いたがるくせにオブジェクト指向は欠片もわかってない

484 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 13:04:10 ID:gnPoJpgi]
>>483
> ごった煮を表現するために総合ヘッダー絶対あるだろ

ない。お前はOOPの基本すらわかっていない。もう死んで。

485 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 13:09:30 ID:fc1Nudsp]
>>483
なんでそこでテンプレートがでてくるのか理解できない
総合ヘッダにグローバル変数ときたら次はマクロだろ

486 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 13:11:42 ID:HSt7mZci]
>>484
OOPは関係ないだろ…

487 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 13:11:56 ID:UVBLimNu]
>>483
>総合ヘッダー
その発想は無かったwwwwwwwww
お前のコーディングすごいなwwwwwwwwwww

488 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 13:14:20 ID:HSt7mZci]
>>484
携帯からだったから483よく読んでなかったぜ
すまんこ
>>483
根拠の無い話ばかり並べても叩かれるだけ

489 名前:名前は開発中のものです。 [2009/03/03(火) 18:22:34 ID:NIkO1+LI]
いいやあるね
少なくともごった煮をデータベースとか言ってた馬鹿のソースには確実にあるね
そもそもそいつは制限や型を言語の進化の過程でできたものという認識がまったくなかった
タスク信者の大半がこんな奴ら
関連をタスクにするなんて言ってるけど
関連クラスとどうやってやりとりする気なんだよ
グローバル変数かポインタの保持くらいしかないだろ
また、無駄に問題が増える(笑)
使わないって選択肢は選べないのかね

490 名前:名前は開発中のものです。 [2009/03/03(火) 18:25:01 ID:NIkO1+LI]
カプセル化もわからないから自機のクラスに弾の処理書いちゃうんだよ
お前等馬鹿は



491 名前:名前は開発中のものです。 [2009/03/03(火) 18:29:59 ID:UVBLimNu]
>>489
>>490
レスを二つにしてカプセル化したつもりですかwwww

492 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 18:34:43 ID:gnPoJpgi]
>>489
こんな馬鹿、久しぶりに見た。

悪いこと言わないから、OOPの基礎から勉強しなおしなよ。

493 名前:名前は開発中のものです。 [2009/03/03(火) 18:57:02 ID:NIkO1+LI]
ムリムリ
タスク信者の組み方じゃ絶対分離なんて不可能
グローバルインスタンスホルダーが絶対にある

494 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 19:09:12 ID:gnPoJpgi]
>>493
仮想関数すら知らなさそうだな。本当、生きてて恥ずかしくないか?

495 名前:名前は開発中のものです。 [2009/03/03(火) 19:19:33 ID:NIkO1+LI]
仮想関数?
いまの話題と全く関係無いけど頭おかしいの?
弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ
基底クラスじゃ自機クラス呼べないんだぜ
もしかしてしらなかった?

496 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 19:22:49 ID:gnPoJpgi]
>>495
> 弾クラスで自機クラス呼んだら自機クラスのヘッダーが必要になるんだぜ

呼ぶ必要なんか全くないんだが。ほんと、馬鹿だよね。

497 名前:名前は開発中のものです。 [2009/03/03(火) 19:27:56 ID:NIkO1+LI]
でも、呼んでるんでしょ?
だからタスクシステムに固執してるんでしょ?
嘘はよくない(笑)

498 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 19:31:36 ID:gnPoJpgi]
>>497
本当、馬鹿すぎて泣ける。

ソース書いてみな。俺が添削してやるから。

499 名前:名前は開発中のものです。 [2009/03/03(火) 19:38:27 ID:NIkO1+LI]
は?
俺はごった煮とかやってる馬鹿なタスク信者をぶん殴ってるところなんだよ
俺がなんのソースをだすんだよ
日本語大丈夫かよ(笑)
ああ、頭悪いのか
それじゃしょうがないな

500 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 19:42:26 ID:gnPoJpgi]
>>499
だからお前の糞タスクシステムのソースを出せと言ってるんだ。
全タスクのヘッダをincludeしているところを書き直してやる。



501 名前:名前は開発中のものです。 [2009/03/03(火) 19:58:25 ID:NIkO1+LI]
は?
俺、タスクシステムなんて使わないんだけど?
だいたいソース書きたきゃ自分で書けよ
仮想関数とか明らかにズレた話題だしてる格下のお前の相手なんかしなきゃいけないんだよ

502 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 20:10:55 ID:gnPoJpgi]
>>501
仮想関数わかってないのお前。

> タスク信者が必要な分だけインクルードしてるなんて考えられないから
> ごった煮を表現するために総合ヘッダー絶対あるだろ

何度でも言うが、そんなものはないし、そんなことをする必要すらない。
まあ、このスレでわかってないのお前だけだろうから、俺はもう帰る。

基地外の相手してても仕方ないんでな。


503 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 20:38:10 ID:fQh6ZhSe]
俺も基底クラスに仮想関数つくってそれ呼び出せば、いちいち総合ヘッダーなんて必要ないと思う。

504 名前:名前は開発中のものです。 [2009/03/03(火) 21:24:23 ID:NIkO1+LI]
は?仮に基底がゲームオブジェクトだとして自機特有の処理はどうやって呼ぶんだよ
まさか全部ゲームオブジェクトにもたせんの?(笑)
ああ、お前等のごった煮ってそこまで腐ってんだ

505 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 21:37:48 ID:fQh6ZhSe]
ああ凄いな。凄まじいなID:NIkO1+LIは。
とりあえず総合ヘッダー(笑)については、必要ないことを分かったかい?
まずはそこからだ。

506 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 21:39:53 ID:I1ftq204]
ぬるぽ

507 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 21:48:44 ID:gnPoJpgi]
>>504
お前は、OOPの基本がわかってない。

腐ってんのはお前の頭。

508 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 21:54:48 ID:gnPoJpgi]
アンチタスカーって、なんで ID:NIkO1+LI みたいな OOPすらまともに使いこなせない
糞野郎ばっかりなんだろうかね・・

509 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 21:57:27 ID:fQh6ZhSe]
さすがのアンチタスカーの俺も擁護できん。
同じPG職なら陰口叩かれてもいいレベル。

510 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 22:01:20 ID:I1ftq204]
ID:NIkO1+LI
2009年ゲ製痛い(ノ∀`)ニュース第1位確定だな。
道理でアンチタスク厨とは、マトモな会話が成り立たないわけだ。



511 名前:名前は開発中のものです。 [2009/03/03(火) 22:11:53 ID:NIkO1+LI]
は?
どうせ総合ヘッダーよんでんだろ
そうじゃなきゃごった煮の意味ないもんな
悔しかったら総合ヘッダー無しでプログラム組んでみろよ
データベースなんだろデータベース(笑)

512 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 22:14:31 ID:fQh6ZhSe]
アンチタスカーは、タスクシステムを使って知ったうえで、叩くべきだわ。
使ったこともないのに想像だけで総合ヘッダーや癒着云々と否定しているのは滑稽すぎるわ。

513 名前:名前は開発中のものです。 [2009/03/03(火) 22:16:25 ID:NIkO1+LI]
ハイハイ、自機のソースから弾のソースを取り払ってから言ってね

514 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 22:21:10 ID:AybnbhgS]
大昔ポケコンでシューティングを作ってた時は
敵ワークx16 弾ワークx16 とか固定長バッファを用意して、使用中フラグのビットマップで管理して動かしてた
ワークエリア内にポインタを書いてリストや仮装関数を実現するには500kHz程度クロックのCPUには重荷だった
今はもうゲームとして動いてるならなんでもいいやって感じ

515 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 22:41:02 ID:I1ftq204]
>>511
総合ヘッダー(笑)って何だよ!
総合病院にでも診てもらってこい。
C++入門者未満のくせに、デカイ顔してノイズ垂れ流しやがって。
タスクシステムを語るには20年早いわ。

516 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 23:02:20 ID:Gs0swA+H]
main.h に extern 使いまくりで
どこからでも #include "main.h" をすればコンパイルは通る
分割コンパイルの意味の分かっていないバカのやることだよ

ええ そうですよ 私の講師がそうだったように・・・

517 名前:名前は開発中のものです。 [2009/03/03(火) 23:13:28 ID:KhkzCgZ3]
アンチタスカーだが俗に言うタスクシステムみたいな仕組みを
C++で実現している

ソース晒そうか?

518 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 23:28:24 ID:UfdUZfM/]
j

519 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 23:37:31 ID:UfdUZfM/]
仮想関数と総合ヘッダの話は
本元のクラスでなくて、抽象クラスを、includeするということ?
/*総合.h もしくはそれの#include*/
class IHoge : public ITask
{
virtual SomeFunc() = 0;
};
/*Hoge.cpp*/
class CHoge: public IHoge
{
SomeFunc();
};
ということ?
多分、総合ヘッダといった人は、IHogeを抜いて考えていたと思う
もしくは、それでもIHogeを利用するところからIHogeが見えないといけないジャンという
ことを言いたかったのかも

タスクとマルチコアとかの関連っぽい記事を発見したので張っとく
理解はしていないので、賢い人解説して
そして建設的な話をして
www.gamasutra.com/view/feature/3941/sponsored_feature_designing_the_.php?page=1


520 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 23:38:58 ID:UfdUZfM/]
戻り値書き忘れたけれど、突っ込まないで



521 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 23:47:42 ID:YUVx5SHc]
>>519
タスクと言う言葉を軽々しく使わないで下さい

522 名前:名前は開発中のものです。 [2009/03/03(火) 23:52:38 ID:NIkO1+LI]
>>519
馬鹿はどっかいけよ

523 名前:ID:EEKBitmg mailto:sage [2009/03/04(水) 00:02:09 ID:vv/UkwCS]
厨房見参

総合ヘッダーさん(ID:NIkO1+LI)と引数さんは同じ人だと思うが、まぁそれはそれとして
総合ヘッダーさんはCodeZineの記事に出てくるようなタスクシステムのことを言ってるんだろ?

CodeZineの記事を書いた人は俺と同い歳くらいの学生さんだと思う。叩くつもりはないが
グチャグチャに絡み合ってる反面教師的なコードとしてはなかなか秀逸だなーと思う

task.hに
自機、敵機、自機の弾、敵機の弾 狙い撃ち、爆発、自機の制御、敵の出現制御
ステージ制御、ライフバー管理、スコア管理、タイトル画面、ゲームオーバー画面
といったTaskEx派生クラス全ての宣言をまとめてぶちこんでいる

で、例えば自機弾クラスのソースコードの中を見る。まず先頭でtask.hをインクルードしている
次に自機弾クラスの当たり判定メソッドの中を見る。こいつの中では

int 敵数=GetCount(ENEMY); // 敵の数よこせ (循環リストを総舐め)
for(int i=0;i<count;i++){
  敵クラス *task=(敵クラス*)GetTask(ENEMY , i ); //i番目の敵よこせ (ヒットするまで循環リストを舐める)
  …
}
という感じで 『"グローバルインスタンスホルダー"の検索結果 3 件中 1 - 3 件目』
に対して、『敵を全部くれ』と要求して、敵クラス型にキャスト(static_cast)している

循環リストを舐めまくりでびびった。HSPでこんなコード組んだら重くて普通に死ねる
C/C++を使うメリットを遺憾なく発揮してると思った





524 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 00:18:28 ID:43lD+2sK]
>>523
アンチだけれども、別にごった煮にして、
全てをなめるような実装にしなくてもいい気がする
最初から型ごとにリストを持ってそれごと返せばいい訳だし
ヘッダに全部宣言を入れていたのも、サンプルとしてそうしていただけで、
ヘッダが必要な個々の実装でincludeさせてそこでキャストさせればいい
そうすると、型ごとリストへ割り振りは、本当の型で判断できないので
別の情報で型を識別させるようにして型ごとリストを持たせればいいのでは?
タスクシステムに入れる時に型名を文字列で渡すとか
ここらへんは、タスクシステムの弱点ではない気がする
何回も語られているけれど、本当の弱点は、
静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う
素人考え?

525 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 00:23:18 ID:w8Rwmagw]
> 静的に片付くものをわざわざ動的にして問題を複雑にしている点だと思う

意味がわからない。例えば?

526 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 00:31:05 ID:mN9/jFMx]
>>524
それなら、最初からふつーにメンバ変数で持たせて終わりじゃない?

class Scene {
 Player player_;
 Enemies std::list<Enemy> enemies_;
...
};

527 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 00:40:31 ID:43lD+2sK]
>>525
静的というのは、シーンクラスのメンバもしくはそのメンバに
自機、敵機、自機弾、スコア管理、ステージ制御などを階層を持たせて
配置しているということ
動的というのは、(少なくともインターフェイス越しには)ごった煮の
グローバルなリストから個々のインスタンスが勝手に互いを参照し合って
どうも統制が取れてなさそうに見えないこと
上の静的でも崩壊させることができるけれど、上手く設計すれば問題は起こらないはず
で、ごった煮はその問題をただ先延ばしにしてしまっているようなイメージを持っている
だからアンチ
>>524
そう。そう思う。
だからアンチ

528 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 00:48:30 ID:43lD+2sK]
>>どうも統制が取れてなさそうに見えないこと
どうも統制が取れているように見えないこと

529 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 02:40:49 ID:hHE159vF]
>>448 の者だが、
タスク進化系がいまだにコンシューマゲーム開発の現場で生き残っているのは単純に無駄が無いから、ってのも理由の一つ。

スーファミからPS1へ、PS1からPS2へ、PS2からPS3へ移行するたびに、こんな大量のメモリ使い切れん、と思ったものだが
なぜかマスター寸前の修羅場になるといつもメモリも速度も足りなくなりチューニングに明け暮れる日々が続く。
これはメモリ128Kのスーファミ時代から256MBのPS3まで、コンシューマ開発では変わらん定例行事。

そして常にメモリとコードの無駄を減らす圧力にさらされるんだけど、タスクみたいに毎フレーム相当数呼ばれる処理に
無駄が見つかると真っ先に削られる。

この修羅場では「可読性が…」とか「OOP的に…」なんて甘い理由よりも少しでも軽量なコードで動かすことが優先される。
で、PS3時代にもタスク進化系が生き残ってる、というわけだね。

仮想メモリつんでてスペックはユーザ毎にばらばらのPC環境では特定ハード向けにガリガリにチューニングなんて意味ないので
PC環境でしか作ったことの無い人間には理解できんだろうけど、
コンシューマ開発や組み込み系とみたいに固有のハード性能を120%使い切る開発スタイルではよくあること。

530 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 02:55:00 ID:43lD+2sK]
>>529
なるほど。全くコンシューマーを知らないけれど、説得力がある
では潤沢過ぎる程のメモリと、無限の演算能力がもしあったとしたら
喜んでタスクシステムは棄て去る?



531 名前:ID:EEKBitmg mailto:sage [2009/03/04(水) 03:04:13 ID:vv/UkwCS]
ありえない仮定を持ち出すとかスゲェな
厨だけどさすがにこれは真似できないな

お前は凄い。俺は頭痛がしてきた。寝る

532 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 03:13:07 ID:43lD+2sK]
突込みがあったので補足。
>>530は、タスクシステムが貧困な環境で使えるという>>529に対して、
ならば、十分豊かな環境だったらそうではないのか?という質問。
無限〜は *話を簡単にするため* の誇張した表現。

533 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 03:29:05 ID:hHE159vF]
>>530
無限のメモリと無限の演算能力があったら…?
それでも小規模なアクションゲーム系1人で作るならタスク進化系の管理システム使うと思う。
タスク系は下手に使うとバグの温床になるけど使いどころを間違えなければ便利だし。

まぁこれは慣れの問題なので、この手のゲームならこの手法で…とかだいたいやり方の想像つくし
タスク系固有のバグで苦しんだ結果、バグの温床にならない作り方が出来るようになってるから、ってのもある。
慣れた人間にとっては開発効率いいんだよね、あれ。

まぁでも新人込みのプログラマ数十人で大規模オンラインゲームを作る、とかならたぶん違う方法取るけどね。

534 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 04:55:07 ID:ll33Ou9u]
>>533
無限の資源があってもリスクと教育コスト考えれば結局C++使うだろうねー
無限の納期と無限の人材があるなら・・・遊んで暮らすだろうなー

535 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 05:47:21 ID:kXQL8zXx]
タスクシステムってソースがタスクなわけで
プロセスがタスクじゃないのね

ではマルチプロセス対応というのは真っ赤な嘘になるわけだ

536 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 06:56:53 ID:m+X+Qg7j]
>>527
タスクシステムはsingletonじゃねぇぞ。

タスクのなかに別のタスクシステムをcompositionで配置してタスクを
階層化できるが、お前本当にOOPわかってんのか?

537 名前:名前は開発中のものです。 [2009/03/04(水) 07:31:28 ID:NGMxgsfO]
そんなの全く意味がないじゃん
だいたいそんなのやるならはじめから分けてもてよ

538 名前:名前は開発中のものです。 [2009/03/04(水) 07:34:46 ID:NGMxgsfO]
並列化はどう考えても嘘
並列にするなら少なくとも並列にするデータは分けないと動かない
ごった煮でできるわけない

539 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:44:10 ID:mN9/jFMx]
>>529
メモリ使用量の大半を占めるのはテクスチャ・モデル・モーションなどのデータで、
CPU使用時間の大半を占めるのはヒット判定や AI 処理。

いわゆるゲームオブジェクト (プレイヤーとか) で多少削ったところで、誤差にもならない。

540 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:48:07 ID:m+X+Qg7j]
>>537
> そんなの全く意味がないじゃん

そんなこたあ、ない。



541 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:49:26 ID:2ryo6+k/]
数人で作るレベルなら擬似タスクでいいよ。
でもそれを超えると破綻すると思う。

542 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:49:27 ID:m+X+Qg7j]
>>538
阿呆すぎて泣ける。

前スレ510のプログラム、あれ並列化できないの?

本当に1行でもプログラム書けるの?

タスクシステム使わなくていいから、前スレ510のプログラム、並列化してみなよ。

543 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:51:55 ID:m+yO0HqN]
>>508
彼を養護してるアンチはいないようだが
そこまでして印象操作したいの?

544 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:52:16 ID:m+X+Qg7j]
>>526
> それなら、最初からふつーにメンバ変数で持たせて終わりじゃない?

そのメンバ変数が指しているオブジェクトが生きていることを誰がどうやって保証するんだ?

545 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:54:00 ID:m+X+Qg7j]
>>543
このスレのアンチタスカーのレベルが総じて低すぎる。

タスクシステムに限らずフレームワークなんて、使える範囲で使えばいいだけのことなのに
完全否定する奴は完全肯定する奴と同罪で、頭おかしい。

546 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:55:29 ID:mN9/jFMx]
>>542
> 前スレ510のプログラム、あれ並列化できないの?
そもそも、あれは名前がタスクなだけで、>>2 と設計全然違うけど。

いずれにせよ、データに依存性があり並列化はできない。

> m_vx = m_vx*m_m/(m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(m_m+Star2.m_m);
> m_vy = m_vy*m_m/(m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(m_m+Star2.m_m);

たとえばこのコード、複数の Star インスタンスの m_vx, m_vy を同時に読み書きしている。
複数スレッドで走らせた場合、値が保障できなくなる。


547 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 08:57:09 ID:m+yO0HqN]
>>545
> 完全否定する奴は完全肯定する奴と同罪で、頭おかしい。
つ鏡

548 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:08:31 ID:mN9/jFMx]
>>544
526のコードは、ポインタではなく実体で持たせているから、保障も何も要らんと思うが。
いずれにせよハンドルクラス (整数値とインスタンスの対応付け) は用意したほうが
便利だが、その場合でもプレイヤー・敵は別の ID 体系にしておくな。

たとえば、最大 2 プレイヤー同時プレイ可能なゲームで、プレイヤーに向かって
進む敵を作りたい場合。

class PlayerID { int id_; friend class Scene; }; class EnemyID { int id_; friend class Scene; };
class EnemyEnv {
 virtual ~EnemyEnv() {};
 virtual PLAYER_ID GetNearestPlayer(ENEMY_ID enemy_id) const = 0;
 virtual Vec3 GetPlayerPos(PLAYER_ID player_id) const = 0;
};

class Scene : public EnemyEnv {
 Player player_[2];
 std:::list<Enemy> enemies_;
public:
 void Update() { player_.Update(*this); enemy_.Update(*this); }
 virtual PLAYER_ID GetNearestPlayer() const { ... }
 virtual bool GetPlayerPos(PLAYER_ID player_id, Vec3* pos) const {
  // 実際には、ここで player_id.id の値チェックを行い、生存していなかったら false 返す
  *pos = player_[player_id.id_].GetPos(); return false;
 }
}

void Enemy::Update(EnemyEnv& env) {
 PLAYER_ID player_id = env.GetNearestPlayer(this.GetID());
 Vec3 pos = env.GetPlayerPos(player_id);
 // あとは pos に向かって自分の位置を調整
}

549 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:09:02 ID:m+X+Qg7j]
>>546
> たとえばこのコード、複数の Star インスタンスの m_vx, m_vy を同時に読み書きしている。

その言い方は不正確だし、並列化の本質をわかっていない。

そのコード、そもそも元コードがすこしおかしいのだが、タスクシステムを使おうと使うまいと
Starオブジェクトの集合から任意の2体を取り出して、その振る舞いを書きたいとする。

foreach(var star1 , star2 in stars)
{
  star1.m_vx = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
  star1.m_vy = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m); }
 }

これは、次のようにかきかえる。

foreach(var star1 , star2 in stars)
{
  star1.m_vx_new = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
  star1.m_vy_new = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m);
 }
foreach(var star in stars)
{
  star1.m_vx = star1.m_vx_new;
  star1.m_vy = star1.m_vx_new;
}

これは、コリジョン判定とそれに対するアクションを切り離すときもそう。
これをきちんと切り離しておかないと並列化できない。

前スレでコリジョン判定は並列化できないとか言ってた馬鹿がいたけど、アクションを切り離さないから出来ない。

550 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:11:17 ID:mN9/jFMx]
>>549
その指摘は正しいが、前スレ 510 を使うかどうかとまったく無関係だよね。
タスクとやらを使ったから並列化できるようになるわけじゃないし、並列化が
楽になるわけでさえない。

けっきょく、同じ労力を咲く必要がある。



551 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:11:22 ID:m+X+Qg7j]
>>548
> いずれにせよハンドルクラス (整数値とインスタンスの対応付け) は用意したほうが

そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。

そもそも、548のソースは典型的なタスクシステムで記述するよりはるかに複雑なんだが、
あんたは、タスクシステムの否定派なのか肯定派なのか何なんだ?

552 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:15:37 ID:m+X+Qg7j]
>>550
> タスクとやらを使ったから並列化できるようになるわけじゃないし、並列化が
> 楽になるわけでさえない。

それは違うね。タスクシステムの側に並列化する部分を担当してもらう。
タスクシステムを使う側は、それを利用すればいいだけ。

タスクシステムは底辺の馬鹿プログラマが書かなくとも、別の、もっと優秀なプログラマが書けばいい。

並列化効率とか、メモリcacheとか、シェーダーに対するタスクの分配とか、そういうのを考慮して効率の
いい並列化プログラムを書ける奴がな。

こうして、はじめてゲームの分業が成立するんだが。
あんたはちょっとはまともなプログラマに見えるが、大規模なゲーム開発に取り組んだことはないのか?

553 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:17:40 ID:m+X+Qg7j]
>こうして、はじめてゲームの分業が成立するんだが。

脱字。「ゲーム開発における分業」の間違い。

いま読み返したら549は
>foreach(var star in stars)
>{
>  star1.m_vx = star1.m_vx_new;
>  star1.m_vy = star1.m_vx_new;
>}

ここ、左辺はstar1ではなくstarだ。ごめん。

554 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:24:16 ID:mN9/jFMx]
>>551
> そもそも、548のソースは典型的なタスクシステムで記述するよりはるかに複雑なんだが、
以前から同じようなコード例書いてるんだけどな。前スレ 748 とか。

・コンポジションで良いじゃん
・規模が大きいプログラムだと、どのタイミングで何が呼ばれるか、変更されるかが
 分かることが重要。
 この例だと Enemy::Update 時には EnemyEnv 経由で Scene のメンバ関数が呼ばれる
 だけと確定する。Enemy::Draw みたいな処理があったときに、EnemyEnv const& 使うか
 別のクラスを用意するかは要検討(場合による)。

> そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。
スクリプトと連携するときに楽
boost::shared_ptr 使ってるとは限らない

別に weak_ptr 使える場合には、使えば良いと思うけど。

555 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:25:22 ID:mN9/jFMx]
>>552
> タスクシステムの側に並列化する部分を担当してもらう。
名前がタスクシステムなだけで、前スレ 510 とも >>2 ともまったく違う設計・実装について
語ってるということで FA?

556 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:26:54 ID:m+X+Qg7j]
結局、並列化の本質は>>549なんだ。もう少し抽象化して書けば、こう。

foreach(var star1 , star2 in stars)
{
star1の新しく情報を書き込む領域 ← star1とstar2相互計算によって得る。
}
foreach(var star in stars)
{
starの新しく情報を書き込んだ領域をcommitする。
}

で、これをタスクシステム側に並列化する部分を受け持ってもらう。
例えば>>546であれば、次のように書けば上のプログラム(>>549)と等価になる構文を用意する。

foreach_parallel (var star1 , star2 in stars)
{
  star1.m_vx = star1.m_vx*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vx*Star2.m_m/(star1.m_m+Star2.m_m);
  star1.m_vy = star1.m_vy*star1.m_m/(star1.m_m+Star2.m_m) + Star2.m_vy*Star2.m_m/(star1.m_m+Star2.m_m);
}

このとき、左辺は、shadow(m_vx_new , m_vy_new ) に対してアクセスしていて、実際はforeachを抜けてから

foreach(var star in stars)
{
  star.m_vx = star1.m_vx_new;
  star.m_vy = star1.m_vx_new;
}

これが実行される。この仕組みをタスクシステム側に提供してもらう。これなら簡単に並列化できる。
ゲームで使うコリジョン判定などはたいていこのように並列化できる。

557 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:31:11 ID:m+X+Qg7j]
>>555
> 名前がタスクシステムなだけで、前スレ 510 とも >>2 ともまったく違う設計・実装について
> 語ってるということで FA?

並列化とタスクシステムとは直交する概念だから、例えば>>2のタスクシステムを並列化することも出来るし
前スレ510のタスクシステムを並列化することも出来る。

どちらかと言えば、前スレ510のほうが>>2よりはある型のオブジェクト集合のうち任意の2体に対する
振る舞いが書けるのでその部分が並列化する価値が高いだけのこと。

そもそも、タスクに対して列挙したり、任意の型の2体を取り出したりする仕組みがどこにもない状態で
並列化なんて出来ないだろう。

俺がタスクシステムと呼んでいるのは、最低限、タスクシステムと名がつくなら、タスクに対する基底
クラスが存在して、それくらいの機能はあるんじゃねーの?と思うからだ。

558 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 09:32:48 ID:m+X+Qg7j]
>>554
>> そんなものあえて作る意味があるか?boost::weak_ptrで済むだろ。
>スクリプトと連携するときに楽

ふむ、それならok。

559 名前:510 mailto:sage [2009/03/04(水) 11:11:12 ID:5viq5cgM]
>>556
shadowのアイデアもーらい。

transaction( hoge )//shadow初期化
{
  task2_parallel( hoge, hoge )
  {
    _hoge1.x += hoge2.x;//例えば、変数の頭にアンダーバーがついていたらshadowとか。
    //rollback;//ロールバックも出来るよ
  }
  task_parallel_end;
}
commit;//shadowコミット


あと、何か頭が統合ヘッダ?の人が来てたみたいだけど、
アップロードしたプログラムのヘッダファイルがごった煮だったのは
単にサンプルプログラムだったからだ。

560 名前:510 mailto:sage [2009/03/04(水) 11:23:44 ID:5viq5cgM]
shadowは書き込みさきより参照元の方が良いな。



561 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 11:43:23 ID:4u8TV8ZG]
>>557
>俺がタスクシステムと呼んでいるのは、最低限、タスクシステムと名がつくなら、タスクに対する基底
>クラスが存在して、それくらいの機能はあるんじゃねーの?と思うからだ。

あー、やはりな。以下の内容は煽り抜きだから気を悪くしないでくれ

結局これはローカル用語の解釈を巡る相違でしかない
例えばウチの社内ではあんたの解釈を振りかざしても
意思疎通はうまくいかないだろう

ここでは色んな名無しが俺定義・俺解釈のローカル用語を
公衆の場に持ち出して一人相撲してる。あんたもそう

タスクシステムは権威不在の定義不明瞭なローカル用語だ
ということをまず再確認し、意思疎通を円滑にするために
それぞれがより確かな一般的な計算機用語に換言する努力を
すべきだ。でなければ、この実に不毛なすれ違いは無くならない

562 名前:510 mailto:sage [2009/03/04(水) 11:50:03 ID:5viq5cgM]
俺はソースコードアップしてその上で、これが俺のタスクシステムだって言ってるんだから良いんだよな。
皆各々ソースコードアップすればよいと思うよ。

563 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 12:38:40 ID:4u8TV8ZG]
>>562
君のコードにはもっと相応しい個性的でカッコイイ名前を付けてあげなさい
手垢で汚れたタスクシステムなんて臭い名前では>>2と勘違いされてしまう
君のコードは泣いているぞ。不敏でならない

エターナル自動並列ブリザードデータベースでもなんでもいい
革新的であることを世の馬鹿共に知らしめる努力をすべきだ

564 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/04(水) 15:46:36 ID:m+X+Qg7j]
>>559
なかなかいいね。

俺、そろそろコテハンにしとくわ。
ちなみに前スレ510に対して、C++としては素人の書き方だと指摘したのは俺な。

原則煽り専門だから、よろしく。

565 名前:名前は開発中のものです。 [2009/03/04(水) 18:27:15 ID:NGMxgsfO]
で?
ごった煮でどうやってヒット判定の並列化をするって?
値を後で更新すると折角優先順位をつけても古い値でヒット判定をすることになるからおすすめできない
並列化を狙うならオクツリーにして位置で切らないと多分無理

566 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:45:20 ID:4u8TV8ZG]
演算器いっぱいのベクトルプロセッサにやらせる場合
移動フェーズと衝突検出フェーズと衝突応答フェーズに
分割してそれぞれのフェーズでいっせーのーせでやる

物理エンジンなんかもそう

もちろん空間領域分割もする

567 名前:名前は開発中のものです。 [2009/03/04(水) 18:51:51 ID:NGMxgsfO]
駄目
衝突は即座に補正かけないとそれだけでバグる
移動して衝突判定をすぐにしないと壁の向こうの敵と接触することになるぞ
しかし壁の当たりの優先順位はおそらく最後だろ?
でないと抜けるしね
しかしそうすると壁の向こうの敵と接触する
この辺をタスク縛りにするのは正直うまくない
やるならなにはなくともオクツリー

568 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:02:10 ID:sCGilUsr]
なんで衝突判定中に衝突以外の判定を入れるの?馬鹿なの?

569 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:02:19 ID:TXLFx8i5]
それでバグらないようにする手法も研究されてるだろうね
考えるならなにはなくともまずはサーベイ

570 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:04:26 ID:F+dIxfjw]
並列化とタスクと絡めて話してるのは極一部で
しかもタスクを使えば並列化できると主張してる人はいない。
今の話は並列化に対応したタスクがもし作れるとするなら
どんなものになるかという感じ。並列化に関する部分は一般論をしてる。

つか並列化はそろそろ別スレ立てた方がいいんじゃね。
並列化が目的でタスクは手段に過ぎないんでしょ。



571 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:08:59 ID:4u8TV8ZG]
>>567
上のは(Id Software系のエンジンでいうところの)エンティティ対エンティティ
のみに絞った話。相互作用。
壁抜けや床抜けに対するケア、これはブラシとの衝突(相互ではなく一方的作用)は
当然これは即座に補正される

572 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:18:42 ID:4u8TV8ZG]
>>571
即座に、ではなく、衝突検出フェーズにおいて、ブラシとの作用が先に反映される
だな

573 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/04(水) 19:25:13 ID:m+X+Qg7j]
>>567
> 衝突は即座に補正かけないとそれだけでバグる

俺物理エンジン書いたことあるが、そんなこたぁない。

どうせお前のプログラム、移動させて同時に衝突判定してぶつかってたら逆方向に移動とか
阿呆なことやってんだろ。本当、このスレは底辺プログラマ集まってんのな。

574 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:26:40 ID:4u8TV8ZG]
>>572
ついでに、高速移動体に対するケアの話もここでは割愛している

あと、俺は強烈なアンチだ

575 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/04(水) 19:30:44 ID:m+X+Qg7j]
ああ、ID:4u8TV8ZGは底辺プログラマではないな。俺的に除外しとく。

しかし、ID:NGMxgsfOは、底辺以下だな。俺的には、ゴミ扱い。

タスクシステムを使うと総合ヘッダが必要になるとか言ってる基地外と一緒。
ああ、ID:NGMxgsfOがその基地外なのか?

576 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/04(水) 19:33:21 ID:m+X+Qg7j]
>>574
あんたは、強烈なアンチなのか。それは意外だ。

俺はじゃあ、強烈なタスク信者ってことでヨロシク!

まあ、あんたとは仲良くできそうだけどな。

577 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:44:25 ID:4u8TV8ZG]
>>576
俺とあんたとの間に争点があるとすれば、それはタスクシステムという呼称だろうな
俺はあのローカル用語から発せられる腐敗臭が大嫌いなんだ

578 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:50:16 ID:sCGilUsr]
タスク(自分の信じる、おそらく誰とも同じものを指していない)信者

強烈なアンチ(なにに対してなのか自分でも解っていない)
か。

579 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/04(水) 20:28:42 ID:m+X+Qg7j]
>>577
ああ、それは同感。

まあ、俺のなかでは、タスクシステムは少なくともstd::listよりは少しはマシなことが
出来るように工夫してあんだろ、みたいな思い込みはある。

std::list以下のものなら、タスクシステムなんて大層な名前つけなくても黙って
std::list使っときゃいいわけで。

580 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 23:21:38 ID:m+yO0HqN]
>>549
結局パフォーマンス向上しないだろコレ



581 名前:名前は開発中のものです。 [2009/03/04(水) 23:55:44 ID:NGMxgsfO]
全くしない(笑)
何を並列化したのかさっぱりわからん
あたりでやるとしたら全く関わることのない範囲を同時に・・・
ぐらいしかないけどな
こんなパラ単位で並列化なんて意味ねーよ

582 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 00:22:53 ID:eF6P+SnV]
>>580
foreach の部分を OpenMP とかで並列処理できれば、まぁ多少は。

しかし、そもそも並列化するならゲームロジックが絡むところより、モーション計算
とかエフェクト(特にパーティクル)だろう。ゲームロジックは依存関係がキツいし、
仕様変更が頻繁に起こりうるからリスク大きすぎる。

もっとも PS2 のときから、技術力があるところは VU1 に持っていってたけどな。

583 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 01:46:15 ID:EYYtQjTl]
ああくそ!
ID:NIkO1+LI祭に乗り遅れた!
書き込み規制が憎い

584 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 07:31:17 ID:2NL1rK1f]
>>580
するよ。

>>581
阿呆すぎて泣ける。どこの阿呆かと思ったら、
「衝突は即座に補正かけないとそれだけでバグる」とか言ってた阿呆か。
全然話にならんわ。

まともな物理エンジンのソース見たことないんだろうな。


585 名前:名前は開発中のものです。 [2009/03/05(木) 07:49:58 ID:DNYGW2s8]
でも実際動いたら補正かけないと壁の向こうの敵に当たる
間に壁がないかみて判定しなきゃならんときもある
この辺をタスク縛りにされるのは正直やりにくいにも程がある
ゲームやオブジェクトによってすり抜けがどうでもいいものもあるだけに一般化はできない
リングアウトだけ起こらないでは済まない場合は結構多い
べつに速度がとんでもない場合じゃなくても問題は起こる

586 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 08:24:43 ID:2NL1rK1f]
>>585
あんたは、ID:NGMxgsfOか?

それとも、ID:NGMxgsfO級の阿呆が何人もいるのか?
いい加減、コテハンにしてくれ。

まともな幾何的なconstraint solverを書いたことすらない奴が物理エンジンを語るなよ。

587 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 09:31:58 ID:eF6P+SnV]
>>586
ここで物理エンジン語るのも、どうかと思うが。

588 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 09:41:46 ID:NLOFzCy8]
>>586
何故 >>585 の問題が起こらないのか教えて欲しい

589 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 09:52:09 ID:W/Wu7C9w]
>>585,588
タスク以外でも585の問題をどうやって解決しているのか知りたい。
結局両方の例が無いと比較できないし評価を下すこともできない。

590 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 10:27:56 ID:rvhMBE/z]
壁との当り判定&補正処理をした後で
敵との当り判定を取れば良いだろ。



591 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 10:33:57 ID:2NL1rK1f]
>>588-589
何度でも言うが阿呆共はコテハンつれてくれ。

>>590
そんなことをするとコリジョン判定を並列化できない。

592 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 10:56:14 ID:rvhMBE/z]
壁との当り判定&補正処理と、敵との当り判定を、それぞれ別々に並列化すればよいだろ。

parallel { 壁との当り判定&補正処理 }
parallel { 敵との当り判定 }

593 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 11:00:40 ID:eQbdbaUx]
さすがに優先度の在る処理を並列化する馬鹿は居ないだろ。

594 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 11:53:25 ID:2NL1rK1f]
>>592
素人すぎて話にならん。なんだよ、壁と敵って。動くか動かないかでわけてんの?馬鹿じゃねーの。

595 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 13:24:53 ID:rvhMBE/z]
動くか動かないとか、誰も言ってないのに。
壁=動かない、敵=動く、という固定観念でもおあり?

>>592 は、
あらかじめ、物理的に問題の無い状態に落ち着けてから、
あらためて、ゲーム進行上ひつような当り判定を行う。
ということ。



596 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 13:26:57 ID:rvhMBE/z]
並列さんも結局あてにならないんだよなぁ・・・

597 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 13:50:52 ID:2NL1rK1f]
>>595
> 壁=動かない、敵=動く、という固定観念でもおあり?

この議論の大元となっているのは、>>155で、そこには

> 衝突解決には、たとえば「壁は動かない」「プレイヤーが壁に当たったら押し戻される」

と書いてあるから俺はその定義に従っただけなのだが。

この流れで、オレオレ定義の「壁」とか「敵」を持ち出すなら、言葉の定義ぐらい先に書いて欲しいんだが。

598 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:02:23 ID:TJw/foDe]
あてになるかどうかというより基本的な部分で意志の疎通ができてないんじゃ。
共通認識を積み上げる作業をさぼったらコミュニケーション取れんよ。

そんな面倒なことは省略して結果を気にせずに出会い頭の辻切り対辻切り
みたいなやりとりを日常的にしてるのが2chでもあるけど。

599 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:03:36 ID:rvhMBE/z]
どんだけ悔しかったのか知らないが、12日も前のレス持ち出して弁解ですか。
>>592の壁とか敵はオレオレ定義ではなく、>>585で出現しているそれ。
7つ上のレスも見れない池沼さんですか?
で、揚げ足取りは結構なんだけど、本文への反論は?

600 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 14:18:31 ID:2NL1rK1f]
>>599
> >>592の壁とか敵はオレオレ定義ではなく、>>585で出現しているそれ。

>>585に定義らしきことは書いてないじゃん。

> で、揚げ足取りは結構なんだけど、本文への反論は?

「壁」と「敵」についてきちんと定義を書いてくれ。話はそれからだ。




601 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:45:45 ID:eQbdbaUx]
>>600
こいつは何を並列処理しようとしてるの?

602 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:56:23 ID:rvhMBE/z]
(あ、また、
自分は7レス前の今朝の関係のあるレスも見れないのに、
他人には439レス前の12日前の無関係なレスを覚えていることを要求する並列さんが何か言ってるな)

>>600
ちょっともう、どうしたらよいの?国語やりなおせとしか言いようが無いのだが。。
>>585をよめば、
・壁とは、敵との当りを防ぐもの。
・敵とは、当たりをとる対象。
ということぐらい普通分かるだろ。
同時に、>>155が今件になんら関係ないことも分かるだろ。
結論から言うと、お前が一人で勘違いして勝手に煽ったりファビョったり一人相撲してただけだ。

603 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 15:05:28 ID:rvhMBE/z]
文章が読めない奴ばかりだから、もう一度書き込むぞ。
>>585は、
衝突解決の途中でゲーム進行用の当たり判定を取ると、
ゲーム進行用の当たり判定がバグる、
と主張し、
それに対して俺は、
衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、
と主張をしている。
予め言っておくが、衝突解決の優先順位の問題とは全く別の話。

604 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 15:17:15 ID:2NL1rK1f]
>>602
> ・壁とは、敵との当りを防ぐもの。
> ・敵とは、当たりをとる対象。
> ということぐらい普通分かるだろ。

それはわかるが、敵同士は重なっている状態が許容されるかどうかが>>585からはわからない。

もし許容されないなら、敵とか壁とか分けて考える必要はなく、どちらも対等な単なるオブジェクトだから
用語をわざわざ分ける必要がない。

それを >>592 のように処理を分けているというのは、あんたが勝手に敵同士の交差は許容されると
>>585 から解釈したとしか思えない。要するに>>585を拡大解釈しているのはあんただろ。

605 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 15:20:29 ID:2NL1rK1f]
>>603
> 衝突解決が完了してからゲーム進行用の当たり判定を取ればよい、

「ゲーム進行用の当たり判定」なんて、誰も話題にしてなくて
幾何的に重なりをもつ状態をいかに防ぎつつ処理を並列化するかしか
問題にしてないと思うんだが。

あんたは日本語が不自由以前に頭が不自由みたいなんで、
俺はあんたの相手はしないことにする。

606 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 15:41:13 ID:eQbdbaUx]
まとめ
ID:2NL1rK1f が正しい。
ID:rvhMBE/z は間違っている。

なぜならここはタスクシステム(^^;)スレだから。
今は並列処理(笑)をどこまでシステムを組み込めるか議論する場なので、(たとえば整数のみで実数計算するにはどうするのが一番いいかのような)
ID:rvhMBE/zのように並列処理(笑)を使わない最も効率的で扱いやすい無駄の無い設計はスレ違い。
みんなそれが最善手段と知ってる上で議論している。
(まぁ>>604の敵同士の交差がどうこうというのは並列処理(笑)時の話であって交差しようがしまいが別に処理させているID:rvhMBE/zの設計に対するツッコミ(ボケ?)は意味不明だが)

607 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 15:51:13 ID:rvhMBE/z]
本当に文章が読めないんだな。どうしようもない。
>>585にはプレイヤーという主語が抜けてるんだよ。
それぐらい行間読めよな。

だから、

>敵同士は重なっている状態が許容されるかどうか

は関係ない。

さかのぼってみれば、>>567が発端で、これは、

>演算器いっぱいのベクトルプロセッサにやらせる場合
>移動フェーズと衝突検出フェーズと衝突応答フェーズに
>分割してそれぞれのフェーズでいっせーのーせでやる

に対してレスされている。
内容は、それぞれのフェーズの呼び出し順が固定だから、
衝突検出フェーズ内で拾う値は必ず補正前の値になってしまうので、
壁の向こうの敵に接触してしまうなどの不具合が出る、というもの。
つまり、古典的タスクシステム固有の問題で、実は並列化は関係がない。

608 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 16:09:30 ID:Ld676bZP]
速度がでてないのに壁の向こうの敵にあたるって
壁薄くね?

609 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/05(木) 16:37:36 ID:2NL1rK1f]
>>608
実際は、紙みたいな壁も存在して、単なる衝突判定でやってしまうと
次フレームでは通り抜けてることもある。

だから、まともな物理エンジンでは、そういうオブジェクトに対しては、
連続体として扱うようになっているのだが、この取り扱いは結構難しい。

これに関しては最近、いろいろ論文が発表されるなど、比較的hotなテーマだ。

610 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 18:58:37 ID:/7Ei5x6Q]
君らってRogue Spear 知らないの?
www.youtube.com/watch?v=A7xiK-snyJk
そんな古臭い話が最近の論文なんて信じられないが

論文あるならソースだしてくれよ
多分読めないが


話変わって >>2 のタスクシステムのソースって
慣れてないと難しいね
拡張も慣れが必要
ちょっと自分流の方が早い気がしてきた



611 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 19:12:57 ID:CwokJJKn]
このスレは直列番長の>>2をボコるスレだろ

612 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 19:50:12 ID:CwokJJKn]
>>607
>つまり、古典的タスクシステム固有の問題で

なんでそうなるんだよ

613 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 20:33:20 ID:CwokJJKn]
>>567はcontinuous collision detectionの話がしたいのか?

壁とか言ってるから違うだろ。隣部屋同士の誤判定の話くさいんだけど
空間分割された隣部屋同士なら『ドア(窓)を経由しない限り当たらない』
ドア(窓)を経由して侵入してくる疑いがある奴は移動フェーズの時点で
バレてんだから、移動フェーズが終わった時点で同期的処理かませれば
いいだけだろ。バカくせ

614 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 20:40:46 ID:CwokJJKn]
ドア(窓)を経由しないでポータルの外を飛び出るかもとか
そんなクズシステムの話を持ち出す時点で駄目だ

タスクバカ=>>2信者=直列バカはやっぱりバカだ

615 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:52:25 ID:LpIMNDbi]
銃弾は壁も突き抜けるぜ!

616 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 20:54:34 ID:CwokJJKn]
そうか。>>567は銃弾の話をしてるのか。そうなのか?
そういや壁抜きでぶっ殺したら升使ってるとか言われたな
これだからnoobは困る

617 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:49:16 ID:/7Ei5x6Q]
>>616
そういうツールありますから
あなたの方がnoobですよ

618 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 21:51:32 ID:CwokJJKn]
あー、わかったぞ
並列君は銃弾も人も同じエンティティとして平等に扱うのか
マジで狂ってるな。どんだけ無駄なことすりゃ気が済むんだよ

619 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:54:16 ID:eQbdbaUx]
>>618
だから効率を求めてるんじゃなくて、並列でどうやって対処するか議論してるんだってば

620 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 21:57:28 ID:CwokJJKn]
>>619
は?誰だよお前。名無しに用はねーんだよ
効率を度外視した糞システムなんてみんな糞だ
お前らタスクバカはそうやって何でもツクールを目指すバカだから
並列処理も効率度外視とかウンコくさい話をしたがるんだろ

バカは氏ね。思想レベルで詰んでる



621 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:03:48 ID:okJUxEhs]
≡≡≡≡≡≡.   
日 ▽ U 日    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
≡≡≡≡≡≡   | IDさん今日は荒れてるなあ。
V ∩ []    。〇 \____________
____ ∧∧゚______
     □ (    )
―――― |   ヽ――――――
      (____)〜
━┳━   ━┳━   ━┳━
 ̄┻  ̄ ̄ ̄┻ ̄ ̄ ̄ ┻ ̄ ̄

622 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 22:07:27 ID:CwokJJKn]
>>2が時代錯誤的な直列処理してっからブッ叩かれ、それを気にして
カッとなって、今度は極度に逆方向にふれて究極の並列コードを
目指すし始めた一部の先進次世代タスクバカ。>>510が代表だな

お前らタスクバカはさ、いい加減『ナニを作るのか』具体的に書けよ
何でもツクール目指すから『ナニを作るのか』書けません、だとか
ミラクルドリーマーみたいな事をほざくなよ

623 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 22:19:07 ID:CwokJJKn]
>>621
俺、一応未成年だからお酒でそういう大人っぽいお店にいって
酩酊してウサ晴らすとかそういうことできないんだよね

これは芸風だから。昨日の並列君のお前らみんなバカ宣言
に対する報復である

624 名前:ID:EEKBitmg mailto:sage [2009/03/05(木) 22:20:46 ID:CwokJJKn]
×お酒でそういう大人っぽいお店にいって酩酊して
○そういう大人っぽいお店にいってお酒で酩酊して

625 名前:561 mailto:sage [2009/03/06(金) 00:00:33 ID:4YMxwutE]
惚れた

626 名前:名前は開発中のものです。 [2009/03/06(金) 07:47:43 ID:+3ldVLU9]
>>622
そんなの無理だろ
タスク信者は動いてるプログラムにタスクウィルスを入れて
自分しかメンテできないようにして、自分の居場所を確保する
犬の小便的行動が本来の目的なんだから

627 名前:ID:EEKBitmg mailto:sage [2009/03/06(金) 10:06:54 ID:xP4A6jxv]
いやー、昨日も面白い池沼がいて楽しかったわ
これだからこのスレはやめられないw

628 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 13:01:17 ID:FjTUznzx]
銃弾の事は外野の俺がネタで言ってみただけだお…><

629 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 14:33:08 ID:YCUPWfAP]
>>625
>427

>>626
そのくらいで地位を守れるなら失うよりはずっとマシだと真剣に思う、この不況。無職を叩く側から叩かれる側になるなんてやだもん。

630 名前:名前は開発中のものです。 [2009/03/06(金) 18:02:43 ID:+3ldVLU9]
ついにタスク信者自身が自分がクソを入れてることを認めたか



631 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/06(金) 18:18:57 ID:oTJ018DT]
なんじゃそりゃ

632 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 19:15:57 ID:oLiuTYVi]
>>622
タスクシステムが直列処理だとは思わんが。
どっちかっていうと、並列かと。

633 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/06(金) 23:46:34 ID:aRzhzssB]
>>627
ちょっとー。何なのおまえ誰なのおまえそこへ直れよおまえ!このイジメっ子ザザ虫!
平日の朝っぱら10時から暇そうに2ちゃんで厨のIDコテ使って何ふんぞり返ってるの?
イイ歳した大人が虎の威ならぬ厨の威を借りて一段高くなれるの?低くならないの?恥ずかしくない?

お前、今まで俺のことをHSPしか使えない基地外とか繰り返し叫んでたウンコ君でしょ?
気になるあの子が振り向いてくれないからって、あの子の目の前であの子の名札つきの
体操服を着てあの子のピアニカをチュアパチュパしゃぶりながらあの子のリコーダーに
ポークビッツを差し込んで教室で待ち構えて本人登場したらポークビッツが健気に膨張
圧迫されて抜けなくなって保健室に運ばれちゃう変態、超ド変態の子供時代を繰り返すの?

タスクバカのことをバカバカエンガチョって指差してきたけど流石にトリップ無しIDコテ厨を
騙るほど堕ちちゃいないだろうと信用してたのに買いかぶりだったみたい。もう大嫌い



634 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/06(金) 23:55:00 ID:oTJ018DT]
>>633

>627は偽物だったのか・・。まあ、もとより俺には、本物が誰なのかよくわからないのだが。

>633を見る限り、なんか内容は支離滅裂だが、それでもあんたの日本語は他の奴よりは
断然読みやすいのでまだ許せる。

日本語の不自由な奴は、ゲームなんか作ってる場合じゃなくて、
もっと先に勉強すべきことがあるだろ、とか思うんだけどな。

635 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/06(金) 23:56:33 ID:aRzhzssB]
>>632
正確には並行処理じゃないの?

636 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/06(金) 23:59:28 ID:aRzhzssB]
寮に帰って2ちゃん見てワナワナプルプルしながら顔真っ赤に怒ってるから
支離滅裂なんだ!ちなみに昨日の書き込みには大変な矛盾があるので
訂正したかったが、>>627は俺らしいから彼にやらせてみようと思う

637 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 00:46:01 ID:ZZNOCL1s]
>>635
優先順位がつくばあいもあるから正確には並列とは言えないだろうな。

638 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 00:55:26 ID:cewi3IDn]
>>637
その理屈はおかしい。
マルチスレッドのプログラミングでもセマフォで他のスレッド待ったり普通にするじゃん。

処理に順序があろうが無かろうが、並列なものは並列だ。

>>635が並行と言ってるのは、タスクを実行しているスレッド(プロセス)が通例、
1つだけだという理由からだろう。

639 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:06:43 ID:ZZNOCL1s]
>処理に順序があろうが無かろうが、並列なものは並列だ。

並列さんの言ってることは意味が分からん。
処理に順序があれば、同時に実行できないのだから、並列でないだろ。
マルチスレッド≠並列。

煽り専門と名のってたが、嘘ばかりを書き込んでスレの機能を麻痺させる気?
名前変えたら?

640 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 01:17:59 ID:cewi3IDn]
>>639
> マルチスレッド≠並列

言葉の定義の問題だから、まあどうでもいいが、まあ普通は
マルチスレッドで実行されている以上、並列だし、あるスレッドが他のスレッドを
待っていてスループットが悪かろうが、並列なものは並列。

処理順序が厳密に定められていて、まったく逐次実行しか出来ないなら、
シングルスレッドと同じか、それ以下のパフォーマンスしか出ないけどな。

実際はゲームのタスクはそこまで処理順序に関しては制約が厳しくないので
いくらでも並列化できる。



641 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:37:59 ID:ZZNOCL1s]
>マルチスレッドで実行されている以上、並列だし、
並列ではない。並列な部分もあるってだけ。
今は、「正確には並行処理じゃないの?」と問われていたわけで、
純粋に並列でないなら、正確には並列とは言えない。

だいたい、マルチスレッド云々は実装レベルでの話しだし。
タスクシステムがアーキテクチャ的に並列処理かどうかとは関係ない。

642 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:42:09 ID:ZZNOCL1s]
コーヒー牛乳は牛乳か→YES
コーヒー牛乳は正確には牛乳か→NO

タスクシステムは並列的か?→YES
タスクシステムは正確には並列か?→NO

643 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 01:58:35 ID:cewi3IDn]
>>641
> 今は、「正確には並行処理じゃないの?」と問われていたわけで、
> 純粋に並列でないなら、正確には並列とは言えない。

この文章、意味不明だ。この文章、俺の解釈では↓こうだ。

 今は、「正確には並行処理じゃないの?」と問われている。

 スループットが1以下の並列実行なんて並列実行には含まれないので
 「正確には並列」とは言えないので、単なる「並行処理」と見なすべきだから、
 この「正確には並行処理じゃないの?」は正しい。

もし、そういう意味で書いているなら、俺は別に反対意見は唱えていない。

しかしそれなら>>637の書き方が悪い。
「優先順位がつくばあいもあるから正確には並列とは言えない」
だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから
並列とは言えない」と読める。だから俺は>>638のように反論した。
>>637は、正しくは
「優先順位がつく場合、並列化が難しく、並列度が極端に低下して、単一スレッドで実行
しているのと変わらないから、並列と呼ぶべきではない」と言うべきだっただろう。

しかし、俺はそうは思わない。
処理に優先順位がついていようが並列度を上げることは十分可能だからだ。

644 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:03:29 ID:LbywpZ2h]
コーヒー牛乳は牛乳か→NO

645 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:08:20 ID:cMprZFoi]
>>643
見苦しいです

646 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:10:52 ID:cewi3IDn]
>>645
見苦しいか?ふむ。

それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。

647 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:23:08 ID:ZZNOCL1s]
>「優先順位がつくばあいもあるから正確には並列とは言えない」
>だと、「優先順位がときどき偶発的について、そのときに限り並列性が落ちるから
>並列とは言えない」と読める。

優先順位がときどき偶発的について、そのときに限り並列性が落ちることがあるから、
正確には並列とは言えない、であってるよ。
タスクシステムは正確には並列か?という命題に対して、
タスクに優先順位が付く場合を判例に挙げたまで。
処理に優先順位が付く場合、理論的にピュアな並列処理とは言えないからな。
完全な並列性とは、なにをどの順で実行しても構わない場合のみ。

648 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 02:47:03 ID:ZZNOCL1s]
>それなら、日本語の不自由そうな奴に絡むのはもうやめるわ。疲れるだけだ。

自分がまともに日本語を扱えないくせに。
>>643とか、これ日本語ですか?

Q:タスクシステムは正確には並列か?
A:タスクの処理の優先順位をサポートするタスクシステムの場合には、
  タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。

たったこれだけのことが何で分からないのか。

彼はこの問題を実装レベルの並列度の話に持ち込もうとするが、
そもそも、すべてのタスクを同時に実行できるハードが存在しない現状で、
実装レベルでの並列性をもってして、
「タスクシステムが正確には並列かどうか」を判断するのはナンセンス。
なぜならタスクシステム自体による制限よりも、
ハードウェアによる制限の方が先に現れるから。

649 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:49:57 ID:cewi3IDn]
>>647
> タスクシステムは正確には並列か?という命題に対して、

だが、あんたは、>>635を誤解している。

635は
> 正確には並行処理じゃないの?
と書いてあって、並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。

635を書いた本人は、「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので
「並行処理と呼ぶほうが正しいのではないか」と言ってるわけ。

それなのにそれに対する受け答えとして、あんたは、>637で「スループットがN倍になっていなければ
pureな並列とは呼べないので並行ではない」と言っている。あんたが「並列度1.0(そんなもの現実的に
存在しないんだが)ではない並列」を「並列」とみなさないのはあんたの勝手だが、635に対する返答として
637は、おかしい。

650 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 02:52:08 ID:cewi3IDn]
>>648
> Q:タスクシステムは正確には並列か?
> A:タスクの処理の優先順位をサポートするタスクシステムの場合には、
>  タスクの処理に順序が出来るので、この場合は正確には並列とは言えない。
> たったこれだけのことが何で分からないのか。

Qが間違っている。誰もそんなQをしていない。詳しくは>>649




651 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 03:03:47 ID:cewi3IDn]
俺、もう寝る。

どうか、ID:EEKBitmg ◆HSP4mee/SU は、 ID:ZZNOCL1sの相手をしてやって欲しい。

ID:EEKBitmg ◆HSP4mee/SU の書く内容は、技術的に間違ってることも多々あるし、態度も生意気だけど、
日本語は意味明瞭だし、技術用語の使い方も比較的正しいので俺としてはかなり好感が持てる。

まあ、勉強熱心なんだろうな・・。

652 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:03:00 ID:8u/3vapK]
なんか良く分からんが、お前らの並列と並行の定義はこれで合ってるの?
docs.sun.com/app/docs/doc/819-0390/mtintro-6?l=ja&a=view

653 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:21:13 ID:ZZNOCL1s]
まず並行でないなら並列化できないわけで。
逆に、並列化不可能なら、並行でない。
というか、むしろ今まで並行の意で並列と言っていたのだが。

>スループットがN倍になっていなければ
>pureな並列とは呼べないので並行ではない
は正しい。

順序がある処理は並行ではない。

654 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:22:50 ID:ZZNOCL1s]
journal.mycom.co.jp/articles/2006/05/15/bsd3/
俺はこっちかな。

655 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:43:57 ID:8u/3vapK]
>>652 >>654
同じだとおもうけどw

>順序がある処理は並行ではない。
いや、順序があっても並行は並行だろう。

ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
仰々しく「並行」だの「並列」だの言うな、と主張しているように見えるなあ。
ID:ZZNOCL1sは実践的な話をしていて、
並列さんは字面通りの一般的な並列の定義に沿って話しているだけに見える。

というのは深夜の時点で並列さんも悟っているように見える。

656 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 10:53:23 ID:ZZNOCL1s]
>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
>「タスクシステムの構造ではスループットは1倍を絶対に超えない」ので

並行化によって待ち時間が減ったりするので、スループットは向上するが、
1倍の基準点が不明。

657 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 10:57:38 ID:cewi3IDn]
>>653
> というか、むしろ今まで並行の意で並列と言っていたのだが。

あんたは、全然話にもならない。

専門用語を勝手に本来と違う意味で使っておいて
相手に日本語が読めないだの何だの言うのは本当、勘弁して欲しい。


658 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:06:08 ID:ZZNOCL1s]
>いや、順序があっても並行は並行だろう。
順序がある処理は並行化できないよ。
例えば、処理Aと処理Bがあって、
BはAの後でないと実行不可だとする。
この場合、AとBを並行に処理することは出来ない。

659 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:06:20 ID:cMprZFoi]
>>655
> ID:ZZNOCL1sは効率的でない並行/並列は役に立たないんだから、
そんな話じゃないでしょうに…

あと
>並列さん
>悟っている
なんか気持ち悪いです

660 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:13:36 ID:cewi3IDn]
>>658
> 順序がある処理は並行化できないよ。

それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。
ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。

本当、専門用語を勝手に意味を作り替えんなと言いたい。

>>659
気持ち悪いのはお前。お前はいらない子だから死んでくれ。



661 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:17:08 ID:ZZNOCL1s]
>>657
お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。

>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
↑何に対する1倍かはしらないがな。

662 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:25:40 ID:cewi3IDn]
>>661
>>並行ということはconcurrentなのだから、スループットは1倍を絶対に超えない。
>↑何に対する1倍かはしらないがな。

そこが読めてないのお前だけだろう。

「concurrentな処理は、Nコアであっても、単一コアで実行したときの1倍以上のスループットが出ない」の意味。

663 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:31:14 ID:cewi3IDn]
>>661
> お前も、並列処理は並行処理の部分集合だということをおさえられていなかっただろ。

どこをどうやればそう読めるのか俺は知りたい。

並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
単一か複数かの差のみ。そんなことは誰でもわかっている。

その用語を勝手に違う意味に使ってたのはあんただろ。
俺には、頭がおかしいとしか思えない。

その頭のおかしいあんたを唯一擁護しているのは ID:cMprZFoi だけ。

こいつは、あんたが書き込みした直後にしか出てこない。どうせこれもあんただろ。

664 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:36:14 ID:92TsYx3X]
カプコンのMTフレームワークみたいなマルチコアでのパフォーマンスに特化した設計の
フレームワークなら並列云々の話になると思うが…

あれもタスク進化系の一種なのか?ちょっとタスクって守備範囲広すぎ。

あれはコア数がパフォーマンスに直結する造りだね。
順序の依存性のある処理と無い処理をグループ分けして、並列で問題ないケースは複数コアで同時計算。
順序の依存性がある処理との同期スケジューリングをフレームワークが管理って感じで。

ゲーム中には依存性のある処理と無い処理があるから、まぁ複数コアを有効に使おうと思うと
こんな感じな設計に行き着くんだろうね。

665 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 11:40:55 ID:cewi3IDn]
ID:EEKBitmg ◆HSP4mee/SUはまだ良かった。

HSP使いのプログラミング経験の浅い世間知らずのクルクルパーだが、
そのわりには用語の使い方はまともだし、勉強もよくしていると思っていた。

俺は専門用語を勝手に俺解釈の用語とすり替えて話す奴とは
面倒くさいので話をしたくない。

このスレはどうせみんな常駐してるようなもんなんだから、みんなコテハン
にすればいい。それそれぞれが嫌な奴をNGリストに入れておけばいいと思うんだがな。

そんなわけで ID:ZZNOCL1sは俺をNGリストに入れておいてくれ。
お前と話をするのは疲れる。

666 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:49:53 ID:ZZNOCL1s]
>それぞれのタスクを逐次処理しようが、それは並行処理って言うんだが。
いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。
実際OSなんかは各スレッド間に依存関係が無いものと見なして並行処理しているわけで。

667 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 11:52:30 ID:8u/3vapK]
>>658
それが実質直列だってことは分かるんだけど。

とりあえず、俺が何を考えているのかと言うと、
動き方が実質直列であっても、それぞれ別のスタック領域を持ってる点が違うだろ?
別々のコンテキストを持っている。
その辺を区別するのに「実行効率ゼロの並行」も俺は並行と呼んでただの直列と区別していた。

要するに俺はコアが何個でそのPCがどこ指してるのって部分だけで並行か並列かって言ってた。

んで、一般的定義はどうなのと思ってググった先を見てみると、
コンテキストがどうのというのは論点じゃ無いような気がしてきた。

もうちょい調べてみるわ。

668 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:05:02 ID:cewi3IDn]
>>666
> いや、単純に考えて、処理に依存関係があると、並行処理できないだろ。

あんたの「並行処理」について持ってる勝手なイメージは知らんが、
優先順位がついていてそれぞれのタスクを逐次的に処理していく場合も
(そのタスクが終了後に消滅しないなら)「並行処理」と呼ぶ。

en.wikipedia.org/wiki/Concurrent_computing

> Concurrent programs can be executed sequentially on a single processor
> by interleaving the execution steps of each computational process

「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら
シングルプロセッサによって逐次的に実行される」

計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
何ら関係がない。

・実行箇所をインターリーブしながら(タスクからリターンしてもタスクは
通例存在していて)

・シングルプロセッサによって(ある瞬間を見たときにつねにひとつの
プロセッサしかタスクを実行していない)

この二つを満たしているなら、並行処理。

669 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:09:24 ID:ZZNOCL1s]
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
どこにそんな定義があるんだ?

670 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:10:23 ID:cewi3IDn]
>>667
何を言いたいのかよくわからないが、>>668の説明は理解できる?



671 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:11:16 ID:cewi3IDn]
>>669
>>668

672 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:26:24 ID:ZZNOCL1s]
並行計算
ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E8%A8%88%E7%AE%97
>タスク群は1つのプロセッサ上で動作する場合、複数プロセッサ上で動作する場合、
>ネットワークを介した分散システムで動作する場合が考えられる。

663 名前:並列さん ◆dPfetnROQg [sage] 投稿日:2009/03/07(土) 11:31:14 ID:cewi3IDn
 並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
 単一か複数かの差のみ。そんなことは誰でもわかっている。

Wikipediaの人は分かってないみたいですよ。
注意してきたらどうなんですかね。

673 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:42:43 ID:ZZNOCL1s]
>>668
>計算プロセス間の依存性とか、効率とかそんなことは並行処理の定義とは
>何ら関係がない。

だから、並行処理では処理の依存性は考えない=依存性は扱わない=依存性は扱えない。
扱わないのは扱えないから扱わないの。
実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。
各スレッドを並行と見なして実行する。
処理に依存性がある場合はプログラマが自前で同期オブジェクトとかつかってシコシコやる。

一方、タスクシステムでは処理の依存を優先順位という形で明示的に扱うのが一般的。
各タスクを並行とみなしているわけではない。

674 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:44:25 ID:92TsYx3X]
いつのまにか
並行・並列処理の単語の定義のスレになってるな。

自然言語の単語の定義なんてどこまでいっても曖昧なのに…
自分の言う「臭い」と他人の言う「臭い」が同じという保障なんて誰にも出来んよ

確かなのは人工言語で書かれたソースのみ。

675 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:44:25 ID:cewi3IDn]
>>672
ざっと見たけど日本語のwikipediaのほうは、ひどいな。

これとか
> 並行性のための構造を備えた最も一般的な言語はJavaとC#である。
なんでだよと突っ込みを入れたくなる。

これ書いてる奴は、thread生成が出来るからJavaとC#を入れてるんだろうけどひどいにもほどがある。
C#のyieldによるcontinuationは確かに並行スレッドなんだが、それならJavaを含めるのはおかしい。

日本語のwikipediaの「並行性」の項目もひどいな。なんだよこれ。

ちょっとwikipedia行って暴れてくるわ。

676 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:47:15 ID:cewi3IDn]
>>674
> 自然言語の単語の定義なんてどこまでいっても曖昧なのに…

専門用語は、限りなくstrictに定義されてるべき。

そうじゃなきゃ論文とか意味のないものになってしまう。

677 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 12:50:58 ID:ZZNOCL1s]
>>668
wikipediaを引用しているようだが、途中で切れているようだが。

>「並行プログラムは、それぞれの計算プロセスを実行箇所をインターリーブしながら
>シングルプロセッサによって逐次的に実行される」

の後ろには、実際には

or executed in parallel by assigning each computational process to one of a set of processors
that may be in close proximity or distributed across a network.

が続いている。
自分の都合の良いところだけを掻い摘んで引用する根性の悪さ。

結局、

>並行処理と並列処理との差はある瞬間に、タスクを実行しているスレッド(プロセス)が
>単一か複数かの差のみ。そんなことは誰でもわかっている。

は間違い。

678 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 12:52:11 ID:cewi3IDn]
>>673
> 実際のOSなんかでも、スレッド間の処理の依存性は扱わない。というか扱えない。

それはダウト。

実際のOSにはプロセスのpriorityがあって、それに従ってスケジューリングされる。
割り込みなんか特にそう。あるプロセスの実行が他プロセスの実行より優先されることは多々ある。

キーボードイベントが発生したら、その処理が優先される。そこには明確な実行順序がある。

そんな機能すらない、もっとprimitiveなOSの話をしているなら、まあそれはそれでいいけど
「実際のOS」と書かれるとWindowsやらLinuxやらを想定しているのかと俺は思ってしまう。

679 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:02:13 ID:ZZNOCL1s]
>>675
お前がひどいという日本語版の、
「並行性のための構造を備えた最も一般的な言語はJavaとC#である。」
は英語版のページにある
「Today, the most commonly used programming languages that
 have specific constructs for concurrency are Java and C#. 」
の訳なわけだが。
そしてその英語版のページを引用して、
「これが並行処理の定義だ!」と言っていたのがお前なのだが。
さらにその引用も自分の都合のいいところだけを引用するという正確の悪さ。
「〜又は〜」と書いてあるのに、「又は」以降をバッサリカット。

680 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:05:44 ID:ZZNOCL1s]
>>678
プロセスのプライオリティーは必ずしも守られるわけではない。
あれは、CPUリソースに対する優先順位であって、処理に対する依存関係を表すものではない。
現にマルチプロセス環境だと、プライオリティーの高いものと低いものが同時に実行される。



681 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:05:45 ID:cewi3IDn]
>>677
それなぁ、「executed in parallel」以下は敢えて省略した。

これを「根性の悪さ」と言われるのはわからないではないが、いま俺が問題としているのは、
「concurrent thread」 とか「parallel thread」というときのconcurrentとparallelの意味の違いだ。

「concurrent computing」という学問分野があって、その学問分野は広範で
いわゆる分散コンピューティングみたいなことまで研究対象としている。

本来、concurrentの定義にparallelとか出てくるのはおかしいのだが(それだとconcurrentとparallelとの
差が無くなってしまう)、「concurrent computing」の分野においては、「concurrent program」の意味は、
かなり拡大解釈されている。だから、その部分をはしょった。

「concurrent computing」のconcurrentを援用するのがあまり良くなかったと言われれば、まあ、それはそうなのだが。

682 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:09:34 ID:Fbn5zOAB]
並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。
んじゃないの?

独立した概念(関連はあるけど)なんだから、>>660
>ある瞬間に一つしか実行していなければ並行。それがconcurrentの定義。
はおかしいと思う。
concurrentに作っておけば、parallelに実行しやすいんだし。

683 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:17:17 ID:cewi3IDn]
>>680
うむ、それは正しい。

>>682
ああ、そうか。そういう意味では、660はおかしいし、書き方が悪いな。
これについては反省。すまんかった。> ID:ZZNOCL1s

684 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:19:11 ID:ZZNOCL1s]
用語の定義をめぐって、wikipediaと格闘するような人とは議論したくない。

685 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:20:00 ID:ZZNOCL1s]
お互い疲れたと見える

686 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:24:11 ID:cewi3IDn]
>>682
> 並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
> 並列(parallel)は、複数の計算を物理的に同時に実行できることを表す。

この定義に基づいて古典的なタスクシステムのタスクについて語ると

・古典的なタスクシステムのタスクは、「並行」。
・実行順序に厳しい制約があるとみなすなら、「並列」化はできない。

ところが実際のゲームでは、タスク間に依存関係がない部分が結構あるので
部分的に「並列」化できる。

この「並列」化によって、コア数N×0.7ぐらいのパフォーマンスは出る。

で、この「並列」化を古典的タスクシステムを進化(?)させて書けるようにすれば
いいということだな。

687 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/07(土) 13:24:58 ID:cewi3IDn]
>>684
俺のことは、NGリストに入れておいてくれ。

最初に682のように書いてもらえれば、俺はすぐに理解できたのだが。

688 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 14:32:04 ID:NOayWFQU]
これにて一件落着

689 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 14:39:01 ID:ZZNOCL1s]
おれは、>>682と同じ意見ではない。

>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。

これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
必要だと考えている。

並行性
ja.wikipedia.org/wiki/%E4%B8%A6%E8%A1%8C%E6%80%A7

だから、

1.並行でなければ並列化できない。
2.タクスの処理順位を考慮するようなタスクシステムは、すべてのタスクが互いに並行というわけではない。
3.ゆえに、タスクシステムを並列化するならば、並行なタスク同士を抽出する必要がある。

と考え、

さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。

690 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:29:42 ID:8u/3vapK]
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。

俺もこう思ってた。
んでそうハッキリ書いてある資料を探してるんだけど、見つからない。

>並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、必要

次からこっちの定義で話すわ。



691 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:37:28 ID:92TsYx3X]
>>689
>さらに、タクスの処理順位を考慮するようなタスクシステムは「並行でない」と考える。
MTフレームワークは処理順の依存の有無でタスク分けてマルチコアで同時に複数タスク動かしてるけど
これは処理順位を考慮するシステムだから「並行でない」のかな?

692 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:42:35 ID:ZZNOCL1s]
だいたいちょっと考えれば分かることだが、並行の定義が、
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
だと、いわゆるオブジェクトと呼ばれるものは全部並行ってことになっちまうだろ。
コンテキストが同時に存在できないオブジェクトなんて、まあ無いからな。
言葉としての意味が無くなる。

693 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 15:56:08 ID:ZZNOCL1s]
>>691
もしはじめから並行なら、MTフレームワーク自体いらないでしょ。

694 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 16:00:29 ID:92TsYx3X]
>>693
>もしはじめから並行なら
どこにそんな前提が?

695 名前:名前は開発中のものです。 [2009/03/07(土) 16:36:27 ID:E0xOAlNR]
>>689
>これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの?
>並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
と同じ事を言ってるだけのような。

>1.並行でなければ並列化できない。
は違うと思う。
並行でない命令列も、依存関係が無ければ並列化できる。
現にCPUの中でシリアルセマンティクスを満たしつつ並列実行が普通におこなわれている。
そういう命令列は本質的に並行だった?違うでしょ?スーパースカラで並列に実行される命令は、
異なるコンテクストを持ってるわけじゃないんだから。


あと細かいことだけど、順位と順序は全然意味違うんだから、
ちゃんと使い分けてくれないと読み辛いよ。


696 名前:名前は開発中のものです。 [2009/03/07(土) 18:22:05 ID:UcXZ5wF9]
でも依存関係があるかないかなんて並列で実行してんのにどうやってわかんだろね
くる値によって依存関係があるかもわからんしないかもわからん
ごった煮だとそういうソースになってしまうな

697 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 18:30:21 ID:rbzzI5lu]
ID:UcXZ5wF9
↑(・∀・)↑
ウンコちゃんインしたお

698 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 18:34:25 ID:ryll+mdy]
>>695
> >これに付け加えて、並行の条件には、複数のコンテクストが論理的に同時に実行可能であることも、
> ある計算の、ある時点における実行状態を表現したものを、コンテクストと呼ぶんじゃないの?
> >並行(concurrent)は、複数のコンテクストが論理的に同時に存在できることを表す。
> と同じ事を言ってるだけのような。

例えば、コンテクストが共有されている場合などでは、
コンテクストは同時に存在できるが、同時に実行はできない。
具体的には、オブジェクトAがオブジェクトBの参照を内部に保持している場合など。
オブジェクトAはオブジェクトBとコンテキストを共有しているということになり、
オブジェクトAとオブジェクトBは同時に存在できるが、同時に実行は出来ない。


>並行でない命令列も、依存関係が無ければ並列化できる。

並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。
並列化とは、並行に処理することだから、並行な処理しか並列化できない。

自動並列化
ja.wikipedia.org/wiki/%E4%B8%A6%E5%88%97%E5%8C%96
>プロセッサで「並行」に実行されるようにする。

スーパースカラ
ja.wikipedia.org/wiki/%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%A9
>プロセッサ内の冗長な実行ユニットを使って「並行」して処理される。

699 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 18:39:37 ID:ryll+mdy]
>>694
ヒント:背理法

700 名前:698 mailto:sage [2009/03/08(日) 19:26:02 ID:ryll+mdy]
訂正するけど、
コンテクストが共有されていても、read-onlyな場合は並列化可能だね。
書き込みするとアウトだけど。



701 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:27:58 ID:0j+yjPij]
>>698
なんか色々と変だよ。


>例えば、コンテクストが共有されている場合などでは、
>コンテクストは同時に存在できるが、同時に実行はできない。
共有されているのに同時に存在するってどういう意味?
コンテクストはいくつあるの?

>具体的には、オブジェクトAが(以下この段落略)
オブジェクトとコンテクストがごっちゃになってる。
オブジェクトAがオブジェクトBへの参照を内部に保持していても、
コンテクストがいくつあるのかという問題とは関係無いよ。
オブジェクトAとBを同時に実行はできない?オブジェクトを実行するってどういう意味?

この辺は、>>692の勘違いと同じ匂いがする。
てか>>692さんなのかな。


702 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:30:14 ID:0j+yjPij]
んが。改行多過ぎ言われた。
701の続き。


>並行でない命令列の中でも、依存関係が無い並行な部分だけは並列化できる。
「依存関係が無い部分」を「並行な部分」とは呼ばないよ。
いや呼ぶのは自由だけど、少なくとも聞いたことないよ。
いや聞いたことないだけかもしれないけど。

>並列化とは、並行に処理すること(以下略)
×。

もうちょっと詳しく言うと・・・
 「並列化とは、並行に処理すること」
という言葉それだけを見るなら、○。
でも、そこに出てくる「並行」という言葉は、並列という言葉を説明するための
「(同時)並行」という意味であって、このスレでここまで長々と議論してきた
並行(concurrent)とは意味が違うよ。
(「並列」を説明するのに「並列」と言っても仕方が無いからね)

二つ挙げてくれたwikipediaの説明に出てくる「並行」も、同じように「並列」を
説明するための「並行」であって、ここに引っ張り出してきても意味が無いよ。


703 名前:名前は開発中のものです。 [2009/03/09(月) 12:41:05 ID:2btSBxrR]
大変だ!タスク信者が息してないぞ!

704 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 13:31:41 ID:+h98nuCN]
つまらん煽りイラネ

705 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 14:16:42 ID:EugqMYhT]
本人は面白いと思って書いてんだろ

706 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:19:32 ID:W7jNDZ1N]
厨は『並行処理』という言葉を使ったけど、ノートを読み返したら『並行動作』となっていた。
=『擬似並列動作』のことを云いたかったの!微妙に書き間違えてた?と書こうと思ったら
>>637-以降で怖いおじちゃん達が深夜の泥沼バトルが展開されてあれよあれよと言う間に
みんな深淵の彼方へ飛んでいってしまった。ニーチェの警告に耳を傾けない者はみんな
闇に飲まれちゃうんだ。恐ろしいことだ

707 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:20:59 ID:W7jNDZ1N]
俺は元々>>2の話をしてて、これはどこをどうひっくり返しても逐次処理・直列処理してる。
ところが>>632のタスクシステムは直列処理ではなくどっちかっつーと『並列』らしい。

たぶん>>632の云うタスクシステムは>>2とは別物か、あるいは並列ではなくて
『擬似並列動作』とか『並行動作』のことをいってるのかなーとESPした。それが>>635

>>2の『システム(笑)』部分が提供するものは
 ・粗末な侵入式の連結リスト
 ・それを周期的にナメナメしてディスパッチするショボイ仕掛け
だけ。>>2はこの『システム』部分をユーザー定義の逐次処理・直列処理に使ってるけど
ユーザー定義の並行動作に使うこともできるっちゃできる
例えば組み込みシステムでは、異なる割り込みハンドラからの指示でスリープ状態から
復帰するタスクとかあるからね






708 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:36:39 ID:W7jNDZ1N]
あるいは、敵をやっつけた時の爆発エフェクト。これの破片・パーティクルの一個一個を
タスクとして登録してるとする。(そんな無駄なことしたくないけど、する奴もいるだろう)
破片・パーティクルのタスクは他のタスクとの作用なんてないとする。ならばこれらは
確実に並行動作してる

逐次処理・直列処理で並列動作してる。だが並列動作じゃない

709 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 01:37:17 ID:W7jNDZ1N]
>>708
×逐次処理・直列処理で並列動作してる。だが並列動作じゃない
○逐次処理・直列処理で並行動作してる。だが並列動作じゃない

710 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/10(火) 02:18:01 ID:W7jNDZ1N]
>>2のシステム(笑)はなんで並列動作できないの?

一本の連結リストにみんなチャンポンにしてぶち込んでる時点で
別スレッドで同時並行的に弄繰り回されるということを考えてないだろ
タスク間通信に必要な同期のメカニズムを提供していないのもそう
シングルスレッドで逐次処理するという前提だからバッサリ省いてる

次に、>>2のTCB(笑)とかいう構造体のプライオリティというパラメータは
priority-rankingではなくpriority-sequenceとして使われており、異様。
これは処理順序を表しており、この順序でソートして順次処理される
そういう前提でタスク(ジョブ)の内容を記述してる。順序が狂ったら動かない




711 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 12:53:53 ID:GPL7IZe+]
>>707

>ユーザー定義の並行動作に使うこともできるっちゃできる
できるっちゃできる、じゃなくて、ゲームオブジェクトの並行動作を記述することが
そもそもタスクシステムの目的なんじゃないの?
オブジェクトごとのデータとコンテクストをひとまとめにして自律的な行動を
自然(←人によって感じ方は違うだろうけど)な形で書ける(気分になれるw)ことと、
オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること、
の2点を、素朴な形で実装したのがタスクシステムの良い点だったと思うんだけど。


>>710

>>2のシステム(笑)はなんで並列動作できないの?
特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、
それらを並列動作させることはできるんじゃないの?
(そういう番号をプライオリティと呼ぶことの是非は別として)
別に誰も、全てのタスクを並列動作させることなんか最初から期待してないと思うけど。

かなり上の方に出てた自動的に並列動作させる云々の話も、そういうプライオリティの
タスクに限って、プロセッサ数に合わせて並列でディスパッチするような拡張も考えられる
のではないか、という話だったと理解してたんだけど。


712 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 14:14:14 ID:arIRXx6m]
pc.watch.impress.co.jp/docs/2009/0305/kaigai493.htm
> ゲームプログラム本体のコードは、OSのコードと同じように、
> 整数演算中心で小さな範囲での並列しかできず、
> 基本的には逐次実行しなければならないコードがほとんどだ。

これが古臭いタスクのことを指しているとは考えられないし
並列ネタはタスク関係無くね?

713 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 17:38:59 ID:DtkxsGym]
マルチプロセッサでマルチスレッドしたいならそう拡張すればいいんとちゃう?
シングルプロセッサが前提の時代に書かれた物に難癖つけるのも大人げないと思う
ていうか俺は現在でもマルチスレッドなんてやりたくない

714 名前:名前は開発中のものです。 [2009/03/10(火) 18:22:37 ID:9N7ATqdV]
別にマルチスレッドなんて必要ならやりゃいいじゃん
裏でローディングしながらゲーム動かすなんて別に難しくもなんともねーし
ただ、ゲームオブジェクトにやる意味は無さそうだけどね

715 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 18:42:31 ID:+MsrlA3X]
そういやフルにディスクアクセスしてても重たくなったりカクついたりしないのかね?

716 名前:名前は開発中のものです。 [2009/03/10(火) 19:16:57 ID:9N7ATqdV]
>>715
やってみりゃいいじゃん

717 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 19:47:23 ID:+MsrlA3X]
>>716
やってみた

ガックガクになった

718 名前:名前は開発中のものです。 [2009/03/10(火) 20:01:50 ID:9N7ATqdV]
そうか市販のゲームは普通にできてるのに不思議だな

719 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 21:27:13 ID:LXtgug0h]
裏でローディングなんてDMA時代からとっくにやってます。

720 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 22:07:24 ID:OHC3eltB]
>715
普通非同期アクセスするだろ。
JK



721 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 22:48:52 ID:GPL7IZe+]
>>711
>特定プライオリティがついているオブジェクト群は他との相互作用が無いと決めておいて、
は、オブジェクト群じゃなくてタスク群と書くべきだったね。
なんか混ざっちゃった。


>>715
自分も昔から気になってた。
ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、
消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。
それともDMAとかで消費されるバンド幅は、割と安定して予測できるもんなんだろうか。
その辺を実際にいじった経験が無いし、Web上でも情報を見た覚えが無いから分からないんだ・・・。


722 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 23:19:25 ID:DFTfic3i]
>>721
> ゲーム機で、ディスク(に限らず)からのデータ転送を非同期にやったりすると、
> 消費されるメモリ(あるいはバス)バンド幅の変化が計算しづらくなったりしないのかな。
もちろん、なる。

だから RPG のように「どうしても間に合わなかったらフレーム描画をスキップしてもおk」な
ゲームでは使うが、対戦格闘とかだと避ける。


723 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 23:58:04 ID:OHC3eltB]
フルにディスクアクセス行ったところで、光学ドライブからの転送量なんてたかが知れてるからな。

724 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 00:28:43 ID:xmrBPpjK]
>>711
厨はそもそものタスクシステムなんて知らないから、そもそもの目的も知らない
厨が目にすることができる資料から分かること。それは

ジョブ1を分割したものをタスクT11,T12,T13,…,T1jとし、ジョブ1を逐次処理したい
ジョブ2を分割したものをタスクT21,T22,T23,…,T2jとし、ジョブ2を逐次処理したい
ジョブ3を分割したものをタスクT31,T32,T33,…,T3jとし、ジョブ3を逐次処理したい
・・・
ジョブi を分割したものをタスクTi1 ,Ti2 ,Ti3 ,…, Tijとし、ジョブi を逐次処理したい

                  ──順次処理─→
WAIT_VBLANK then execute[T11,T21,T31,…,Ti1]   │逐
WAIT_VBLANK then execute[T12,T22,T32,…,Ti2]   │次
WAIT_VBLANK then execute[T13,T23,T33,…,Ti3]   │処
…                                    │理
WAIT_VBLANK then execute[T1j ,T2j ,T3j ,…,Tij]  ↓


以上が>>2の『システム』部分がやってくれること

725 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 00:38:10 ID:xmrBPpjK]
>>724
これだけ見ると協調的に並行動作させることが「できる」仕組みと分かる
でも、>>2で紹介されるこれの使い方のお手本、つまりタスクの中身を見ると
何か怪しげなことしてる。走査回数とメモリ消費をケチるためにプライオリティ
というものを使ってる。以前に出てた話だけど、something(t+Δt)を求めるために
参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる
本来なら並行であるはずの関係を直列の関係にしてるというか、なんていうの?

並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ
並行動作というかフェイク並行動作してるんだよね

726 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 00:58:38 ID:xmrBPpjK]
>>711
>オブジェクトの生成破壊が多くてフラグメントを起こしがちなゲームにおいてデフラグを扱えること

これって何?GCしてるの?どういうタイミングで?
それってメモリアロケータの都合じゃないの?関係ねー気がする

727 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 01:12:12 ID:xmrBPpjK]
まぁ、なんだ。厨的に思うのは

>                  ──順次処理─→
>WAIT_VBLANK then execute[T11,T21,T31,…,Ti1]   │逐
>WAIT_VBLANK then execute[T12,T22,T32,…,Ti2]   │次
>WAIT_VBLANK then execute[T13,T23,T33,…,Ti3]   │処
>…                                    │理
>WAIT_VBLANK then execute[T1j ,T2j ,T3j ,…,Tij]  ↓

タスクシステムとか仰々しい名前の割りに、それが提供する機能を分析すると
↑みたいな、限りなくどうでもいいことしかしてないということがわかる

これがやりたいなら初めからそう書けばいい。>>2みたいなチンポコリンな実装を
21世紀にもなってタラタラ書くなバーカって思う。寝る

728 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/11(水) 02:02:53 ID:xmrBPpjK]
起きた。なんか間違えた。まぁいいや。逐次処理って違うや。もういい

729 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 02:51:56 ID:QLymkmBo]
>>724
>厨はそもそものタスクシステムなんて知らないから、そもそもの目的も知らない
えっとまず始めに確認したいんだけど、「厨」ってのはID:EEKBitmgさんのことでいいのかな?(違ってたらゴメン)
で、「そもそものタスクシステム」の話なんてしてないよ。知ってても知らなくてもどうでもいいよ。
でも「そもそもの目的」は>>2を見れば理解できるでしょ。どれもすごく丁寧で分かりやすい記事だし。

以降、改行箇所は適宜勝手に変更する。ごめん。

>>725
>走査回数とメモリ消費をケチるためにプライオリティというものを使ってる。
いや、走査回数とメモリ消費をケチるためにプライオリティを使ってるわけじゃないと思うんだけど・・・。

>以前に出てた話だけど、something(t+Δt)を求めるために
>参照する外部情報が狂ってる。上図の横方向の前後関係に依存させてしまってる
これはつまり、タスクAの処理結果を見てタスクBの処理をしないといけない場合、タスクシステムだと
AとBのどちらが先(>>724の図で言えば左)にくるのか分からないので困る、って意味かな?(違うかな?)
でもタスクシステムには、Aを必ずBより先に実行させる方法があるよね。それは分かってるよね?
で、タスクBがタスクAに依存してるのだとしたら、それはタスクBの問題(あるいは性質)であって、
タスクシステムの問題とは全く別の話だよ。

>並列化してリプレイ情報を食わせたら結果が変わってしまうでしょ
なんで突然、並列化の話が出てくるの? タスクシステムの目的は並行動作だよね。
これは>>710のおかしい点でもあるんだけど、>>2では最初から並列動作なんか考えてないんだから、
同期処理とかが組み込まれてないのは当たり前だよね。

>並行動作というかフェイク並行動作してるんだよね
並行とフェイク並行の違いって何なんだろう。なんか並行と並列の違いを理解してない匂いがする。


730 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 02:53:04 ID:QLymkmBo]
続き。

>>726
>これって何?GCしてるの?どういうタイミングで?
え、ちょっと待って、>>2の話をしてるんだよね? 本当に>>2読んだ??
ID:EEKBitmgさんの言う>>2って、>>2のうちのどれのこと?

>>2を読んだのかどうかって話で思い出した。>>464の、この部分。
>『型システムを否定している。コンパイラによる最適化を阻害してる。自作ジャンプテーブルで条件分岐は
> 高速化されるという先人のチョイテク・豆知識を天下り式に真似ているのではないか。それは太古の簡素な
> CPUアーキテクチャに依存した公式に過ぎない。定理ではない』
断言してもいいけど、ID:EEKBitmgさんとこの助教授さんは>>2をちゃんと読んでないか、あるいは
頭のネジが足りてないよ。それとも助教授ってこんなもんなのか。知り合いにいないから知らんけど。
ところで課題レポートはちゃんと提出した?


>>727
>タスクシステムとか仰々しい名前の割りに、それが提供する機能を分析すると
ちっとも分析できてないよ・・・。

>↑みたいな、限りなくどうでもいいことしかしてないということがわかる
全く分かってないよ・・・。




731 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 04:20:03 ID:yoM2Y43z]
HSPくんは厨房のくせになかなかどうして要点を押さえてるのう
若干正確さに欠ける点に目をつむって処理を端しょってたことに勘付いたか

732 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 07:22:34 ID:nhOwJy5w]
まぁ、学生さんが理想を追い求めるのは悪いことじゃない。
ただ、現実はそれに立ちはだかると言うことは知っておいた方がいい。


733 名前:名前は開発中のものです。 [2009/03/11(水) 07:26:19 ID:NK6nIuY5]
タスクシステム完全に終わったな

734 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 08:32:00 ID:74bG+9We]
タスクシステムのプレゼン動画
ttp://www.nicovideo.jp/watch/sm2078250

735 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 13:15:27 ID:wSuVQdvJ]
ていうか細切れに順番に処理してくれるシステムなら何でもいいんじゃね?

適当にクラス作ってリストにして順番に実行
内部では各自カウンタとステート持って勝手にやる、死んだり生きたりはおかしなことにならないようにシステムでええ感じに処理してねー

とまぁ簡単なものならこんなのでいいじゃろ
複雑なのはしらん

736 名前:名前は開発中のものです。 [2009/03/12(木) 07:22:55 ID:7byKm2pB]
誰もそんな話してないし

737 名前:名前は開発中のものです。 mailto:sage [2009/03/12(木) 11:49:54 ID:Rx7RnDpA]
しろよ

738 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:06:36 ID:SEPBaONy]
>>729-730
>なんで突然、並列化の話が出てくるの?

それは『ボクのタスクシステムはどっちかっつーと並列!』と言っていた
>>632のおじちゃんに言ってよね。CodeZineなんて初っ端で並列処理と言い切ってる。
あと生協で逆引きゲームプログラミングとかいう本をパラパラーっと立ち読みしたら
『並列動作システム』とか書いてあったし。『並列処理動作』してるんだって。ゲラゲラゲラー
もうさ、ハッタリかましすぎだよね。説明してる内容と、それを一言で表現するときに
どこかから引っ張ってきた用語が全く一致してないんだよね。厨房を騙くらかそうと必死でしょ
今さっき覚えてきた単語をとりあえずあててみました。みたいな。ちょっとね、おかしいとおもう

その点Logician Lord、White Paper、けんもほろろのページは並列なんて一言も言ってない
上に比べたらまだマシな部類なのかなーと思える。タスクシステム解説つっても千差万別だね

739 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:11:52 ID:SEPBaONy]
ただ、まともっつってもなんか変なんだよね。組み込みシステムか何かから引っ張ってきた
知識を広めた人がいたんだろう、というのは厨の俺でもなんとなくわかる。それがギョーカイ
とかいうよく分かんない謎の秘密結社みたいな世界で伝播する過程でおかしなことになって
ミュータントみたいになっちゃってるんじゃない?この人たちが言ってるTCBとかタスクとか
ちょっと変わってるよね
TCBって、ゲーム機よりショボい組み込み機器でもプログラムカウンタとかスタック
アドレスが入ってる。リエントラントな仕組みを提供すんだよね。だから周期タスクは
periodictask()
{
 while(1){
  dosomething();
  rot_rdq();
 }
}
みたいな感じで書く。タスクは並行動作できるんだ。でも>>2の『タスク』はできない。
サブルーチンの処理を全て完了しないと処理を返せない。タスク同士は完全に
逐次処理なんだ。擬似並列動作ができない

740 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:24:44 ID:SEPBaONy]
でも>>2の言うタスクってのは、ジョブを時間領域で分割したものだから
タスクの作り方によっては、複数のジョブ同士の並行動作はできるかもね

>タスクシステムの目的は並行動作だよね。

>>2の話?んなこと俺が知るかっつーカンジ
俺は>>632のどっちかっつーと並列とかいう謎のタスクシステムが
並行動作してるのかなーとESPしてみただけだしー。推測でしかないしー

>>2はふたを開けてみればゲームオブジェクトのUpdateメソッドのディスパッチャー
単なるレディキューだからどうとでも使えるわけだしー
このメソッドの分け方次第で並行動作もできるんだろうね。でも
ゲームオブジェクト一個につきタスク一個とか言ってるページもあるから
ちょっと怪しいね。Update()一個じゃあ、>>725で書いた矛盾にぶつかると思う



741 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:39:16 ID:SEPBaONy]
>385 名前:名前は開発中のものです。 投稿日:2009/02/10(火) 01:05:40 D1ATM4io
>>384
>厳密にやるならワークをそれぞれ2つ持って、フレームごとにフリップだろ。
>面倒だったら一つ一つ更新して、n+1がnを参照してもn+1を参照しても対して問題が無い様にするさ。
>どこまで誤差を容認できるか知らんけど。

なんか臭いなぁ、と思ってたのがここ。CodeZineはこの誤差を容認するほうを選んでるよね。
具体的にはEnemyとMyShotの関係。これタスクリストとかいうものの中でごちゃ混ぜになってるでしょ
当たり判定のときに、自機弾って移動速度速いからさ、敵と当たったり当たらなかったりすると思うよ
ぜったい気持ち悪い現象が起きる理不尽ゲーになると思う

742 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/12(木) 23:53:29 ID:SEPBaONy]
>>741
× 当たり判定のときに、自機弾って移動速度速いからさ
○ 自機弾って移動速度速いからさ

この不快な現象を発生させたくないなら
EnemyとMyShotの実行順序をごちゃ混ぜにしちゃ駄目でしょ
ごちゃ混ぜのままならせめて当たり判定タスクと移動タスクを分けないと
あとさ、必要は無いけど、外部参照されるパラメータは前フレームの状態を
保持したほうがいいよ

例えばロックオンして置き撃ちするときに、targetposition(t)を得るか
targetposition(t+Δt)を得るかがpriorityとかいうものによって変わるって
おかしいでしょ




743 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/13(金) 00:03:15 ID:w7sHy3uX]
>>742
× priorityとかいうものによって変わる
○ タスクリストの前後関係とかpriorityとかいうものによって変わる

>>730
>>これって何?GCしてるの?どういうタイミングで?
>え、ちょっと待って、>>2の話をしてるんだよね? 本当に>>2読んだ??
>ID:EEKBitmgさんの言う>>2って、>>2のうちのどれのこと?

俺と同い年の人が書いたと思しき記事だからボコりたくなかったけど
流れでそうなっちゃったから堰を切ったように書いてるけどさ
CodeZineの記事は他と比べて相当違うんだよね
メモリ割り当てなんて関係ないのにさ、糞みたいなGCかましてるし
STGであんな処理をかますフレームが不定期に存在するって変でしょ
糞みたいな自前のメモリ割り当てやってるからあんなGCが必要に
なるんでしょ。何のための自前アロケータなんだか分からない
厨的には、あんな糞実装は氏んじゃえって思う

744 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:16:52 ID:kkRWD5W+]
タスクシステム擁護派じゃないけどさ・・・

雰囲気つかむだけのサンプルにアホとか言っちゃうのはどうよ?
こういうものは思想だけ頂いて自分の好きなように組んでくれって物じゃないのかね・・・

GCがどうのっていうのも処理落ちしたときにはじめて考えればいい所だし、
ただたんに自分の流儀に合わないから貶すと見えますよ。

745 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/13(金) 00:24:04 ID:w7sHy3uX]
>>729
>>2では最初から並列動作なんか考えてないんだから、
>同期処理とかが組み込まれてないのは当たり前だよね。

性格悪いレスになるけど書いちゃえ!
ぶっぶー。並列動作じゃないから同期処理が要らないってのは間違い

>>730
CodeZineの記事のコードってさ、生存中のゲームオブジェクトのアドレスが不定期に変わっちゃうんだよね
あのサンプルってさ、あるゲームオブジェクトのレーダーシステムが特定の目標をロックオンして追跡するとき
どうすんの?

例えばあのサンプルの敵弾ってさ、毎回Playerをタスクリストから探してるんだよね。バカだからさ
priority=1.0のPlayerはタスクリストの一番最後に入ってるのに、先頭からナメて探すの。バカだよね

こんな調子で、ロックオンターゲットも、毎フレーム、タスクリストから探し出すわけ?
多目標同時対処能力を保有する機体が入り乱れたら愉快な処理量になりそうだね

こんなアホなことになるのはさ、糞アロケータの都合で不定期に糞GCかますからでしょ?
あんた>>711で『デフラグができること』を取り上げて
これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ?
明らかに必要ねーことしてるし。バカじゃねーのくたばれバーカバーカって言いたかったけど
ずっと我慢して黙ってたんだ。でももう書いちゃった。



746 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/13(金) 00:30:00 ID:w7sHy3uX]
>>744
だからずっと黙ってたんじゃん。心情的にはCodeZineの記事は
放置したかったんだけど、擁護派がデフラグデフラグとかいうから
書かざるを得なくなった。HSP使いとしては同じ厨を攻撃するのは遺憾
遺憾の意です。本意じゃありません。ごめんなさい><

747 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:40:01 ID:idYT2cwA]
>746
> だからずっと黙ってたんじゃん。

バカには現実を突きつけてやるしかないんだよ。

748 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:45:14 ID:9zwO86zu]
>>747
突きつけても、見えない or 見ようとしないけどな。大抵。

749 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 01:00:19 ID:bP/yrlKM]
ID:EEKBitmgはCodeZineの記事の作者と同じにほいがする。
ID:EEKBitmgの方が筋は良さそうだが。

>>744
CodeZineの記事は昔論争になったことがあって擁護派らしき人からの批判も多かった。
批判の方が多かったような。
とにかく駄目なものを技術的な説明を沿えて駄目と言うのは良いでしょう。

750 名前:名前は開発中のものです。 [2009/03/13(金) 07:26:08 ID:2Nwh1Ok5]
とりあえず並列化の話はやめろよ
この仕組みじゃどう味付けしたって並列化なんてできやしねぇから



751 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 10:49:20 ID:t4cURNWA]
なんでもタスクで一元管理
まとまってていいね!
ぐらいの感覚なんじゃないの?
腕である人ならいい感じにまとめられるでしょうに
ギャーギャー噛み付くほどのものかねぇ
もしかして、今時のゲームにも導入されたりして被害被ってるの?

752 名前:名前は開発中のものです。 [2009/03/13(金) 12:37:20 ID:2Nwh1Ok5]
腕のある人はこんなもん使わないから(笑)

753 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/13(金) 16:18:33 ID:nlP2vU3h]
>>745
> priority=1.0のPlayerはタスクリストの一番最後に入ってるのに、先頭からナメて探すの。バカだよね

それは別にhash使えばO(1)で検索できるんだし、本質的な欠陥じゃないと思うが。

> これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ?
> 明らかに必要ねーことしてるし。

まあターゲット環境とゲームの規模によるけど、何らかの形でデフラグはあったほうがいいと思うよ。

working setを縮小したほうがプロセッサのcache効率が上がるのが普通だし、
タスクシステムはプライオリティ順にタスクに対してアクセスしていくのだから
プライオリティ順にメモリ上に配置されて、アクセスするメモリが連続しているほうが
(memory cacheの観点から見て)断然速い。

タスクシステムどうのという話はおいとくとして、ひょっとして、みんなmemoryのcompactionとか処理を書いてないの?
これを無用の長物みたいに言われると、もう議論の前提が違うとしか言いようがないんだけど。


754 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:00:36 ID:kAszbGcI]
>>738
タスクシステムの構造を見れば、これは並行動作を目的としたものだと分かるよね?(分からない?)
その文脈で「並列」という言葉が出てきても、それは並行のことを意味しているとは思わないのかな?
それを書いた人が勘違いしてるのかもしれないし、意識してないのかもしれないし、並行と並行の違いを
知らないのかもしれないし、あるいは文脈上区別の必要が無いと判断したのかもしれない。
いずれにせよ、「並列って言ってるけど並列じゃないじゃん」という批判は、「並列」という言葉を
持ち出した人に対しては当たるかもしれないけど、タスクシステムへの批判としては的外れだよね。
それともID:EEKBitmgさんは、誰かがタスクシステムのことを並列だと書いただけで、タスクシステムの
目的が並列動作だと考えたのかな?
それってタスクシステムのことを理解したうえで批判していると言えるのかな?

あと、用語の使い方が適切でないという点に関しては、ID:EEKBitmgさんも全く人のこと言えないよ。
私自身のスタンスとしては、他人が多少変な言葉を使ったとしてもできるだけその意を汲もうとするし、
逆に自分の言葉はできるだけ分かりやすく正確になるようにしていつもり(あくまでつもりw)だけど、
ID:EEKBitmgさんは全く逆のスタンスなのだろうか? 言葉が不正確なのに、他人の言葉尻は捕らえるよね。


>>739
マルチタスクOS等におけるタスクと、タスクシステムのタスクは設計も目的も意味も違うのに、
それを混同してしまっている、のか混同させようとしているのか分からないけど、このレスはまるまる無意味。
擬似並列動作とかいう怪しげな言葉の意味も分からない。

755 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:03:23 ID:kAszbGcI]
>>740
>>タスクシステムの目的は並行動作だよね。
>>2の話?んなこと俺が知るかっつーカンジ
>俺は>>632のどっちかっつーと並列とかいう謎のタスクシステムが(以下略)
つまり>>2を読んでも、タスクシステムの目的が理解できなかったってこと?
というか、この話の流れを>>729,>>725,>>724,>>711と遡っていけばID:EEKBitmgさんが>>2の話を
しているのは明らかなのに、いきなり>>632を引っ張り出してきて言い訳するのは見苦しいと思う。
それとも単に文脈を追えてないの?何の話をしているのか分かってないの?

>>725で書いた矛盾にぶつかると思う
矛盾ってどれのことだろう。最後の二行のこと?
だとしたらやっぱりタスクシステムの動作を理解できてないよね・・・。

756 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:04:17 ID:kAszbGcI]
>>741 >>742
全体的に言えることだけど、ID:EEKBitmgさんは>>2のサンプルコード個別の事例を批判したいんだろうか。
それともタスクシステムのことを批判したいんだろうか。サンプルコードは、単なるサンプルなんだから
色々な不具合や足りない部分があって当たり前だよね。実際に使いたい人が、実際に使えるように
直せばいいだけで。それができないような構造的な欠陥であれば、タスクシステム自体が駄目だという話に
なるのだろうけど。(そういう話が聞きたいんだけどなぁ・・・。)
で、>>729に答えてもらえなかったから改めて聞くけど、EnemyとMyShotの実行順序をごちゃ混ぜに
したくないなら、ちゃんと順序つけてごちゃ混ぜにしないようにタスクシステムを使うことはできるよね。
その仕組みがちゃんとタスクシステムにはあるよね。それは分かってる?分かってないの?どっち?

757 名前:名前は開発中のものです。 [2009/03/13(金) 21:10:36 ID:2Nwh1Ok5]
なんでタスクシステムなんて使わなきゃいけないの?
メリットを説明してよ

758 名前:756の続き mailto:sage [2009/03/13(金) 21:35:33 ID:gk02bKgy]
>>745
>性格悪いレスになるけど書いちゃえ!
>ぶっぶー。並列動作じゃないから同期処理が要らないってのは間違い
詭弁。
「並列動作じゃないから同期処理が要らないってのは間違い」という言葉だけは一般論として正しいけど、
「並列動作じゃないから同期処理が要らない」なんて話は誰もしてないよ。並列動作を前提としていないから
並列動作のための同期処理は書かれていない。一般論としては、並列でなくとも同期処理が必要な場合も
あり得るけど、>>2においてはそういう同期処理も必要無いから書かれていない。それだけの話。

詭弁と分かって書いているのなら、確かに性格が悪いね。
これで反論の体をなしているとでも思っているのなら、悪いのは性格ではなくて頭の方。

759 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:38:57 ID:gk02bKgy]
>こんなアホなことになるのはさ、糞アロケータの都合で不定期に糞GCかますからでしょ?
>あんた>>711で『デフラグができること』を取り上げて
>これを素朴な形で実装したのがタスクシステムだとか言ってるけど、素朴って何よ?
うーん確かに、CodeZineの実装は>>749さんの言うとおり、賛否両論起こるだろうことは分かる。
一応、>>2を前提にスレが進んでると思ったから、デフラグもタスクシステムの利点に入れちゃったけど、
得失もあることだし、単純にタスクシステムの利点として挙げるのは無理があったかな。
というかずっと昔に初めてタスクシステムを知ったときには、デフラグの仕組みは無かったなそういえば。
てなわけで>>711での「タスクシステムの良い点」の記述からは、デフラグの件は除くよう訂正させてください。
素朴って何よ?と言われると困るなぁ・・・。特に高度な管理や複雑な手法を使わず、メモリを直接
いじくりまわすあたりを素朴だと感じたんだけど。人によっては全然素朴だとは感じないかもね。
あと余談というか一つ忠告だけど、GCとコンパクションはきちんと区別した方がいいよ。
ここでならいいだろうけど、真面目な議論の場で混同してたらバカと言われちゃうよ。

>明らかに必要ねーことしてるし。バカじゃねーのくたばれバーカバーカって言いたかったけど
得失の「得」の部分も考えずに、明らかに必要無いとしてしまうのは、考えが足りてないからだよ。

760 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:43:42 ID:gk02bKgy]
うーわーもうダメだ。つっこみどころが多過ぎて収拾がつかない。
これ以降はちょっと自重します。みなさん長々と書いてごめんなさい。

あと今読み返して気付いたけど、>>754の「並行と並行の違い」は「並行と並列の違い」の書き間違いです。
恥ずかしw



761 名前:名前は開発中のものです。 [2009/03/13(金) 21:54:09 ID:2Nwh1Ok5]
タスクシステムのメリットを説明してよ

762 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 21:59:22 ID:idYT2cwA]
本人がメリットだと思わなければ、他人が何を説明したところで無駄な話だ。

763 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 22:59:53 ID:IbELy54y]
>>757,761
>427

764 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:05:18 ID:lcPBznJ3]
>>753
ごめんなさい><
厨房はガベージコレクションとコンパクションを混同してた。ご指摘どうもありがとう

>それは別にhash使えばO(1)で検索できるんだし、

そうだろ?メモリコンパクションの重要な目的のひとつがリニアアクセスによる高速化ならば
その利得を殺すようなGetTask()の実装じゃお話にならないよね。初心者用ったってありゃないよ
無い方がマシな盲腸みたいな機能付けといて初心者向けサンプルもへったくれもない
サンプルってのは反面教師じゃない。サンプルってのはゴミじゃない

あのサンプルはPC用。OSはページング方式で仮想アドレスに実アドレスを割り当ててる
ページサイズは4KB単位?で、CPUのキャッシュはキャッシュラインサイズってのがあって
これがL3だのL2だのL1だのでいろいろあるんだよね?実際、仮想アドレス上でバランバランでも
うろたえるほどの速度低下はない。むしろゴマ粒みたいな小さな処理をごちゃ混ぜ連結リストに
投げ込んで、リストを走査しながら関数アドレスで処理を呼び出すっていう仕組みを捨てる
ほうが高速化する

765 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:13:57 ID:lcPBznJ3]
>>764
×むしろゴマ粒みたいな
○高速化したいなら、むしろゴマ粒みたいな

766 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:25:14 ID:lcPBznJ3]
だいたいさ、あーいう小粒なSTG作るときに、どうしても自作アロケータ用意したいなら
固定長メモリプールでいいじゃん。boost::poolとかさ

767 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 01:46:18 ID:lcPBznJ3]
>>758
つーかお前、前>>510だろ。当たってる?当たってたらなんご褒美ちょうだい
チョー陰険だし、やたらどうでもいいことで噛み付いてくるし、顔真っ赤になると
言ってること滅茶苦茶になるから多分当たってるだろ。な。陰険アマチュア野郎。タスクシステム=DB君。

俺が性格悪い?まぁアンタほどじゃないよ
>>730みたいな内容ゼロのハッタリゴミクズチンカスレスして悦に浸る中年には適わないね
俺が頭悪い?それ既出ジャン?>>355で既に認めてっからよく嫁カス。何今更言ってんだ

>>2では最初から並列動作なんか考えてないんだから

ま、この点でアンタとの争点ないのは分かってるから。せいぜい無視したら?
あんたさ、それが分かってるのに何でそこんとこで噛み付くの?俺が気に入らないだけだろ

768 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/14(土) 02:33:21 ID:lcPBznJ3]
>>766続き
連結リストのメモリ配置を整えましたー。速くなりましたーっていうけどさ
そんなことするならいっそのこと配列にしてダブルバッファリングしたほうがいい

769 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 02:33:35 ID:nYYNsR/2]
処理の順番追うだけでもうやる気なくなるわー。擬似タスクとか死ねばいいのに。

770 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 02:44:33 ID:JpSKv17w]
構造が単純なのでゲーム毎の仕様にあったカスタマイズがしやすい、ってのもタスクのメリットの一つかなぁ
でもこの辺のメリットは”知る”ものじゃなくて”理解”するものだから、実際にゲーム作った経験の無い人には
分からないかもしれん。

なんかアンチタスクって独身スレにいる「結婚のメリット教えてくれ!」ってのと同じ感じ。
「絶対に幸せになる保証が無い限り結婚しない!」ってのがいたけど、あれととても似ている…

タスクはゲーム作るときに使うもので、ゲーム作らないならタスクにこだわる必要ないし
実際にタスク以外の方法でゲームつくってるならそれはそれでタスクなんて気にしなくてよい。
アンチはなんでタスクシステムに粘着してるんだろう?



771 名前:名前は開発中のものです。 [2009/03/14(土) 03:17:55 ID:wqRDNWfr]
>>770
プロ気取りがしたり顔で出鱈目いっちゃ駄目よん

772 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/14(土) 03:19:14 ID:Nif8vd+k]
>>764
> 実際、仮想アドレス上でバランバランでもうろたえるほどの速度低下はない。

その部分に限って言えば、バランバランにメモリをアクセスするのと、
リニアにアクセスするのとでは数倍以上変わると思うけど。

全体に占める割合は…ゲームによるけど、何万パーティクルも表示するつもりなら致命的だと思うけど。

なんか同人規模のシューティングとかしか作ったことのない人が何か言っても説得力ないよ。

773 名前:名前は開発中のものです。 [2009/03/14(土) 03:29:59 ID:wqRDNWfr]
厨房のHSP大好き君は発言内容が粗削りだが目の付け所はまずまずだ
ゲームをよく作ってる感じがするのねん

774 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 06:17:22 ID:QgvbbJg3]
>>773
なんでおまえはそんな偉そうなんだよw

このスレで一番あてにならないのは具体的なことは言わないくせに
妙に偉そうにしてるやつだとおも
擁護アンチ問わず

775 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 13:16:45 ID:nGWrBYC8]
>>770
タスクシステムを使って書かれたプログラムを引き継ぐ羽目になって(バグが収束せずに
メインプログラマ交代)、散々苦労した。

776 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 16:42:18 ID:TdAuyVy6]
>>767
>つーかお前、前>>510だろ。当たってる?当たってたらなんご褒美ちょうだい

 ぶっぶー。チョー陰険だから前510だろってのは間違い!

初出は>>682で、以下ID:E0xOAlNR、ID:0j+yjPij、ID:GPL7IZe+、ID:QLymkmBo、
ID:kAszbGcI、ID:gk02bKgy、かな。抜けてるかもしんないけど多分こんだけ。

てか、あらためてスレを斜め読みしてみたら、ID:EEKBitmgさんて高専の人だったのね。
道理で、知識だけはあっても、考え方も物言いも子供っぽいわけだ・・・。
なんかもうすでにガキの喧嘩の捨て台詞みたいなレスになっちゃってるから、>>767
いちいち突っ込むのはやめるけど・・・「俺が気に入らないだけだろ」みたいに、
下らない衝動を私に投影するのはやめてね。
上のリスト見れば分かると思うけど、おかしなことを書いてると思った人に対して
それはおかしいんじゃない?って書き込みしてるだけだよ。


777 名前:名前は開発中のものです。 [2009/03/14(土) 18:34:28 ID:rFb0Dzvp]
ごちゃごちゃいいわけはいいからタスクシステムのメリットぐらい説明しろよ

778 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 19:02:02 ID:DOdjkrEe]
メリットはリンスインシャンプーがあることだろ常考・・・

779 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 19:07:02 ID:C4Fq/WX8]
>>777
>763

780 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 20:18:24 ID:JpSKv17w]
>>775
”タスクシステム”を”C言語”とか”ポインタ”に置き換えても成立するな。
バグが収束せずにメインプログラマ交代って時点で既に…



781 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 21:24:01 ID:QgvbbJg3]
CG板だと、タスクシステムを Shade とか sai に置き換えても違和感無いんだぜ?

782 名前:名前は開発中のものです。 mailto:sage [2009/03/14(土) 22:13:43 ID:DOdjkrEe]
>バグが収束せず
ただ単にコーディングレベルの問題ではないか?w

783 名前:名前は開発中のものです。 [2009/03/15(日) 00:16:39 ID:fq8JV7Q3]
>>779
は?何もかいてないけど?
馬鹿がわかりもしないでレスつけないでくれない?

784 名前:510 mailto:sage [2009/03/15(日) 02:45:36 ID:4et5xcyh]
タスクシステムが並列化に向く向かないで盛り上がっているようだが。
書いてみればすぐ分かること。

タスクシステム並列化版
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8978.zip

各スレッドでタスク群の添え字をInterlockedIncrementしつつループまわすだけ。

なお、並列化に関係ない部分は手抜き実装。

785 名前:510 mailto:sage [2009/03/15(日) 02:57:48 ID:4et5xcyh]
処理順序だとかプライオリティーだとか色々議論しているが、
並列化に処理順序の話を持ち込むのはナンセンスだと考えるが。
並列化しないからといって、処理順序がどうでも良いというわけではない。

786 名前:名前は開発中のものです。 [2009/03/15(日) 06:19:12 ID:fq8JV7Q3]
これ並列動作しねぇって
VTuneでも使って一度みてみろマジで

787 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 08:59:48 ID:Osu85aea]
おいおい お口チャックマンだぜ?

788 名前:510 mailto:sage [2009/03/15(日) 09:15:14 ID:4et5xcyh]
いや、並列で動くことは動くんだが、他のところがバグってるね。

789 名前:名前は開発中のものです。 mailto:sage [2009/03/15(日) 11:45:56 ID:a+EQhixt]
完璧に余談ですが

#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
#include <cassert>
#include <vector>
#include <pstade/oven/parallel_for_each.hpp>
#include <pstade/oven/forall.hpp>
struct test_task{
int m_counter;
test_task() : m_counter(0) {}
};
int main(int argc, char *argv[]){
namespace ov = pstade::oven;
namespace ll = boost::lambda;
const size_t N = 10000;
const size_t THREADS_SIZE = 4;
std::vector<test_task> v(N);
ov::parallel_for_each(THREADS_SIZE, v, ll::bind(&test_task::m_counter, ll::_1) += 1);
assert( ov::forall(v, ll::bind(&test_task::m_counter, ll::_1) == 1) );
ov::parallel_for_each(THREADS_SIZE, v, ll::bind(&test_task::m_counter, ll::_1) += 2);
assert( ov::forall(v, ll::bind(&test_task::m_counter, ll::_1) == 3) );
return 0;
}
>>784のmainの動作を真似するだけなら、boostやovenを使ってこう書けたりする。
んで、並行動作するオブジェクト間の依存を上手く消してTBB等のparallel algorithmで一発というのが、
一番簡単な並行プログラミングだろうなと思った。
boost threadはただのマルチスレッドだけどTBBのだと強烈な並列化もしてくれるみたいだしね。
しかし、こういうのは参照透明性の保証が容易な関数型言語の十八番のように思うわ。


790 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 00:25:10 ID:zPsQiR9l]
そもそも、なんでタスクとやらを並列化したがるかな。

ゲームに限らんが、並列化しやすい部分としにくい部分がある。描画周りとかパーティクルなどの
エフェクト系、モーション計算とかを並列化したほうが、依存関係が複雑で仕様変更が多発する
プレイヤーやら何やらを並列化するよりよほど現実的だと思うんだが。



791 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 00:41:01 ID:4SuKIn/y]
並列化は別で話してほしい。
優先順位とグローバル変数(シングルトン含めて)問題の冴えたやりかたを検討しようぜ


792 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 02:18:40 ID:9YyKMei6]
>>784
ちょっとちょっとちょっとー。ハッタリ自動並列メタボDBオヤジは本当に大丈夫なの?

  『ボクが作ったこのコードにもタスクシステムって名前付けたからこれもタスクシステムですし
   ついでに言うとこれDBですし自動並列処理もできますしお前らはボクのコードが並列化に
   向いてないって言いたいんだろうけどそれは全くの誤りだしどうしてそれが分からないの?』

こういうことなの?頭の中がお花畑なの?公序良俗に反するポピーの花が自生してるの?
お前がひりだしたウンコがどう陳列され得るかなんていう前衛美術の話なんて誰もしてないから
安心していいよ

それとオッサン、あんたは何で配列にぶち込んだ1万個の鼻糞みたいなちっさな処理を一個一個
処理する度にsleepしたりクリティカルセクションかまして次に処理する要素番号をゲットすんの?
スレッドの数で配列を等分して粗粒度並列化でもしときなさいよ
sleepなんか噛ましたらインストラクションレベルの自動最適化の妨げになっちゃうじゃないの

あんたのコード使うくらいなら直列番長の>>2のほうがまだ速いよ

793 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 02:40:43 ID:9YyKMei6]
あとさ、同一フレーム内で終わらせないといけない処理なのに
イベント(シグナル)で同期とったりするのは何の冗談なの?
ベンチ取った?アホ?

もしかしてワーカースレッドが目覚める前にメインスレッドが全部処理
しちゃったりしてない?あとさ、最初のTASK1(hage)が終わって
次のTASK1(hoge)が始まる頃には何ms経過してるの?

なんかもう自動並列とか以前に足元がグラグラのヘボヘボな気がする
おやすみ

794 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 02:44:52 ID:9YyKMei6]
あと、TASK1(hogehoge)の度にスレッド作るのはサンプルだから?
ウソだろ?サンプルだからってこれはないと思う。聳え立つウンコだ

795 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 08:13:22 ID:McZ+hNsy]
>>794
よく見たらtasksystemはグローバル変数だからスレッドは使い回してるから
そびえ立つウンコてのは言い過ぎか

796 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 13:07:05 ID:ah3HB55u]
おっさん言う奴は自分は若いと思ってる20代後半から30代前半の独身男性だな

797 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 21:21:55 ID:JRonhFLP]
タスクシステムってあれだろ
雑魚とドラム缶を合わせて4つまでしか画面に表示しないように制限するシステム

798 名前:名前は開発中のものです。 mailto:sage [2009/03/16(月) 22:00:19 ID:/VT9KBYC]
大体お前の頭の中身と同じだな。

799 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/16(月) 22:53:40 ID:McZ+hNsy]
>>796
俺そんなに大人びて見えるか?もしかして俺褒められてる?
このマス掻き童貞夜更かししてないでエロゲでシコって糞して寝てろ、とか
罵倒されるんじゃないかとビクビクしてたんだけど杞憂だったのかな

800 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 00:41:33 ID:0PbiXi36]
「新装版 大規模C++ソフトウェアデザイン」って本を昨日から読み始めたんだけど、
1章を読んだだけでタスクシステムのだめな点が指摘されているような気がした。

「継承」対「階層化」では階層化の勝ちで、
理由は階層化の方がはるかに一般的=依存性が少ないからって話みたい。
タスクシステム(なんちゃってC++版)のタスクは継承使ってるよね。

タスクの次にどこに進めばいいか分からないとか、
抽象的な話に飽きた、デザパタとか眉唾ーって人は
これ読むとおもしろいかもよ。おれはおもしろい。当たり前のことが書いてある。



801 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 01:59:53 ID:kxFrGMdG]
包含と継承のことだな。

まあ多態性を使わない場面ならすべて包含でいける。
包含だと結合が緩やかだから見通しが良いって話だなそれは。

何段も深くなければよいんじゃないかね?

802 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 07:25:27 ID:VzljBEPw]
なんでもかんでも機能を突っ込もうとするからだ。

delegateのリストでも使っとけ。

803 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 11:28:02 ID:b6S1HRLy]
タスクシステムいいじゃん。
範囲指定で自殺してくれるの最高。

804 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 13:49:55 ID:hOnodYrQ]
>>803
その範囲は何を意味してるの?
何かの値なんだろうけど。

805 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 14:04:47 ID:eriEEpX/]
親殺せば子も死ぬってことじゃね?

806 名前:名前は開発中のものです。 [2009/03/17(火) 17:56:34 ID:zLwES14L]
タスクシステム関係無いじゃん

807 名前:名前は開発中のものです。 mailto:sage [2009/03/17(火) 21:56:42 ID:kxFrGMdG]
>>802
タスクシステムのExecやRunやProcなんかは
まさにそういう用途の窓口じゃないのかね?

808 名前:名前は開発中のものです。 mailto:sage [2009/03/18(水) 00:44:43 ID:lM4akpln]
>>807
その窓口を誰が用意するかという話。
本人なのか、本人と取り引きする別の人なのか。

どっちがいいかはよくわからん。
もっと条件を絞れば考えやすくはなるが、俺の思考が正しいとは限らん。

809 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/20(金) 00:38:03 ID:0dULYU21]
(・∀・)ヘラヘラ
クソガキの俺がそろそろ総括しちゃおっかなーっと
結局21世紀にもなってタスクシステムだタスクシステムだなんて叫んでるおじちゃん達って
相当に不勉強なロートルちゃんが混じってるんだよねー。不勉強なまま頭がコチコチに
固まっちゃったガンコなお年寄りに限って声がデカイもんだから迷惑してる人もいるだろうね

 ・タスクバカは、たかが実行待ちキューに得意げにお名前を付けてることにいつまでも気付かない
 ・タスクバカは、タスクシステムが何なのか一般化して説明するだけの知能がない。だから、ハハン、
  想像力の問題だね、とかハハン、自分で考えな、みたいに居丈高に振舞って誤魔化すしかない。
 ・タスクバカは、>>2で使われてる用語のTASKやらTCBやらが実はOSやらMONITORから拝借されて
  きた用語であることを知らない。知らないフリをし続ける。指摘されても『アーアー聞こえない聞こえない』
  の知能障害で逃げまくる。で、『>>2はOSとは設計も目的も意味も違うから混同するのはおかしい』
  だとか、『OSとの比較は無意味』、だとか臆面も無く言ってのける。もはや介護が必要な知的水準だ

 ・タスクバカは、>>2がOSやMONITORの仕組みを劣化猿真似しただけの代物であることを
  どうしても認めたくない。プライドの高い彼らにとって>>2とは、タスクシステムとは

    ボクらのギョーカイが編み出したプライスレスでオンリーワンなミラクルテクノロジー

  でなければならないらしいのだろう。タスクシステム誇らしいですねホルホルホル

810 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 00:47:14 ID:NOe63qNy]
老害プログラマーに現在進行形でムカついてんならともかく
ただの学生なのにここまで熱心に煽れるエネルギーってなんなんだろうw



811 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 00:55:34 ID:S9RgoUXb]
ここ以外では話聞いてもらえないんじゃねぇの
人によって場合によって色々前提違うのに、自分の世界の話ばかりだし
リアルならお近付きになりたくないタイプ
ウザすぎる

812 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:11:51 ID:gGNkZ3FN]
>>809
おっさんのタスクバカだが>>2がOSやMONITORの仕組みを
劣化猿真似しただけの代物と思ってるぜ。良い意味で。

学問的には屑だがシンプルでちゃんと動くぜというか
微妙なたとえかもしれないが大学に対する高専みたいな。

813 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:37:27 ID:7TQPewAA]
タスクシステムは1実行単位で必ず1回実行したい処理などを、
実装する窓口を作るのが本来の仕事だと思います。

タスク間メッセージのやり取りなどで汎用化とか考えがちだけど、
結局は時間的コストがばかにならないのでたいてい失敗に終わる。

メッセージのやり取りなら上位の管理役オブジェクトに
取得するメソッドを経由するほうが効率的だと思います。

で、タスクシステムが何を作るのに有用かと言うと、
上で書いたとおり1実行単位で必ず1回実行したい処理です。

たとえばGameの進行を管理するためのGameMaster、
入力機器などのステータスのアップデート、ゲーム内ステータスの表示(UI)、
プレイヤーが操作するキPC、NPCなどのAIなどが一般的。

当たり判定などはこれらを実行しつつあたり判定用の
データベース(ハッユや4分木)に登録する。

一通りシステムタスクやキャラクタタスクの実行が終わった後、
当たり判定を行いゲーム内物理に応じた反応を計算。

このあとジオメトリ計算やレンダリングが行われるわけです。


814 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 01:40:55 ID:7TQPewAA]

実装してみれば分かると思いますが、ゲームシステムにおいて
1実行単位で必ず1回実行したい処理ってのは割りとあります。

いろんな所で使うためおもわず「システム」といいたくなるのでしょう。

ツリー構造や処理依存関係を考慮したタスクの
生存管理を行うとよりシステムらしくなるでしょうね。

まあ、すべてタスクで行うの愚かでしょう、
しかしタスクを全く使わないのも非効率ですね。

パーティクルなどはタスクで実装すると、
非効率なのでべつの処理系を僕は作っています。

弾幕ゲーム程度の弾数ですとタスクで処理しちゃいますけどね。

815 名前:510 mailto:sage [2009/03/20(金) 18:07:47 ID:BbcMOz7M]
>>792
普通に仕事してるので、一週間に一回程度しかスレを確認できないから亀レスすまん。


>配列にぶち込んだ1万個の鼻糞みたいなちっさな処理を一個一個
>処理する度にsleepしたりクリティカルセクションかまして次に処理する要素番号をゲットすんの?

Sleepを入れているのは、明示的にスレッドの切り替えを発生させ、並列動作をテストするため。
だから、本来は入らない。
それから、クリティカルセクションは使ってない。

816 名前:並列さん ◆dPfetnROQg mailto:sage [2009/03/20(金) 20:09:54 ID:CF/qt1oO]
>>815
いまさらかも知れないが
名前の「510」は、「前スレ510」とか「タスクシステム改良君」とかにしたほうがいいような気がした。

ところで、>>792だが、俺もちょっと的外れな気がする。
ID:EEKBitmg は、サンプルプログラムを読み解く力に乏しいのか、ケチの付け方が毎度しょーもない。

817 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 20:40:49 ID:a30Oap5a]
嫌タスク厨にレスする度に、魂がよごれていく気がするんだよな、ハハン

818 名前:名前は開発中のものです。 mailto:sage [2009/03/20(金) 23:37:12 ID:nTzU835n]
>816
> ケチの付け方が毎度しょーもない。

仕方ないよ。知識も経験も乏しいセンセイに教わってる学生サンなんだから。

819 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/21(土) 00:37:19 ID:q+0mNzyT]
>>815
クリティカルセクションじゃなくてインターロックだった。なんか書き間違えた

>>816
うぜぇよハゲ
ちいさな処理をひとつこなしたら排他制御かけて次に処理する要素を決定、とか
こんなチマチマとロックをかけるくらいなら

thread1 execute task[0〜10000/4-1]
thread2 execute task[10000/4〜10000*2/4-1]
thread3 execute task[10000*2/4〜10000*3/4-1]
thread4 execute task[10000*3/4〜10000-1]

のほうがはえーんだけど

820 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 00:47:27 ID:Lt5z4CxY]
当然だけど、すべてがタスクシステムのリストに繋がってると思ってないよね。
大量のパーティクルとかは、1つのタスクに配列を持たせて管理するでしょ。



821 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/21(土) 01:01:55 ID:q+0mNzyT]
>>820
てめぇ、質問するときは言葉を選べよボンクラ
俺にタスクシステムの実装を聞いてどうすんだよ

>お前らタスクバカはさ、いい加減『ナニを作るのか』具体的に書けよ
>何でもツクール目指すから『ナニを作るのか』書けません、だとか
>ミラクルドリーマーみたいな事をほざくなよ

何度も何度もいってんだろ。バカが
毎度毎度てめぇのに都合に合わせて俺様実装を引っ張り出して
『当然だけど』、とかほざくなっつってんだよ


822 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/21(土) 01:08:12 ID:q+0mNzyT]
というのは不毛なので
>>820
>>2のタスク一個一個でパーティクル一粒一粒を作るようなことをせず
配列でやるというのはとても清々しい実装だと思うね。タスカーっつっても色々だね
ところでそれはタスクシステム派としては多数派の意見なの?
全てをタスクにしないと気がすまない人がいたような気がするんだけど

823 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 02:41:56 ID:NSoih+ib]
相手によって発言内容変えてくるクズだろ?
まともに相手にしてんなよ

824 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 10:47:01 ID:pH6WTk/t]
>ところでそれはタスクシステム派としては多数派の意見なの?
>全てをタスクにしないと気がすまない人がいたような気がするんだけど
お前の頭の中に仮想敵作って必死にどっかの誰かと戦ってますね

825 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 10:52:49 ID:NSoih+ib]
でもすべてごった煮にしてないとせっかくまとめたのにアクセスできないオブジェクトができるよね?
タスクシステムなんて使ってるアフォからしてみたらそれはすごく面倒なことなんじゃないの?
引数作ってもってくるみたいなことしてるとも思えないし

826 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 12:14:38 ID:hWHfUpnE]
>>821
>毎度毎度てめぇのに都合に合わせて俺様実装を引っ張り出して
>『当然だけど』、とかほざくなっつってんだよ

てめぇの都合に合わせて俺様実装するのが当たり前だろうが
そういうのが当然だっつってんだよ

お前本当に高専か? 老害連中より頭固いじゃねぇか
教科書読むしか能の無いサルは社会に出てくんなよ迷惑だから

827 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 13:37:52 ID:Lt5z4CxY]
>>822
他の人がどうしてるか知らないけど、普通に考えて、
数千、数万のリストを作る人はいないと思う。

>>825
1つのタスクの中に、複数のオブジェクトのデータがあるだけだよ。
アクセスは引数使ってもできるし、引数なしでもできる。

828 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 16:58:12 ID:aPX2P6NL]
パーティクルの一粒一粒が他のタスクに何らかの影響を与えて相互に作用する必要がないなら全部まとめて1タスク内で処理するよな
処理の単位がタスクなだけであって、すべての要素がタスクな訳じゃないだろ

829 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 17:09:54 ID:NSoih+ib]
>>827
でもわざわざ引数なんて使いたくないんでしょ?

830 名前:名前は開発中のものです。 mailto:sage [2009/03/21(土) 21:25:16 ID:xOJ60zOt]
引数ってなんの話だっけ
俺的にはメソッドに常に self を渡すのは当然



831 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:18:44 ID:TvrDIaqh]
>>829
何かアンチタスクは思い込みの激しいタイプみたいだな…

832 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:30:54 ID:0jTqsTen]
>>831
引数使う人間がごった煮をメリットだと思うかね・・・馬鹿かね君は

833 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:32:36 ID:5NogUcs2]
ごった煮ってこのスレでよく見かける言葉だけど、
どんな状態なんだろうか

834 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 05:37:34 ID:TvrDIaqh]
引数つかわない、ごった煮…
やはり何かに取り付かれてるな

見えない何かと戦うのは疲れないかい?

835 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 10:27:25 ID:2tpyojUU]
インターフェースを使った抽象化をごった煮とはこれいかにw

836 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 11:10:41 ID:0jTqsTen]
>>833
それは>>2を読んでないな
とりあえずこのスレのタスクシステムは>>2なんだから会話に参加するなら
まず>>2を読むべき

837 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:18:05 ID:5NogUcs2]
面倒だからググったらやねうらおの記事で使われてる言葉だったのか

838 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:21:33 ID:0jTqsTen]
日付と過去ログを合わせればここで使ってたほうが早いぞ
奴は議論の過渡期にわざわざ見当違いな記事書いて意味不明なフェードアウトしただけ

839 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:34:52 ID:2tpyojUU]
タスクシステムなんて記憶をたどると15年位前から使われてる。

840 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:41:41 ID:NwxqzLgy]
>>836
タスクシステムは>>2にあるものがすべてって考えはどうかしてる。
ゲームに合わせて実装は変えるのが普通。
教えられた通りのことしかできないプログラマはゴミ。



841 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:49:52 ID:IncocYZR]
というか、実行巡回リストのみしか存在しない、それ以外のコレクションが存在しないとか考えてて、
なんでもかんでもごった煮リスト(wに頼らないとやっていけないとか考えてるお子様が未だに存在する
というのがちょっとした脅威。

842 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 13:51:32 ID:DNLKor45]
アンチ君はプログラマではなくてただの学生みたいだから
そこまで想像できないんだろう。

843 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:18:45 ID:0jTqsTen]
>>840
だったらまずは>>2のメリットデメリットを説明した上で
自分の改良版の>>2との相違点を説明するべき

それがこのスレに参加する条件だろ

844 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:44:30 ID:B5iuRYmF]
別に相違点だけでいいんじゃね?

845 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:50:58 ID:IncocYZR]
>843
人に教えてもらったところで、それを理解できなければ意味が無いだろwww

846 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 14:51:40 ID:DNLKor45]
タスクってゲーム毎に手を入れて使うのが普通だし、プラットフォームとかジャンルとか前提条件によって使い方も異なるから
具体的な前提条件が無いとメリットデメリットの説明は抽象的なものにしかならんだろうなぁ…

まぁ、抽象的なものでも経験のあるゲームプログラマならだいたい暗黙知で分かるんだけど
タスクの仕組みを聞いただけではその辺がまったく想像すらつかないってレベルなら、
理解できるだけのプログラム能力や経験が不足してるか、そもそもプログラマとしての適正がないんでないかな。かわいそうだけど。

847 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 16:32:43 ID:0jTqsTen]
>>846
一番PGとして適正のない人間ってちゃんと比較検討ができない人間だと思うぜ
数字出してちゃんとメリットとデメリットを掲示できない、
ちゃんと検討もしたことないのに勘でいいものだと信じる
あたりを見回して楽に手の届くところにあるもんをテキトーにつまんで
勉強した気になってるような奴は詐欺師に騙されてしまう

ソフトウェア工学はクズが多すぎたよ
海外の人間からいってウンコみたいな奴等ばっかりだし
グローバル変数・関数が平気で使ってあるもんが褒め称えられてる異常事態
ちゃんと自分で判断できる人間が周囲にいるかどうかも正直微妙だしね
環境によっては糞を受け付けられてしまってもしょうがない

848 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 16:42:26 ID:qn7xQRxP]
PGには独善的な連中も多いようだな
他人にキャンキャン噛み付いてるのを見てると結構面白い

849 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 16:45:24 ID:eDzO8au2]
>>846
抽象的な説明に、ひとつの具体例でもついてれば十分だよ。
デザインパターンの説明なんて、みんなそんなもんだ。

抽象的な説明にしかならないからって、説明しない理由にはならないよね。

850 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 17:09:32 ID:iwp01Fau]
俺自身は、タスクシステムが良いとか悪いとか言うつもりは無いんだが・・・
このスレ見てると、いつもアンチ側がタスカー側に対して、
説明しろだの具体例を挙げろだのと一方的に要求してるよな。
アンチ側は、自分の方からタスクシステムより良い具体的な実装例を挙げて、
これこれこうだからタスクシステムは駄目なんだ、っていう比較をしようとは思わないのか?
なんか見てて不思議なんだが。



851 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 17:13:17 ID:2tpyojUU]
>>850
すべて個別に実行用のメソッドをもったオブジェクトを、
用途に合わせたコンテナに突っ込んでまわすとかいってた希ガス。

852 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 17:31:36 ID:OM4BCGYz]
メリットやデメリットは何かと比較したときに初めて出てくるもので
比較対象の無い文脈でメリットやデメリットを問うのは論理的におかしい。
>846ば偉そうにしてる割にそんなこともわからんのか。

>>849
デザインパターンの説明は目的と構造だけだろ。
例えばVisitorパターンのメリット、デメリットは?と問われて答えられる?

853 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 18:26:41 ID:eDzO8au2]
そうか比較対象が明らかじゃないのか。すまんかった。

じゃぁとりあえず個人的な興味で、話の流れに合ってるかどうかは知らないけど、
↓の比較で前者の方針にメリットがあるのかどうか、教えてもらえるとうれしい。

- 「タスクシステム」的方針
まず、毎フレーム実行される処理のコンテナ(リストなど)が在ることが前提。
毎フレーム実行される処理はまず「タスク」と考え、上記のコンテナに登録する。
大量のパーティクルなど、不都合が現れた場合は「タスク」としない。

- そうでない方針(個人的にはこっちが「ふつう」)
とりあえず必要な処理は関数呼び出しで並べる。
動的な寿命や複数インスタンスの一括処理などが必要になったら
リストなどのコンテナを必要な場所に用意して使う。

ここで「アンチタスク」として書き込みしている人は、たぶん前者の方針が
我慢できないんだと思うんだ。

854 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 18:46:43 ID:mHB0TcPP]
>>853
それってどっちにしても毎フレーム実行コンテナは使ってんだな。
つまり
・常に毎フレーム実行コンテナ
・必要になったときに毎フレーム実行コンテナ
この2派がここまで醜い争いしてんの?w

855 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 19:20:29 ID:eDzO8au2]
>>854
個人的にはそういうことだと思って見てる。たぶんシューティングゲームや
アクションゲームを作れば結果として同じような構造が(必要に迫られて)現れるだろう
と思う。

タスクシステムが「どんなゲームでも基本になる」とか「(メリットが)暗黙知」とか言う人は、
きっとシューティングゲームやアクションゲームなどを作った割合が多いんだろうな、とか。

ただ、後者であればコンテナは複数種使うのがあたりまえだし、ましてグローバルでは
ありえない。

これに対して前者では単一のコンテナ(これが「タスクシステム」と呼ばれたり)だったり、
それがさらにグローバルになったりしやすい。


856 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 19:30:04 ID:mHB0TcPP]
おまいら全員毎フレーム実行コンテナを使わないことにすれば
論争は解決するんじゃね

857 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 22:42:54 ID:DN2untcT]
>>853
>動的な寿命や複数インスタンスの一括処理などが必要になったら
同じような構造がプログラム中に複数表れる場合は
共通化できる部分を抽象化して共通のシステムにできないか、と考えるのが普通だと思うが

アンチは必要な箇所全てにコピペなりで同じような実装を個別に持つのがいい、という理屈か?

まぁ共通化できそうな箇所が2箇所ぐらいならいいけど、アクション系ゲームとかではかなり出てくるだろうし
そーなると共通化したほうがマシでない?

858 名前:名前は開発中のものです。 [2009/03/22(日) 22:49:10 ID:IncocYZR]
確か継承も否定してたぞ>アンチタスク厨


859 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:14:54 ID:eDzO8au2]
>>857
同じ構造のコードを共通化することに異論は無いよ。

共通化できるはずということ(なのかどうか知らないけど)で最初から根っこにひとつ
「タスクシステム」が存在してるのが >853 でいう「タスクシステム」的方針。

共通化できる部分を見つけてから実装を括りだすのが >853 でいう「ふつう」の方針。


前者だと何か構造的な変更を考えたときに、根っこをいじることになって影響が
広がりやすいというデメリットが考えられる。別の言い方をすると、たくさんの
プログラムから共用されているということは変更が難しくなる、という至極当然の話。
これに対して、大きなメリットは思い当たらない。

860 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:22:45 ID:IncocYZR]
>859
> 前者だと何か構造的な変更を考えたときに、根っこをいじることになって影響が
> 広がりやすいというデメリットが考えられる。

いわゆる『タスクシステム』も含めて、それらはただの実行巡回コレクションなのだから、それ以上の
機能を持たせようとするのが間違い。なんでもかんでも一つの構造に押し込めるのがおかしい。

実装をくくりだす後者の場合でも、当然共用されているところに変更が入ったらその機能の調停に
手間がかかるのは同じだ。

機能を絞り込めないなら、前者でも後者でも変更が難しくなるのは変わらないよ。



861 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:24:30 ID:eDzO8au2]
局所的な要求に対して個別のコンテナを置く(作る)のが難しかった(面倒だった)
C++ 初期以前の時代なら、すべての要求に対する単一のコンテナをあらかじめ
持っておくという方法に大きなメリットが感じられたのかもしれないけど、今となっては
基本的なコンテナは標準テンプレートから即座に作れてしまうわけで、大きな違いには
ならない。

C++ 標準コンテナの利用という点にメリット・デメリットの感じ方の分岐点があるのだと
考えれば、 C++ 標準コンテナのゲームプログラマ内での普及率とあわせて、
タスクシステムの恩恵を感じる人が多いことも納得できる。

862 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:24:32 ID:DN2untcT]
>>859
>共通化できるはずということ(なのかどうか知らないけど)で最初から根っこにひとつ
>「タスクシステム」が存在してるのが >853 でいう「タスクシステム」的方針。
タスクシステムの定義に根っこ一つなんてあったかな?

前々スレあたりに出てた
メイン遷移状態・メニュー階層・ゲームオブジェ・エフェクト…
って粒度単位で分かれてる階層タスクシステムってのもあるみたいだけど。

>共通化できる部分を見つけてから実装を括りだすのが >853 でいう「ふつう」の方針。
そこで括りだされた共通実装って一般にタスクシステムと言われるものでは?

863 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:27:38 ID:2tpyojUU]
>>859
>たくさんのプログラムから共用されている

継承が浅ければたいした問題じゃないよ。

その理論からいったら.NETが提供する「Object」なんて、
すべてのオブジェクトから継承されるので論外って話になるんじゃないかね?

864 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:34:22 ID:eDzO8au2]
>>860
> いわゆる『タスクシステム』も含めて、それらはただの実行巡回コレクションなのだから、それ以上の
> 機能を持たせようとするのが間違い。なんでもかんでも一つの構造に押し込めるのがおかしい。

そういう立場で言うと、「タスクシステム」と呼ぶほどの構造はどこにも現れないはず。
つまり「タスクシステム」が存在していること自体が、なにか不適切な機能の押し込みの
存在を示している(或いは感じさせる)ということになる。

> 実装をくくりだす後者の場合でも、当然共用されているところに変更が入ったらその機能の調停に
> 手間がかかるのは同じだ。

後者の方針では、共用されていることで変更が面倒になるようなら共用しないという選択が
簡単にできる。だって元々共用することが前提じゃなかったんだから、元に戻すだけの話。
括りだした実装を、結局ひとつの場面でしか使わないことになったとしても何も問題は無い。


865 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:41:47 ID:eDzO8au2]
>>862
根っこにひとつという定義は無いと思う。逆に、根っこにひとつとか、共用が前提とかいう
方針でなければ「タスクシステム」と名前がついていても、あまり否定するポイントは無いよ。

名前を改めることを強くお勧めする程度。

866 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:42:38 ID:IncocYZR]
>864
オマエの頭の中には、機能の階層構造が『タスク』と『タスクを継承した何か』しか無いのか?

そもそも『タスクシステム』なんて仰々しい名称が付いてるが、あんなのはただのイディオムでしか
ないぞ。教条的に従うものでもなんでもない。

> そういう立場で言うと、「タスクシステム」と呼ぶほどの構造はどこにも現れないはず。

『タスクシステムとよほどのもの』は無いかもしれないが、そういう『構造』は確かに存在するし、
>859の後者の方針だって、例えば敵なら敵でまとめてコレクションを作って実行巡回する
んだろ? それは敵という機能をベースにした「タスク」のコレクション以外の何だというんだ?


867 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:43:24 ID:IncocYZR]
×『タスクシステムとよほどのもの』
○『タスクシステムと呼ぶほどのもの』

868 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:44:55 ID:2tpyojUU]
>>864
実行巡回リストに、実行の依存関係の解決や、
ライフタイムの管理などを加えてやるとシステムといって良い物になるともうけどな〜。

上記のような実装があると便利な処理にはこれを継承させるといいよ。
割と継承する機会が多いから「システム」と呼んでいるんだと思うのだが・・・。

869 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:48:03 ID:eDzO8au2]
>>863
比較して欲しいのは、共用が前提になっている方針とそうでない方針のメリット・デメリットね。
共用を前提にしたうえで「たいした問題じゃない」と言われても「はぁそうですか」としか言えない。

.NET が提供する Object は、明確な目的があって共用されるべく作られたのであって、
これがなければいろいろ困るというのはすぐわかる。これがあるから「タスクシステム」も
同じことだ、なんてまるで思えない。

870 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 23:56:38 ID:eDzO8au2]
>>866
> 『タスクシステムとよほどのもの』は無いかもしれないが、そういう『構造』は確かに存在するし、
> >859の後者の方針だって、例えば敵なら敵でまとめてコレクションを作って実行巡回する
> んだろ? それは敵という機能をベースにした「タスク」のコレクション以外の何だというんだ?

???
「敵のコレクション」に決まってる。

どこから「タスク」が出てくるの?自分で言ってておかしいと思わないの?



871 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:09:13 ID:LvfAcAqg]
>870
> ???
> 「敵のコレクション」に決まってる。
> どこから「タスク」が出てくるの?自分で言ってておかしいと思わないの?

頭の悪いレス返すなよw

『敵のコレクション』のなかに、『タスクのコレクション』と同質な構造を読み取れないなら
プログラマとしての才能無いよ。

872 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:10:00 ID:V2ED/dbE]
>>868
うん。そこまでいくと「〜システム」と名を付けてもいいかもしれないと思う。

で、そこまで手の込んだものを全体で共用するという方針を採ってしまうと、
>859 で挙げたデメリットが出てくる。ってことで >853,859 の話に戻ってね。

873 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:10:18 ID:LvfAcAqg]
結局、『敵』という機能単位で実行巡回コレクションを持ってるなら、それは同じことだ。

名前に惑わされてるだけ。

874 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:20:29 ID:EDktN1ia]
古参のゲームプログラマが「敵のコレクション」とやらを見れば
「あぁ、敵タスクの集まりね」って言うだろうし。
結局タスクなりコレクションなりの方言の違いだけで内容はたいして違わないような…

でも「敵」とか「アイテム」とかの単位で括ってしまうのは仕様変更したとき地獄を見そうだから嫌だな
おえらいゲームデザイナー様の頭の中にしか無い仕様次第で、「この敵はイベント起こるとアイテム扱いで取得できるようになるから」
とか仕様ころころ追加されるし。

移植みたいに仕様が完全に動かないものなら初めから分類して設計できるけど、一般的にゲームはマスター寸前でも
つまらないと基礎構造からちゃぶ台返しがあって入れ替わりがあるから、そんなガチガチに固定した構造で作るのはかえって危険。

875 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:27:49 ID:V2ED/dbE]
>>874
仕様追加されてから変更すればいいじゃん。

誰も予知能力なんか期待してないってのに、そのために不要な依存関係やバグを
増やすのは嫌だよ。

www.google.co.jp/search?q=YAGNI

876 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:31:25 ID:LvfAcAqg]
>874
> 一般的にゲームはマスター寸前でも
> つまらないと基礎構造からちゃぶ台返しがあって入れ替わりがあるから、

今まで面白いと勘違いしてきたクソ仕様を、そんな土壇場でひっくり返した糞プランナーに
唯々諾々と従うのはただのバカだ。

仕事なら、キチンとその糞プランナーに責任取らせろ。趣味で作ってるなら、バカにはきちんとバカと
逝ってやれ。

> そんなガチガチに固定した構造で作るのはかえって危険。

敵である『敵』と、アイテムである『敵』は、別に別タスクでも問題ないだろ。内部で参照しあって
リンクしてるとか、双方を子に持つ親が居るとか、色々管理方法はあるだろ。

しかしそんな『敵』であり同時に『アイテム』でもあるような敵が居るなら、そんなクソ仕様で本当に
面白いのかどうかプランナーを小一時間問い詰めたいところだな。


877 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:35:14 ID:bJ5OKMfv]
>『敵』であり同時に『アイテム』でもあるような敵

ありがとう、なんか閃いた!
このスレ見てて初めて新しい何かに触れた

878 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:38:56 ID:LvfAcAqg]
>877
礼を言われるようなことは何も書いてはいないが、その閃きが何か形として昇華されることを望むよ。

879 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 00:42:42 ID:lCjH8IyB]
>『敵』であり同時に『アイテム』でもあるような敵
そしてマップでも背景でも障害物でもあるんだな
そしてごった煮ができたと

880 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 01:00:17 ID:EDktN1ia]
>>876
君はゲーム会社でのプログラマの地位をわかっていないな…
普通よほど小さい会社でもない限りプログラマがゲーム仕様に口出しなんて出来んよ。

ごった煮が見苦しいことは作ってるプログラマが一番よくしってるんだけど
仕様が固まらないまま「とりあえず今あるだけの仕様を作って、細かいことはそれで遊んで決めるから。あ、でもつまんなかったらチーム解散ね。」
とか言われると、基礎システムは変えずに何でもできちゃう「ごった煮」以外の選択肢が無かったりするんだよね…

大作作ってる大手とか、外注に仕事投げる元受系はきっちり仕様書切るみたいだけど、
ゲームデザイン用のプロトタイプとかを本編と別に作れるほど人員も期間も無かったりする中小の中途半端なゲーム開発ではそういうこともあるってことで。



881 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 01:04:52 ID:UXdp0kDT]
>>880
おれの会社は小さいからプログラマーの地位が一番いいよ。

882 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 01:22:45 ID:LvfAcAqg]
>880
そんなクソな会社辞めちまえ。

ウチは500人以上社員が居るが、糞プランナの言うことをホイホイ聞くようなプログラマも
デザイナもサウンドもディレクターも居ないぞ。

883 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 03:23:53 ID:pfOFwfs9]
プランナが仕様を切ってそれをプログラマが実装する、というのは、
単なる役割であって、地位が高いとか低いとかって話じゃないよね。
>>880の会社は単にプランナが仕事してないだけって気がする。

というか、例が下手なせいで話がずれてるが、プログラマの地位(というか
発言力?)の高さと、「仕様変更」が発生するかどうかは関係ないと思うが。
元仕様の不備だろうが、実際に動かしてみて生じた新しいアイディアだろうが、
ゲーム製作において(まともな)仕様変更は普通にあり得るし、それを
「そういう作りじゃないので変更は出来ません」と突っぱねるわけには行かないわけで。

で、その仕様変更に対してタスクシステムが有用かどうかということだけど……。
俺の経験上、同じような変更であっても、多少、修正する箇所が少なくて済むような気が
するけど、「仕様変更に備えるためにタスクシステムを使う」というほどの差はないと思う。
どんな方法だろうと、大抵の記述はオブジェクトやシーン単位で完結してるし。

>>875
この場合YAGNIは的外れじゃないか?
タスクシステム(>>2だろうがそれの発展系だろうが)を使って組んでいるなら、
既にタスク周りのコードは組みあがっているわけで、依存関係やバグが増えることはないよ。
タスク処理そのものを新しく作るとしても、初期仕様からそれを利用するわけだし。

884 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 08:30:26 ID:5GNmNI21]
>>862
> 前々スレあたりに出てた
> メイン遷移状態・メニュー階層・ゲームオブジェ・エフェクト…
> って粒度単位で分かれてる階層タスクシステムってのもあるみたいだけど。
何でもかんでもタスクシステムと呼ばないで欲しい。タスクシステムとか
名前付けるほどのものではなくて、普通に書いたらああなるという例だから。

アレにたいそうな名前付けたら、それこそ for ループに○○システムとか
呼び始めることになるぞw

885 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 01:03:10 ID:Rj9TsTRs]
>>884
タスクシステムを改良した物で作った本人が階層タスクシステムと命名したなら
別にタスクシステムって名前がついててもいいんでない?

886 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 05:58:46 ID:U0cCvZZ8]
>>885
だったら、>>2との相違点を説明するべきだよね?
少なくともこのスレでいきなり出すのはNGだと思うね

887 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 06:34:43 ID:okF9YnFL]
>>883
> この場合YAGNIは的外れじゃないか?
> タスクシステム(>>2だろうがそれの発展系だろうが)を使って組んでいるなら、
> 既にタスク周りのコードは組みあがっているわけで、依存関係やバグが増えることはないよ。

それは既存の「タスク周りのコード」への依存を増やしているということ。
そういった共用コードが >840,846 が言うようにゲーム合わせて変更を
加えられていくと考えると、やっぱり >859 みたいなデメリットにつながる
ことが考えられる。

>874 で、そのデメリットをあえて受け入れる理由が「ちゃぶ台返し」への
予防策だというのだからまさに YAGNI の出番だ(そんな予防策は要らない)、と。

888 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 06:36:03 ID:okF9YnFL]
結局 >853 で挙げた2つの方針について、前者の「タスクシステム」的方針に
メリットを挙げる人は居ないみたいだ。

個人的には後者が「ふつう」だと思ってたんで驚くべき結果じゃないんだけど、
過去に見てきた「タスクシステム」の実例のせいで、「タスクシステム」と聞くと
やたらごてごてといろんなゲームや画面の都合が押し込められた
自作コンテナクラスや、さらにそいつがグローバル変数になってる状態を
想像して嫌な予感しかしないのが正直なところ。

現存する「タスクシステム」は名前がおかしいだけで、構造としては
挙げたような問題を持たないようなものだけが生き残ってる、ってことだと
理解しておくよ。

889 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:08:53 ID:bIbLUBOz]
>888
全部ID:okF9YnFLの個人的感想と推測でしかないな。

890 名前:884 mailto:sage [2009/03/24(火) 07:18:50 ID:0pAn0US9]
>>885
その本人ですが…




891 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:21:57 ID:bIbLUBOz]
実際の話、>2のような『タスクシステム』も含めて、何らかの共通の構造をコレクションした
実行巡回リストを作って統一的に運用している会社が殆ど。

今まで20社以上の下請けにソースコード納品させてて、それで確認しているから、すくなくとも
その範囲内では間違いない。

毎回毎回基礎部分からワンオフで作ってる時間も予算も、下請けにはないからな。判ってる
人たちだけで使うなら、基礎部分を固めてその上で工夫する方がよほど効率がいいという
ことだ。

892 名前:名前は開発中のものです。 [2009/03/24(火) 07:34:12 ID:lE32YVAM]
話のまとめがタスクシステム云々と関係無いじゃん
日記帳に書いてろよ

893 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:37:26 ID:bIbLUBOz]
その中では、普通に>884が言うような『階層的タスクシステム』というような構造も存在するよ。

いわゆる『シーンタスク』には継続機能を持ったものを使って、できるだけシーケンシャルに記述
できるように、ゲーム内オブジェクトはFMSを使用、といった具合に使い分けてる。


894 名前:名前は開発中のものです。 mailto:sage [2009/03/24(火) 07:57:17 ID:bIbLUBOz]
>884じゃねぇな、>862だ。

ソース公開されてる海外のゲーム見ても、普通にこういう構造は使われてるぞ。
EntityとかActorとかいった構造を内包するか継承するかしてコレクションしてる。


895 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 03:06:34 ID:L7D8ecXi]
YAGNIの考え方からいけばむしろごった煮のほうがYAGNI的じゃないか?
敵とかアイテムとか地形とかの仕様上の扱いは最後まで決まらないんだから
敵でも何でもタスクてごった煮実装して、最後に仕様が固まって分類わけできる
ような仕様に落ち着いたなら、その段階で初めて分ける作業をすればいいわけで。

896 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 04:07:28 ID:Lr2HI9E7]
>>895
> 敵とかアイテムとか地形とかの仕様上の扱いは最後まで決まらないんだから

ここが間違い。
本当に決まっていないのであれば、そもそもコードを書くべきじゃない。

897 名前:名前は開発中のものです。 [2009/03/25(水) 07:51:20 ID:4mzxhtmM]
全くだな
手を動かしてる方が進んでる感あるから決まってない仕様には触れずに色々やり出すんだろうけど
明らかにこれが間違いの元
現実には全く進んでないし余計なコードを入れただけ
本当にやらなくてはならないことは、決まっていないから早く決めて欲しい仕様リストの作成と
それに対する仕様の提案や仮に決まらなかったときの強行策の練り上げ等であって
プログラムを組むことではない
すべてをやりつくしたら昼寝でもして待つか仕様が決まっている箇所のバグ潰しが仕事
プログラムを組むことではない
プログラムを組む仕事に逃げるなと言いたい

898 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 11:24:38 ID:CbSm4PZy]
ここの偉そうに語ってる連中のどれだけがプロなんだか

899 名前:名前は開発中のものです。 [2009/03/25(水) 12:49:30 ID:4mzxhtmM]
じゃ、はっきりいうけど
現場で一番使えない奴はプログラミングしかしてない奴
出世もしないし心当たりない奴は働いたことないだろ

900 名前:名前は開発中のものです。 mailto:sage [2009/03/25(水) 23:53:40 ID:pW6Hh/Rg]
で?
タスクシステムと何か関係あんの?



901 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 00:04:17 ID:koP5FPqt]
スレタイも読めない子供なんだろ

902 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/03/26(木) 01:24:52 ID:B4kinADx]
>>900-901
くっくっく

903 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 01:30:56 ID:JMiA0s09]
予想通りに釣られるやつだな

904 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 19:29:08 ID:5m/Hn+Tm]
>>899
一番使われてるじゃんw

905 名前:名前は開発中のものです。 [2009/03/26(木) 20:42:18 ID:t4iRSZvE]
でもほぼ無駄
ある程度は数字で行動が決定できない人間じゃないと邪魔にしかならない

906 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 21:24:16 ID:5m/Hn+Tm]
数字で?行動?
言いたいことは分かるが、その表現は適切なんでしょうかww

907 名前:名前は開発中のものです。 mailto:sage [2009/03/26(木) 21:27:34 ID:sNdn6b+Y]
>>906
わかったならいいじゃん
お前なんか何が言いたいかわからないし
タスクシステム流行らせたいの?

908 名前:名前は開発中のものです。 mailto:sage [2009/03/27(金) 15:45:50 ID:iW3jYp68]
今日も見えない敵と戦うヒトがひとり

909 名前:名前は開発中のものです。 [2009/03/27(金) 19:28:50 ID:82f41tp0]
弾幕 最強のシューティングゲームを作る!
www.sbcr.jp/books/products/detail.asp?sku=4797352290

また出るよ

910 名前:名前は開発中のものです。 mailto:sage [2009/03/27(金) 22:56:31 ID:RoIWJt/F]
BulletML紹介して終わりじゃね?



911 名前:名前は開発中のものです。 [2009/03/28(土) 07:13:43 ID:3WHtXnJb]
「変更の必要ない完璧な仕様が出来るまでコードはかかない」
そんなふうに考えていた時期が俺にもありました

912 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 10:04:32 ID:GGppowTV]
>>911
>>896以下ループ

書くべきじゃないと思うよ
っていうか書いても意味がない
PG経験10年だけど俺も未熟な頃は色々できることないか考えてたけど
ソースに関してはまるで意味がない
絶対に書いてはダメ
それより「決まってないから決めてくれ仕様リスト」の作成に力を入れろ

913 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 10:09:25 ID:8c8Vy+u+]
仕様が決まってないうちは自分のライブラリ整備に時間を入れる時期じゃね?
俺はこういう空白時間はそう使ってる。

914 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 12:19:58 ID:iRlTudQl]
仕様が決まる前に退社しろよ

915 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 13:29:16 ID:Sx0Nlejd]
決定したはずの仕様が覆るのはよくあること

916 名前:名前は開発中のものです。 [2009/03/28(土) 14:08:59 ID:3WHtXnJb]
>>913
>仕様が決まってないうちは自分のライブラリ整備に時間を入れる時期じゃね?
仕事中に”自分”のライブラリ整備なんてしてたら普通に職務上横領だっての。
学生気分が抜けない新人か?

917 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 14:14:01 ID:8c8Vy+u+]
担当箇所のライブラリという意味だ
趣味のライブラリというわけじゃないぞ

918 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 14:50:06 ID:NO4+g0CQ]
>913
社内の機材を使って社内で作成したモノは全て会社の所有物なワケだが、
自分用のライブラリを会社で作るって常識ナシのやることだぞ。

919 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 14:54:47 ID:NO4+g0CQ]
おっと、レス更新しておけばよかったよ。

ちなみにうちの会社はタスク使ってるよ。C++の場合はベースクラスの名前がITaskで、Cの場合は
タスクの先頭に必ずTCBというものを置くようにルール付けされてる。

まぁ、それでもミリオン逝くソフトは作れるってこと。

920 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 15:22:24 ID:LQ4LeJzd]
最近はミリオンいくソフトなんてあまり聞かないな
売上がミリオン$ってこと?



921 名前:510 mailto:sage [2009/03/28(土) 16:20:14 ID:J75Q9/vX]
もう、
タスクシステム
 = 特定の型のインスタンスを高速に列挙する仕組み
  + 列挙したインスタンスに対する処理を並列化するためのマクロ群
ってことでいいでしょ。

922 名前:名前は開発中のものです。 mailto:sage [2009/03/28(土) 17:14:29 ID:u3m/NTOQ]
釣りくさいなぁ

923 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 06:46:59 ID:Yd51Jaj0]
アンチが論破されてからレスが静かになったなぁ…

やっとタスクがゲーム開発現場で使われ続けてるって現実を
理解できたのかな。

924 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 07:16:40 ID:+VmeKXw4]
春休みも終盤で宿題が忙しいんじゃね?
と思ったけど春休みに宿題は無いな

925 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 09:15:00 ID:QIE0mUQn]
飽きただけだと思うが

926 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 11:55:25 ID:A8GBNU1d]
>>923
どこで誰が何を論破したって?

927 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 12:36:10 ID:t8KnpuP8]
>923
アンチがタスクを理解できなくて、飽きただけじゃね?

928 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 12:47:00 ID:F8b6hXRU]
結局タスクシステムのメリットをあげられる人間はいなかったな

929 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 12:50:48 ID:t8KnpuP8]
>928
最初から理解する気の無い者に、何を言っても無駄だからな。

930 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 13:31:46 ID:A8GBNU1d]
class ITask や namespace TaskSystem のドキュメントって >929 みたいなのが書いてあるの?
何かしら目的や必要性があって作ってるんじゃないの?



931 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 14:04:25 ID:seNawTSI]
ggl code searchで検索したところをいくつか見たら
for_eachのようなアルゴリズムで一元的に扱う為のインタフェース
みたいなことが書いてあるところが結構あった

932 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 18:03:57 ID:t8KnpuP8]
>930
ゲーム制作用のドキュメントには使い方しか書いてないな。

毎フレーム実行するものがあるばあいはITaskを継承してTaskManager::Append()とかでリストに
ブッ込めば、次のフレームから実行される、とかいう感じで。タスク同士の関係性やタスクを殺す時
タスクが死ぬ時の注意点なんかも書かれてる。

ゲーム毎に異なる部分と、プロジェクト別でも共通して使える部分を分けるのも目的のうちの一つ
だから、技術開発系のドキュメントとゲーム制作系のドキュメントと2つある。

933 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 18:39:55 ID:Yr0oXSYT]
>>930
> 何かしら目的や必要性があって作ってるんじゃないの?
そういうのはメリットとは言わない。
このスレにある回答らしきものを先に読め。例えば >264,852

934 名前:名前は開発中のものです。 [2009/03/29(日) 21:43:33 ID:Yd51Jaj0]
フレームワークやライブラリのメリットすらわからずに
同じ実装いくつもコピペした方がわかりやすいって人間に
タスクのメリットが理解できるとは思えんのだが…

935 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 21:44:46 ID:F8b6hXRU]
>>934
まあ、とりあえず言ってみろよ
どんなご高説が聞けるのか楽しみにしてっからよ

936 名前:名前は開発中のものです。 [2009/03/29(日) 21:52:33 ID:Yd51Jaj0]
>>935
最低限フレームワークやライブラリのメリットは理解できる頭はあるのかな?

937 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:03:14 ID:F8b6hXRU]
>>936
いいからさっさと説明しろよ

938 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:03:44 ID:A8GBNU1d]
>>936
たった一人相手に説明するわけじゃないんだ。みんな待ってんだよ。
誰か一人にでも伝わればいいじゃないか。ほら、たのむよ。おねがいします。

939 名前:名前は開発中のものです。 [2009/03/29(日) 22:06:44 ID:Yd51Jaj0]
>>937
つまり、それすら理解できない…と。

940 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:16:03 ID:CEz25h5J]
タスクシステムと呼ばれている物の利点は大体こんなもんじゃね?

・1フレームに1回実行すするための窓口提供
・依存関係の解決

上記の二つはゲーム内のいたる所で
使われるパターンと機能だと思う。

まあこれを基盤にライブラリを構築するところから、
タスク「システム」と呼ばれているんじゃないか?



941 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:24:54 ID:A8GBNU1d]
>>940
あなたは >853 の前者の方針をとる人ですか?

942 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:30:58 ID:CEz25h5J]
>>941

基本的に前者で構築してるよ。
パーティクル類はタスクにはしないけど。

後者の方針を取ると、似たような処理が
いたるところに散乱することになるからね。

早い話タスクパターン(名前は何でも良い)を
適用したほうが良いものはそっちで実装。

ソースは小さく富豪的に書いて速度的問題や、
メモリ的問題が出てからつどそれらについて対応かな。

943 名前:名前は開発中のものです。 mailto:sage [2009/03/29(日) 22:38:03 ID:A8GBNU1d]
>>942
ありがとう。

944 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 00:01:47 ID:v5MWlQvG]
久しぶりに見たら静かになってるな。
アンチタスクがやっとメリットを理解できたのか?

945 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 03:04:56 ID:GjL5wpHY]
>853 移行で挙げられてるような「タスクシステム」的方針のデメリットと、
>891,942 で挙げられてるようなメリットとの大小を自分で見積もって選べ
ってことじゃないかな。

946 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 18:16:13 ID:mhRpa/AL]
アホの子を自認して今まで20年弱生きてきたけど世界は本当に広いんだなとつくづく思う
ネットの普及により、誰もが容易く素早く安価に優良な情報に(情報へのリファレンス)に
アクセスできるというのに、それでもなおタスクバカ(頭の悪いほうのタスクシステム擁護者)
は殻に閉じこもり世界を見ようとしない。タスクバカというのは停滞し続ける盲目・無知・
怠惰な人間であると看破する

タスクシステムに関する情報は検証可能性ゼロの欺瞞情報にあふれているが、それに
適切に突っ込む存在は彼らの中にはいない。ベテラン風を吹かせてる擁護者がたまに
出没するが、具体性を帯びた有効な反論は全く無く、具体性を加えろというと口を噤む。
それどころか検証可能性ゼロの胡散臭い情報を垂れ流してタスクシステムの存在理由の
補強を試み、初心者を煙に巻こうとする。なんだかとっても残酷な情報封鎖された村社会

次のステップを進めず無駄に年を重ねただ老いさらばえていくだけの老人にとって
後ろからどんどん現れる新手・後続の若者というのはもはや蹴落とすべき脅威でしか
ないのだろう。後続を煙に巻くことで僅かでも時間稼ぎをして自己の保身ができればと
努めているのかと思うと、あまりにも哀れで相手する気もなくなる

947 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 18:24:19 ID:cFzYggkl]
だったら消えれば?

しょせんチラ裏の匿名掲示板に、
なぜそこまでこだわる?

948 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 18:28:37 ID:mhRpa/AL]
タスクシステムの擁護をするはずが、いつの間にかタスクを擁護し始めている
タスクシステムが攻撃されているのに、彼らはタスクが攻撃されている、という
対立構造に話をすり替えようと試みる

何らかの時間ステップで多数のFSM(VM)をシングルプロセッサで駆動させる
プログラム全てにおいて、タスクという処理単位は必ず存在するというのに
彼らは『アンチは処理単位を否定しようとしている』などと叫ぶ

『アンチはフレームワークを否定しようとしている』というふうに話をスライドさせる
手口も同じ。彼らは自分たちが守るべきもの(タスクシステム)が、守るに値しない
守ることが不可能な、存在理由の実に希薄な、実につまらない車輪の再発明
既出の何かの劣化猿真似であることを悟ってしまったから、擁護する対象を
摩り替えることで、自己の立場を確保しようとしているに過ぎない

彼らはもはやタスクシステム擁護者ではなくなっている。彼らが現在守ろう
としているものの実態、それは別の何かに換言される。それに
タスクシステムという名前を無理やり与え(レッテルを張り)、擁護しているに過ぎない

タスクシステムというお名前を擁護しているだけなのだ

949 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 20:15:49 ID:18fDyK6N]
>>948
で、結論は?


950 名前:名前は開発中のものです。 [2009/04/02(木) 20:51:49 ID:Qv40Br8C]
ないよ。
田原総一郎は噛み付くだけで解決策なんて出さないよ。



951 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 21:19:46 ID:r/tHXhvd]
タスクシステムのメリットはもう説明できたの?

952 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 21:23:46 ID:8AeCm7l5]
>>951ログ読んでる?

953 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:13:03 ID:mhRpa/AL]
>>874>>880を読んで、あーなるほどこの人は正直な人だなぁと本当に思う
タスクシステムの実装上の不合理が、現実の開発プロセスの不合理の上で
成り立っているとこの人は説明しているんだ
こういうの見るとタスクシステムを攻撃する気なくすよね。あまりにも正直すぎて

本来なら是正すべき問題が何なのか分かっているけど立場ゆえにできないと。

叔父さん(オヤジの兄貴)が大手自動車会社の下請け部品工場やっていて
実家に遊びに来るたびにオヤジが愚痴を聞いていた
なーんにも分かってないクライアントのヒヨッコ担当者から超理不尽な協力とか努力
要求を付き付けられると本当に参ると。理に適った上申・具申をしても相手が
理解できないオツムの人だと全く意味がないと苦笑いしていた

>>874>>880は正直であるがゆえにタスクシステム擁護者から攻撃されたようだね
タスクシステムを擁護する人ってのは見栄っ張りが多いよね
不合理で悲惨な現実の中で仕方なく編み出された不合理な仕組みを正当化するには
不合理で悲惨な現実を曝け出すしかないというのに、それを嫌がるのだから呆れる
不合理な開発プロセスと無縁な恵まれた境遇の人間(趣味の人、学生の人)にとって
タスクシステムなんてものが実は全く無用の長物であることを勘付かれたくないのだろうか
目の前に高速道路が通ってるのに今更こんな草ボーボーの泥道を這いずり回らせよう
なんて趣味が悪いよね。スポ根大好きの昭和の人なのかしら


954 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:14:56 ID:yXIvxvr/]
>946
真のアホというのはID:EEKBitmgのように『誰かが答えを知っていて、それを自分に教えてくれる』と
マジで思ってるヤツのこと。

世の中には答えなんて無いもののほうが圧倒的に多いし、人から言われたことを検証するだけの力が
なければ教えてもらうことに何の意味もない。

そのことに気づかないのが真のアホ。

955 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:18:25 ID:mhRpa/AL]
生協の購買部で弾幕何とかという本を立ち読みした。

なーんか胡散臭い。バケットソートしてるだけの手作りコンテナを
回りくどく説明してる。ダミータスクとかアホじゃねーのと思った

ただの番兵じゃん。みたいな

956 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:21:39 ID:mhRpa/AL]
>>954
バカじゃん。個人的には全く説明してもらう必要性なんて皆無なんだよね
たかが実行待ちキューにアホみたいに独自のお名前付けて然もそれが
個性的な、ゲーム業界が編み出した秘術みたいに吹いて回ってるタスクバカが
ネタでやってるのか本気でやってるのが知りたいから説明を要求してるわけで


957 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:26:43 ID:yXIvxvr/]
>956
オマエにとって『タスクシステム』とやらがその程度にしか見えていないなら、そういうもんだと思っとけwww
ただ、その拙い理解で周りに吹聴してまわるとメチャクチャ恥ずかしいけどな。

学生さんらしいけど、『学ぶ』ってことを知らないで学生やってて面白いのか?

世の中には物事を上手く活用出来る人も、できない人もいる。

958 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:31:56 ID:mhRpa/AL]
タスクシステム(笑)なんて華麗に無視して颯爽と追い越していく後続は何としても
妨害し、これの足を引っ張り、繋ぎ止め、縛る。そのためにグダグダとエセ科学みたいな
胡散臭い話をし続けるタスクバカに何度も問いかけるよ

『何で何を作るお話なのか、話を絞れ』とずっと言ってるよね。にも関わらず、タスクバカは延々と逃げ続ける
適当でいいから仕様を出しなさいよ。既存の○○(ゲームタイトル)みたいなもの、とかでいいからさ。
開発環境とかターゲットを明らかにしなさいよ。本気で素人を説得する気なら、携帯機器とか
疎結合マルチコアの死にハードなんて引っ張り出すよりは、万人が触れられるもの、5万円以下で
自作できるPC(密結合マルチプロセッサ(マルチコア)な環境)を前提にお話でもしてみたら?

>>2である必要性が微塵も無いことが露見するのをあなた方は恐れているから無理だろうけどね
タスクバカは自分が作ってるものが一体何なのかを端的に【説明しない】あるいは【説明できない】
ふたを開けてみれば彼らがタスクシステムだという>>2は、実につまらない、既存の、既出の、
ありふれたものとして説明されるわけだが、彼らは然もそれが比類ない新規性にあふれたもの
であるかのように吹くし、何だかとても怪しげな、とてもセンスの悪いお名前を付ける
そうやって後続の初心者を煙に巻こうとしている

この手の臭い人間の戯言に惑わされる情報弱者にも聞いてみたいんだけどさ
f3a.sakura.ne.jp/radiocontroll/other/globalenergy/globalenergy01.html
こういう似非科学の似非理論を吠える詐欺会社にワクワクしちゃうのかな?
ちょっとでも物理が分かれば推力重量比1以上なら何でも空を飛べるって分かるよね?
これに太鼓判を押してるのが層化大学で講義をしてる胡散臭い弁護士ってのが凄いよね
カルトとエセ科学は仲良しなんだよ

『分かる人にしか分からない』だの『信じたがらない人には分からない』などの説明しかしない人は
エセ科学提唱者といわれても仕方がない

959 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:37:10 ID:yXIvxvr/]
>958
ホントにバカだなw

そういう似非科学にワクワクしちゃうのは、自分でものを考えることを知らない人間だろw
きちんとモノを考えられるやつは、「自分の作り方には『タスクシステム』は必要ない」とか
「『タスク』として動くものを統一的に扱えれば楽になる場面があるな」とか、利点欠点を
理解して使うか使わないかを自分で決められる。

自分でものを考えられないID:EEKBitmgのようなバカだけが、何時までたっても無用論
ばかり唱えてるんだよ。

選択できるやつは選択すればいい。バカはとっとと去れw

960 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:38:15 ID:mhRpa/AL]
GPUは疎結合だけど、タスクバカは固定機能パイプラインの描画にしか
使ってなさそうだし、ここでは横においるよ



961 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:48:31 ID:TJNy3fkt]
まぁまぁ、こんな所であまり熱くなっても滑稽に映るだけだぜ

962 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:51:32 ID:yXIvxvr/]
>960
> タスクバカは固定機能パイプラインの描画にしか
> 使ってなさそうだし

バカここに極まれり、って感じで素晴らしいねwww



963 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:52:52 ID:mhRpa/AL]
ID:yXIvxvr/さんは
俺みたいな糞ガキがタスクシステムのことをボコボコに貶すのが許せないんだろうね。
そんなに目障りなの?どうして?ずいぶん堪え性のないオジサンだね。何歳なの?

964 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 22:55:27 ID:mhRpa/AL]
>>962
面白いね。自分のことをタスクバカだと思わなければ否定も肯定もできないはずだよね?
俺は明らかに色分けしてるよ?
あなたは自分が『頭の悪いほうのタスクシステム擁護者』だと認めているの?正直な人だね

965 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:55:44 ID:yXIvxvr/]
自分はタスクなんか使わずに書いてるよwww
仕事で合わせないといけないときは、タスク使って書いてるよwww
必要に応じてな。

ID:EEKBitmgの学生さんは、センセーに言われたことは何も考えずに真実だと思っちゃう方なのかな???

966 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 22:57:01 ID:yXIvxvr/]
>964
自分が愚かだと知って、初めて分かることもあるんだよwww
若いと気づかないんだねぇwww

967 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:01:38 ID:yXIvxvr/]
>958
> タスクシステム(笑)なんて華麗に無視して颯爽と追い越していく後続は何としても
> 妨害し、これの足を引っ張り、繋ぎ止め、縛る。そのためにグダグダとエセ科学みたいな
> 胡散臭い話をし続けるタスクバカに何度も問いかけるよ
> 『何で何を作るお話なのか、話を絞れ』とずっと言ってるよね。にも関わらず、タスクバカは延々と逃げ続ける
> 適当でいいから仕様を出しなさいよ。既存の○○(ゲームタイトル)みたいなもの、とかでいいからさ。
> 開発環境とかターゲットを明らかにしなさいよ。本気で素人を説得する気なら、携帯機器とか
> 疎結合マルチコアの死にハードなんて引っ張り出すよりは、万人が触れられるもの、5万円以下で
> 自作できるPC(密結合マルチプロセッサ(マルチコア)な環境)を前提にお話でもしてみたら?
> >>2である必要性が微塵も無いことが露見するのをあなた方は恐れているから無理だろうけどね
> タスクバカは自分が作ってるものが一体何なのかを端的に【説明しない】あるいは【説明できない】
> ふたを開けてみれば彼らがタスクシステムだという>>2は、実につまらない、既存の、既出の、
> ありふれたものとして説明されるわけだが、彼らは然もそれが比類ない新規性にあふれたもの
> であるかのように吹くし、何だかとても怪しげな、とてもセンスの悪いお名前を付ける
> そうやって後続の初心者を煙に巻こうとしている
> この手の臭い人間の戯言に惑わされる情報弱者にも聞いてみたいんだけどさ
> f3a.sakura.ne.jp/radiocontroll/other/globalenergy/globalenergy01.html
> こういう似非科学の似非理論を吠える詐欺会社にワクワクしちゃうのかな?
> ちょっとでも物理が分かれば推力重量比1以上なら何でも空を飛べるって分かるよね?
> これに太鼓判を押してるのが層化大学で講義をしてる胡散臭い弁護士ってのが凄いよね
> カルトとエセ科学は仲良しなんだよ
> 『分かる人にしか分からない』だの『信じたがらない人には分からない』などの説明しかしない人は
> エセ科学提唱者といわれても仕方がない


968 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:03:04 ID:yXIvxvr/]
すまん、間違えたwww
>967は忘れてくれ。

ID:EEKBitmgよ、ホントにスマン。
他意はないんだ。ちょっと手違いでヤラカシタ。

969 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/02(木) 23:04:51 ID:mhRpa/AL]
>>965
なんだ

>自分はタスクなんか使わずに書いてるよwww
>仕事で合わせないといけないときは、タスク使って書いてるよwww

タスクってのはタスクシステムのこと?
要するに使いたくて使ってる人じゃないわけか
君との間には争点は見出せないから君はどうでもいいよ
噛み付いてほしい標的じゃないから、ヨシヨシイイコイイコ飴あげよ

あっち行ってなさい

970 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:10:41 ID:r/tHXhvd]
で?
タスクシステムのメリットはまだ説明できないの?



971 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:11:27 ID:QOxGW0vq]
ここまで煽りに反応する人久しぶりに見たわ
スレが恥ずかしい空気になっちゃったじゃない

972 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:14:00 ID:r/tHXhvd]
なんだかごちゃごちゃレスが長くウザくなってきたら

  「で?タスクシステムのメリットは説明できたの?」

この一言で元に戻す
これでこのスレは安定する

973 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:26:39 ID:8AeCm7l5]
>>972ログ読んでる?

974 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:33:15 ID:r/tHXhvd]
>>973
ログどころかずっといるっての
いままで一度もタスクシステムのメリットを説明できた奴はいない

タスクシステム(?)のソースに対して、タスクシステム使わないソースを上げてやったの俺だし

975 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:47:26 ID:8AeCm7l5]
・1フレームに1回実行すするための窓口提供

976 名前:名前は開発中のものです。 mailto:sage [2009/04/02(木) 23:49:17 ID:yXIvxvr/]
>969
> 君との間には争点は見出せないから君はどうでもいいよ
> 噛み付いてほしい標的じゃないから、ヨシヨシイイコイイコ飴あげよ

ハイハイ、学生さんは教わった知識をひけらかしたいだけなんですねwww

>974
理解力の無いヤツにナニを言っても無駄だろwww

977 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 00:07:51 ID:OC5t9pnG]
俺はタスクシステム好きだぜ。
面白いじゃん、関数ポインタひとつで、単なるメモリブロックに
「クラス」と「状態」の両方の意味を与えてしまうあたりが。
状態に関しては、今ならStateパターンとかStrategyパターンとかって話に
なるんだろうが、昔はそんなの無かったしな。
関数ポインタで状態を表せることはタスクシステムの重要なメリットの一つだと
思ってるんで、>>2の3番目のリンクのやつは俺的にはタスクシステムとしては
激しくイマイチだなぁ感じる。

978 名前:並列さん ◆dPfetnROQg mailto:sage [2009/04/03(金) 00:15:00 ID:IkOXRAA5]
>>974
> いままで一度もタスクシステムのメリットを説明できた奴はいない

>103で十分だと思うけどな。


979 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 00:37:37 ID:faWc9wkq]
>>972
とりあえずお約束の >264
この一言で再び荒れるw

980 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 00:51:02 ID:i6WUMFvg]
>>978
それだとループはずしたのと行数がちょっと少なくなる程度だけど
なにか思想的なことでメリットを主張する心算だったんじゃないの?w



981 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/03(金) 01:30:12 ID:hG/oV8+g]
>>975
このスレを窓口で検索かけると分かるが、窓口云々と言ってる人は
『これは周期タスクを突っ込んだレディキューですよね』と言ってるわけ

タスクシステムなんて超胡散臭い言葉を全く知らなくても使わなくても全く問題ないわけ
別の言い方をすれば、OSやらMONITORやらの実行待ちキューを何だか訳の分からない
独自用語を交えながらタラタラともったいぶって語るのがタスクバカってことなわけ
既存の何かとの対比をできないのか、したがらないのかよく分からないが
前者ならばただの無知(タスクバカ)であるし、後者は科学を否定するカルト野郎ないし詐欺師だ

タスクバカは知ろうとしないよね。むしろ知ることを恐れる。まるで、自分が何かの先駆者であるか
のような、誰も知らない宝石の所有者であるかのような、心地よい気分(錯覚)に浸り続けたいがために
その酔いを醒ましてしまうような、冷や水ぶっ掛けられるような既出情報には目耳を塞ぐ奇異な行動を取る。
不当な搾取を受け続けても偽本尊の写しを有難がってナンミョーホーレンゲーとブツブツ念仏を唱え続ける
盲目のカルト信者の行動が理解できないのと同じで、タスクバカの行動原理というのは全く理解できない

人類が営々と積み上げてきた知の蓄積を無視し続けるというのは科学の否定に等しい。カルト万歳

982 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 01:48:18 ID:sMcFBzq3]
ここで言われているタスクシステムって、ごく簡単に言えば、ゲーム中に何かを登場させたいときに、
そのなにかのインスタンスを作成してコンテナに登録すれば、後のことは気にしなくても
そのインスタンスがなくなるまで面倒見てくれるシステムのことじゃないの?

983 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 01:54:30 ID:jmB/LurD]
過去ログ見ればタスクのメリットと使わない場合のデメリット、いくらでも見つかるけど
見たいものしか見れない人には無意味だね…

d.hatena.ne.jp/shi3z/20090304/1236180285

あたりがアンチタスクの本質を突いてるね。
「メリット説明して」って聞くだけで理解できると思ってるあたりが。

984 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 02:12:41 ID:toGlOB+O]
記述の手間を省くためのものだと、このスレでようやくわかった。

プロジェクトをまたぐ場合は「タスクシステム」をコピペしてカスタマイズするのが前提みたいだし。

モジュールの独立性や最小の依存関係なんかを重視する人には受け入れられないだろうね。
大規模になるほど問題が起こるというのも >859 に挙げられた点から考えれば自然なこと。

985 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 02:44:45 ID:FLft9qyr]
「タスクシステム」って名前を使うと荒れるからちゃんと「>>2」って呼ぼうぜ

986 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 03:12:29 ID:cWMM7gIH]
そだな
よし、まずは>>1を読んでから語ろうか

987 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/03(金) 06:07:32 ID:hG/oV8+g]
>>983
清水さんて誰?やねうらおさんみたいなスーパーハッカーオジサンなのかな。よく知らないけど
口先だけのハッタリ野郎であるタスクバカの本質をよく突いてる文章だと思う。厨房だからすごく分かる。
>>2とか、訳の分からないCodeZineの情報を見て感動に震えてタスクシステムすごいすごいって思い込んで
疑うことも知らずに天下り式に猿真似てるだけで偉くなった気分になれるタスクバカって羨ましいよね
彼らは頭の中には糞でもつまってるのかしら。とても真似できない。すごいすごい

通常弾みたいな小さなタスクを手作りの線形リストに入れてなめるのは何故?バカだからだろうね
何でもチマチマとサブルーチンアドレス経由で処理を呼び出すのは何故?動的バカだからだろうね
実測したことないと分からないだろうなぁ。こういう言われ方されると不愉快だろうなぁ

タスクバカは測定しようとしないよね。むしろ測定することを恐れるよね。ベンチ結果が怖いんだろうね
関数ポインタを知っただけで嬉しくなっちゃって使いどころも分からず至るところで状態変数代わりに
使っちゃってるんだろうね。速いと信じてさ。無駄にあちこちにリフレクティブな仕掛けを入れ込みまくって
糞重い糞コードいっちょうあがりっと

988 名前:ID:EEKBitmg ◆HSP4mee/SU mailto:sage [2009/04/03(金) 06:09:04 ID:hG/oV8+g]
メモリコンパクションが必要とか吠える奴が混じってるのは何故?バカだからだろうね
大してサイズの変わらないチマチマした短命オブジェクトを生成するために腐れ可変長アロケータを
わざわざ自作して使うから不定期にメモリコンパクションなんて必要になるだけなのにね
固定長メモリプールを使うとか、ヒープから確保した後に使用済みになったオブジェクトをプールして
使いまわすとかすればいいだけなのにさ。Linuxのスラブアロケータの真似でもすればいいのにさ。
チマチマした短命オブジェクトのタイムクリティカルな処理をするのに不定期なメモリコンパクションを
かけるなんてイカレてる。こんなもんがゲームプログラムに必要だなんて欺瞞情報の最たるものだ。
根っこから設計が腐ってんのにリニアアクセスによる僅かな高速化に期待しようだとかバカにも程がある

パーティクルはタスクにしないとか言ってる奴が混じってるのは何故?バカだからだろうね
どう組もうが何らかの時間ステップでパーティクル一粒一粒の更新処理はしなくちゃいけないわけで
つまり一粒一粒の処理ステップ(タスク)というのは必ず存在するわけ。なのにタスクは使わないんだとさ。
タスクバカは独善的な解釈を振り回す視野の狭い連中だからどうせ配列に入ってるものはタスクじゃねーだとか
連結リストに登録されない処理単位はタスクとは呼べない!だとか訳の分からないヘンテコ理論が
頭の中にウンコみたいにこびり付いてんだろうね

実行待ちキューのコンテナは連結リストだけだと思い込んでるようなこの手のバカが信奉するタスクシステム
ってのはちょっとした脅威。もう存在自体が毒素。この世から消えてなくなったほうが世のためだと厨房は思う

989 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 07:15:49 ID:4ENq10VK]
>988
> 実行待ちキューのコンテナは連結リストだけだと思い込んでるようなこの手のバカが信奉するタスクシステム
> ってのはちょっとした脅威。もう存在自体が毒素。

バカはどうでもいいけど、この点だけは賛同する。なんでリストに突っ込もうとするんだろうね。問題を
解決するのに最適だとおもわれるコレクションはリストじゃないだろうに。

しかし>987,988は全然モノを理解して無いな。>2とかcodezineとか松浦本とか見て全部判った気に
なっちゃってるオバカが、間違った方向に向かって有頂天になってるだけだ。

990 名前:名前は開発中のものです。 [2009/04/03(金) 07:49:04 ID:VHS30Mzg]
よし、じゃあ、まず、タスクシステムのメリットをあげてみようか?



991 名前:名前は開発中のものです。 [2009/04/03(金) 07:55:33 ID:VHS30Mzg]
それができたら今度はタスクシステムのメリットをあげて
最後に時間があったらタスクシステムのメリットもあげようか

992 名前:名前は開発中のものです。 [2009/04/03(金) 08:52:33 ID:cHfo63oC]
これ、もっとクエン酸入れたらどうっすか?

993 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 09:56:59 ID:FLft9qyr]
ところで>>987は実測したことあるんだろうか

994 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 10:32:10 ID:gSS0RY6A]
結論ありきの話しかできないID:EEKBitmgって、
一部の反戦平和団体と同じ臭いがプンプンしてるな。
自分の「正義」にたてつくヤツが許せないんだろうな。

ID:EEKBitmgは自分で自分のことをアホの子と言ってるが、
別にアホの子ってわけじゃないんだよな。
あえて言うならダメな子だな。あるいは残念な子か。

995 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 11:27:40 ID:aSgRO8Wl]
次スレ
pc11.2ch.net/test/read.cgi/gamedev/1238725539/l50

996 名前:名前は開発中のものです。 [2009/04/03(金) 14:57:30 ID:OlKoVEZp]
まだ続くのか。

997 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 16:41:27 ID:/shhFFlc]
そして過去ログ読めなくて、また同じ議論が続く。

998 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 17:26:47 ID:aSgRO8Wl]
2ちゃんねるって、そんなとこだろ。
文句があるなら過去ログ倉庫作ってくれ。

俺は過去ログとっといてないし、●も持ってないから協力できんが。

999 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 19:38:34 ID:O7VpCXAX]
Cやアセンブラ時代のテクにC++時代のお手軽コンテナクラスを使った実装を出して、タスクシステムなんて〜って言うのはズレてると思うよ

1000 名前:名前は開発中のものです。 mailto:sage [2009/04/03(金) 19:41:58 ID:R7m6K7QE]
     ∧_∧     ∧_∧
    ( ・ω・)=つ≡つ);:)ω・).,,';
    (っ ≡つ=つ ⊂  ⊂)  
   __ (⌒(⌒ )ババババ(⌒(⌒ )
 /\ ̄ ̄し' ̄ ̄ ̄ ̄ ̄ ̄し' ̄ ̄ ̄\
  ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄| | ̄ ̄ ̄ ̄ ̄
       / \      / \



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<382KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef