タスクシステム総合スレ part6
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/04/03(金) 11:25:39ID:aSgRO8Wlpart5 http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/
part4 http://pc11.2ch.net/test/read.cgi/gamedev/1233459490/
part3 http://pc11.2ch.net/test/read.cgi/gamedev/1226199100/
part2 http://pc11.2ch.net/test/read.cgi/gamedev/1196711513/
part1 http://pc11.2ch.net/test/read.cgi/gamedev/1173708588/
・タスクと呼ばれる実装は、非常に多岐に渡ります
古典タスクシステムについての話題は「>>2」と明示してください
そうでない場合はカスタム版であることを明示してください
・人を憎んで言語を憎まず
0002名前は開発中のものです。
2009/04/03(金) 11:26:57ID:aSgRO8WlWhite Paper - Programming
http://homepage3.nifty.com/moha/programming.html
タスクシステム
http://www5f.biglobe.ne.jp/~kenmo/program/task/task.html
CodeZine:本格的なシューティングゲームを実現するタスクシステム(タスクシステム,シューティング,ゲーム)
http://codezine.jp/a/article.aspx?aid=297
Logician Lord … 【コンピュータゲームのからくり】
※ウェブアーカイブのキャッシュ
http://web.archive.org/web/20041009222313/www.hh.iij4u.or.jp/~peto/Games/games_top.html
0003名前は開発中のものです。
2009/04/03(金) 21:08:48ID:4ENq10VK0004\_____________/
2009/04/04(土) 01:15:38ID:Xw/qJicYビシッ / ̄ ̄ ̄ ̄\
/ ̄\( 人____)
, ┤ ト|ミ/ ー◎-◎-)
| \_/ ヽ (_ _) )
| __( ̄ |∴ノ 3 ノ
| __)_ノ ヽ ノ
ヽ___) ノ )) ヽ.
0005名前は開発中のものです。
2009/04/04(土) 01:36:51ID:DtrzgWRJ(,,゚Д゚)< で?タスクシステムのメリットは説明できたの?ん?
0006名前は開発中のものです。
2009/04/04(土) 13:33:22ID:2djxF09a(,,゚Д゚)< で?『いわゆるタスクシステム』の仕組みは理解できたの?ん?
0007510
2009/04/04(土) 16:56:02ID:MhD49aWD前スレのID:EEKBitmg ◆HSP4mee/SU祭りに参加できなかった。
仕事していると辛いね。
0008名前は開発中のものです。
2009/04/04(土) 18:12:06ID:DtrzgWRJそれはすでに>>2にある
0009名前は開発中のものです。
2009/04/04(土) 18:50:27ID:CWfOh7lLこれを要求していると読んだ。
http://pc11.2ch.net/test/read.cgi/gamedev/1234977661/264
> タスクと書くだけで君のように異常な反応を示す人を釣ることができて
> 生産性を幾分かでも削ることができる。ライバルからすればいい武器だな。
> そのライバルは他の国や民族かもしれん。
>
> こんなスレを見てしまった段階で踊る阿呆に見る阿呆だが。
0010名前は開発中のものです。
2009/04/04(土) 20:01:28ID:9125l3rK一括解放するタイミングは存在せず、仕様切りなおしもできないとして、
ID:EEKBitmgは使用期間不定の大量のサイズ不定テクスチャを
コンパクションを使わずにどう管理する?
普通にやると、だんだんメモリがフラグメントしてきて
最後にはメモリに乗るはずのテクスチャが乗らなくなるよな
俺もコンパクションは嫌いだしムダに複雑になるだけで費用対効果が薄いと思うが
仕様によっては必要悪だと思うんだが・・・別の解決策があるのなら知りたいマジで
0011名前は開発中のものです。
2009/04/04(土) 20:16:31ID:MhD49aWD0012名前は開発中のものです。
2009/04/04(土) 21:27:31ID:2djxF09aそういう部分を気にするのはR&D部署だから、開発のウチらにはカンケー無い。
0013名前は開発中のものです。
2009/04/04(土) 22:06:58ID:MhD49aWD> 一括解放するタイミングは存在せず、仕様切りなおしもできない
するな。
0014名前は開発中のものです。
2009/04/04(土) 22:21:25ID:9125l3rK偉そうに回答してくれんのは別にいいけど、せめて「コンパクション要・不要」の立場を明確にしてから言ってくれ
0015名前は開発中のものです。
2009/04/04(土) 22:41:09ID:DtrzgWRJその話とタスクシステムはどう結びつくの?
スレ違いじゃない?
もちろんタスクシステムのメリットとの話ともリンクしてるんだろうな?
0016名前は開発中のものです。
2009/04/04(土) 23:57:30ID:MhD49aWD0017名前は開発中のものです。
2009/04/05(日) 01:47:17ID:A6XSNxaWR&Dがあるような会社はタスクシステムも気にする必要無いんじゃね?
0018並列さん ◆dPfetnROQg
2009/04/05(日) 03:23:57ID:KXq+7Jyb俺は14ではないが、メモリのコンパクションを行なうには、それぞれのオブジェクトに対するstd::listのようなものが
必要になるので、(典型的な)タスクシステムに搭載されているstd::listのようなものをそのまま流用すれば一石二鳥だから、
タスクシステムはメモリのコンパクションまで行なうように拡張しておけば、タスクシステムのフレームワークとしての
利用価値がさらにあがるという風にタスクシステムとメモリのコンパクションとは密接に関係している。
まあ、このスレのアンチタスク派は、まともな規模のゲームプログラムなんて作ったことなさそうだから、
メモリのコンパクションなんてやる必要性すら理解してないんだろうけども。
0019名前は開発中のものです。
2009/04/05(日) 04:03:20ID:SofMJMSf頭おかしいんじゃない?大丈夫?
0020名前は開発中のものです。
2009/04/05(日) 04:14:18ID:XP6NPTaD馬鹿でかい連続領域を確保するものと、パーティクルみたいに小さい固定領域を大量に確保するもの
だけを別扱いに管理する、ぐらいでやりくりできてたし。
そんなの必要になるのサーバー側とかだけじゃない?
0021名前は開発中のものです。
2009/04/05(日) 04:43:57ID:SofMJMSf0022並列さん ◆dPfetnROQg
2009/04/05(日) 04:57:03ID:KXq+7Jyb> なら、テクスチャや音声や、その他mallocやnewするもの全部をタスクとして実装するの?
そんなことは誰も言ってない。
そもそもテクスチャやサウンドのような巨大なresourceにとって必要なのはメモリのコンパクションではなく、
(cacheのような仕組みを提供する)マネージメントだろ。
それはcacheを実現するためのシステムを別で用意する。
それ以外でmallocやnewを使うかだが、ゲームによっては、タスクオブジェクトとテクスチャ/サウンド等の
巨大リソース以外ではmalloc/newでのメモリ確保は不要なことが多いので、そういう作りをここでは俺は
想定している。
0023並列さん ◆dPfetnROQg
2009/04/05(日) 04:59:24ID:KXq+7Jyb> 16bit機から現行機までコンシューマ機で動的にメモリコンパクションしてるのなんて見たこと無いな。
その"現行機"にXNA環境は含まれてないの?
0024名前は開発中のものです。
2009/04/05(日) 05:02:06ID:XP6NPTaDそしてサーバー側はメーカーによるけど意外とチープな民生用32bit Linuxマシンを使ってたり
するので4Gの壁でMMUとは別の理由でメモリコンパクションが必要になったり。
クライアント側はメーカーのエージングチェック通る時間動けばいいけど、サーバー側は連続稼働時間
長いからねぇ
>>23
>その"現行機"にXNA環境は含まれてないの?
含まれてます。がネイティブじゃなくXNAで動いてるゲームはまだサンプル以外見たことが無いな。
0025名前は開発中のものです。
2009/04/05(日) 05:08:36ID:SofMJMSfでは、タスクにだけメモリコンパクションかけるつもり?意味無くない?
どっちにしろ頭沸いてるとしか思えないのだが。
0026並列さん ◆dPfetnROQg
2009/04/05(日) 05:26:56ID:KXq+7Jyb> では、タスクにだけメモリコンパクションかけるつもり?意味無くない?
メモリのコンパクションを行なうことで、CPU cacheに載りやすくなるし、
タスクに対してtraverseするときになるべくメモリをリニアにアクセスできるようになっていれば
プリフェッチした分が無駄にならないから、そこでも効果があがる。
計測してみればすぐにわかると思うが。
0027名前は開発中のものです。
2009/04/05(日) 05:31:54ID:w7j54ekv同意
もうなにいってるのかさっぱりわからない
っていうか馬鹿黙れよって感じ
0028名前は開発中のものです。
2009/04/05(日) 05:41:29ID:SofMJMSf0029並列さん ◆dPfetnROQg
2009/04/05(日) 05:46:00ID:KXq+7Jyb馬鹿はお前
>>28
> 現実問題として、リニアにアクセスなんて出来ない
出来る。
典型的なタスクシステムならタスクプライオリティを持っているので、
コンパクションのときにメモリ上でタスクプライオリティ順に並ぶように配置しなおしてやれば
タスクに対してtraverseする効率があがる。
0030名前は開発中のものです。
2009/04/05(日) 05:50:57ID:SofMJMSfそんなところをちまちま最適化しても意味無いって。
どうせ他のところが重いから。
0031名前は開発中のものです。
2009/04/05(日) 06:04:17ID:SofMJMSfやってる奴あっても、メモリ制限が厳しいから仕方なく導入しているってだけで、
速度向上を狙ったものは聞いたことが無い。
0032並列さん ◆dPfetnROQg
2009/04/05(日) 06:14:40ID:KXq+7Jyb> そんなところをちまちま最適化しても意味無いって。
そんなことないよ。
最近のプロセッサになればなるほどDRAMが(CPUに較べて)相対的に遅く、
扱うオブジェクトの数が多いとプリフェッチ出来ているのと出来てないのとでは大違いなんだが。
「他のタスクにアクセスする」部分にしても、シューティングで自機と弾との衝突判定をするなら
弾オブジェクトはメモリ上でリニアに並んでいるほうがアクセス効率が良いのは自明。
0033並列さん ◆dPfetnROQg
2009/04/05(日) 06:19:31ID:KXq+7Jyb> やってる奴あっても、メモリ制限が厳しいから仕方なく導入しているってだけで、
あんた何もわかってないね。
近代的な言語が、GCを搭載するのはメモリ制限を回避するためだけかい?違うだろ。
0034名前は開発中のものです。
2009/04/05(日) 06:35:18ID:SofMJMSfタスクシステムのタスクのコンパクションによるキャッシュヒット率の向上が有効になるのは、
小さなタスクが何万も有る場合だが、
タスクシステムの特性から、updateが仮想関数になる以上、
やってる事がチグハグなんだよ。
ストーブつけながらクーラーつけてるみたいなものだな。
0035名前は開発中のものです。
2009/04/05(日) 06:36:15ID:XP6NPTaD0036並列さん ◆dPfetnROQg
2009/04/05(日) 06:59:38ID:KXq+7Jyb> タスクシステムの特性から、updateが仮想関数になる以上、
そうとは限らない。
>>35
ずれてない。あんたもGCが何のためにあるのか理解してなさそう。
0037名前は開発中のものです。
2009/04/05(日) 09:37:40ID:w7j54ekvあんた自分がなにやってるかさっぱりわかってないじゃん
0038名前は開発中のものです。
2009/04/05(日) 11:11:35ID:3oSTBu7p・・・ハァ????
0039名前は開発中のものです。
2009/04/05(日) 14:46:01ID:ZnQmmsrk0040名前は開発中のものです。
2009/04/05(日) 15:41:58ID:MilQiQIm相変わらずタスクじゃない話題で賑わっているね。
メモリコンパクション実装する前に他にやることあるんじゃねぇの〜
0041並列さん ◆dPfetnROQg
2009/04/05(日) 18:18:06ID:KXq+7Jybあんたがわかってないだけ。内容についてこれないなら、黙れ。
>>39
そんなへたれなコードはさすがに書かない。
template typename<T> update(T& actor);
こういうtemplateを用意して、これが呼び出される。(以下略)
>>40
> メモリコンパクション実装する前に他にやることあるんじゃねぇの〜
他にやることはやってあるという前提で話している。
また>18で書いたようにこれはタスクと関係ない話題ではない。
■ このスレッドは過去ログ倉庫に格納されています