1 名前:名前は開発中のものです。 [2007/03/12(月) 23:09:48 ID:8bV5Boxt] どうぞ
103 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 21:47:11 ID:PxGC7SLd] オブジェクト指向やデザパタの説明するのに、 有名オープンソースアプリを引き合いにしないのと一緒ってことじゃない?
104 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 21:51:00 ID:/fPrY/bJ] 確かに、タスクシステムと他のゲームエンジンを比較する記事は 全く目にしないな。タスクシステムを解説するサイトのほとんどが ゲームエンジンという概念を持たない奴を対象としているみたいだから、 仕方の無いことだとは思う。 問題なのは、解説者自身が、解説の対象となる連中と さほどレベルが変わらないということ。
105 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 22:03:11 ID:TiBHGm8x] >>102 おまえはコンパイラの仕組みを解説するのにいちいちgccのソースを持ち出すのか?
106 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 22:05:22 ID:/fPrY/bJ] >>103 お前はオープンソースって単語につられすぎ。 タスクシステムと他のゲームエンジンって組み合わせなんだから、 オブジェクト指向の対となるのは構造化プログラミングとか アスペクト指向とかだろ。
107 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 22:13:00 ID:PxGC7SLd] >>106 ??? 誰かエスパーの人翻訳ぷりーず
108 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 22:37:34 ID:BFtC8cga] うちでもタスクシステムという用語自体は 今でもゲームエンジンとほぼ同義で使ってるな。 キャラクタのオブジェクトのことをタスクと呼んだり ユニットと呼んだりエンティティと呼んだりするのと 同じで、他所では意味合いはすこし違うかもだが。 ま、所詮はローカル用語だな。 確固たる経典があるわけでもなく無理矢理普及 させようとしても都市伝説化するのが関の山だろ。 大人しくゲームエンジンとでも呼んどけってこった。 >>92 >複数の有限状態機械の相互作用・状態遷移を時間刻み冲の数値積分などで >逐次計算していく(時間発展させる)仕掛け 共通の定義を模索していくとそんな感じになるかな。 仮想空間内に配置したエンティティを時間ステップ毎に 駆動させたり、エンティティ同士の情報のやりとりを仲介したり。 ゲームエンジンは自己駆動粒子系のシミュレータの一種だね。
109 名前:名前は開発中のものです。 mailto:sage [2007/04/15(日) 23:49:58 ID:oEvaf3OR] ウェブ上で出回ってるタスクシステム講座はたしかに どれも一様に古臭いな。統制が取れた古臭さとでもいうか。 一線を退いて久しいオサーンが昔を懐かしむ人向けの 読み物と断わった上で公開してるページもあるみたいだが Code Zineの記事の中の子はガチで浦島太郎になってて ちょっとカワイソス。 彼には最新のUnrealのMOD開発用ゲームソースでも 読ませてやりたい。
110 名前:名前は開発中のものです。 mailto:sage [2007/04/16(月) 01:16:12 ID:W5lbbWwm] 主張・文体・時間帯・改行の癖・その他諸々を考慮して、 IDを隠して眺めてみると面白いな。 昨日19時からのログわ。
111 名前:名前は開発中のものです。 mailto:sage [2007/04/16(月) 01:27:08 ID:MDcwQB1m] のちのコナンである。
112 名前:名前は開発中のものです。 mailto:sage [2007/04/16(月) 01:59:47 ID:B1Dtb12v] タイガアドベンチャーだね
113 名前:名前は開発中のものです。 [2007/04/16(月) 02:25:04 ID:QiSCSZ7+] >>104 いや、ある意味、タスクシステム自体が、ゲームエンジンの一種なのでは?
114 名前:名前は開発中のものです。 mailto:sage [2007/04/16(月) 04:52:10 ID:I2bg0tSF] 19時からのログよりも>>79-100 の方が面白い。 何故か同じことを繰り返して言った>>79 >>81 。 2回目の方にレスをつける>>82 (ID:vOubHFUU)。 >>93 で再登場したID:g5jEBpoCに向けて 定期的に書き込まれる単発IDによる援護射撃。 そして、ID:g5jEBpoCがいない時間帯には 決して現われない上記のような面々。
115 名前:名前は開発中のものです。 mailto:sage [2007/04/16(月) 05:02:51 ID:I2bg0tSF] ID:g5jEBpoCじゃなくてID:vOubHFUUだったわ。 ってどうでもいいか。周りのスルー力を見習お。
116 名前:82 mailto:sage [2007/04/16(月) 11:01:09 ID:5cCE7ez3] え、全部俺の自作自演? そいつはすごいやw
117 名前:名前は開発中のものです。 mailto:sage [2007/04/16(月) 23:49:42 ID:vg95lefp] タスクとリフレッシュレートはゲ製の鬼門
118 名前:名前は開発中のものです。 mailto:age [2007/04/17(火) 08:47:02 ID:Aek8raYd] >>117 KWSK
119 名前:名前は開発中のものです。 [2007/04/18(水) 23:28:57 ID:jsz7ODUC] 菊門と聞いて飛ん来ますた
120 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 00:02:19 ID:jsz7ODUC] …。 >>104 >>113 ゲームエンジンなんて御洒落な言葉を耳にするようになったのはPS1末期のあたりだな。 それ以前は△△ドライバだの△△君だのタスクシステムだの皆好き勝手に呼んでたぞ。
121 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 01:15:58 ID:7k3O26Dk] ようするにタスクシステムって、ゲーム内のいろんな要素をオブジェクトとして扱って、それをリストにして管理してフレーム毎に実行するだけ? 俺の場合、古めのゲームプログラマが連載形式で解説してるのをネットで見たのが最初だった。 そのちょっとあとぐらいに、やね氏がそのサイトを紹介してた気がする…。 それに感化されてやってみたんだけど、親子関係にあるオブジェクトの場合、平等な関係のタスクで扱うのが面倒くさかった。 素人なんで俺がへっぽこなだけだとおもうけど。 ゲームごとに、オブジェクトごとに最適な管理方法を考える方が楽な気がする。
122 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 01:18:17 ID:0zzWAwAX] タスクがタスクを扱えるようにすればいくらでも楽勝っす。
123 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:06:27 ID:Pm183gqV] タスクシステムを最初に見たときは、オブジェクト指向とは全く違う 自由度と再利用性の高い汎用的な管理の仕方だなと感心したよ。 それ以前の俺は、ゲームプログラミングなんて言ったら CWaitCtrl WaitCtrl; CRander Rander; CPlayerCtrl player; CEnemy enemy[NumofEnemy]; for(;;){ player.func();//プレイヤーの移動処理など for(int i=0;i<NumofEnemy;i++) enemy.func(&player);//敵の移動処理など Rander.Draw(&player);//うっふん描画 Rander.Draw(&enemy);//あっはん描画 WaitCtrl.func();//フレームレート調整 } みたいにやってたからな・・・。 タスクシステムと比べたらまるでイソギンチャクとメガマウスの差だよ。
124 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:25:55 ID:EeW/BzCK] >>120 それ以前というか、今でもそんな感じです。うちの場合。 PS2用RPGのチームに異動したときは内製エンジンをタスクシステムと呼んでた。 >>13 で紹介されてるそれとはかけ離れた代物になってたけどね。 >>121 タスクシステムとゲームエンジンは等価。 ゲームエンジンという単語は元々は海外で使われてたの。 それが日本にも浸透したってだけ。 浸透する以前は内製のゲームエンジンはそれぞれ別の呼び方していた。 タスクシステムとか俺様ライブラリとか様々な方言があったと思うよ。 >リストにして管理して 竹やりで万歳突撃?
125 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:26:33 ID:vUHs3Nla] >>123 メガマウスの具体的な例をお願いします…。 ぱっと見だけど、かなり場数を踏んでる(プロの)方?
126 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:35:14 ID:Pm183gqV] >>125 メガマウスってでかいんだぜ。 ジンベエザメよりも、シロナガスクジラよりもでかいんだぜ。 でもイソギンチャクって小さいんだぜ。 あと俺みたいな奴がプロだったら 日本はもっとデフレ状態になっても誰も就職に困らないだろうな。
127 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:36:33 ID:Pm183gqV] あ、メガマウス小さかった。 なんだったけな、最大の海洋生物って。
128 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 02:54:09 ID:EeW/BzCK] >>123 タスクシステムは特定の実装方法を指すものではない。 「古代の究極奥義、ダイエットシステムでこんなに痩せた!」 とか言わないのと一緒。
129 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 08:09:39 ID:E/KhOlb0] >>123 コンテナクラスを内包したEnemyFactoryを作って 処理ループではメンバ関数一つ呼べば管理が楽にならん? Class EnemyFactory { Vector<CEnemy> EnemyArray; (略) public: func(CPlayerCtrl& player) } enemyfactory.func(&player);を一回呼び出せば全てを処理してくれるように。 って、これがタスクシステムなのか?
130 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 14:16:22 ID:KkZ4qP8H] だからさー、お前の脳内定義でのタスクシステムに必須条件って何よ。 ダンボール紙の盾をイージスシステムと名付けるのはお前の自由だが 他人に同意を求めるような話じゃねーだろと。 たかがローカル用語に、具体的な実装も含めた意味付けをして 再定義して普及させようとする仕切り行為は全て徒労に終わる。 ゲームプログラマは基本的に天邪鬼だからな。
131 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 21:20:45 ID:I+5EKnEr] >>127 スレと関係ないけどメガロドンじゃね?大昔の巨大サメ。 >>130 >必須条件 これじゃ駄目なのか? en.wikipedia.org/wiki/Task_%28computers%29 >A task is "an execution path through address space".In other words, a set of program instructions that is loaded in memory. >タスクは「アドレス空間を通る実行パス」です。言いかえれば、メモリにロードされるプログラム命令のセット。 風呂桶でも紙コップでもなくて「入れ物」に相当する用語がタスクなんだけど、 それを「俺んちの風呂桶」の意味で使う奴がいるのが問題なんじゃないかと思う。
132 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 21:56:37 ID:let+IdBl] そういうこったな。 taskはprocess並に汎用的な技術用語。 そのケツにsystemを付け加えるだけで >タスクシステムを最初に見たときは、オブジェクト指向とは全く違う >自由度と再利用性の高い汎用的な管理の仕方だなと感心したよ。 ↑こんな胡散臭い話になる。マジでお勧め。 「去年まで金無し君だったけど」の改造コピペ文が作れるな
133 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:42:06 ID:EeW/BzCK] >>123 なんか釣りっぽいが、君の言うタスクシステムってのはこんなやつ? codezine.jp/a/article.aspx?aid=297 これ、ゲームプログラミングの基礎教材としては優良だとは思うが タスクシステムという単語の使われ方はキッパリ忘れたほうがいい。 これ読んで「タスクシステムすげー!」「マジ感動!」 と歓喜して許されるのはリア厨、リア工まで。 それ以上なら技術者(の卵)として最低限のリテラシーが 欠けてるかもしれないと疑ったほうがいい。 何でもいいからオペレーティングシステムの教科書でも 一冊買ってみて読んだほうが遥かに勉強になると思うよ。
134 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:47:04 ID:Pm183gqV] リア工なので許されるという
135 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:48:45 ID:EeW/BzCK] アンカーミス。>>132 じゃなくて>>129
136 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:49:58 ID:EeW/BzCK] >>134 RTOSの本が面白いと思うよ。
137 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 22:58:21 ID:let+IdBl] >>135 俺かいw つーのは冗談として。。。 組み込み系の書籍はたしかに参考になるな。 俺も井の中の蛙にならんように精進せんと。
138 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:00:12 ID:GlQD7rdS] タスクシステムってメモリに対して最適化した設計スタイルなんじゃねーの? ギャラガとかの古の時代の産物なんだから、言葉自体を葬った方がいいんじゃないかと。
139 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:02:37 ID:let+IdBl] >>138 >タスクシステムってメモリに対して最適化した設計スタイルなんじゃねーの? >タスクシステムという言葉自体を葬った方がいいんじゃないかと。 本来はタスクシステムのローカル定義
140 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:04:29 ID:let+IdBl] 途中で送信しちまった。 >タスクシステムってメモリに対して最適化した設計スタイルなんじゃねーの? そのタスクシステムのローカル定義を葬ったほうがいいのであって タスクシステムという言葉自体に罪は無いぞ。立派な技術用語だ。
141 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:37:23 ID:EeW/BzCK] 「ギャラクシアン」「タスクシステム」でぐぐると ナムコ信者とかレトロゲーマニアの知ったかウンチク話として 「タスクシステム」が再定義され広まったのがよく分かる。 こういう出典不在&伝聞のみで造られたゲームファン用語を 真に受けた素人がCマガの記事を書いて更に広めたのは 致命的だったね。
142 名前:名前は開発中のものです。 mailto:sage [2007/04/19(木) 23:54:13 ID:9JdMu3w7] どっかのスレで「古典タスク」とかいう謎の言葉を見かけたな。 あとは「タスクシステムはもう古い」とかいう珍発言もたまに見る。 ゲームファン用語というより知ったかワナビー用語だろ。
143 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 00:01:20 ID:cgQq0Bo+] ローカル定義だけ葬るのはもう無理か。 ゲームエンジンでいいよもう。 というわけで関数アドレス+汎用ワークメモリのリンクリストが〜とか どうでもいい仕掛けを車輪の再発明して延々その素晴らしさを語ってる オナニストが作ってるのはセンズリシステムでいいよもう。 Irrlicht使おうぜ。
144 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 00:16:48 ID:65Qprn+K] 俺はCrysis Engineを触りたい。
145 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 02:10:06 ID:cGzgTfv7] しかしデリゲートをベクターコンテナにぶち込んで使う
146 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 03:42:12 ID:RUahNebB] オレはIrrlichtに自前のタスクシステムを乗せるよ。
147 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 07:42:04 ID:ZqUifK9K] 関数ポインタだとか汎用ワークメモリだとかは 初心者にとって勉強になるから再発明上等なんだが、 その程度のレベルの奴が悟った気になって 中途半端な理解で解説を書いて広めるからタチが悪い。
148 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 11:42:46 ID:EI0MmUU2] >>147 そこまでおっしゃるんなら 是非みんなの目が覚めるような解説サイトを作ってください ID:ZqUifK9K先生!
149 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 12:17:21 ID:ohBEpQ/x] タスクシステムを紹介してる人を叩くスレはここですか
150 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 13:19:25 ID:J62A1B0A] また>>82 が来たのか
151 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 13:44:21 ID:EI0MmUU2] また>>90 が来たのか
152 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 14:51:16 ID:ignHfO5a] 確かにタスクシステムは可用性の高いやり方ではあると思うけど、 実態は単なるリストのデータ構造なので(勿論それから拡張された高度なものも存在するけど)、 「タスク」やら「システム」やらの単語は不似合いに思えないことも無い。 そしてそういう単語で付け上がるような中二病野朗は非常にたちが悪い。 死んでくれとは言わないけど、考えを改め直して現実を見て欲しい。
153 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:30:26 ID:RUahNebB] というかC++でいうオブジェクトをリスト管理するのが タスクシステムなんだよ。 アセンブラだけで開発してた頃に使ってたから割と いい発明だったんだよね。
154 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:38:17 ID:EI0MmUU2] >>153 >というかC++でいうオブジェクトをリスト管理するのが >タスクシステムなんだよ。 なんかちがわね?
155 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:39:36 ID:VkPjbBgj] もうタスクじゃない別の呼び名をつけてあげたら?
156 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 20:44:06 ID:KK8Da6ng] 重要度思考設計とか?
157 名前:名前は開発中のものです。 [2007/04/20(金) 21:32:26 ID:fGL33psr] タスクシステムを古いとか古典とかいう人は、 どうやって実装しているの? XXというフレームワークとか開発キットをつかっている、という答えでもいいけど、それ自体はタスクシステムをつかっていないの? あと、たとえばマルチスレッドを使うとタスクシステムはいらなくなる?
158 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:05:53 ID:UGzQxCti] >>157 その前におまえの脳内定義上のタスクシステム について説明したまえよ。 >それ自体はタスクシステムをつかっていないの? お前の言うそのタスクシステムとやらの定義によるな。 >あと、たとえばマルチスレッドを使うとタスクシステムはいらなくなる? お前の言うそのタスクシステムとやらの定義によるな。 で、お前の定義したタスクシステムを前提にした場合の 上記質問事項についてのお前の経験に基づく見解を聞かせてくれよ。
159 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:42:39 ID:RUahNebB] 便利なものはすべてタスクシステムだ!
160 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:49:49 ID:cGzgTfv7] マルチスレッドプログラミングもタスクシステムの一種?
161 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:53:22 ID:KC13gbVA] Q. タスクシステムって何? A. 言語仕様の進歩により実体を失なうシステムのこと。
162 名前:名前は開発中のものです。 mailto:sage [2007/04/20(金) 23:55:47 ID:0083p4+e] 関数ポインタ+汎用ワークのリンクリストをタスクシステムと呼ぶのは個人の自由だし 木製骨格+羽布張り+マキシム機関銃の飛行機をステルス戦闘機と呼ぶのも自由だけど 声を大にして言うとキチガイと思われるから気を付けようね、というごく基本的な話。
163 名前:90 mailto:sage [2007/04/20(金) 23:58:56 ID:0083p4+e] >>151 それは被害妄想だよ。
164 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:01:14 ID:ohBEpQ/x] ガンダムみたいなIDだな
165 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:18:39 ID:b9DOuvNS] >>118 遅レスでやんすが 熱い論争が巻き起こるものの、結局結論が出ないので不毛この上ない という意味でござんす。
166 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:26:45 ID:ohzUMwwU] リフレッシュレートは、3倍して計算というナイスな結論が出てた様な気がするけど、 あの後まと話がこじれたのかいな?
167 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 00:57:21 ID:Cncyo4d6] だいたい液晶はリフレッシュしてないし。
168 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 03:08:49 ID:96E91bg8] 現状を憂うのは大変結構な事だけど 意見をまとめたコラムをどっかに投稿したり、サイト作ったりしないの? 掲示板の書き込みを追っていくのは辛い
169 名前:名前は開発中のものです。 [2007/04/21(土) 08:33:00 ID:qfI0z2jN] >>158 たとえば↓この本で書かれているタスクシステムを「タスクシステム」と定義してみるとどうだ? cgi32.plala.or.jp/higpen/book/shtPro/shtPro.shtml
170 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 09:31:26 ID:rc3MbHen] >>169 その本を書いた松浦健一郎が大混乱の元凶なわけだが
171 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 09:40:41 ID:FI1lzfn8] で、その本の中では何て定義してるの?
172 名前:名前は開発中のものです。 [2007/04/21(土) 10:35:11 ID:qfI0z2jN] >>170 おいおい、やっとタスクシステムを定義しようと努力して、これから マルチスレッドとか他の実装方法との比較を論じようとしているんだから、 「大混乱」とか結論ありきのワンセンテンスメッセージはやめようよ。 おれは、この本のタスクシステムをみたとき、ふつうにマルチスレッドでキャラを動かせばいいじゃない (わざわざオブジェクトをNEWしてリストに組み込んでいかなくてもいいのに) と思った。 開発効率とか品質(スピード)などからの面でどのくらいメリットがあるのか、疑問におもった。 その辺の意見をききたい。 自分ではこの本と同じものをマルチスレッドで書いたりする余裕もないからね。
173 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 11:09:21 ID:laYGd4sA] 読み進めたけど話が進まないね タスクシステムってなんなのか調べてみた ttp://www5f.biglobe.ne.jp/~kenmo/program/task/task.html ttp://www5f.biglobe.ne.jp/~kenmo/program/task/task2/task2.html ttp://homepage3.nifty.com/moha/prog_task.html わからなかった 糸冬 わ り
174 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 11:17:18 ID:Cncyo4d6] >>172 そんなことしたら、シングルコアCPUなら普通に動くけど マルチコアCPUにするとまともに動かない素敵なシステムになりますよ。
175 名前:名前は開発中のものです。 [2007/04/21(土) 12:15:44 ID:3GQIcX1J] 沖縄県の方へ(命に関わる注意事項です) 沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。 民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。 この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから… ※一国二制度 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。) さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。 今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。 自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。 発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
176 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 13:08:27 ID:laYGd4sA] >>175 みたいなネトウヨきもいな 言われなくても分かってるだろ普通に・・・ 今まで無知だった自分への恥隠しのつもりか何かか?
177 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 13:13:02 ID:qfI0z2jN] >>174 つまり、マルチスレッドだとマルチコアCPUの場合、まともに動かなくなる。 軽量スレッドであるタスクシステムだと、CPUのアーキテクチャに依存せずに動作する。 以上のようなメリットがタスクシステムにはある、ということだな。
178 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 13:14:51 ID:Cncyo4d6] ぜんぜん違いますよ。タスクをマルチスレッドで実装するのは 難易度が高い。 その辺を認識せずにスレッド使えばいいとか言ってるアホには 無理なんじゃねってこと。
179 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 14:16:13 ID:sEVsPTrc] 古典ゲームタスクシステムはリストの任意位置にロギングタスクを仕込むなど リソース最適化のためのロジックを入れやすい強みがあるからダメダメってわけでもない。
180 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 15:28:49 ID:iSBz72w9] >ID.qfI0z2jN ねー、だから>>169 の本の中でのタスクシステムは どういう定義になってるんだい?
181 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 19:46:23 ID:445SE7r4] 今求められているもの ・タスクシステムの定義(俺の見る限りではワーク領域を持ったリスト構造のことを指している事が多い木がする) ・なぜワーク領域のあるリスト構造をタスクシステムと呼んではいけないのかに対する回答 ・結局どうやって実装するのがいいのか(一概には言えないっていう答えが妥当ならそれでスレ終了)
182 名前:名前は開発中のものです。 [2007/04/21(土) 22:03:55 ID:qfI0z2jN] >>181 タスクシステムの定義は>>169 のリンク先からサンプルコードをダウンロードしてList3-1と3-2だけみればわかると思う。 List3-1はタスクの構造体、List3-2はそれの実行ルーチンをあらわしている。余裕があったらC++の実装版もみてみるといい。 二番目の回答はどうでもいいような気がする。 で、3番目。 「一概には言えない」でもいけど、マルチスレッドとの比較というテーマなら具体的に比較できると思うぞ。 いまのところCPUをシングルコアという条件で限定すればタスクシステムは、マルチスレッドに対してメリットがあるという答えはでてきてない。 でもマルチスレッドはリソースを多く消費しそうなきがするんだよな。タスクシステムは軽量の自家製スレッドだから スピードも早くメモリ消費も少ないというレポートがあってもいいように思うんだが。
183 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:08:52 ID:6oOZ9JbV] >>181 >・タスクシステムの定義(俺の見る限りではワーク領域を持ったリスト構造のことを指している事が多い木がする) 狭義 固定サイズのワーク領域を持った単方向リスト構造でサブルーチンの交換が可能なもの ギャラクシアンの実装を原典とする 広義 ワーク領域を持ったリスト構造 ギャラクシアンの設計を原典とする >・なぜワーク領域のあるリスト構造をタスクシステムと呼んではいけないのかに対する回答 ほかの用語(↓)と混同するから プリエンプティブマルチタスクとは 【preemptive multitasking】 - 意味・解説 : IT用語辞典 e-Words e-words.jp/w/E38397E383AAE382A8E383B3E38397E38386E382A3E38396E3839EE383ABE38381E382BFE382B9E382AF.html >・結局どうやって実装するのがいいのか(一概には言えないっていう答えが妥当ならそれでスレ終了) 一概には言えない ……が「あのゲームを俺が実装するならこうするね」的な話は有意義だと思う もし俺が2DSTGを実装するならリストよりツリー構造を使うよ 親子関係をもつキャラクタを適切な順番でまわすのに適しているし キャラクタのグルーピングがしやすいので敵キャラだけ舐めたいときなどに無駄な処理が減る
184 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:20:34 ID:Ii4A4TL3] C++ で言えば、毎フレームの処理を実装したクラスインスタンスのリストだろ? そんなの画面ごとに std::list<Task*> なりで持てばいい。よく使うなら適当に ラップしたクラス用意すればいいだろう。 「タスクシステム」とか呼ぶ人は、何でもかんでもグローバルだったり、 プログラム全体にこの構造を当てはめる傾向があって嫌い。
185 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:23:05 ID:96E91bg8] >ほかの用語(↓)と混同するから JAVAスクリプトみたいなもんか
186 名前:名前は開発中のものです。 mailto:sage [2007/04/21(土) 23:37:57 ID:sEVsPTrc] 「タスクシステム」 飽くまで全てをひとつのリストに押し込めようとする努力が多くて、 手段が目的となってる感のあるアプローチのこと。
187 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:00:51 ID:SVESfasi] マルチスレッドで効率よく使えない技法なぞ過去の遺物じゃ
188 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:31:08 ID:useOh8AV] >>182 おいおいサンプルのダウンロードなんかできないぞ。
189 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:53:25 ID:useOh8AV] >>182 >マルチスレッドとの比較というテーマなら どういう比較をするつもりなのか知らないが、まさかとは思うが お前の定義するそのタスクシステムのタスクひとつひとつを スレッドに置換するような形で比較するのではあるまいな。 >タスクシステムは、マルチスレッドに対してメリットが お前の定義するそのタスクシステムとやらは マルチスレッドとは排他的な存在のようだから やはり上記の「まさか」は当たっているということか。 >タスクシステムは軽量の自家製スレッドだから タスクシステムとマルチスレッドをなぜ排他的な存在 いまのところCPUをシングルコアという条件で限定すればタスクシステムは、マルチスレッドに対してメリットがあるという答えはでてきてない。 でもマルチスレッドはリソースを多く消費しそうなきがするんだよな。タスクシステムは軽量の自家製スレッドだから スピードも早くメモリ消費も少ないというレポートがあってもいいように思うんだが。
190 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 00:55:49 ID:useOh8AV] 上は送信ミスだ。 >>182 >マルチスレッドとの比較というテーマなら どういう比較をするつもりなのか知らないが、まさかとは思うが お前の定義するそのタスクシステムのタスクひとつひとつを スレッドに置換するような形で比較するのではあるまいな。 >タスクシステムは、マルチスレッドに対してメリットが お前の定義するそのタスクシステムとやらは マルチスレッドとは排他的な存在のようだから やはり上記の「まさか」は当たっているということか。 >タスクシステムは軽量の自家製スレッドだから それならファイバーやマイクロスレッドと呼べばいいんじゃないか。
191 名前:名前は開発中のものです。 [2007/04/22(日) 01:11:41 ID:QxI8Jcnw] だいたいわかった。 >>184 のように、タスクシステムというのはふつうに使われている。 ただし、一部(多数?)の人は、わざわざタスクシステムなんていって仰々しく議論することに違和感がある。 ちなみにファイバーとかマイクロスレッドなどと呼べばまだましらしい。
192 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 03:36:04 ID:gWESM4cO] >>191 それなんかちょっと違和感が. 前の方はあんま読んでないんだけど,自分の感覚では以下な感じ. fiberは「非時分割で非プリエンプティブ(協調型)なスレッド」 タスクシステムは「エージェント集合でゲームを作るシステム」 現実には同期問題からエージェント=fiberの実装が多いけど, スレッドでも同期エージェントを作れば,タスクシステムは成り立つと思う. fiberの場合のみに限定したとしても,fiberは実装方法であって, 「エージェント集合」が肝であるタスクシステムとは別だと思うんだけど. #名前付けるほどのことか,という話には納得する面もあるんだけど,名前なんて大体そんなもんだと思う. #あとワーク領域がうんたらって話は化石過ぎるんじゃないかしら.
193 名前:名前は開発中のものです。 [2007/04/22(日) 04:51:35 ID:YZWy+Lh2] >>172 > おれは、この本のタスクシステムをみたとき、ふつうにマルチスレッドでキャラを動かせばいいじゃない 無理無理w キャラクター1000体表示したら、1000個マルチスレッド動かすのかy。 しかも、全部好き勝手、平行に走るんだぜ? 1000体分同期取るんだぜ?
194 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 08:07:47 ID:KD72KCOk] 素朴な疑問なんだけど、ゲームって条件判断つきのアニメだよな。 パラパラアニメに分岐があるだけだよな。分岐ってか、インタラクティブってか。 入力があって、計算して、描画、音再生して、その繰り返し。たかが、それだけなのに、 なんちゃらかんちゃらカタカナが飛び交うってのも、不思議だと思った。 きょうびのパソコンなら、if文が1万あっても、フレームレートへの影響って 微々たるものではないかと、察するのだが、推測なので、実際分からんけど、 感覚的には、そんな感じで。 だからさ、お前ら、アポだな、と思った。いや、アポなのは俺かも知れないけど、 正直な気持ちとして、そう思ったのだ。
195 名前:名前は開発中のものです。 [2007/04/22(日) 08:29:39 ID:YZWy+Lh2] 誤爆?
196 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 08:36:23 ID:U5lotNIv] ヒトのやってる事にケチつけないと気がすまないのか? マジメにやってる奴を馬鹿にするレスは不愉快なだけ。 だいたいここはゲームの技術について語る場所だ。 なんとなく思っただけの事ならチラシの裏にでも書いてろ。 俺の言いたいのは以上だ。 もう二度とつまらん書き込みするなよ。
197 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 09:25:02 ID:ridILpBz] >>196 おまえもなー
198 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 09:38:30 ID:KD72KCOk] ぶっちゃけ、俺はタスクシステムが分からない。>>123みたいな実装だな。 つーか、それで、何が問題なのか分からないんだ。具体例はないし、どこ ぞの信者が、わけわからず布教してるだけなスレだな。いくら、あーたら、 こーたら、書き連ねても、何の生産性もないよね。123がもっと、詳しくそ の説明ってか、具体的にどう、メガマウスなのか、コードを交えて、解説を やって欲しいけど、名無し掲示板だと、どうにも議論的な発展がないな。い ろいろな発言があるようで、大して、書いてる人はいないなら、HNがあるほ うが、放置ってか逃亡が認識できて終わりが分かるのでいい気がするっす。
199 名前:名前は開発中のものです。 [2007/04/22(日) 10:24:01 ID:QxI8Jcnw] >>193 サンキュー。やっと具体的な議論ができる発言がでてきたな。 つまりタスクシステムは、 「同期を取る必要がある数1000にものぼるオブジェクトを対象とする並行処理(1つの処理は短時間)を、 少ないリソースで実現させることができる。」 というメリットがあるわけだ。 それをマルチスレッドやったら重過ぎると。 たしかに「組込みマルチタスキングプログラミング」という本をよむとマルチタスキングの4つの基本要件として、 @コンテキストスイッチング、Aタスク間通信、B実行優先度、Cタイミング制御 があげられているがこれらを少ないリソースで実現でき、かつ構造化されている手法がタスクシステムということだな。
200 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 14:33:04 ID:lvPS3FuZ] タスクシステムを構築するのに、内側でマルチスレッドを使っても問題はない。 よってリソースがどうこう言う利点は当てはまらない。 結局は実装方法によりけり。
201 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 14:52:48 ID:f5nllPrq] >>194 >>198 は昔からいろんなスレで 阿呆なことばかり言っている奴なので気にしない方向で
202 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:05:20 ID:kFHvjrd1] 所謂タスクシステムとは団子の数が増減する串団子みたいな物だよな ●→先頭 ◎→しんがり ○→プレイヤーオブジェクト ゲーム開始時はこんな感じ ●○◎ 敵キャラやらアイテムなどのオブジェクトが必要に応じて生成されると ●○△△△◇×△◎ 原始的な手法と言うと語弊があるが、所謂配列型のシステムが 常に一定のメモリを使用するのに対して 所謂タスクシステムは必要な時に必要な分のメモリしか使わない リソースを使いたい放題の富豪的なプログラミングが許される今となっては 積極的に使用する意味はない
203 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:07:29 ID:gWESM4cO] >>200 自分もそう思うんだけど, このスレ的にはfiberな古典実装のみを扱うのかな? >>199 間違いでは無いと思うんだけど,視点がちょっとずれてる気がする. それはスレッドとfiberの対比に近くて,利点としては副次的なものじゃないかな. タスクシステムはエージェント(タスク)集合にすることで エージェントごとのコードを1箇所に集められるとか,依存性から実装を取り除けるというみたいな, 所謂OO的な利点が主なんじゃないかしらん.
204 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:44:05 ID:KD72KCOk] 富豪的プロぐらっむって、他に、学術的な呼称はないの?
205 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 15:45:03 ID:CSfmZnZe] >>203 タスクシステムというとなんとなくノンプリエンプティブな気がする。 現在のOSが持ってるスレッドはプリエンプティブだから、 OSの用意したスレッドでタスクシステムを実装するのは不便な気がする。 マルチコアCPUで高速化するために、複数のタスクシステムを マルチスレッドで並列実行とかならありだと思うけど。
206 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:00:54 ID:29CA+INJ] PCゲーの場合、CPUコア数なんてばらばらなんだから スレッドプールでごにょごにょってのは frame per scondの存在しないゲームくらいでしか有効じゃないと思う
207 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:06:58 ID:4Cp/kF21] 実際に実測して検証したわけじゃないけど なんとなくポインタ使ったリスト形式のタスクシステム?(名前が悪い!w) が速いような気がするから1フレーム(60FPSなら16ms位?)におさめるのに性能を重視する ゲームで使われてるんだと思います ていうか俺はイメージで使ってるw なんか、new,deleteとか遅いイメージあるし。 ましてやstdなんてごにょごにょ・・・
208 名前:名前は開発中のものです。 [2007/04/22(日) 16:14:42 ID:YZWy+Lh2] >>200 ちげーよw 拡大解釈すなw 本来のタスクシステムの話してんじゃねーよ 少なくとも、このスレのタスクシステムはゲームでの古典的な擬似タスク(もうこの単語も鼻水でるが)の話。 だから、基本マルチスレッドは使ってない。
209 名前:名前は開発中のものです。 [2007/04/22(日) 16:17:57 ID:YZWy+Lh2] >>207 実際に動的生成で、速度駄目かどうかってのは、計った方がいいよ。 動的生成の方が楽できるんだし。 はっきりいって、ゲームによる。キャラクターが少ないなら、動的でいい。 パーティクルとかは、さすがに、動的生成でもプールするけど。 もちろん、高速なメモリマネージャを使うのを前提だけどな・・・
210 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:27:38 ID:4Cp/kF21] >>209 動的に生成したほうが手軽だし、リソースの管理にしたってクラス作ったほうが楽なのはわかってるけど なんかゲーム作成となると古典的なCの手法の方が速いような気がするんですよね(これもイメージだけど)w ちなみにゲームじゃなけりゃ。俺もstd::vectorとかclassとか使いまくります。 まあ、やっぱり一番よいのは実測して問題ない方法を使うことなのかも・・・
211 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:36:46 ID:KD72KCOk] これは具体的だね。 mkmqwerty.hp.infoseek.co.jp/programing/tips/tips_index.html 「なんだか煩雑なソースになってきました。 実際にはこれに加えて、タイトル画面、 エンディング、スタッフロール等の分岐があり、敵の種類ももっと多いでしょう。 上 記のようなソースでもゲームを、とりあえずつくることはできますが、ソースが読み づらく管理が難しいです。 そこでタスク処理と呼ばれるものを導入します」 俺は、上記のようなソースでも、作れる。 だから、タスク処理いらない。 なんだ、タスクって、逃げかよ。
212 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:39:05 ID:O3yavdGP] 動的に領域を確保するやり方のなにがいけないの ゲームによるけど動的に確保するのも悪くないだろ ↓ (いまここ) やっぱり一番良いのは速度計ったりして検討した方法だね ↓ それならPCごとに差が出てもおかしくないだろ できるだけ汎用性のあるやり方をするべき 領域確保の失敗処理も最初の一回で済むし、逐次的な動的確保より やっぱりタスクシステム(鼻水でる単語だけど)の方が良いね ↓ (一番最初へもどる)
213 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:43:49 ID:O3yavdGP] >>211 かるいミニゲームとかならそれで十分かもしれないが、 巨大なものを組むならお前の言ってるつくり方ではまず難しすぎる。 それに複雑な面を組むときは、1フレームごとに数百、数千のifを見なくちゃいけないのか? いくらなんでもそれは馬鹿馬鹿しい。 というかその言い分はなに?タスク処理からの逃げかよ、と突っ込まざるを得ない。
214 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:54:16 ID:4Cp/kF21] >>212 うは!不毛だ コンシューマ機なら一定の性能だけど。。。 パソはね・・・・
215 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 16:55:46 ID:KD72KCOk] >>213 CPUからして見れば、数千のif文なんて、目くそじゃんw 人間的には、当該コードだけ眺めればいいわけで、頭からけつまで見る必要 ないしw 「富豪VSタスク」戦争の勃発ですね。(むふー)
216 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:08:03 ID:tSd7SPRg] ここでいわれているタスクシステムか、 もっと素直なやり方しか知らないってのが大きい気がする。 ってか、他の方法にはどんなのがあるの?
217 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:11:10 ID:O3yavdGP] ゲームループ中で、膨大な数の弾や敵機の存在フラグをifで見るのは愚行というもの。 ある程度まともで、リアルタイムなレスポンスが要求されるゲームなら、動かすべきものは優に1000を超える。 そしてそういうものはfpsも60以上が相場なので、画面上に何も無かったとしても、 単なる内部処理で1secに60000という条件分岐を処理しなければならない。 条件分岐のコストというのは非常に高く、昔は、1secに60000まではないとしても多くの条件分岐を処理させたのでは パフォーマンスに関わることが多かった。 そして今でも、高速性が求められるものでは条件分岐のコストを考慮せざるを得ないので、 タスクシステムの需要も無いわけではない。 処理の負担を考慮しない無計画な設計というのは、巨大なゲームを組む時は許されない。 コード全体が失敗した設計に依存してしまうことが多く、取り返しが付かなくなってしまうからだ。 というかそろそろID:KD72KCOkはあぼーんしておいたほうがいいな。馬鹿にもほどがある。どうせ釣りなんだろうが。
218 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:26:48 ID:KD72KCOk] >>217 たかたが、スーパーマリオのコピーアンドソースも見当たらない、低レベルな ゲ製作技術板で、そんなこと言われてもなぁ。
219 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:29:32 ID:5nxQbdiI] タスクシステムで分岐の負荷が消えるかのような書き方は 感心できないね。関数ポインタで分岐してたら根本的には 解決してないだろ。 存在フラグなんてものを全対象分用意した場合にくらべて 処理しない場合の無駄な分岐は削除できるけど、 それは C++ での仮想関数で十分実現できるよね?
220 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:44:24 ID:BUzInjQ8] 多人数で開発する時にシステム化しておくと楽っしょ? 戦闘シーンやフィールド・メニューやショップの処理も、共通のルールで相手がどんな処理(シーン)か知らなくても自由に以降できる汎用性の高いシステムで、わりかし簡単なのがタスクシステムなんじゃないの? ゲームのオブジェクトだけじゃなく、当たり判定からタイムカウントもシーンの管理も全部タスクに突っ込めるのは楽でいいよ。 いまならそれを発展させて、ツリーでもなんでも好きに作ればいい
221 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 17:45:43 ID:BUzInjQ8] あと、処理の順番も優先度で明確に出来るし、フレームごとのきっちりしたエフェクトするのも向くかも いまのフレームレートに依存しないタイプのゲームではどうなのかわからんけど
222 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 18:06:34 ID:v/ich/HT] >>220 >共通のルールで相手がどんな処理(シーン)か知らなくても自由に以降(移行?)できる タスクシステムじゃなくてタスクパターンとでも呼んだ方がわかりやすい気がする。 主観だがシステムというともう少し硬い機械よりなものをイメージするんだよね。
223 名前:擬似タスクw [2007/04/22(日) 18:17:11 ID:aF9z9yRP] 「リフレッシュレートに関する論争」 「タスクシステムに関する論争」 うはwwwwゲームにおけるデータ構造・クラス設計・パターンwwwwwww
224 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 18:30:35 ID:gWESM4cO] >>ID:O3yavdGP,ID:KD72KCOk 動的/静的とか富豪/貧乏みたいなコスト面で見る事自体が本質を見誤ってる. >>211 の引用の通り, べた書きは煩雑で管理が難しい->タスクで処理,依存性を分離すると楽 という話. >>221 >あと、処理の順番も優先度で明確に出来るし、フレームごとのきっちりしたエフェクトするのも向くかも 優先度による同期の代わりに「キャラ全員の移動完了を待って当たり判定タスクを起動」するような同期タスクでもOKでしょ?
225 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 18:41:05 ID:3Cbey4i0] >>217 ,220 多態の一言で済む話をタスクだなんだとゴチャゴチャ言ってるから 低レベルとか古臭いとか言われるんだよ
226 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 18:42:08 ID:ZoaDc3VU] タスクシステムをフレームワークに置き換えて読めば 自分たちがどれほど恥ずかしいことを言ってるかすぐわかる。 フレームワークがなんなのか判らない奴には判らんかw
227 名前:名前は開発中のものです。 [2007/04/22(日) 18:50:14 ID:YZWy+Lh2] >>224 べた書きで難しいなら、普通、今時なら、多態使うだろう。 ロートルじゃあるまいし。 見るべきは、コスト面じゃないのか?
228 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 19:30:55 ID:5nxQbdiI] ロートルがタスクを宣伝しやがったおかげで多態とかの一般的な技術よりも 先に「タスクシステム」とやらに手をつける奴が多いのよ。 その流れで関数ポインタやらリスト構造やらメモリプールやらを 初めて知ることになると、「タスクシステム」が何か偉大な技術みたいに 錯覚しちゃうんじゃないかと思うんだ。 今で言えば関数ポインタは仮想関数で、リスト構造は std::list で済む。 メモリプールも最近の環境では不要なことのほうが多いだろう。
229 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 19:41:55 ID:GAzy/Bcl] >>228 逆じゃね? 最近は、オブジェクト指向を一通り理解したやつしかタスクシステムに手を出していないと思うよ。
230 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 19:44:55 ID:QxI8Jcnw] >>224 のまとめ方は納得できるものだな。 素直に理解できる。 だが、「多様」というキーワードがでてきているのが気になる。 書き方はもっともらしい文体だが、内容はよく読むとなにもない。 無視していいような気がするがID:gWESM4cO他みなさんはどう思う?
231 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 19:50:39 ID:KD72KCOk] もういい。わけわかカタカナが飛び交うオナニープログラムはいい。 変数はすべてグローバル、ユーザー定義関数は使わない。制御はループとイフと フォーの3つのみ。制御用の変数はフラグ(多値)とカウンタのみ。使用言語はLGP。 俺は、これで、FF14でも、スーパーマリオ10でも、メタルギアソリッド7でも モーターストーム3でも、ドラゴンクエスト14でも、なんでも、作っちゃうんだからね。(むふー(鼻息)) たかだか、パラパラアニメですから、楽勝ですよ。 むふー。 まぁ、いつか。な。
232 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 19:57:07 ID:gWESM4cO] >>227 そうなんだけど,違うというか.. ワタシのIDのレス見てもらえば分かると思うんだけど, 多態に限らずストラウストラップ的OOの(エージェント/オブジェクト/タスク)集合により ゲームを構築するシステムをタスクシステムと言うんであって, リストが,fiberが,というような実装の話は実例であってそれ以上ではないと思う. 1実装例(データ構造)のコストを挙げて,タスクシステム(アルゴリズム,パターン)の良し悪しを言うのはお門違いというか.
233 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 20:04:34 ID:v/ich/HT] >>232 > 多態に限らずストラウストラップ的OOの(エージェント/オブジェクト/タスク)集合により > ゲームを構築するシステムをタスクシステムと言うんであって, 誰か翻訳してもらえませんか。
234 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 20:08:12 ID:4/EgVnhk] "ストラウストラップ" の検索結果 約 773 件 "ストラウストラップ的" の検索結果 1 件
235 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 20:11:45 ID:4/EgVnhk] ※1 ストラウストラップ的OO ビアルネ・ストラウストラップのオブジェクト指向。 データ型を定義するのに、「クラス」(もともとはオブジェクト指向とは関係のない SIMULA の言語機能)と その特徴である「継承」を活用するプログラミング手法。 ストラウストラップが '80 年代半ばごろまでに C++ の設計を通じて整理したもので、 現在主流のオブジェクト指向の考え方。
236 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 20:29:47 ID:5nxQbdiI] >>232 > 多態に限らずストラウストラップ的OOの集合によりゲームを構築する これだけじゃ「C++ 使ってゲーム作ってます」ってだけだろ。 システムでもなんでもない。
237 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 20:30:50 ID:v/ich/HT] >>235 マジレスされても困るんだが。(それにそこだけ書いても普通理解できない、コピペ元を貼るべき。) ttp://d.hatena.ne.jp/sumim/20040525/p1 多態性にC++もSmalltalkもないし、タスクはデータよりも処理に注目する考え方、故に元コメントは 意味がわからん、と言う意味だったんだが。
238 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 20:50:33 ID:gWESM4cO] >>236 それを言われちゃおしまいなんですが,名前なんて得てしてそんなもんだと思うんです. あとC++はマルチパラダイムだからC++なOOで〜とかのが正確?(どうでもいいね) >>237 そこをホントに読んだんでしょうか. Smalltalk(は1のアランケイのと読み替えてもいいんですよね?)は 1.“メッセージングによる可能な限り動的な処理・実装・設計”(メッセージ指向とも) を読んで多態性という言葉が出てくるのは驚きです.
239 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 20:52:24 ID:1cO9U5KH] タスクシステム(サブルーチンがぶらさがってるリスト)とスレッドの相性は悪いんだろうか? タスクを食っていくループでCPU資源にうまく割り振れば問題ないはずだ 2〜8個程度のスレッドを生成してサブルーチンを処理するたびに次のポインタを受け取る タスクが銀行のようにフォーク並びをしているのを想像して欲しい 並んでいる人がタスクでATMがスレッドだ ここで問題になるのは実行する順番が入れ替わったり同時であった場合の影響のことだ STGであればキャラクタの種別(敵キャラ、弾など)ごとに処理すれば 並列実行の影響を考える必要はない だから、タスクごとに種別IDを割り振っておけばよい 種別IDが切り替わる所で一度全部のスレッドが処理を終わらせるまで待つことで同期をとる (もちろんゲームによってはそう簡単にはいかないが……) いままでタスクシステムでゲームをつくってきた人はループにちょっとした仕掛けを作るだけで マルチコアCPUに対応できる可能性がある 現状のPC事情を考えると果たして意味がある行為なのかは疑問だがおもしろいTipsじゃなかろうか? (現状のPC事情・・・マルチコアCPU=ハイスペック。といってもローエンド機が置き換わるのも時間の問題だろうけども)
240 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 21:12:35 ID:v/ich/HT] >>238 メッセージ指向だから多態(ポリモーフィズム)がないとでも言うのか?ますますわからん。 どちらにしろこのスレでOOと言えばおまいさんの言うストラウストラップ的なやつがデフォ なのでわざわざ断わられると混乱するだけだよ。
241 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 23:10:29 ID:WXusdEx1] >>239 タスクリストを複数持つのは面白いアイデアだけど、意味なし。 なぜなら、現在のゲームにおいてボトルネックはまず間違いなく、 描画だから。 しかも描画はハード的処理により、スレッド化などしなくても 並列処理にできる。
242 名前:名前は開発中のものです。 mailto:sage [2007/04/22(日) 23:15:44 ID:P6iYulT4] >現状のPC事情を考えると果たして意味がある行為なのかは疑問だがおもしろいTipsじゃなかろうか? マルチコアといっても、大抵2CPUしか積まれていないので、 どんなに良くなっても2倍。ほとんど無意味ではあるかな。 コンシューマ機なら話は大きく変わる。 タスク処理を239のようにするのはデフォになる。 ただ、違うスレッドに居るタスク同士が情報をやり取りするとクラッシュするので、 タスクの基礎部分でだけなんとかするのはムリ。 >なぜなら、現在のゲームにおいてボトルネックはまず間違いなく、 >描画だから。 「現在の」じゃなくて、「一昔前の」ならそうかな。 今は物理計算があるから、そうともいえない。
243 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 00:46:11 ID:D3wQozch] >>239 はこれだね ttp://www.watch.impress.co.jp/game/docs/20070131/3dlp.htm
244 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 12:56:56 ID:kPTKND6z] >>241 涙目wwwwww
245 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 13:28:32 ID:ofnNc5u7] タスクシステム信奉者の致命的な欠点は古い物にこだわりすぎて、 時代をしっかり把握できないことだな >>241 が代表例
246 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 14:37:15 ID:sF8jML+T] >>241 がタスクシステム信奉者なんてどういう見解だよw
247 名前:名前は開発中のものです。 mailto:sage [2007/04/23(月) 23:02:50 ID:59B/D9d+] >>243 を見てると、タスクシステムがどうだとかいう議論がむなしくなるなw
248 名前:名前は開発中のものです。 [2007/04/24(火) 02:12:23 ID:rP75YEIH] >>247 タスクシステムを気軽に楽しめばいいんだよ。 世の中には、いろいろなプログラムを作っている人がいて役立つ人もいる。 手のとどく範囲のプログラムにおいて、タスクシステム(タスクパターン)を使ったら設計が簡単でパフォーマンスも あがった、なんてレスがあったらいいんじゃないかな。 おれが思ったのは、GUIのキャラクタの移動や、あとはパケットの取得/処理なんかのネットワークプログラミングに 気軽に応用できそうなきがする。いままでThreadたちあげてwhile(true)でまわしていた処理をすべて見直してるところだ。 だれかそういうTipsを集めたWikiつくってくれ。
249 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 02:49:26 ID:icr09Pcb] だからそれはマイクロスレッドとかファイバーだろ。
250 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 03:10:26 ID:pD/5kZWi] ゲーム制作における所謂「タスクシステム」がきちんと定義されてないから終わらんな。 曖昧なまま広がって時が流れすぎた。 みんな自分のタスクシステムこそ正義と信じて、終わり無き議論が続いていく。 まとめられるカリスマwも現れないだろうしな。 出来る奴はこんな瑣事に関わろうともしない。
251 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 03:59:44 ID:Tdee1eAV] どうせ2chだし、仕事みたいに方向性が別にはっきりとあるわけでもないからな。
252 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 04:08:33 ID:nLYBhYy0] まーた定義厨か。 実装はさておき「サブルーチンがぶらさがってるリスト」では 彼の気が済まないんだろうか。
253 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 06:19:19 ID:0Y4cOVot] 今日からこのスレでは タスクシステム=サブルーチンがぶらさがってるリスト になりました
254 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 06:21:41 ID:nLYBhYy0] オーケー、これで議論のループはめでたく終了な。
255 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 08:20:55 ID:rP75YEIH] このスレ自体がタスクシステムで、最近のレスしか読めない人は定義から入ろうとするし いろんなタスク(ファイバー)が走ってると思えばいいじゃない。 でも、ここからはタスクシステム書いてみるなりして実装方向の 話にうつらないと定義ファイバーしか走らないスレになるな。
256 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 08:30:38 ID:Cn47ifyt] >実装方向の話にうつらないと また実装乞食か。好きなように作れよ。 サブルーチンがぶらさがってるリストなんだろ?
257 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 09:17:07 ID:wt/UedOB] なんで早朝からカリカリしてんの?
258 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 11:33:46 ID:BSew7CHC] 所謂タスクシステムと、所謂ファイバーは全然違うモノなのに、 なんでここでは同じモノになっちゃってるの?
259 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 11:57:00 ID:aJzi4MOG] タスクシステムの公的な定義なんて存在しないし、 人それぞれにバラバラな解釈をしているんだから、まとまるはずがない。 定義できると思いこんでいるのは、自分の勝手な解釈を他人にもさせようとする、 脳味噌が足りない馬鹿だけ。
260 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 12:37:27 ID:pYdxlQj1] >>259 定義しなくても議論はできるさ。 例をあげて話し合えばいい。 問題は90レスほどするとせっかく提示した事例を無視して定義について云々いう奴が現れることだ。
261 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 18:18:54 ID:DJmpRTH+] ファイバーを「サブルーチンがぶらさがってるリスト」とか表現したら笑われるよ。
262 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:00:32 ID:gy8tG6E1] 固定された時間分のCPUリソースを各タスクに均一に割り当てるパターンを研究してくれ。
263 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:02:48 ID:nLYBhYy0] ファイバの肝はユーザモードでのコンテキストスイッチだもんな。 つーか>>4-5
264 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:08:20 ID:nLYBhYy0] >>262 そこまでいくとRTOSを移植したほうが早いだろうな。 しかしゲームにおいてCPU時間リソースを均一に割り振るメリットは殆ど無いと思うのだが。 何か思いつく?
265 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 19:32:32 ID:gy8tG6E1] リアルタイム戦略SLGとか?
266 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 21:55:18 ID:sh8YE+KJ] >>259 >タスクシステムの公的な定義なんて存在しないし フェードアウト組が大好きなタスクシステムについてはそのとおりだな。 「俺の自慢のタスクシステム」の素晴らしさについてグダグダ語る前に せめてテメェの脳内定義上のタスクシステムについて説明してから 発言しろ、というごく基本的な話だな。 >定義できると思いこんでいるのは、自分の勝手な解釈を他人にもさせようとする、 >脳味噌が足りない馬鹿だけ。 上に同じ。(公的な)定義ができると思い込んでるのは狂信者であり お前の言う通りの連中だ。
267 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 22:48:36 ID:HwcF2GDq] 定義できないとかいっているやつは 他人と協調も議論もできない自分勝手なやつだけだろ
268 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:01:09 ID:wt/UedOB] というか通じるよね?定義とかしなくてもさ。 実装してクレとか言ってるわけじゃないんだし、人によって全く違う動作をするようなものじゃないんだから。
269 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:31:17 ID:Meuc1va2] 面接官「特技はタスクシステムとありますが?」 学生 「はい。タスクシステムです。」 面接官「タスクシステムとは何のことですか?」 学生 「サブルーチンがぶらさがってるリストです。」 面接官「え、サブルーチンがぶらさがってるリスト?」 学生 「はい。サブルーチンがぶらさがってるリストです。」 面接官「…で、そのタスクシステムは当社において働くうえで何のメリットがあるとお考えですか?」 学生 「はい。オブジェクト指向とは全く違う自由度と再利用性の高い汎用的な管理ができるようになります。」 面接官「ほう。もうすこし詳しく聞かせてください。」 学生 「詳しくはCマガジン2006年1月号を参照ください。」 面接官「いえ、あなたの言葉でお願いします。サブルーチンがぶらさがってるリストは何故に オブジェクト指向とは全く違う自由度と再利用性の高い汎用的な管理ができるのですか?」 学生 「やねうらお先生のサイトも参照ください。URLは・・・」 面接官「いえ、あなたの見解を伺ってるのですが。」 学生 「あれあれ?怒らせていいんですか?使いまs」 面接官「帰れよ。」
270 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:35:21 ID:nLYBhYy0] 自分で自分にレスして「上に同じ」もねぇよなぁ
271 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:40:15 ID:sh8YE+KJ] 自作自演認定されちゃったよ
272 名前:名前は開発中のものです。 mailto:sage [2007/04/24(火) 23:44:07 ID:Meuc1va2] >>270 あなたを、タスクシステム普及委員長です
273 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 00:09:37 ID:d3y1YdqK] 定義できるのは、ここではタスクシステムをこういう概念で扱いますとローカルで宣言する場合だけ。 グローバルに定義することなど不可能だし、そういうことをしようとする奴は自分の意見を一方的に押し付ける身勝手なやつだけ。 その結果、結局は宗教論争のようになる。
274 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 00:56:02 ID:qAG7MKWl] 毎回列に並びなおして、工程ごとに仕事を聞きに来る従業員システムと言えばいいんじゃないの?
275 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 06:27:40 ID:RAoN/rs2] このスレで通じればいいからローカル定義で十分
276 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 08:10:39 ID:Rf7pmltu] >>269 そのレスを建設的な意見ととらえてみる。 たしかに「詳しく議論を」面接官にいわれて、そこからなんにもいいレスは現れてないな。このスレの現状は。 くだらん質問でもいいから、具体的にだれかアプリをタスクシステムで作ってつまづいたところとか 質問すればいいんじゃない? たとえば2chブラウザにタスクシステムを取り入れてつくったらどうなる?具体的にはHTTPで スレをもってくる処理をタスクにしてみてはどう?
277 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 12:18:45 ID:XXwI0rZa] タスクシステムなんてのはあくまで実装の仕方なだけで、 それが良い悪いというのは言語同士の争いと同じく不毛 結局のところ言語と一緒で、自分の使い慣れたものを使えばいいだけ ただ>>276 の提示したような明らかに用途が違うものに適用するのは馬鹿げてる
278 名前:名前は開発中のものです。 mailto:sage [2007/04/25(水) 12:40:36 ID:Yl4vGAsK] 実装の共通点といえば処理をタスクというものにまとめて扱うところぐらいだろ よーするにオブジェクト指向に近い話だと思うんだけど
279 名前:名前は開発中のものです。 [2007/04/25(水) 16:16:35 ID:tVRJOqln] > たとえば2chブラウザにタスクシステムを取り入れてつくったらどうなる?具体的にはHTTPで > スレをもってくる処理をタスクにしてみてはどう? それこそ、マルチスレッドの出番だろw
280 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 00:53:16 ID:zB6RGP0j] >>279 タスクとやらでやってみたけど、劇的に早くなるな。すぐに作れるしソースもきれいにできる。 いろいろ改良してみるよ。 まあ、固定概念にひたってるやつは頭が固いってことだよ。
281 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 01:58:51 ID:ScANyKa7] サビキ仕掛け
282 名前:名前は開発中のものです。 [2007/04/26(木) 15:18:59 ID:LD+Ad5uI] >>280 釣れますか?
283 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 17:45:46 ID:EAeyMYqP] 頭がやわらかすぎるのも考え物だな
284 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 17:54:31 ID:ltksUv3A] 脳死者の脳は 溶けちゃってるっていうしなあ
285 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 19:42:12 ID:4pZ8geJG] お前らってタスクリストってソート使う?
286 名前:名前は開発中のものです。 mailto:sage [2007/04/26(木) 19:53:28 ID:hISFYhVD] OT使ってるからソートはしない。 けど最近のPCは速いからソートしても良いかもなー
287 名前:名前は開発中のものです。 [2007/04/26(木) 23:47:26 ID:LD+Ad5uI] OTってOrderingTable?これも業界用語だよな・・・
288 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 13:18:26 ID:xqg9LfBt] >>280 その劇的に早いきれいなソースを出さないのは何故? いや、まぁネタにマジレスするのもどうかとは思ったんだけど
289 名前:名前は開発中のものです。 [2007/04/28(土) 15:51:51 ID:ABQqrv+P] >>288 教えたくないから。 これって起業レベルのノウハウかもしれないから。社内で提案するかもしれないものをここにはさらせないでしょ。
290 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 16:05:29 ID:B/ltLmOS] 289 < 俺・・・このタスクが完成したら起業するんだ・・・
291 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 16:50:13 ID:QLBq9OY8] タスクシステムで起業とか、お前は小学生かと。
292 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 18:47:35 ID:/H8LY+k/] 技術が儲けになると思う御年頃なんだろ インド、中国、韓国あたりに行くのなら、技術が儲けになるという話も間違いではないけど・・・
293 名前:名前は開発中のものです。 [2007/04/28(土) 19:16:43 ID:00qBiuMZ] 釣られんのよw
294 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 23:22:08 ID:XL3V8yE3] ソートはしないな。最初からリストの最後もしくは最初に追加するようにするから。 タスク作成時に必要なリストを作る。 まあ、動的に変化するものは専用の管理クラスかなんか作るだろうな。 プライオリティとかは標準的な制御に入れない。美しくないし。
295 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 23:51:37 ID:F7O57cEz] おまいらなんの目的でソートしてる? コリジョン判定の回数を減らすためなら、おいらは2分木でデータを追加していくから実質ソート済み。
296 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:14:38 ID:KdpdkeKK] 他のタスク(郡)にアクセス(干渉(値見たり書き換えたり))するとき
297 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:21:54 ID:HaLkae7w] いきなり話かわるけど線形リスト(単方向リスト、チェーン・・・・呼び方はいろいろあるけど)だと挿入や削除は早いけど探索は遅い これが配列(ベクター、固定領域)だとまったく逆の性質になる 実はゲームに不向きなんじゃないか?タスクシステムって
298 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:30:25 ID:yZTB6Hgr] 自分のプログラムに向いたコンテナを使えばいいじゃん。 タスクがリストだってイメージはメモリの動的管理をケチるような (ヒープじゃなくてワークとか言ってるような)時代の名残じゃないかと思う。
299 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:30:47 ID:KdpdkeKK] そんな事言ったらコンピュータ自体がゲーム作るのに不利になるって結論に達すると思う。 vectorだと揮発性だからポインタ辺りが面倒くさいし、固定領域だとスタックオーバーフローとか何とかが起こるしね。
300 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:37:24 ID:oN9CX2Ee] 固定領域でスタックオーバーフローって意味不明。 馬鹿は下手に用語を使うな。
301 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 01:39:24 ID:KdpdkeKK] 固定領域じゃスタックオーバーフローは起こらんな。 ちょっとボケてた。
302 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 02:20:56 ID:ybvN8RFV] >>297 リストの配列にすればいいさ リストから一つのオブジェクトだけを探索したいときは遅いままだけど そういうときはあらかじめハンドルなりポインタなり握っておけばいい
303 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 07:36:23 ID:HDYBA+tg] Javaの場合だけどリストでもなくBlockingQueue<Task>にいれてる。優先度別にqueueも複数ある queue内のすべてのタスクのupdateと必要な描画処理が20ms以内ならまずまずかな
304 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 14:50:39 ID:LzYPF20u] >>289 みたいなのがいる限りタスクシステム(笑)も安泰だな
305 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 14:52:33 ID:nUOoY/JG] イテレートの速い順序付けツリーってあるの?
306 名前:名前は開発中のものです。 mailto:sage [2007/04/29(日) 15:34:08 ID:tvNJg+l3] >>305 順序付けツリーなら C++ の set や map がだいたいそんな感じだろう。 で、イテレートの遅いコンテナなんてあるの?
307 名前:名前は開発中のものです。 mailto:sage [2007/05/01(火) 13:07:57 ID:Nbo+fhA7] deque? わかんねw
308 名前:名前は開発中のものです。 mailto:sage [2007/05/01(火) 22:39:08 ID:2cazExNO] アドレスがばらけるコンテナはキャッシュミスが起きやすい。 ハッシュのコンテナも構築時間を犠牲にしないものはスカスカのテーブルをそのまま辿るしかないな。
309 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 14:23:53 ID:pqs4xK60] 皆さんのやってるプラットホームはやはりPC? コンシューマなひと、いなさそうだが・・・
310 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 15:27:45 ID:AAlSvZp8] それを何故このスレで聞くのか
311 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 17:38:15 ID:m1OoG9Xt] 一応居るけど
312 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 18:08:30 ID:e9oT09wF] メガドラやってるよw あのスレは見てない
313 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 19:38:53 ID:X2Bn3rtL] コンシューマやってるけど何が聞きたいの ハードに依存してない部分だしPCとあんまり変わらんよ?
314 名前:名前は開発中のものです。 [2007/09/02(日) 04:39:14 ID:OA6cGu0G] そうなん? てっきり、いまだにタスクシステム使ってるのかと
315 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 04:49:20 ID:4YT1t12/] 君の思うタスクシステムの具体的な実装が どういうもんか言ってもらわんと答えようがないなあ その通りかもしれないしそうじゃないかもしれないよ
316 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 14:53:28 ID:O3956k1d] なんかGDGDだなこのスレw でも、嫌いじゃないので、おいらもGDGDカキコ タスクの良いところってのはその柔軟性だよな。 技術的にはぜんぜんたいした事をしてるわけじゃない。 とくに、このスレではタスク=リストになってるが、別にリストなんて「高度」な 事をしなくても、ただの配列でもまったく問題なく実現できる。 (無論効率は若干落ちるが、即時にデータ起動の並列もどきルーチンが 作れるのでいろんな環境で便利) 唯一凄いと思えるのは、歴史的な経緯かな。 プログラム主体の8bit時代において、 プログラムでデータを管理するのではなく、データで、プログラムを管理(プログラムを選ぶ) すると言う、データ主体の発送が凄かった。
317 名前:名前は開発中のものです。 [2007/09/02(日) 16:25:59 ID:OA6cGu0G] リストが高度とか、時代錯誤もは(ry
318 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 20:53:53 ID:O3956k1d] >>316 おいおいw わざわざ「」付で言ってるんだから 比喩に決まってるだろ リストが「高度」な技術と言える程、 タスクの実装に技術はいらないって意味だ ゆとりじゃあるまいし、勘弁しておくれw
319 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 22:16:13 ID:UfEehfKc] 茶でも飲んで落ち着けw
320 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:01:13 ID:O3956k1d] うむ、そうするか ∧_∧ ( ´・ω・) ズズー ( つ旦O と_)_)
321 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:14:50 ID:O3956k1d] せっかくなのでリストを使わないタスクをネタ代わりに投下 てきとーに作っただけなので、コンパイルすらしてないけどなw #define MAX_TASK 256; struct tcb{ void (*proc)(tcb*); //処理関数 int work[10]; //ワーク }; tcb* make((void (*proc)(tcb*)){ //生成 for(int i=0;i<MAX_TASK;i++){ if(TCB[i].proc == null){ TCB[i].proc = proc; return &TCB[i]; } } return null; } void del(tcb* deltcb ){ deltcb->proc = null; } void exec(){ //実行 for(int i=0;i<MAX_TASK;i++){ if(TCB[i].proc != null)TCB[i].proc(&TCB[i]); } } tcb TCB[MAX_TASK];
322 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:19:25 ID:O3956k1d] void main() { //初期化 for(int i=0;i<MAX_TASK;i++)TCB[i].proc = null; //実行 exec() } まあ、リストに対するアンチテーゼと、 こんなに短くてもそこそこ機能するってのが言いたかっただけなんだけどね なんにせよ、タスク(というか、並列動作もどき)ってのは、そんなご大層なものじゃないんで、 もう少し気軽に使えてもいいと思うな。
323 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:25:34 ID:4YT1t12/] std::vectorとclass Hoge { virtual void Update() = 0; };なら そのソースの1/3くらいで終わる
324 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:34:48 ID:O3956k1d] >>322 そうか、よかったな。 ただ、このソースは4KのRAMでも動くんだ。 あと、Cを始めて2日の初心者でも理解できるぞ。 ついでに言えば、C++のない環境でも動く。 別に煽ってるわけじゃなくて、316で書いたように 柔軟性が高いということが言いたいだけなんだ。 シンプルなロジックであるが故の柔軟性 かつ、高い並列性がタスクの凄いとこなんだよな
325 名前:名前は開発中のものです。 mailto:sage [2007/09/02(日) 23:44:30 ID:O3956k1d] >ただ、このソースは4KのRAMでも動くんだ。 おっと、タスク数を256にしていたか、4Kじゃ動かんなw まあ、意図はわかると思うんで、適当に読み替えてくだちぃ
326 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 00:13:38 ID:OKOrcl0B] うーん、まあ好きなように作ってればいいと思うよ
327 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 00:50:28 ID:eAiA8cQA] >>324 数メガの RAM と C++ コンパイラのある環境で得意げに >>321 みたいな コードを書かないでいてくれるなら文句は無い。
328 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 01:11:08 ID:tpNXAe5A] >326 いや、無論自分自身は好きに作ってる。 ただ、タスク=LIST管理とかなってきてて、 デザパタとか絡ませる風潮がなんとなくいやなんだ。 もちろん、そういった事を否定するわけじゃなくて、 もっとシンプルなものって事が言いたいだけだよ。 > 数メガの RAM と C++ コンパイラのある環境で得意げに >>321 みたいな > コードを書かないでいてくれるなら文句は無い。 いや、得意気もなにも普通に組むよ。 無論システムとしては組まないけどね。 というか、逆に聞きたいんだけど、並列ではないシステムで(要するにシングル)で組んでて、 一時的に、並列的な挙動が欲しい時って、どうやって組んでるの? まさか、システムに組み込ませるわけじゃないよね? 自分はそういったことが頻繁にあるんで、 そんな中での小技テクとして、上記のようなコードをチョコチョコつかってる。 逆に言うと、タスクなんてその程度のもの。 無論、システム化してべったりって好きだけど、その環境だけで組めるわけじゃないからね。
329 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 01:35:46 ID:eAiA8cQA] >>328 >>323
330 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 01:47:58 ID:OKOrcl0B] >というか、逆に聞きたいんだけど、並列ではないシステムで(要するにシングル)で組んでて、 >一時的に、並列的な挙動が欲しい時って、どうやって組んでるの? まさしく>>323
331 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:06:52 ID:tpNXAe5A] >>329 なるほど、STLに行くのか。 て事は基本的な方向性(末端でタスク生成)は変わらないんだよね? ちなみに自分がかかわったプロジェクトでは、STLはメモリの消費量と、 ガベコレを意識できないプログラマがいて、使えなかった。 厳密には使えたんだが、STLの類は、みんな使うとなったら、とことん使うので、 あっという間に使用量が膨れ上がって、パンクしたw。 (搭載メモリは16Mな) 別の件でSTLはおろか、Cの標準ライブラリすらない環境もあったので、 頼らない組み方が基準にはなった。 確かに、つかえりゃ楽なんだけど、 Window以外は、鬼門なことがままあるからなあ>STL あと、新人に理解させる期間が必要という現実的な問題もあるしなw ま、タスクの話からは若干それたが、 329の環境が、STLが使えるような環境を基準に出来れば、それはいいことだと思うよ。 こっちは中々難しいんで、小技テクでごまかして進むしかないけどw
332 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:37:16 ID:eAiA8cQA] >>331 関数ポインタと固定ワーク領域(+無理やりキャスト)が仮想関数に 置き換わっただけで、基本的な考え方は同じ。 あと、新人に理解させるって点で言っても、関数ポインタや無理やりな キャストよりも仮想関数のほうが自然で理解しやすいはず。特にアセンブラを やらない今の時代では。 生配列と vector の違いについては今の話にはほとんど関係ないけど、 「それ何年前の話?」ってぐらいの時代遅れ感がする。 vector 出しただけで STL 全体の話になってたり、「ガベコレ」とか言ってる あたりで理解も怪しいし。
333 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:54:20 ID:OKOrcl0B] >ちなみに自分がかかわったプロジェクトでは、STLはメモリの消費量と、 >(ry もうこの辺って用途によるんじゃないかなぁ 360とかPS3みたいにメモリが贅沢な環境でも切り詰めりしなきゃならない場面もあるから >>321 みたいな実装になることもあるよ 勘違いして欲しくないのは、本来やりたいことってのが 大量の「関数と実行コンテキストのペア」を如何に管理するかって話なんだから >>321 の例にしても>>323 の例にしても、所詮はその実現方法の1つに過ぎないことかな 逆に質問してみるけど 9割が128バイトのサイズのタスクと残りが1024バイトのタスクが混在するような状況下で あなたはどうやって管理するんでしょうか
334 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 02:58:58 ID:sckJXuMq] まあvectorだと、「削除や挿入などの操作」と「タスクへのポインタの保持」が背反するんだけどな。 321みたいな配列系は、リスト用のポインタ変数すら削りたいほどメモリが逼迫してて、 順番の制御が要らないのならいいんじゃね?
335 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 03:27:47 ID:Ic41WPtX] >>332 > 関数ポインタと固定ワーク領域(+無理やりキャスト)が仮想関数に > 置き換わっただけで、基本的な考え方は同じ。 なるほど、ここは了解っす。 > vector 出しただけで STL 全体の話になってたり、「ガベコレ」とか言ってる いやいやw、実際使用する段になったら、vectorだけ使用してOKって話にはならんでしょ。 これがだめ、あれがOKって細かく指定するならよいんだけど、そこまでして STL使うプロジェクトには参加したことないなぁ。それに制限するならSTLの意義が薄れてくるし。 (確かに、vector使えるだけでもかなり変わるとは思うけどね) ガベコレについては、話が飛びすぎの感があったんで細かく触れなかったが、 メモリの断片化による、ガベコレの処理落ち、あと、メモリ確保エラーのコトな。 現在のSTLでこれらが一切起こらないことが保証されてるならいいけど、 そうでないなら、対処を知らない人のために、何らかの対策や方針が必要になる。 件のプロジェクトではそれがなくてヤバいことになった。 > あと、新人に理解させるって点で言っても、関数ポインタや無理やりな > キャストよりも仮想関数のほうが自然で理解しやすいはず。 あー、ここは同意。 無理やりキャストよりは、言語使用に沿った概念のほうがいいからね。
336 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 03:46:43 ID:Ic41WPtX] >>333 基本的には1024byteのタスクを先に生成して(起動するまでSLEEP)から、128byteタスクの生成かな。 途中でどうしても、フルに使わなきゃならない場合は、グループでの生成と削除を行う。 この例だと、8タスクを1グループとして、生成と削除を行う。 大体、こんなかんじっす。
337 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 03:48:53 ID:eAiA8cQA] >>335 ほんと、胡散臭いな。 vector は許可が無いと使えないのが当たり前だと 思ってそうだし。 標準ライブラリに使用制限を付けるほうが異常でしょ?制限を付けるには 理由が要る。コンテナの動的メモリ確保に問題があって禁止するなら、 アルゴリズム系ライブラリまで "STL" とまとめて禁止することは無い。 C++ の言語仕様にも標準ライブラリにもガベコレは無い。 Boehm GC でも 使ってるの? メモリの断片化がどうのこうの云うなら malloc も new も同じことなんだけど、 それらも使わないことにしてるの? あー。 new が禁止になってるなら仮想関数を使わないのかな?
338 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 04:13:34 ID:Ic41WPtX] >>337 いや、なにをうさんくさがってるのか知らないけど、 自分の考えや方針と違う人がいるのがそんなに気に入らないのかな? > ほんと、胡散臭いな。 vector は許可が無いと使えないのが当たり前だと > 思ってそうだし。 そんなことは思ってもいないが、STL使用時はメインの人に確認はするよ。 まあ別に、どうでもいいけどね。 > メモリの断片化がどうのこうの云うなら malloc も new も同じことなんだけど、 別にmallocは禁止にしてないけど、ほとんど使わないね。 仮想関数は、c++が使える環境かどうかとメモリ量によるね
339 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 05:14:29 ID:eAiA8cQA] >>338 気に入らないのは、不確かな理由で複雑なコードを書いてしまうこと。 vector を使えない理由をいろいろと説明しようとしてくれていたけど、その理由の 真偽が胡散臭いってことね。 ただ、これ以上追究する気もなくなった。
340 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 09:21:14 ID:y2Xn2ykc] >>338 提示したソースが洗練されてるとは言わんが、 ほぼすべてのC環境で動くコードが、 最近の環境に適したコードではないからといって、 胡散臭がられるとは思わなかったw 短くて、美しいソースが正義とか思ってそうだね。
341 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 09:50:46 ID:OKOrcl0B] >>336 君のやり方って1フレーム中に 毎フレーム256個のタスクがアクティブかどうかチェックするための オーバーヘッドが発生するんだけど(これ自体がそもそも重大な問題なのに) そのメモリの割り当て方はそれを上長させますよ
342 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 10:28:10 ID:2Imr3kJv] >>340 id:O3956k1d = id:y2Xn2ykc なのはいいとして(レス番が一個ずつずれてるぞ) 胡散臭いと言われてるのはSTLとガベコレを混同してるid:tpNXAe5A = id:Ic41WPtXd の存在自体 であって、君のことじゃないだろう?
343 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 11:23:55 ID:VocmouaK] つか、なんで>>331 でガベコレの話がいきなり出てきたわけ?
344 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 11:40:25 ID:ckJtc0Qf] >>331 >(搭載メモリは16Mな) ドリーmあqswでfrgtyふじk 胡散臭がってる人とかPCの人には分らんかもしれんがコンシューマだと プロジェクトによってはSTLはおろかC++も使えないことがあるよ。 C++許可でもnew禁止、とかさ。 古い人(ちょっと偉い人)がプロジェクトに混じるとC主体になったりするし。 >>340 正義がまかり通る職種ではないし、主義主張を煽るような発言は荒れるぜー。 プログラマは性格悪いからなw
345 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 11:44:32 ID:ckJtc0Qf] >>343 C++かSTLにガベコレなんて実装されてたっけ? 記憶にないんだけど。
346 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 12:25:32 ID:rM0ce6hj] >>344 ゲームじゃないけど RAM128バイトでcコンパイラも無いターゲットで仕事したことあるぞ
347 名前:名前は開発中のものです。 [2007/09/03(月) 13:20:45 ID:BR9raoz2] /' ! ━━┓┃┃ -‐'―ニ二二二二ニ>ヽ、 ┃ ━━━━━━━━ ァ /,,ィ=-;;,,, , ,,_ ト-、 ) ┃ ┃┃┃ ' Y ー==j 〈,,二,゙ ! ) 。 ┛ ゝ. {、 - ,. ヾ "^ } } ゚ 。 ) ,. ‘-,,' ≦ 三 ゞ, ∧ヾ ゝ'゚ ≦ 三 ゚。 ゚ '=-/ ヽ゚ 。≧ 三 ==- / |ヽ \-ァ, ≧=- 。 ! \ イレ,、 >三 。゚ ・ ゚ | >≦`Vヾ ヾ ≧ 〉 ,く 。゚ /。・イハ 、、 `ミ 。 ゚ 。 ・
348 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 13:31:16 ID:ckJtc0Qf] 128バイト?キーチェーンとかでももう少しありそうなんだが。 つか、8bit以下のCPUならコンパイラよりもアセンブラだろ。 小さいならバイナリを打ち込んだりとか。
349 名前:名前は開発中のものです。 mailto:sage [2007/09/03(月) 22:41:28 ID:l9Qlmw/p] ワークがちょびっとしかなくても ROMが十分あればどうとでもなる
350 名前:名前は開発中のものです。 mailto:sage [2007/09/04(火) 02:25:05 ID:+Mg349f+] もちろんアセンブラ 他に選択肢は無いし ちなみに、CypressのCY7C63101か何かだった
351 名前:名前は開発中のものです。 mailto:sage [2007/09/07(金) 22:50:02 ID:CXdTTUEg] 時代錯誤のロートルはもう死んでくれ。 お前の糞テクニックなんて今はもう害悪にしかならんよ。
352 名前:名前は開発中のものです。 mailto:sage [2007/09/10(月) 00:23:29 ID:QZRbzkCO] \|/ /⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄ | ゜Θ゜)< そうでもないよ。 | ∵ つ \______ | ∵ .| \_/
353 名前:名前は開発中のものです。 mailto:sage [2007/09/12(水) 13:27:57 ID:ZYdwKK9S] >>346 それってPICだろ・・・・
354 名前:名前は開発中のものです。 mailto:sage [2007/09/12(水) 15:51:28 ID:+wMsl3iC] >>353 Cypressの8bitマイコンです