タスクシステム総合スレ part9
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。
2009/12/13(日) 18:11:06ID:ESt66YNzpart8 http://pc11.2ch.net/test/read.cgi/gamedev/1250678891/
part7 http://pc11.2ch.net/test/read.cgi/gamedev/1241670786/
part6 http://pc11.2ch.net/test/read.cgi/gamedev/1238725539/
part5 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」と明示してください
そうでない場合はカスタム版であることを明示してください
・人を憎んで言語を憎まず
0877名前は開発中のものです。
2010/02/19(金) 01:58:29ID:vNuZTyH7newを使わなければいいんじゃね?
0878名前は開発中のものです。
2010/02/19(金) 02:15:34ID:LbHH2H9z0879名前は開発中のものです。
2010/02/19(金) 08:16:01ID:lTdPeAnA0880名前は開発中のものです。
2010/02/19(金) 14:07:21ID:+Pv/DaT4無駄にトリッキーな処理書かれると忘れた頃に見たときめんどくさい
0881名前は開発中のものです。
2010/02/19(金) 22:22:12ID:ahRx9x2Kまたハードを使い切ろうとするとデータサイズは大きくなる。
可読性重視は同意だが無制限なコーディングはバグを誘発する。
0882名前は開発中のものです。
2010/02/20(土) 01:08:54ID:pCc18cCP何が言いたいのかわからん。たとえば >864 の処理がどう書いてあれば満足なのさ?
0883名前は開発中のものです。
2010/02/20(土) 01:45:22ID:mKYEBXBmハード能力上がったからそれに依存して適当な設計で良いと
言った訳でもなくて、速度・効率重視の部分とそれ以外で
メリハリを付けたいなと
あと可読性重視なら適切なコーディング規約で
細部に至るまで事細かくルール化されてるはずで
無制限なコーディングにはならないんじゃないかな
0884名前は開発中のものです。
2010/02/20(土) 02:06:55ID:EdhnZX120885名前は開発中のものです。
2010/02/20(土) 02:29:36ID:5Did0Msj複数人開発でのソースの読みやすさが担保されるのはコーディング規約だけだ。
あと、1年後の自分にもやさしい。
0886名前は開発中のものです。
2010/02/20(土) 03:04:34ID:7pEDaLzT型とか先頭につけるのまったく意味ねぇ
0887名前は開発中のものです。
2010/02/20(土) 04:07:10ID:5Did0Msj会社の信じるコーディング規約じゃねぇ
お前の信じるコーディング規約を信じろ
0888名前は開発中のものです。
2010/02/20(土) 06:02:00ID:N/T1Cm6Q0889名前は開発中のものです。
2010/02/20(土) 09:59:01ID:U8OIvjqsタスクシステム=コーディング規約の一種
0890名前は開発中のものです。
2010/02/20(土) 11:22:37ID:HOq51Lypで、おまえの規約はどういう規約なの
0891864
2010/02/20(土) 16:17:39ID:sG4G6HXV言ったじゃん、カスタムアロケーターぐらい作れって。
my_vector< shot * > shots( 100 ); //上限100個
my_pool< shot > shots_pool( 100 );
shots.push_back( new( shots_pool.alloc() ) shot( player.x, player.y, enemies[i].x, enemies[i].y ) );
こうなってりゃ満足なわけ?好きにすりゃいいじゃん。
本当に、どうでもいいことばっか着目するよな。
俺はさ、タスクシステム使わないでゲーム作るとどうなるのか聞かれたから、
1) 用途や型ごとにコンテナにオブジェクトを突っ込む
2) メインループから各コンテナ内のオブジェクトを読み出して処理する
をコードで書いたまでで、
アロケーターやプールやコンテナは環境にあったもの用意すりゃいいことぐらい分かるだろ。
0892名前は開発中のものです。
2010/02/20(土) 16:36:36ID:I8cCNujgそれタスクシステムじゃね?
0893名前は開発中のものです。
2010/02/20(土) 16:40:56ID:wqzkd0Z7で、タスクシステム使わない方法があまりに無頓着なコードだったら一言言いたくなるのもわかる。
アロケータ書いても問題が解決しないのならなおさら。
0894名前は開発中のものです。
2010/02/20(土) 16:49:27ID:sG4G6HXV初耳だが。
>>2で言うTCBって固定長なんだろ?分断化しないじゃん。
まー、891とタスクシステムの違いも分からんやつが要るようなスレじゃ何言っても馬の耳に念仏だが。
0895名前は開発中のものです。
2010/02/20(土) 16:56:25ID:I8cCNujgnewするクラスの大きさがまちまちだからメモリ分断化対策が必要ってことだよね?
0896名前は開発中のものです。
2010/02/20(土) 17:02:44ID:sG4G6HXVメモリ断片化対策はアロケーターの仕事だろ。タスクシステムは関係ねぇ。
タスクを基底に持つクラスをnewしたら断片化するってんなら、
class task{};
class my_task: public task{};
new task() ←断片化
そりゃお前、newがしょぼいだけの話じゃねーか。アロケーターがしょぼいだけじゃねーか。
タスクシステム関係ねぇ。
0897名前は開発中のものです。
2010/02/20(土) 17:14:57ID:wE/EVsGpタスクシステム使わずとも問題になると思うのはもしかして俺だけ?
0898名前は開発中のものです。
2010/02/20(土) 17:49:56ID:wqzkd0Z7いや正しい。
しかし通常のタスクシステムは生成消滅タイミングが自由なのでさらに混乱することが多い。
0899名前は開発中のものです。
2010/02/20(土) 17:52:30ID:HOq51Lypウンコの塊にタスクシステムって名前付けたお子ちゃまがいるようだな
893君はさ、「僕ちんの自慢のタスクシステム」の抱える固有の不具合を紹介
するのは別にいいんだが、ちゃんと「僕チンの考えたタスクシステム」の話って
ことを断ったほうがいいと思うんだ
0900名前は開発中のものです。
2010/02/20(土) 17:53:52ID:sG4G6HXVそれも、タスクシステム使わずとも問題になるな。
0901名前は開発中のものです。
2010/02/20(土) 18:21:12ID:wqzkd0Z7いやわかってますよ。まずこれが出来ない奴のほうが多い。
でそれができないままタスクシステム導入してこれまたひどいことになる。
ちなみにこれと同様な現象としてSTL、俺様テンプレートもある。
0902名前は開発中のものです。
2010/02/20(土) 19:07:33ID:gmYFanrZ要出典
0903名前は開発中のものです。
2010/02/20(土) 19:21:22ID:Eoe7/vmk0904名前は開発中のものです。
2010/02/20(土) 19:37:31ID:HOq51Lypえっ
0905名前は開発中のものです。
2010/02/20(土) 20:48:39ID:laHALteFみたいなのが俺様のはタスクシステムじゃねー
とか思ってたからこのスレがあれてただけだったという訳かw
すべてが氷解した
0906名前は開発中のものです。
2010/02/20(土) 23:26:48ID:sG4G6HXVコンテナにオブジェクトつっこんだらタスクシステムなら、
そりゃもう、何でもタスクシステムじゃん。
いまどきのプログラムなら、コンテナや配列の一つや二つは使うもんだろ。
タスク、仕事、つまり制御に関して何らかの仕組みが提供されないことには、
タスクシステムとは言えんよ。
0907名前は開発中のものです。
2010/02/21(日) 00:44:10ID:8GNvhcuQ0908名前は開発中のものです。
2010/02/21(日) 01:08:28ID:p7hH+i8Zなんでもかんでもタスクにするわけじゃないでしょ
0909名前は開発中のものです。
2010/02/21(日) 02:35:59ID:n5tkGGLA0910名前は開発中のものです。
2010/02/21(日) 03:22:11ID:KdEz6TZb単にデータをそう言う風に管理してるってっだけ。
2)処理とワーク領域のセットのリストを逐次実行するのがタスクシステム。
3)ごっちゃになってるのが、糞タスクシステム。通称CodeZine。具現化された糞。
3)が糞というのはコンセンサスの得られるところ。もはや肩を持つものは居ない。
若気の至りというかなんというか、分別がついていないころは、そういうこともしでかすだろう。
生暖かい目で見守ってあげよう。
2)が必要かどうかは状況による。処理順番の動的変更が出来ることがメリット。
マルチコアの普及に従い、脚光を浴びる事に成るかもしれない。
しかし、出来れば使いたくない、というのがプログラマの本音だろう。
1)もタスクシステムの範疇だと考える奴も居る。頭おかしい。
ミカンを果物で実装したために、リンゴの呼び名がミカンになっちゃった人たち。
下手なアップキャストをしたためにダウンキャストで失敗している。
自分の脳内までごった煮リスト状態なのだろうか。
おそらく、3)に1)が含まれているので、そういう勘違いをしてしまったのだろうが、
タスクシステムの本質が2)であることを、良く考えて欲しい。
0911名前は開発中のものです。
2010/02/21(日) 04:33:24ID:8GNvhcuQタスクシステムはごった煮リストじゃないって主張してるの?
0912名前は開発中のものです。
2010/02/21(日) 10:19:21ID:w53qIXyc0913名前は開発中のものです。
2010/02/21(日) 10:42:00ID:n5tkGGLAその背景にあるのは、処理は1本のスレッド上でのみ行われるってことだな。
もしくは、マルチスレッドの各スレッド間同期タイミングをチャート引いて管理出来るようにするかんじ?
0914名前は開発中のものです。
2010/02/21(日) 11:24:53ID:quMpQBzl勝手にタスクシステムを俺解釈して
勝手に脱タスクシステム叫んでるw
0915名前は開発中のものです。
2010/02/21(日) 11:49:33ID:A7aqaieWその記事が間違っているというならどこが違うか指摘してから議論してくれ。
0916名前は開発中のものです。
2010/02/21(日) 15:44:30ID:quMpQBzl0917名前は開発中のものです。
2010/02/21(日) 16:11:48ID:VDZtRAQeもっとちゃんとしたサイト載せろよ
0918名前は開発中のものです。
2010/02/21(日) 16:20:47ID:KdEz6TZbだいたい大昔のアセンブリ時代の化石か、ごった煮リストかのどっちか。
0919名前は開発中のものです。
2010/02/21(日) 16:32:24ID:M35hw2mK0920名前は開発中のものです。
2010/02/21(日) 16:43:43ID:KdEz6TZb0921名前は開発中のものです。
2010/02/21(日) 16:46:27ID:iijEHPG4このスレを見せたらどんな反応するか見てみたい
いろんな意味で
英語圏のフォーラムじゃ水掛け論みたいな内容で荒れてるの
あまり見ないから呆れられてしまうかも知れんが…
0922名前は開発中のものです。
2010/02/21(日) 17:19:28ID:A7aqaieW知ってるなら貼ればいいだけジャン。
>>2は違う。>>2と違うコード書くと「それもタスクシステム」
あげくに自分はコードもサイトも示さずに「もっとちゃんとしたサイト載せろよ」
まさに>>3だな。
0923名前は開発中のものです。
2010/02/21(日) 17:30:13ID:8GNvhcuQいや、海外にも仕立て屋は間違いなくいる
C++なんて流行るのもその象徴
最近、俺はオブジェクト指向なんてのも怪しく感じるようになってきた
なんも生産性を上げてねぇよコレ
ま、わざわざ職場のルール乱してまで主張しようとは思わないから
こんなところでこっそり言うが
0924名前は開発中のものです。
2010/02/21(日) 17:49:12ID:A7aqaieW議論のベースが整いやすい。wikipediaの項目くらいはあるし。
歴史的にも構造化など抽象化を推し進めるなかでてきたし。
少なくともカプセル化・継承・多態性は使い方によってはメリットがある。
ただとくにC++はこれらを実現する、またはついでに追加した機能が何でもありになっていて
これ以上のデメリットを引き起こすことがかなりある。
とくに組込み系ではEffectiveC++みたいなのだけでは問題が解決しないが
最近のゲーム屋は昔ながらの技術を再検討するより本のうわべをそのまま使うことが多くて・・・
CodeZineのは昔ながらの技術を謎のままC++ととりあえずミックスしてしまったものだけど。
0925名前は開発中のものです。
2010/02/21(日) 18:13:34ID:qS4VXyL2海外はどうなってるのか知らんが
あとごった煮リストって何をもってごった煮と言っているのか
0926名前は開発中のものです。
2010/02/21(日) 20:51:04ID:yoBS5Oyg>タスクシステムを造語した外人エンジニアに
意味が分からんのだが。。。
0927名前は開発中のものです。
2010/02/21(日) 21:23:03ID:KdEz6TZbデータ構造に着目して考えるならカプセル化などがあって便利なものだから、
データ構造を実装するの関してはどんどん使えばよいと思うよ。
実際STLの中でもvectorやlistが飛びぬけて使いやすいし。
ただ、制御構造や処理との相性は最悪だから、
そこにまで無理にオブジェクト指向を適応しようとしだすと、
とんでもない事になりがち。(仮想関数を初めとして、オペレーターのオーバーロード/ライド)
標準入出力なんてマジで糞いしな。ありゃ一体なんだ。printfの方が随分使いやすい。
「プログラムの本体は制御構造なんだから、データ構造になんか時間かけてらんねぇ。
データ構造はオブジェクト指向でさくっとやるか。」
程度の感覚で良いかと。
0928名前は開発中のものです。
2010/02/21(日) 21:35:24ID:yoBS5Oygこれまでのアンチの基本的傾向として、ゲーム作れない口先だけのお花畑脳童貞小僧が
実験も検証もせず学校で教わった知識だけで知ったような口利いては即バレして恥かく
というお約束パターンを繰り返す、という情けないものだったわけだが、最近のアンチは
やや持ち直しており若干の進歩が見られる。油断してはいけない
0929名前は開発中のものです。
2010/02/21(日) 21:41:10ID:A7aqaieW0930名前は開発中のものです。
2010/02/21(日) 21:50:36ID:yoBS5Oyg>>910は厄介な子だね。Codezineみたいな噛み付きやすいところに
噛み付いていてくれれば話は楽なのに
0931名前は開発中のものです。
2010/02/21(日) 21:55:56ID:A7aqaieW>>3そのものだ
0932名前は開発中のものです。
2010/02/21(日) 22:16:57ID:KdEz6TZb0933名前は開発中のものです。
2010/02/21(日) 23:49:19ID:yoBS5Oygところでハード君は処理の「順番」の変更ができるということに着目してるようだが
それはつまり順番の入れ替え、ソートするということに着目してるのかな?
データ構造のソートではなく制御構造のソートというのは何を想像してるの?
0934名前は開発中のものです。
2010/02/21(日) 23:57:49ID:KdEz6TZb何を想定しているか聞かれても困るんだが。
0935名前は開発中のものです。
2010/02/22(月) 00:04:49ID:jPaGif/Y0936名前は開発中のものです。
2010/02/22(月) 00:41:13ID:9kPn5SCwとはいってもif文とかは使うがな。
わざわざ処理のリストを自前で用意する必然性、そこが問いたいわけ。
ありえるとしたら、
1)処理の順番がダイナミックに変更される
2)ワーク領域の悪用
3)サブコアなど、どっか別のところに処理を投げる
こんなところかね。
でもさ、プログラムって基本は処理したいものを処理したい順に書いていくものだと思うよ。
書くときはともかくとしても、読むときはその方が読みやすいわな。
0937名前は開発中のものです。
2010/02/22(月) 01:10:24ID:jPaGif/Y制御フローならばそうすればいいんじゃない。それは当初から否定されてない
0938名前は開発中のものです。
2010/02/22(月) 01:11:59ID:8N//epRT0939名前は開発中のものです。
2010/02/22(月) 01:22:15ID:9kPn5SCw何らかの仕組みはいるわなぁ。
俺ならそう言う部分はエンジン化して真っ先に外部に追いやるが。
エンジンって名前はちょっとアレだが。
0940名前は開発中のものです。
2010/02/22(月) 01:45:46ID:jPaGif/Yタスクシステムという名前よりももっとかっこいい名前がいいなら
エターナル何とかでも僕ちんエンジンでも好きにすればいい
0941名前は開発中のものです。
2010/02/22(月) 01:56:53ID:8N//epRT0942名前は開発中のものです。
2010/02/22(月) 01:59:16ID:jPaGif/Y例えば、割込で覚醒する(割込ハンドラから登録される)非周期性のタスクがあり
どこかに挿入したい
0943名前は開発中のものです。
2010/02/22(月) 02:23:12ID:8N//epRT0944名前は開発中のものです。
2010/02/22(月) 02:47:10ID:9kPn5SCw0945名前は開発中のものです。
2010/02/22(月) 02:48:08ID:iSU0iGNn0946名前は開発中のものです。
2010/02/22(月) 02:48:39ID:9kPn5SCw0947名前は開発中のものです。
2010/02/22(月) 02:55:39ID:oNkwrvMU0948名前は開発中のものです。
2010/02/22(月) 03:11:13ID:iSU0iGNn0949名前は開発中のものです。
2010/02/22(月) 03:17:18ID:9kPn5SCwでもタスクシステムって同期が前提だよね、1/60秒とかで同期するよね、
自分で処理を明け渡すよね、そのタイミングで同期するよね、意味無いよね。
0950名前は開発中のものです。
2010/02/22(月) 03:52:27ID:iSU0iGNn周期駆動系の組み込みシステムでIRQをトリガーに発動するタスクを
捌くとき、つまり>>942みたいな要求があるとき、周期駆動のタスク
ディスパッチャーのプライオリティキューにそのタスクを追加するという
のは、定石というか割とありふれたスタイルに見えるんすけど
0951名前は開発中のものです。
2010/02/22(月) 20:54:43ID:9kPn5SCw0952名前は開発中のものです。
2010/02/22(月) 21:17:39ID:9kPn5SCw>>942のスレッドの話と割り込みの話ってそれぞれ別の事例なんじゃないの?
俺の読解力が無いだけ?
0953名前は開発中のものです。
2010/02/22(月) 22:04:06ID:jPaGif/Y0954名前は開発中のものです。
2010/02/22(月) 22:17:36ID:9kPn5SCw割り込みとスレッドの関連性って何よ。
割り込みで発生した要求をサブスレッドで対応しても、それはそれでかまわないだろうけど、
でもゲームって1/30や1/60周期でポーリング可能なわけだから、
メインスレッドから割り込みの要求に対応するチャンスはいくらでもあるよね。
なんでスレッド作れないから割り込みの要求をタスクシステムでって話に成るの?
0955名前は開発中のものです。
2010/02/22(月) 22:29:41ID:9kPn5SCwhttp://www.nasuinfo.or.jp/FreeSpace/kenji/priority.htm
こういうことでもやってるの?これはダセぇ。
0956名前は開発中のものです。
2010/02/22(月) 22:54:14ID:jPaGif/Y0957名前は開発中のものです。
2010/02/22(月) 23:22:01ID:9kPn5SCw何でスレッド使えないからタスクって話になるんだって。
0958名前は開発中のものです。
2010/02/22(月) 23:42:46ID:jPaGif/Y0959名前は開発中のものです。
2010/02/23(火) 01:28:48ID:H3z/wak/池沼かよ。
0960名前は開発中のものです。
2010/02/23(火) 01:39:02ID:RSl/LDk40961名前は開発中のものです。
2010/02/23(火) 01:49:33ID:m+f6iOkH0962名前は開発中のものです。
2010/02/23(火) 02:01:35ID:H3z/wak/>なんでスレッド作れないから割り込みの要求をタスクシステムでって話に成るの?
って書いてるだろ。
スレッドと割り込みとタスクシステムに一体どんな関係性が?
>>942で疑問なのが、
1)もしスレッドが自由に使える環境なら、「割込で覚醒する非周期性のタスク」とやらは、
タスクシステムではなくスレッドで実行したいのか。
2)タスクシステムでスレッドの代用が出来るのか。
3)フラグとif文では記述できないのか。
割り込みハンドラでフラグ立てて、そのフラグが立ってるときだけ
処理を実行って感じでいんじゃねぇの。
0963名前は開発中のものです。
2010/02/23(火) 02:26:43ID:9kAEtD+3> お前が自分で>>942に書いてるんじゃねぇか。
> 池沼かよ。
> 962 :名前は開発中のものです。:2010/02/23(火) 02:01:35 ID:H3z/wak/
> >>954で、
>
> >なんでスレッド作れないから割り込みの要求をタスクシステムでって話に成るの?
>
> って書いてるだろ。
これってつまり言いだしっぺは己自身だったと・・・
もう一人相撲乙としか・・・
0964名前は開発中のものです。
2010/02/23(火) 02:31:45ID:H3z/wak/Q: 静的に記述不可能というのは例えばどのような状況?
A: 例えば、複数スレッド(プロセス)を使う余裕がない貧弱なプロセッサ(コア)があり
例えば、割込で覚醒する(割込ハンドラから登録される)非周期性のタスクがあり
どこかに挿入したい
俺の理解では、
「静的に記述が不可能な例えとしては、
スレッドが満足に使えない環境で、
割込みで発生する非周期な処理を、
割込みハンドラ外で実行したい場合などがある。」
これであってる?
まー俺のESPは
「それってタスクシステム使ったから静的に記述できなくなっただけじゃねぇの」
と反応しているわけだが。
0965名前は開発中のものです。
2010/02/23(火) 02:39:20ID:H3z/wak/何で、
スレッドが満足に使えない環境で、
割込みで発生する非周期な処理を、
割込みハンドラ外で実行したい場合、
静的な記述が不可能
なんだ?ってこと。
0966名前は開発中のものです。
2010/02/23(火) 03:48:40ID:H3z/wak/「例えば、複数スレッド(プロセス)を使う余裕がない貧弱なプロセッサ(コア)があり」
これな、この一文。これは何のためにあるわけ?
俺は非常に疑ってるわけ。
この一文で、ID:jPaGif/Yの中で、タスクシステム的な何かを使うという前提が、
勝手に決定してしまってるんじゃないかと。
でも、もしそうだとすると、いくつかの問題が出てくる。
1) 割込み云々のくだりの意味が無くなる。
タスクシステム使うことによって、「静的に記述不可能」は満たされるので、
割込み〜を持ち出す意味が無くなる。
2) スレの流れ的に変。
Q: タスクシステムはどのような場合に使いますか?
A: 静的に記述できない場合。
Q: 静的に記述できない例は?
A: タスクシステムを使うとき。
答えになってない。
そんなアホみたいな展開はさすがに勘弁だから、
原文を最大限好意的に解釈し直す。すると>>964-965となったってわけだ。
明日仕事から帰ってくるまでにエレガントな回答を頼むよ。
0967名前は開発中のものです。
2010/02/23(火) 10:39:44ID:HrCIHbGl大ヒント:輸入した言葉ばかりのこの業界
0968名前は開発中のものです。
2010/02/23(火) 21:58:29ID:zkfJseXs0969名前は開発中のものです。
2010/02/23(火) 22:47:04ID:zAzwz6Ie0970名前は開発中のものです。
2010/02/23(火) 22:59:00ID:c+56TGEFで、タスクシステムというものを最初に造語した人って誰なん?
0971名前は開発中のものです。
2010/02/23(火) 23:12:29ID:RSl/LDk4>割り込みとスレッドの関連性って何よ
真面目な話なんだが、これ本当にお分かりになりませんの?
ここから説明を要求されると正直やってらんないわ…
100,000モリタポくらいくれれば個人レッスンやってもいいぞ
0972名前は開発中のものです。
2010/02/24(水) 00:19:39ID:cpWp2BhG0973名前は開発中のものです。
2010/02/24(水) 00:21:19ID:q1xcMKbM0974名前は開発中のものです。
2010/02/24(水) 00:33:41ID:E88kdpum0975名前は開発中のものです。
2010/02/24(水) 00:43:29ID:D/vTrQxnプログラマの責任の下で静的に記述すればそれで良しの
べた書きアンチとは相性悪いな
0976名前は開発中のものです。
2010/02/24(水) 01:09:06ID:wWaSpMCSまあ、結局は>>3だから
レス数が950を超えています。1000を超えると書き込みができなくなります。