1 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 04:51:53 ID:bGSXJYb0] タスクシステムについての議論、相談、質問、雑談などのスレです 前スレ pc11.2ch.net/test/read.cgi/gamedev/1173708588/
2 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 04:54:13 ID:bGSXJYb0] White Paper - Programming homepage3.nifty.com/moha/programming.html タスクシステム www5f.biglobe.ne.jp/~kenmo/program/task/task.html CodeZine:本格的なシューティングゲームを実現するタスクシステム(タスクシステム,シューティング,ゲーム) codezine.jp/a/article.aspx?aid=297 いまどきのタスクシステムの実装 omoikane.my-sv.net/gcss/tasksystem/index.php ゲーム・ノ・シクミ 第11回 C++によるタスクシステムの実現 今は無き C MAGAZINE 2006年1月号 www.cmagazine.jp/contents/200601.html
3 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 17:53:51 ID:3YteMgDl] Logician Lord … 【コンピュータゲームのからくり】 ※ウェブアーカイブのキャッシュ web.archive.org/web/20041009222313/www.hh.iij4u.or.jp/~peto/Games/games_top.html ウェブでタスクとかタスクシステムについてまとまった情報を提供したのは このページが初めてだったのだが、残念なことに既に消滅してしまっている。 このページが登場する以前はgoogleで「タスク|タスクシステム」等で検索しても ゲームプログラミング関連のページはひとつもひっかからなかった 当然ながら、Cマガにおいてド素人さんのタスクシステム紹介記事が載る前の話な
4 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 18:00:24 ID:3YteMgDl] 4 :名前は開発中のものです。:2007/03/13(火) 01:05:48 ID:lSPAnQVN 暇だったんで書いてみた。添削できる人がいたらよろしく。 タスク プロセス・スレッド・ファイバなど実行パスの総称。 この用語はシステムによって異なるものを指すため、動作システムを明らかに するか、「実行する何か」といった抽象的な意味でのみ使うことが推奨される。 古典タスク (別名: ファイバ/軽量スレッド/マイクロスレッド/ノンプリエンプティブスレッド) →ファイバの項を参照 ただし、ゲームのプロセス管理システムとして実装されたものは、コンテキストスイッチの他に 優先順位や実行順序のソートなど各種管理機能を備えたものが通常である。 擬似タスク (別名: 関数ポインタリスト) 関数ポインタ・クラス・(関数ポインタを持った)構造体などをリストで繋いだもの。 古典タスクの機能のうち個々のタスクをリストで繋ぐ部分のみを継承したものと思われる。 データ構造にツリーや配列などの変種がある。一部のゲームプログラマのローカル用語。 注: Winedows3.1等の擬似マルチタスクとは関数のリターンが必要なところは同じであるが、 コンテキストスイッチが伴わないところが異なるため、同じものとは言い難い。
5 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 18:01:49 ID:3YteMgDl] 5 :名前は開発中のものです。:2007/03/13(火) 01:06:36 ID:lSPAnQVN プロセス[Process] →ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9 注: 組み込み業界ではプロセスをタスクと呼ぶ慣習がある。 ゲーム業界は組み込みに近いシステムから同時代のPC並のものまで主流なシステムが 増えたため、異なる方面のエンジニアが交じり合い用語の混乱を招いていると思われる。 スレッド[Thread] (別名: ライトウェイトプロセス/プリエンプティブスレッド) →ja.wikipedia.org/wiki/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29 ファイバ[Fiber] (別名: 古典タスク/軽量スレッド/マイクロスレッド/ノンプリエンプティブスレッド) 軽量スレッドとも呼ばれる。並列的な記述が可能だが、スレッドで必要な ロックが必要ない点がメリットである。コンテキストスイッチをOSではなく アプリケーションが明示的に行うスレッド。WindowsではCreateFiber()で作成できる。
6 名前:名前は開発中のものです。 mailto:sage [2007/12/04(火) 22:58:33 ID:IISCFTco] 普通のゲームプログラムとアルゴリズムは変わらない。 ただASM臭い実装を好むという嗜好に過ぎない。
7 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 01:23:10 ID:KjVlOJvV] 【タスクシステム狂信者のバイブル】 ■松浦本 シューティングゲームアルゴリズムマニアックス www.sbcr.jp/books/products/detail.asp?sku=4797327316 アクションゲームアルゴリズムマニアックス www.sbcr.jp/books/products/detail.asp?sku=4797338954 シューティングゲーム プログラミング www.sbcr.jp/books/products/detail.asp?sku=4797337214 タスクシステム厨が信奉する松浦教祖の本 ■やね本 Windowsプロフェッショナルゲームプログラミング1、2 www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0314-X www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-0603-3 BM98の中の人の本。残念なことに絶版 ■逆引き本 逆引きタスクシステム www.shuwasystem.co.jp/cgi-bin/detail.cgi?isbn=4-7980-1169-X タスクシステム厨の書いた本
8 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 01:29:22 ID:KjVlOJvV] 【タスクシステム厨が読むべき不朽の名著】 ■shi3z本 Direct3D プログラミングガイドブック www.seshop.com/detail.asp?pid=159 3Dエヴァンジェリストの本。嬉しいことに在庫あり ■山崎本 ゲームプログラマになる本 www.cqpub.co.jp/hanbai/books/35/35751.htm めざせゲームプログラマ www.cqpub.co.jp/hanbai/books/35/35641.htm 日本におけるメガデモ第一人者の本。残念なことに絶版
9 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 08:00:47 ID:Lh4sjdD/] ↑に古臭い本が紹介されてるけど、これ使えるの?
10 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 11:36:59 ID:Jvl1n8OM] >>9 わからん。が、期待は禁物。正直、目次からはそんな感じはしないなぁ。 大学とかで見たら、立ち読みして見れ。
11 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 12:10:18 ID:Isze4xKb] >>8 最後の二つはURLが逆? めざせゲームプログラマ は持ってます
12 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 12:54:53 ID:+KnvWAen] 絶版なっているやつ 誰かスキャンしてpdfで公開してくれ
13 名前:名前は開発中のものです。 [2007/12/05(水) 22:59:09 ID:Ng0dTUw2] >>8 >ゲームプログラマになる本 >www.cqpub.co.jp/hanbai/books/35/35751.htm 昔かって殆ど読んでないが持ってた、表紙見て思い出した 早速読んでみよう
14 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 23:25:55 ID:A6jH8VGj] タスクシステムが理解できなければ、職業ゲームプログラマになれないんでしょうか?
15 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 23:28:17 ID:VOAxOcjQ] YES. 使う使わないは別にして、この程度も理解できないような頭では、 プログラミングを職業にすることはあきらめた方がいい。 が、プログラマというのは所詮未来無きIT土方であって、 理解できずにあきらめた方が出世できる、とも言える。
16 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 23:50:00 ID:Jvl1n8OM] >>15 それは・・・微妙に問題を摩り替えてる気もする。 プログラマでも、コーディング猿ならともかく 色々とやる人間はどこでも働き口見つけられるし、 そういういみで、より出世しやすいだろ。 問題は、プログラ"ム"しかできないプログラマがダメなだけ。 会話や交渉、人の扱い・金の計算などなど、ちょっとした事でも それらができれば、単純なプログラマよりも幅広い選択と未来がある。 Sヨが精々な人も同様に、それほど未来がないしねw
17 名前:名前は開発中のものです。 mailto:sage [2007/12/05(水) 23:52:53 ID:rqZWEfda] そんな御託は会社説明会で偉そうにぶっとけ。
18 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 00:35:26 ID:5WVY/F2x] ゲームにハマっている間に1000いってたので、500レス一気読み 441からのネタに対するひとつのソースがあったけど、今更だな。 > 【1.タスクシステム=Logician Lordで紹介されているもののことだよ】 > ギャラクシアンとその直系に見られる特徴的な実装こそタスクシステムであり > その要件を満たさない異形のコードは全て紛い物だ。タスクシステムとか名乗るな > > 【2.タスクシステム=リスト巡回UPDATE。ていうかforeachだよ。】 > ギャラクシアンのそれとは全く別物の、異形のコードであろうとも > 俺がタスクシステムって呼べばタスクシステムなんだいバーロー 最後のこれいいな。俺はまさに2だ。 ゲームでオブジェクトの動作に使われている巡回UPDATE=タスクシステム
19 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 00:41:53 ID:2ewBanaL] >>16 そんなこといったってプログラム組めると知られたら 一生プログラム組まされるにきまってるだろ? 実はどこの現場でもプログラマいねーんだ でもだからっつってプログラマの給料が高いわけじゃない そんなたけーなら開発やめるor別のプログラマ探す。以上 ってだけ 最近、ゲーム以外の現場でもこんな感じ めっちゃやる気ない。後継者不足で中小企業がつぶれたりしてるしね っていうのは世界の労働力が大暴落してんだよね 中国とかインドとか発展してきてるしね(つまり○投げ) んなもんで今後さらに苦しくなることが予想されるし そんなの実力云々でどうのこうのできるはずもないのであきらめが肝心 まあ、日本の人件費で物作るのがそもそも割りにあってないっていうかそんなん いまからプログラマになんてなろうと考えちゃ駄目だよ。これはマジで
20 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 00:48:20 ID:5WVY/F2x] あと>2の >いまどきのタスクシステムの実装 >omoikane.my-sv.net/gcss/tasksystem/index.php >ゲーム・ノ・シクミ 第11回 C++によるタスクシステムの実現 >今は無き C MAGAZINE 2006年1月号 >www.cmagazine.jp/contents/200601.html この2つはもう要らなかったんじゃね? 追加で 関連スレ ゲームにおけるデータ構造・クラス設計・パターン pc11.2ch.net/test/read.cgi/gamedev/1155209226/ C++ と今時のハードウェアでやる古典タスクシステムに替わるもの ttp://www.issei.org/blog/archives/000225.html
21 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 00:50:33 ID:AhaNCitW] ↑派遣って自分の身の回りしか見えてないのか。 そうなるとインドや中国云々も世間で言ってることの受け売りだろう。 アウトソーシングで倹約できる分野の仕事に付いたら終わりかもしれないが できない分野のプログラマもいるんだよ。
22 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 03:19:35 ID:HdWZc6ta] ていうか解釈広くとっておかないとこのスレの意味がなくなるような まあデータ構造スレへいけばいいだけのはなしなんだけどね
23 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 06:11:52 ID:UqqGAKZG] 自分のこだわり 1、ゲームループはシーンごとに別にする 例えばRPGで移動シーンと戦闘シーンがある場合、 移動時は移動ループに入り、戦闘時は戦闘ループに入る。 お互いにまったく別の処理をするので、 お互いが見えない方がソースを簡潔に書ける。 データの受け渡しは、2つの元の関数(mainなど)から引数で渡す。 2、ゲームループにはウィンドウメッセージループ(GetMessage)を使う タイトル画面など自動的な処理する必要がない時は ループを回さないでCPU率を軽くする。 再描画やキー入力などに備えておくだけ。 アクションなどの場合はTimeBegin系を使う。
24 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 08:20:05 ID:AhaNCitW] 俺から見たら嫌な作りだね。 ゲームのメイン部分では、メッセージループでどんなAPIを使うかなど思考の埒外にしたいね。 Direct3Dのデバイスのリセットやメッセージループがあちこちに散らばるなんて デバッグで面倒が増えるだけだ。
25 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 08:22:16 ID:2ewBanaL] >>21 その場合、開発をやめてしまったり潰れてしまう会社が多い 人材倒産っていうんだとさ
26 名前:名前は開発中のものです。 mailto:sage [2007/12/06(木) 09:05:59 ID:aorsrR2s] >>23 ないわ
27 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 01:44:04 ID:CYfUYGS1] >>24 始めはシーンごとにコールバック関数を作っていたが、 グローバル変数やstatic変数を使いたくないので、 メッセージループ(の中にコードを書く)を複数作るようになった。 DirectXは使っていないのでよく分からないが、 デバッグは現在のシーンのコールバックかメッセージループ を調べるだけなので分かりやすい気もする。
28 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 05:37:29 ID:l8AiqE/q] これが同人ソフトだとしたら タイトル画面が魅力的になるようにキャラを動かしたりアニメさせましょうと提案されても 「CPU使用率が上がるから駄目」「そういう構造になってないから駄目」と拒否するのか だっさwwww
29 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 05:40:49 ID:cj/l/sA4] >>23 まぁ、mine sweeper 作るならアリかなぁ。
30 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 07:28:22 ID:CYfUYGS1] >>28 一般的に派手な動きは少ないシーンという意味で使った。 だからコンフィグシーンなどでもいい。 それとキャラをアニメさせたとしても、 OSに処理を返すとかをしっかりやれば重くならないと思う。 自分のレベルは昔の横シューティングぐらいで、 ホームページのフラッシュアニメレベルだとそうなりそう。 >>29 逆にロープレとか シーンの種類の多いゲームの方が向いている気がする。
31 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 13:14:00 ID:/PKo7xok] // たすくしすてむ foreach(ball b in balls) { b.update(); b.paint(); }
32 名前:名前は開発中のものです。 mailto:sage [2007/12/08(土) 15:37:53 ID:dpKOt0nT] >>30 シーンの切り替えでクロスフェード等を使う場合はどうするの? かならずフェードアウト/イン(もしくは一瞬)? ドラクエみたいに、フィールドの上で戦闘やショップの処理、 ステータス表示なんかを行いたい場合とかもどうするのか気になる。
33 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 05:57:18 ID:fYOmZnNF] >>32 クロスフェードというのは音楽のなんかみたいだがよくわからない。 ドラクエはショップを例にすると、 店の処理をポップアップ子ウィンドウを出して行う。 ドラクエの黒塗りのウィンドウがホントのウィンドウになる感じ。 店に入る時に、所持金、商品、所持アイテムなどのデータは受け取るが、 店には関係ない、主人公がどこにいるか、NPCがどこにいるかなどは、 まったく関係ない(コードに触れない)状態になっている。 もちろんデータは取って置いてあって、 店ループを抜けフィールドループに戻ると触れるようになる。 親ウィンドウメッセージが来たなら、店シーンに入る時に 保存しておいたメモリビットマップを使っての再描画、 閉じる(プログラム終了)、デフォ処理のみ行う。 子ウィンドウメッセージが来たなら、 キー、マウスによるカーソルの移動、決定、キャンセル、 WM_TIMERによるカーソルの点滅、 再描画、閉じる(店シーンの終了)、デフォ処理などを行う。 シーン切替えの説明にはなっていない気がするが、大本の違いは if(g_scene == SceneField) ** else if(g_scene == SceneShop) ** のチェックを、よくあるやり方の場合、1ループ毎に行っていると思うが、 シーンを切り替える場合は、一度チェックしたら **の所で別のゲームループまたはコールバックに入ってしまうので、 そのシーンから抜けるまでシーンのチェックは行わない。
34 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 06:57:29 ID:fYOmZnNF] お店のシーン(ゲームループ、コールバック)にも複数あって、 買う売る出るの選択、買う物の選択、売る物の選択、 誰が買うかの選択、「○○を買った」と表示し、 キー入力があるまで待つシーンなどがある。 お店だけでもシーンがたくさんあり、 シーンごとに分けるとコードが膨大になり、たしかにめんどくさい。 ただ、買う売る出るの選択、買う物の選択、誰が買うかの選択などは 文字列を選択するという共通の処理なので、個別にシーンを作るのでなく、 ひとつの文字列選択シーンを作り、使いまわしている。 そのシーンでは、どの位置の文字列を選択したかのみをチェックし、 そのシーンを抜けた後で、お金が足りているかなどのチェックをする。 「○○を買った」と待つのも、「扉を開けた」、「○○を手に入れた」 などと同じキー入力があるまで待つという共通の処理なので、 ひとつの待つシーンを作り、使いまわしている。
35 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 07:20:28 ID:nQCm/lvH] 誰もが普通に使うような技法や、誰もわざわざやろうとしない技法に特別な名前を付けて、 俺様天才! 俺様スゲーーーー!!! というのがタスクシステムの本質だとすれば、きっとスレ違いではないのだろうな。
36 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 09:00:37 ID:fYOmZnNF] >>35 確かに自分のやり方以外のやり方はあまり知らないので、 他のやり方と比べた客観的な説明にはなっていないのかも。 出直してきます。
37 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 19:28:44 ID:Lzb0B9+Z] >>33 クロスフェードってのは、元の場面をフェードアウトしつつ、新しい場面をフェードインすること。 ゲームの場合だと、元のシーンを後ろで動かしつつ、新しいシーンの描画のアルファ値を 上げていって切り替える感じかな。 計算や描画の重さもあるから、「前のシーンを動かしつつ」ってのは難しいかもしれんが。 シーン管理の方法は大体理解した。 ゲームのロジックの中にWindows独自のルールが平然と出てくるのは気になるが、 その辺割り切って作るならいいんじゃないかな。
38 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 20:16:34 ID:QBlb02fM] いまのマシンってワンシーンで限界まで性能ださないからロードさえ気をつければ クロスフェード(2シーン分)ぐらいなら普通にいけると思うよ PS2とかじゃ苦しいけど
39 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 20:24:41 ID:RxPCFRcK] >>38 > PS2とかじゃ苦しいけど あれは性能より VRAM が…
40 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 20:25:58 ID:RxPCFRcK] >>34 アニメーションはどうするの? ドラクエだと敵が動いたり、攻撃時にエフェクトが 出るような場合。
41 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 20:38:58 ID:QBlb02fM] 複数のシーンを絡ませて管理する機能が必要なんだから シーン同士を管理するシーンマネージャーを作ればいいだけの話じゃねぇの? シーン間を飛び越えてマップやキャラのデータが存在し続けるんなら キャラやマップはシーンに属さないっていうかシーンが抱えるべき情報ではない つまりシーンの前処理後処理でロードアンロードされないわけだな じゃ、誰がするのかというとさっき用意したシーンマネージャーが管理するわけだ シーン間を接続する役目もシーン間が絡む以上シーンマネージャの仕事だろう シーンクラスの役目は今の情報・状態から自分の表示・実行に必要なデータをシーンマネージャに 返す機能だけになるんじゃね? それをうけてシーンマネージャは複数のシーンを総合的にみて現在必要なデータを搾り出すと シーンマネージャに当たるもんは結構でかくなるぜ これをシーンごとに頑張って管理しようとするとデスマーチ確定
42 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 23:12:03 ID:rwPHbHKr] >>23 > 1、ゲームループはシーンごとに別にする つまりタスクシステムだね タスクを入れ替えることで違うシーンに対して別のループを提供できる もしタスクシステムを使わなければシーンの数だけほぼ同じソースを別個に書かなければならない 1箇所ソースを変更するだけでそれらのシーンすべてのループを書き換えることになりメンテナンス性が著しく落ちる > 例えばRPGで移動シーンと戦闘シーンがある場合、 > 移動時は移動ループに入り、戦闘時は戦闘ループに入る。 戦闘タスクと移動タスクを入れ替えるってことだね > お互いにまったく別の処理をするので、 > お互いが見えない方がソースを簡潔に書ける。 そう、タスクシステムではタスク単位で完結するから独立性が高い記述が可能になる > 2、ゲームループにはウィンドウメッセージループ(GetMessage)を使う CPU使用率を稼げるし、仮に必要になっても多少のループならタイマーで十分だよね > タイトル画面など自動的な処理する必要がない時は > ループを回さないでCPU率を軽くする。 タスクシステムを使えばシーンごとにまったく違う処理が書けるから シーンごとに違うメインループを書くことも可能なんだよね 仮にオープニングでアニメーションやデモを追加したい場合 タスクを入れ替えることで対応可能
43 名前:名前は開発中のものです。 mailto:sage [2007/12/09(日) 23:19:22 ID:rwPHbHKr] >>24 タスクシステムを使えばそれらは一箇所に記述するだけでいい 重複した記述を最小限にできるタスクシステムはデバッグにも役立つ >>27 限りなく正解に近い タスクシステムとはコールバック進化系の一種だ コールバックされる関数を制御する仕組みが追加されたものがタスクシステムなのだ
44 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 00:12:04 ID:kVa9UCh4] 何が「限りなく正解に近い」だ、このおっぱい占い野郎 「コールバック進化系」とか無駄にESP値を要求する造語を散りばめんな コールバック=何かをきっかけに呼び出される それだけだ。これの進化系ってどういうことだ。具体的に何に対して何が進化したんだ
45 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 00:17:12 ID:FgTvF4nS] また面白い燃料が投下されたようですね
46 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 01:07:39 ID:AFViqWGu] > > 1、ゲームループはシーンごとに別にする > つまりタスクシステムだね この時点で釣りとしか思えない。
47 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 08:12:39 ID:oZKWD7tz] 店なんか床に商品並べて店番一人置いておけばループ分けなど不要
48 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 11:26:27 ID:4KeM6Lnp] シーンって何よ? 言葉の定義なくして話進められても??だぜ
49 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 13:37:22 ID:NNHyQgcJ] また定義厨か さすがにそれはないな
50 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 16:08:36 ID:FhEMVCWa] >>48 さてはDirect3D使ったこと無いな?
51 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 17:15:59 ID:TRJA29h8] >>48 見た感じ ・タイトル画面 ・戦闘画面 ・マップ移動画面 みたいなのをシーンと書いてあるだけ。 >>50 なぜ突然Direct3D・・・ (IDirect3DDeviceN::BeginScene?)
52 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 18:15:58 ID:kVa9UCh4] 定義厨の俺でも さすがに>>48 はないな
53 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 19:32:53 ID:ynLW352R] ゲームをまともに作れないことが明らかな>>48 の発言に、一同、シーンとなった。
54 名前:名前は開発中のものです。 mailto:sage [2007/12/10(月) 19:44:32 ID:sWUDY/qD] プログラム開発現場の駄洒落は99%、発言者が死ねばいいのにという感想になる。 しかもバグの取れない苛立ちまでも一手に引き受けてな。
55 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 00:04:17 ID:T0+r8UQD] >>53 誰がシーンとなることを言えと
56 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 00:53:40 ID:ECQVp0Tr] さっきからチーンチーンチーンチーンってお前等は変態か?
57 名前:名前は開発中のものです。 mailto:sage [2007/12/11(火) 08:56:37 ID:xDs0NYc0] ユビキタスとかWeb2.0とかあんな感じの電波を感じるな
58 名前:名前は開発中のものです。 mailto:sage [2007/12/15(土) 22:33:07 ID:dW/LIK6y] >>44 説明しよう! >コールバック=何かをきっかけに呼び出される まさにその通りだ!! コールバック関数とは関数ポインタを呼び出し側に登録しておき 適宜呼び出される方式だ この方式はタスクシステムにも採用されている タスクヘッダには初期値としてタスクエンド(Cでは大抵NULLだろう)を示すポインタが入っている 図1.タスクヘッダ → タスクエンド ここにタスクを登録していくことで呼び出される関数が増えていく 図2.タスクヘッド → タスク1 → タスク2 → タスクエンド こうして生成されたタスクリストのタスクはタスクループで順番に呼び出されていく 図3.タスクループ ↓ タスクヘッド → タスク1 → タスク2 → タスクエンド 以上のような構造からタスクシステムはコールバック関数であるといえる コールバック関数に比べてタスクシステムを特徴づけているのは次の3点だ 1.呼び出し側と呼び出され側が1対多である 2.呼び出し側は機能を持たない 3.呼び出され側がさらに呼び出され側を登録することができる 以上の特徴により、動的に機能を拡張し、相互に連携することが可能になったのである
59 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 00:14:11 ID:tU3FXTu1] >>58 > 以上の特徴により、動的に機能を拡張し、相互に連携することが可能になったのである 単にインスタンスの数が可変なだけで、連携については何も触れてないじゃん。
60 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 01:22:25 ID:Uds4tbII] 先頭をheadにするなら末尾はtailにしてくれ 末尾をendにするなら先頭はbeginかstartにしてくれ 俺が言いたいのはそれだけ
61 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 01:27:07 ID:tU3FXTu1] >>58 どうでも良いけど > タスクヘッダには初期値としてタスクエンド(Cでは大抵NULLだろう)を示すポインタが入っている 番兵1つ置いた方が、余計な場合分けが減って嬉しくない? BSDで使われてる TAILQ でも、ヘッドは #define TAILQ_HEAD(name, type) \ struct name { \ struct type *tqh_first; /* first element */ \ struct type **tqh_last; /* addr of last next element */ \ } っつー定義だよな。 あと C++ だと昔は std::list<> 好きだったが、最近は std::vector で、フレームの最後に まとめて std::remove_if と std::vector<>::erase 組み合わせて済ませる方向に。
62 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 01:50:58 ID:eEobSst5] >>58 タスクシステムが誕生する70年代末期よりも遥か前の 古典的なコンピュータのプログラムで既に同じようなことをやってるだろ。 例えば、割り込み信号にフックするとき、つまり割り込み処理ルーチン (常駐プログラム・サービス)を割り込みベクタテーブルに追加するとき 既存のルーチンがあればそれと数珠繋ぎにするだろ
63 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 02:16:17 ID:eEobSst5] 単純で乱暴なやり方をするなら、割り込みベクタテーブルに 既存ルーチンの代わりに自分のアドレスを上書きして 先に自分の処理を呼び出させ、自分の処理が終わったら 既存ルーチンへジャンプさせる。つまり割り込み処理に割り込む。 もう少し紳士的なやり方なら(同じ割り込み信号にフックする) 割り込み処理ルーチン同士で協定を作り 割り込み処理ルーチンのリストを管理するルーチンを用意する。 こうした仕組みは>>58 の言う 1.呼び出し側と呼び出され側が1対多である 2.呼び出し側は機能を持たない 3.呼び出され側がさらに呼び出され側を登録することができる を全て満たしている。 呼び出し側=ハードウェア 呼び出され側=割り込み処理ルーチン ハードウェアは割り込み信号に応じて割り込みベクタテーブルの 当該アドレスに登録されてる割り込み処理ルーチンを呼び出す。 そしてリストに登録された順に次々呼び出される。 割り込み処理ルーチンは処理完了時のリターン命令を 他のルーチンへのジャンプ命令に書き換えることで 子ルーチンの追加が可能
64 名前:名前は開発中のものです。 mailto:sage [2007/12/16(日) 02:18:07 ID:eEobSst5] 紳士的なやり方なら 呼び出し側=割り込み処理ルーチンのリスト管理プログラム、か
65 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 15:54:34 ID:d05xYvvB] 意見は出したくないが文句はつけたい そんな嫌タスク厨の巣窟だというのがわかる流れでしたね 文句つけてる暇があったら、58がかすむくらいの有益情報でも書き込めっての
66 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 16:25:30 ID:fh4AIKkl] またブーメラン芸か
67 名前:名前は開発中のものです。 [2007/12/17(月) 16:43:25 ID:fh4AIKkl] =210.130.51.98 ヘ( `Д)ノ
68 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 21:14:21 ID:PVpDrrvq] コールバック進化系(笑)スィーツ(笑)
69 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 21:26:04 ID:FK63IV8y] 確かにプログラム用語の大半はスイーツ(笑)テイストを感じさせる回りくどい言い回しだな
70 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 23:00:26 ID:ZuWNJ+Fe] つまりタスクシステムは何なわけ? わたしわかりまぁせん
71 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 23:12:00 ID:DxnpSp/c] foreach
72 名前:名前は開発中のものです。 mailto:sage [2007/12/17(月) 23:52:08 ID:lVhxy2mV] ここはwhile(1);つかfor(;;);かな。最適化されてればどっちも同じだろうが。
73 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 20:23:42 ID:RgUcH/0L] 1フレーム毎に(大抵)全てのオブジェクトのupdateメソッドがコールバックされるシステム と考えていいんじゃね?
74 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 23:42:42 ID:LovnfmvP] ----------------------------------------------------------- 987 :名前は開発中のものです。:2007/12/03(月) 23:02:28 ID:hqsjjSWF スレのログ見ると、定期的に「タスクシステム=デザインパターン」とか絶叫してる人がいるみたいだが この人たちの言うタスクシステムってどのタスクシステムの話なんだろうね? 【1.タスクシステム=Logician Lordで紹介されているもののことだよ】 ギャラクシアンとその直系に見られる特徴的な実装こそタスクシステムであり その要件を満たさない異形のコードは全て紛い物だ。タスクシステムとか名乗るな 【2.タスクシステム=リスト巡回UPDATE。ていうかforeachだよ。】 ギャラクシアンのそれとは全く別物の、異形のコードであろうとも 俺がタスクシステムって呼べばタスクシステムなんだいバーロー ----------------------------------------------------------- 観察してると、どうもタスク厨って呼ばれてる子は後者が多いような気がしてきた。 何も知らない頭白紙の状態で松浦教祖に洗礼を受けたこの恐るべき子供たちは タスクシステムというフレーズにとても執着してるようだが、厨房神経を刺激する 何かがあるのか? とにかく何が何でもこのタスクシステムという古のローカル用語を俺様理論で 再定義・再構築してやろう、という無駄な努力がヒシヒシと伝わってくるんだが ある意味で(マムコ信者に言わせれば)由緒正しいwローカル用語をわざわざ 掘り起こしてきて流用するのは止めてくれって思う 「朕思うに」「新概念」「新解釈」「オナニー」「再構築」は好きなだけやっていいから なんか別の名前にしろよ。「リスト巡回UPDATE」でも「僕のforeach」でも 「エターナルフォースブリザードシステム」でも何でもいいからさ
75 名前:名前は開発中のものです。 mailto:sage [2007/12/18(火) 23:44:17 ID:m+PO2WK4] 私はもうタスクという言葉自体を使ってない
76 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 08:00:04 ID:hUc1dbeP] ゲイは身をタスク。
77 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 15:24:26 ID:Ir64JLrB] ○○システムって言い方自体、かなり厨2魂を揺さぶるフレーズだよ
78 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 15:25:28 ID:F/n53iWq] じゃあタスクパターンで
79 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 20:46:55 ID:UEhDeB5F] >タスクパターン 「ストラテジーパターン?あー、AoEとか大戦略ってパターンだよね」 とか真顔で言ってのけるウィザード級ハッカーの心の琴線に触れる
80 名前:名前は開発中のものです。 mailto:sage [2007/12/19(水) 20:47:44 ID:hUc1dbeP] じゃあ、「タスクモンスターとのアルティメットコラボレーション」で。
81 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 07:20:27 ID:c5xOqVc7] >>74 タスクシスステム改め ギャラクシアンロジックかLogician Load Systemでおk
82 名前:名前は開発中のものです。 mailto:sage [2007/12/20(木) 20:44:20 ID:tLt8cR7R] エロスロジック
83 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 00:29:57 ID:rVMYRhvV] オナニーシステムで通じると思うんだ リスト巡回オナニーも分かりやすい オナニーforeachは微妙 オナニーパターンはオナテク板で使用済み
84 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 00:38:40 ID:Jo2a6K/I] じゃ、タスクシステム関連は、PinkBBSに移動しようか。
85 名前:名前は開発中のものです。 mailto:sage [2007/12/21(金) 01:45:05 ID:sZQMdwXf] 僕の肛門もリスト巡回されそうです
86 名前:名前は開発中のものです。 mailto:sage [2007/12/31(月) 11:54:08 ID:K8WL7pln] どうすればギャラクシアンのソースを見られますか?
87 名前:名前は開発中のものです。 mailto:sage [2007/12/31(月) 15:03:05 ID:73X1rpDN] 逆アセンブルすればそれがほぼソース
88 名前:名前は開発中のものです。 mailto:sage [2007/12/31(月) 18:29:38 ID:K8WL7pln] >>87 ファミコン版でいいですか?
89 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 06:40:49 ID:5ateSYSb] タスクシステムこそ ゲーム業界にのみ伝わる現代の魔術 連綿と口伝によってのみ受け継がれ 変化し、進化と退化を繰り返す その亜流は数知れず、もはやその全てを語れるものはいない
90 名前:名前は開発中のものです。 mailto:sage [2008/01/07(月) 14:38:53 ID:GyFmGIbt] 都市伝説テンプレート
91 名前:名前は開発中のものです。 [2008/01/14(月) 14:54:45 ID:qTpR8IwF] つまりはスケジューリングでおk?
92 名前:名前は開発中のものです。 mailto:sage [2008/01/14(月) 15:24:10 ID:qReoD61a] 少なくともスケジューリングは含まれるだろうな
93 名前:名前は開発中のものです。 mailto:sage [2008/03/13(木) 22:58:00 ID:Bu/r75Um] 保守
94 名前:名前は開発中のものです。 [2008/04/03(木) 17:01:08 ID:0WE0DNgq] ゲームプログラミングで分厚い目の本選んだら 著者流タスクシステムの解説が大半で(´・ω・`) ショボーン。
95 名前:名前は開発中のものです。 mailto:sage [2008/04/03(木) 18:08:34 ID:HifUC8Yv] >>94 >>7
96 名前:名前は開発中のものです。 mailto:sage [2008/04/03(木) 18:34:18 ID:0WE0DNgq] 逆引きタスクシステム これだorz
97 名前:名前は開発中のものです。 mailto:sage [2008/04/03(木) 18:37:31 ID:0WE0DNgq] ちょっと違ったな。 買ったのは「逆引きゲームプログラミング」って書いてあるから姉妹本かな。 表紙に堂々とタスクシステムなんて書いてあったらさすがにスルーするしねw
98 名前:名前は開発中のものです。 [2008/04/06(日) 18:50:02 ID:cIcTAloV] Javaはポインタが使えないからイテレータ使うしかないのかな?
99 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 21:07:19 ID:RBp65Y5g] >>98 Java がポインタを使えないのは確かだが、たぶん >>98 はそれ以前の 勘違いをしている。
100 名前:名前は開発中のものです。 mailto:sage [2008/04/06(日) 21:09:30 ID:ptmozDNb] ねぇぼく、すれたいよめゆ?