トップページgamedev
1001コメント529KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/02/01(日) 12:38:10ID:rVEgp4cM
タスクシステムについての議論、相談、質問、雑談などのスレです

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/
0385名前は開発中のものです。2009/02/10(火) 01:05:40ID:D1ATM4io
>384
厳密にやるならワークをそれぞれ2つ持って、フレームごとにフリップだろ。
面倒だったら一つ一つ更新して、n+1がnを参照してもn+1を参照しても対して問題が無い様にするさ。
どこまで誤差を容認できるか知らんけど。
0386名前は開発中のものです。2009/02/10(火) 01:06:43ID:r6EeZy16
>>384
そーいうタスクの実行順序が結果に影響する場合は
実行時間単位でタスク状態のスナップショットを取って相互参照はそのスナップショットを参照、
という方法で擬似的に「いっせーのせ」をやる方法を物理演算系ライブラリでよくやってる。
0387名前は開発中のものです。2009/02/10(火) 01:07:10ID:VmByRVIY
>>373
>>2に代わる初歩的原型

初歩的原型?>>2が?どーこがだよ
なんだこれ。ジョブエントリのリストを周期的にナメナメしてバッチ処理するだけ
なんでこれがゲームプログラムの初歩的原型なんだよ。バカこくでねーよ

 ・おめぇ、何か処理したかったら必ず先頭にTCB(は?)を入れたデータ構造にしろよ
 ・おめぇが書いた処理はどんなものだろうと必ず1/60[sec]で周期的に呼び出すからな。覚悟しろよ
 ・俺に呼び出された後はてめぇの責任で全部やりな。俺は何にもしらねーからな

こういうちゃんこ鍋ポーリングヘンテコプログラムをゲームプログラムの原型とかほざく理由を書け
0388名前は開発中のものです。2009/02/10(火) 01:08:43ID:VmByRVIY
で、何でか知らないが僕タスクシステム!って言って紹介してる糞は揃いも揃って
ユーザーのあらゆる処理単位のデータ構造にTCBとかいうものをねじ込んでるよな

 ・サブルーチンアドレス
 ・プライオリティ
 ・連結リストのパラメータ

みんな仲良くなーぜかこういうものを押し付けてきやがる。なーんでなんで?どうして?
おまけにこれが日本ビデオゲーム業界黎明期の秘儀であるなどと権威付ける。正気か?
だったら何度だっていってやる。RAM4KBにROM数十KBにBGやOBJを出力する回路を
積んだZ80マイコンボードでこれ組んでみろよ。ほれ

そして、この仕組みをそのまんま

 ・64bitマルチコアCPU
 ・数GBのメインメモリ
 ・ローカルメモリ数百MB搭載のGPU(DSP)カード

こういう環境上で律儀に真似しようとするのはなーんでなんで?どうして?
0389名前は開発中のものです。2009/02/10(火) 01:11:15ID:D1ATM4io
>387
> >>373
> >>>2に代わる初歩的原型
> 初歩的原型?>>2が?どーこがだよ

俺のレスに突っ込みかよw
0390名前は開発中のものです。2009/02/10(火) 01:13:56ID:VmByRVIY
>>387のはアンカーミスだ。>>370
0391名前は開発中のものです。2009/02/10(火) 01:15:44ID:M5ksrydA
>>385
>>386
それは論点が違う。書き方が悪かったかな・・・

>宇宙に漂う星々を観賞するソフトをタスクシステムで作ることを考える。
>星をタスクで実装したとして、各星の間に働いている万有引力はどう記述するか。

この問題の論点は、タスクシステムにおいて、タスク間にまたがる処理はどこに書くのか?。
0392名前は開発中のものです。2009/02/10(火) 01:17:04ID:D1ATM4io
>391
とりあえずこの問題に限定するけど、フリーの物理エンジンの実装見たことある?
0393名前は開発中のものです。2009/02/10(火) 01:19:09ID:r6EeZy16
>>388
>こういう環境上で律儀に真似しようとするのはなーんでなんで?どうして?
そのまま同じコードで実装して使ってるところは無いと思うけど。
特にC++が主流になった現場では。

まぁ、同じ考え方のシステムはスペックにあった実装されて使われてるけどね。
スペックに関係なくゲーム作るうえで処理のプライオリティ付きでゲームの状態遷移によって出し入れできるタスク管理は便利だから。
他にいい方法があれば淘汰されてるだろうけど、この考えのシステムを淘汰できるような物は今のところ無いみたいだしね。
0394名前は開発中のものです。2009/02/10(火) 01:21:28ID:D1ATM4io
>388
FPSなんかは、全部仮想関数でupdateを持つEntityクラスのサブクラスにしてたりするよ。
0395名前は開発中のものです。2009/02/10(火) 01:21:36ID:M5ksrydA
>>392
無いけど。
0396名前は開発中のものです。2009/02/10(火) 01:24:07ID:D1ATM4io
>395
答えが全部書いてあるから、見てみるといいよ。
0397名前は開発中のものです。2009/02/10(火) 01:24:48ID:M5ksrydA
>>396
逃げるなよ。絶対書いてないと断言できる。
今ここで示して見せてくれ。
0398名前は開発中のものです。2009/02/10(火) 01:28:52ID:D1ATM4io
位置と速度を分離して、万有引力は個々の更新で処理しない。

万有引力は距離関係ないけどまぁ有効距離を設定したとして、一つ一つの星にかかる引力を合計して
その星の質量から加速度と速度を計算する。
で、単位時間(多分1フレーム)あたりの移動量がでるから、それを位置に加算するだけ。

0399名前は開発中のものです。2009/02/10(火) 01:33:26ID:VmByRVIY
>>393
>>394
数値積分の(代表的な、最小の)タイムステップとして例えばリフレッシュレートを選択し
そのタイムステップで可視属性のエンティティの処理を周期的に呼ぶというのは問題ない

アニメーション処理など、表示系の処理はリフレッシュレートに同期させないと美しくないからだ
>>2が腐ってるのは「あらゆる処理をちゃんこ鍋リストに入れてリフレッシュレートを基準に
周期的にバッチ処理して起床させる」というトンチンカンプログラムだから
0400名前は開発中のものです。2009/02/10(火) 01:41:21ID:M5ksrydA
>>398
>一つ一つの星にかかる引力を合計して
どこで合計するの?誰が合計するの?星タスクの中でやるの?
結局、タスクシステムの外で計算するしかないんじゃないの?
0401名前は開発中のものです。2009/02/10(火) 01:45:28ID:VmByRVIY
>>394
例えばFPSのエンジン。これのエンティティのMODを作る人間がユーザーとしよう
エンジンは内部ではBSPなりPVSで空間領域分割しているがMODの開発者は
そんなこたしらねーわけ

可視範囲内にいる脅威のデータをくれっていえばエンジンはくれるわけ
例えば視界のコーン(or視錐台)を渡して、最近傍のバカのデータをよこしてくれる
俺が使ったのはそういうエンジンだった

敵AIを作る奴の目的はレベル内の敵性物体の掃討であり、それを適切に連携しながら
行なうことだ。

タスクシステムってのは

脅威の情報くれ ⇒ エンティティのちゃんこ鍋リストあげるからテメェで探せバーカ

こういうもの
0402名前は開発中のものです。2009/02/10(火) 01:46:55ID:M5ksrydA
>>399
画面のリフレッシュレートは特にウィンドウモードの場合まちまちだから、
ゲームロジックのFPSと描画のFPSが別々になることがある。
例えば、ゲームロジック60FPS、描画72FPSとか。
この辺のギャップを滑らかに埋める仕組みを作るのは結構面倒。
俺の自作描画エンジンはそれを勝手に面倒見てくれるように作ってる。
それすら実装されてないのにタスクシステムとか言われても・・・ねぇ。
0403名前は開発中のものです。2009/02/10(火) 01:47:59ID:VmByRVIY
>エンティティのちゃんこ鍋リストあげるから

あ、これですらないわ。全処理のちゃんこ鍋リストだわ。ははーは
0404名前は開発中のものです。2009/02/10(火) 01:57:23ID:VmByRVIY
>>402
>画面のリフレッシュレートは特にウィンドウモードの場合まちまちだから、

YES。フルスクリーンであろうと指定したリフレッシュレートにしてくれない
ポンコツビデオカードがまかり通ってた時代もあるしな

>ゲームロジックのFPSと描画のFPSが別々になることがある。

YES。そのとおり。そしてリフレッシュレートが既知であろうとなかろうと
AIを作る奴にイベント駆動システムを提供することだってある
これはゲームエンジンが階層型スケジューラをサポートしている
0405名前は開発中のものです。2009/02/10(火) 02:05:40ID:r6EeZy16
>>399
>「あらゆる処理をちゃんこ鍋リストに入れてリフレッシュレートを基準に周期的にバッチ処理して起床させる」
これ、FPS単位では無いけどタイムシェアリングのOSのスレッド管理と同じような考え方だね。
タスクシステムもスリープ状態とか、スレッドのようなフラグ付けして使うのはよくある実装。

独立した時間軸のある処理を複数持ちたい、となるとスレッドなりタスクシステム的なものが必要になるわけで。
で、ゲームの場合はオブジェクト毎にスレッド立てるなんてのはパフォーマンス的に無駄なのでもっと簡素なシステムを使ってると、
そんな感じじゃないのかな。

別にそんなトンチンカンでは無いと思うけど。
タスクシステムで出来ることを全て網羅していてもっとスマートな方法があるならそれを使えばいいんだろうけど…
今まで見たことあるのは結局タスクシステム+αしたようなタスク拡張システムで、パラダイムの違うのは見たこと無いなぁ…
0406名前は開発中のものです。2009/02/10(火) 02:18:31ID:VmByRVIY
>>405
やねちゃんなの?
0407名前は開発中のものです。2009/02/10(火) 02:26:24ID:VmByRVIY
>ゲームの場合はオブジェクト毎にスレッド立てるなんてのはパフォーマンス的に
>無駄なのでもっと簡素なシステムを使ってると、そんな感じじゃないのかな

ん。違うな。やねちゃんではないな
協調的マルチタスクシステムがタスクシステム的だとか言わんよな。彼なら
眠気を我慢してる状態でごにょごにょ長文を読むとみんなやねに見えるから困る
寝る
0408名前は開発中のものです。2009/02/10(火) 03:11:04ID:6K+49H2V
やねちゃんは、にちゃんなんか歯牙にもかけないでしょJK
0409名前は開発中のものです。2009/02/10(火) 06:04:16ID:VmByRVIY
>>405
>これ、FPS単位では無いけどタイムシェアリングのOSのスレッド管理と同じような考え方だね。
>タスクシステムもスリープ状態とか、スレッドのようなフラグ付けして使うのはよくある実装。

FPS単位とかよくわかんないけどさ
オラが村の自慢の生娘のウンコ(タスクシステム)に似てるとかドーデモイーわけ
所詮はローカル用語。お前さんの自慢のタスクシステムなんて誰も興味ねーし
お前さんが自慢のウンコを職場内でタスクシステムと呼んでようがドーデモイーわけ

俺がバーカバーカって言ってるのは公衆の前でタスクシステムとして布教されている>>2
そして>>2を超すごいオーパーツだとか可搬性と再利用性に優れたミラクル秘儀だとか
祭り上げてる(いた)バカ共
あと、定義不明瞭なオラが村のローカル用語(タスクシステム)を引っ張り出して擁護するイナカッペ
誰もてめぇのひりだしたウンコの名前の良し悪しの話なんてしてねーから安心しろ
0410名前は開発中のものです。2009/02/10(火) 06:10:00ID:VmByRVIY
>>405
>独立した時間軸のある処理を複数持ちたい、となるとスレッドなりタスクシステム的なものが必要になるわけで。

いやだからそのタスクシステム的ってナニ?意味わかんねーのよ
なんでそういうオラが村のローカル用語を駆使するの?自覚ある?ない?
まずお前のいうそのタスクシステムってやつを説明してくれないと
ホント意味わかんねーから

>で、ゲームの場合はオブジェクト毎にスレッド立てるなんてのはパフォーマンス的に
>無駄なのでもっと簡素なシステムを使ってると、 そんな感じじゃないのかな。

もうチンプンカンプンだよ
お前さんは一体ナニが作りたいの?協調的マルチタスクシステムが作りたいの?
だったら何でそれが>>2になっちゃうの?コンテキストスイッチはどこ?目的と実装は一致してるの?
何度も言うけど、一体ナニが作りたいの?ゲーム作りたいんじゃなかったの?目的変わった?
0411名前は開発中のものです。2009/02/10(火) 06:12:33ID:VmByRVIY
>>405
>別にそんなトンチンカンでは無いと思うけど。

ちゃんこ鍋リストに全てをぶち込んでバッチ処理がしたいんであれば>>2はトンチンカンじゃないな
ちゃんこじゃなくてウンコ鍋だったっけ

>タスクシステムで出来ることを全て網羅していてもっとスマートな方法があるならそれを使えばいいんだろうけど…

網羅する必要?どこにあるの?ねーよ?まず、ゲームは
ちゃんこ鍋リストに全てをぶち込んでバッチ処理する必要ねーから
でもお前はある。しかもタスクシステムが出来ることが他にもあるという。
網羅できないと駄目だと。じゃあこれについて語ってくれないか?

お前のタスクシステムで出来ることを全て網羅的に説明してくれ
逐一、それが>>2である必要がないことをみんなが説明できるぞ

>今まで見たことあるのは結局タスクシステム+αしたようなタスク拡張システムで、パラダイムの違うのは見たこと無いなぁ…

たしかに>>2は強烈なウンコパラダイムだな。ウンコパラダイムシフトってのは巻き糞なのかな?
0412名前は開発中のものです。2009/02/10(火) 06:16:14ID:VmByRVIY
あーん出勤の時間だ。ばいばい!
0413名前は開発中のものです。2009/02/10(火) 06:27:18ID:uUTFFFLf
>>411
>ちゃんこ鍋リストに全てをぶち込んでバッチ処理する必要ねーから
まったくその通りだなw
0414名前は開発中のものです。2009/02/10(火) 07:11:22ID:D1ATM4io
>400
だから『個々の更新で処理しない』って書いてるでしょ?
中じゃなかったら外でやるしか無いじゃん。

>401
そこまで判ってるなら言うこと無いよ。
実行巡回リスト以外に、必要な各種コンテナを追加すればいいだけ。
だいたいその存在目的が違うのに、なんで『ごった煮リスト』からEntityの検索をしないといけないんだ?

> 脅威の情報くれ ⇒ エンティティのちゃんこ鍋リストあげるからテメェで探せバーカ

オマエの邪推だろ。
実行巡回リスト以外に管理しているものがあるとか想像できない、その貧しい発想がダメだな。
0415名前は開発中のものです。2009/02/10(火) 09:26:37ID:lnAkDE/D
>>2について採決を取ろうか。
話がぶれすぎ。

ウンコ信者は>>2をよく見て、それに含まれていないものを勝手に追加したり「想像しろ」とか言わないように。
>>2について決着がついたら、更なる進化系ウンコを提示してもらおう。

あと、質問には単純明快に答えてほしいな。
「どこで?」と聞かれたら「ここで」と答えよう。
「他のソース見たことある?」とか「フリーのソース見ればわかる」とか「こう計算する」とか「中ではない(だから外だ。でもどこかは言明しない)」ではなく、
明確にどこかを示してほしいもんだ。
0416名前は開発中のものです。2009/02/10(火) 19:16:53ID:KBLQ7wOO
対話は無理じゃないのか
タスカーの目的は保守だから逃げたり煙に巻くことだけを考えている
だからごまかせればそれでいい、逆に揚げ足取りを狙うだけ
自分からサンドバッグになるほどバカじゃないだろう
0417名前は開発中のものです。2009/02/10(火) 19:22:31ID:uUTFFFLf
やねうらおの人生みたいだな
0418名前は開発中のものです。2009/02/10(火) 19:35:00ID:KBLQ7wOO
>>2 のいくつかについて
使い方だけが記述してある
使う理由や、使うことで得られるもの等は書かれていない

3Dではレンタゲ絡むから単純にコマンドリストにしてソートして描画は無理
一つをレンダリングした後にそれを加工して他に適応するような
複雑な手順が必要となるから、ほぼ間違いなく複雑になる

これを見てくれ、何かが色々とおかしい
>長所は次の通りです。
> * ジャンルを問わず様々なゲームに適用できる
> * 並列処理をうまい具合に実現できる
> * ゲームの流れを自然な形で表現できる
> * 大規模なゲームも開発できる
> * タスクごとに独立しているため、複数人で開発できる
無理やりメリットを列挙した感が伝わってくるよ
0419名前は開発中のものです。2009/02/10(火) 19:48:28ID:KBLQ7wOO
俺の主観

> * ジャンルを問わず様々なゲームに適用できる
ジャンルごとに最適な作り方を模索しようぜ
木造一戸建ての家と鉄筋コンクリートのビルを同じ手法で作らなくてもいいじゃないか

> * 並列処理をうまい具合に実現できる
そのうち、インテルが優秀なコンパイラを作って解決してくれるようになるさ
GPUの並列処理では使えない、全く役に立たない

> * ゲームの流れを自然な形で表現できる
自然な流れといったら、俺にとってはDSL、内部でも外部でもいいけど
DSL的アプローチとしてはHSPをそのまま使った方が比較できないほど有益

> * 大規模なゲームも開発できる
使わなくても出来るだろう
"大規模なゲームを簡単に開発できる"と書かないあたり良心的

> * タスクごとに独立しているため、複数人で開発できる
クラスで見かけ上分離しても、データのやり取りで
相互依存関係が存在しているので独立しているとは断定できない
近い箇所でわざわざ分けずに、サブシステムで担当分けろ
0420名前は開発中のものです。2009/02/10(火) 19:55:43ID:rFLiGfwY
タスクは少しでも処理を稼ぎたい時くらいしか使わないな。
あと、クラスとタスクを勘違いしてる奴が多いな。
0421名前は開発中のものです。2009/02/10(火) 20:55:11ID:D1ATM4io
銀の弾丸なんかありゃしないんだから、好きなように書けば良い。タスクシステム使いたければどうぞ。
イヤならそれで構わない。

というスタンス。

もっといろんなソースを読めばいいのに。そこいら中に転がってるんだし。
0422名前は開発中のものです。2009/02/10(火) 20:58:01ID:KBLQ7wOO
Golden Hammer
ジャンルごと、ゲームごとにルール、論理は異なる
にも関わらずなぜ共通の処理を用いようとするのか
なぜそこまで固着できるのか、それ以外を否定し続けなければならないのか
もはやカルト的、ゲーム脳的、マイナスイオン的
これは広義のタスクシステムなのだよっと言って
俺まで仲間にされたんじゃあ、たまったものではない
今こそ、そのこびりついたウンコを便器の奥に流し去るとき
0423名前は開発中のものです。2009/02/10(火) 21:05:52ID:b8DkhQKb
ジャンルごと、ゲームごとにルール、論理は異なる
にも関わらずなぜタスクシステムを否とするのか
なぜそこまで固着できるのか、それを否定し続けなければならないのか
もはやカルト的、ゲーム脳的、マイナスイオン的
これは絶対的に醜悪なシステムなのだよっと言って
悪魔の仲間にされたんじゃあ、たまったものではない
0424名前は開発中のものです。2009/02/10(火) 21:09:59ID:D1ATM4io
くっそー、Kindle2欲っしいなぁ。
0425名前は開発中のものです。2009/02/10(火) 21:10:30ID:D1ATM4io
誤爆スマン
0426名前は開発中のものです。2009/02/10(火) 21:23:40ID:Gj2vSSkO
>>384
>それのどこがカオスなの?

ある時点で、n個のキャラが発生し、だんだん大きくなり、5秒後きっかりに消滅する。
これをnキャラ分同時に繰り返すのが非カオスな状態。

一方、発生時刻、大きくなる時間、消滅時刻をnキャラ全てでずらしてやる。
これを各キャラ別に繰り返すのがカオスな状態。

どうせお前のクソ生産物は、この程度のカオスも実装してないんだろ。


>各星の間に働いている万有引力はどう記述するの?

まず、空間を適当なグリッドに分けてやる。
そして、(z断面数×仮想重力場2次元配列×n方向断面)×2スロットを管理するタスクを、最低プライオリティで

登録。
スロットは1つが【更新用】、もう一つが【参照用】。
各星タスクが呼ばれる際に、付近の【更新用】重力場配列n方向分の値を、遠小近大で所定の範囲を足し算更新する。
足し算する値の大きさは、星の重さごとに異なるものとする。
同時に、【参照用】重力場配列n方向分の直近の値を合成して、加速度ベクトルを決定、自速度に加速。
仮想重力場2次元n方向分のスロットの【更新用】と【参照用】は、フレームごとに切り替える。
【参照用】スロットは毎フレーム、0で全初期化。
タスク登録処理部で、星タスク登録時に、重力場タスクへの参照を渡しておく。
バカはすぐ馬鹿と口にする。むじゅかちい問題よりも簡単なタスクシステムから始めた方がいいんじゃないでちゅか。


>>387
>(>>2)ゲームプログラムの原型とかほざく理由を書け
ボケが記事読めや、ググレカスチンカスが。むいて洗えや。
>>2は、万里ゆうじ氏が、業界現場で使われていると書籍で紹介していた初歩的タスクシステムともおおよそ同じ。
0427名前は開発中のものです。2009/02/10(火) 21:29:29ID:uUTFFFLf
くだんね
結局、関連の実装がすごく苦しそうじゃん
自機、敵、弾の例でそれぞれ単体テストが普通にできなさそう
自機のソースだけ動かしたいのに敵も弾ももってこないと動かないんでしょ?
0428名前は開発中のものです。2009/02/10(火) 22:30:38ID:D1ATM4io
>426
最近はこういうのも『カオス』って言っちゃうんだ。
0429名前は開発中のものです。2009/02/10(火) 22:37:10ID:KBLQ7wOO
実装の方法を述べるのが得意で
なぜそれを実装しているかという理由を考慮していない
実装したらどういうメリットとデメリットがあるのか考えていない
0430名前は開発中のものです。2009/02/10(火) 23:18:09ID:mL1fBwYe
>>426
万里ゆうじって、緑ウンコ本の人?
0431名前は開発中のものです。2009/02/11(水) 00:32:00ID:+7H05QpI
>業界現場で使われていると書籍で紹介していた初歩的タスクシステム
NASAが開発した新技術で作られた商品です
プロも愛用しているこの商品
今回はなんとこの値段でご提供します
おおおー

なんだよ、その詐欺臭い言い回しは
0432名前は開発中のものです。2009/02/11(水) 00:37:35ID:IygtSNqi
>431
今なら、このタスクシステム利用したフレームワークも付いて、お値段なんと9割引!
0433名前は開発中のものです。2009/02/11(水) 05:39:41ID:UOmJaSIc
>>430
世の中夜勤帰りで朝から寝てる人だっているんだよ?
引っ越しの時ちゃんと挨拶行った?
顔合わせたら軽く会話するとかしてちゃんとコンタクト取り続けてる?
日頃からそういうコミニュケーションが取れてればいつ洗濯機を回していいのか
いつ静かにしなければならないのか
迷惑を掛けないように生活出来るはずなんだが
0434名前は開発中のものです。2009/02/11(水) 22:16:11ID:+7H05QpI
Golden Hammer アンチパターン タスクシステム

>>433
ちなみに、監視していると告げる行為は
ストーカー認定されますのでご注意ください
しかもリストがひとつずれてるし、おまえバカだろ
0435名前は開発中のものです。2009/02/12(木) 07:26:55ID:iaB+mZ78
レスが切れたか
タコスシステムもついに終わりか
長い戦いだったな
0436名前は開発中のものです。2009/02/12(木) 08:20:00ID:S9ebbf2b
こんなちっぽけなネットの片隅で勝利宣言しても、不毛だと思うけどなあ…。

なんで反対派は口が悪い上に、
相手を言い負かすことにこんなに力を注いでるんだろう。
別に間違ったことは言ってないのに、
言いたいことが曇ってて反感買いやすいし。

ただ口喧嘩がしたいだけなのかなあ。
現実じゃストレス溜まってるのかね。
0437名前は開発中のものです。2009/02/12(木) 12:41:59ID:iaB+mZ78
でもタスクシステムがなんの問題を解決するのか一度もでてないよね
0438名前は開発中のものです。2009/02/12(木) 12:44:58ID:V7VMrK+q
>2にあるだろ
0439名前は開発中のものです。2009/02/12(木) 14:49:06ID:EGHKIPxY
レガシーーィィィィィ

DXライブラリ信者がこの板で多いのも頷ける
0440名前は開発中のものです。2009/02/12(木) 14:53:50ID:7VGTCBGV
>>437
どんな問題を解決するのかという問いには問題が発生する場合との比較が
内在していて問題が発生する場合がなければ答えられない。
よってまず非タスクシステムではどう書かれていて
どんな問題があるのかを調査する必要がある。
0441名前は開発中のものです。2009/02/12(木) 15:45:22ID:efZR4RxD
世界一の戦士が軍に所属していても、世界制服は出来ないのと同じ
優れた戦術はいくら積み重ねても、簡単に戦略を覆すことはできない
戦略なき集団(盗賊など)に対しては優れた戦術だけで潰すことは可能
所詮タスカーは盗賊程度を相手に戦う村の英雄止まりというわけだ
意味は違うけどローカルヒーローというアンチパターンもあったな

タスカーはタスクシステムが戦術に属するのか戦略に属するのかを明確にしない
仮にタスクシステムが戦術であるとするなら上記の通り
戦略であるとするならば、実装例を重視すべきではない
にもかかわらず、実装に固着するタスカーは行動が矛盾している
それは理解不足が要因であると断定せざるを得ない
すなわち、タスカーはバカで無能である

最後に挑発して和解の道を潰しておきましょうか
この意味すらも理解できないだろうけど
0442名前は開発中のものです。2009/02/12(木) 16:02:57ID:I7U1tMfT
> 世界制服は出来ないのと同じ

一行目から誤字。すごく馬鹿が書いているみたいなのでそこで読むのやめてNGリストに入れた。ばいばい。
0443名前は開発中のものです。2009/02/12(木) 16:08:08ID:efZR4RxD
>でもタスクシステムがなんの問題を解決するのか一度もでてないよね
売名目的ぐらいしか思いつかない
自分の知名度を向上させるにはどうすればいいかという問題を解決できそうだ
自分ではよくわからなくてもまわりが凄い凄い言ってれば
なんだか凄そうに見えるという人間の心理を応用した
いわばカルト的人民掌握術と言える
実際に、ゲーム脳やマイナスイオンの偽科学もそれで普及した
タスクシステムをわざわざ持ち上げるのは、その恩恵にあずかりたいから
自己顕示欲と無知、それが連鎖してタスクシステムは一大宗教勢力となった
タスカーが全力でタスクシステムを守る理由も
自分の過去を正当化するため、又はその恩恵にあずかりたいから
典型的なカルトに洗脳された信者の行動と類似する
0444名前は開発中のものです。2009/02/12(木) 16:14:27ID:efZR4RxD
>一行目から誤字。すごく馬鹿が書いているみたいなのでそこで読むのやめてNGリストに入れた。ばいばい。
黙ってNGに入れないということは
読んだという事実
でも反論する余地がない、又は反論する知識知能がない
揚げ足を取りたいという願望
他者にもNGを呼びかけたい
挑発したい
これらの意図を読み取れる、あんたの心は見え透いている
透け透けなのよ
次は、もう飽きた寝ると言うんだ
何度も何度も繰り返しそう言うんだ
そして俺がいなくなるのを見計らって、またタスクシステムを布教するんだ
0445名前は開発中のものです。2009/02/12(木) 16:24:01ID:Hu+5ypA8
>でも●●●●がなんの問題を解決するのか一度もでてないよね
売名目的ぐらいしか思いつかない
自分の知名度を向上させるにはどうすればいいかという問題を解決できそうだ
自分ではよくわからなくてもまわりが凄い凄い言ってれば
なんだか凄そうに見えるという人間の心理を応用した
いわばカルト的人民掌握術と言える
実際に、ゲーム脳やマイナスイオンの偽科学もそれで普及した
●●●●をわざわざ持ち上げるのは、その恩恵にあずかりたいから
自己顕示欲と無知、それが連鎖して●●●●は一大宗教勢力となった
●●●●が全力で●●●●を守る理由も
自分の過去を正当化するため、又はその恩恵にあずかりたいから
典型的なカルトに洗脳された信者の行動と類似する
0446名前は開発中のものです。2009/02/12(木) 18:39:05ID:eBGIJffi
アンチタスク派はどうしてこんな基地害ばっかりなんだろうな
0447名前は開発中のものです。2009/02/12(木) 19:00:30ID:aNWZiMst
>440
どんな問題を解決するかという問いかけを意味あるものにするには
問題意識の共有も必要だよ。コードのスマートさなんてあいまいで
捉え所の無い審美的主張がありうる話題のときは特にね。
そうでないと好き嫌いで終わる話を無駄に続けることに。
荒してる人はそれを承知で挑発してるのかもしれんが。
0448名前は開発中のものです。2009/02/12(木) 19:09:11ID:efZR4RxD
>アンチタスク派はどうしてこんな基地害ばっかりなんだろうな
わかっている
議論や正論に負けたカルトは、対象をキチガイ認定して、数の力で押す
ならば問おう
外人が書いた本にタスクシステムの記述はあるのか?
パターン本にタスクシステムの記述はあるのかと
権威を傘に威張る奴は奴は権威に弱いという
日本ローカルな権威であるタスクシステムも
世界的な視点では、所詮日本のローカルパターンに過ぎない
タスカーは世界的な権威に負けたのだよっ
0449名前は開発中のものです。2009/02/12(木) 19:14:03ID:+8fkivHK
レスが基地外じみてるせいで無視されている事に何故気づかない
0450名前は開発中のものです。2009/02/12(木) 19:15:10ID:Hu+5ypA8
だってよ、「アンチタスク派=基地害」ってのはホントのことじゃん
0451名前は開発中のものです。2009/02/12(木) 20:07:41ID:vBg+I3kH
>>447
あんたには悪いけどな、俺としてみりゃ

内容が伴ってさえいれば口調が悪かろうがドーデモイーわけ
内容が伴ってさえいれば口調なんざ枝葉末節の些細な問題なわけ
内容が伴ってさえいれば口調なんざそいつの目印、そいつのお好みの芸風、フレイバーでしかないわけ

内容の無い一行レス、罵詈雑言レッテル貼りの一行レスを張る奴なんざ気にするな。無視しとけ
そいつらは、気に食わない相手を論破したくても脳みそが付いてこない哀れな低脳だ
言うに事欠いた時点でそいつ自身は詰んでるのに、大人しく引き下がる勇気の無い、低脳ゾンビだ
論理的に死んでるのに、でも悔しくて仕方なくて、だから相手の態度にウダウダブツブツ文句たれて
一行レス(腐れウンコ)を投げつけるしか成す術のない惨めな低脳腐れウンコゾンビだ

ひらしょーさんひらしょーさん言ってるアンチタスク気取り
やねうらおさん松浦さんさん万里ゆうじさん言ってるタスカー気取り

こいつらは等しく無価値な、内容の無い一行レスで吠えるだけの犬っコロだ
文句言っても消えやしない。いくらでも湧いてくる。今日も湧いてるな

>>442 >>445 >>446 >>449 >>450

ほれ。お前らの感想を聞かせろよ?脳みそついてんだろ?
>>2はobserver patternだと思う?思わないよな?思うなら>>359に答えてみ?
>>2はゲームプログラムの初歩的原型だと思う?思わないよな?思うなら>>387 >>388に答えて
0452名前は開発中のものです。2009/02/12(木) 20:33:34ID:iaB+mZ78
いま、タコスシステムが団地妻の叫び声をあげながら死んでいきましたとさ
0453名前は開発中のものです。2009/02/12(木) 20:38:08ID:vBg+I3kH
ageポエマーはコテつけなはれ
0454名前は開発中のものです。2009/02/12(木) 21:30:45ID:efZR4RxD
あーあ、偉大なる天才プログラマやねうらおさんからも
タスカーの方々からも嫌われちゃいました><
俺の言ってることはどんなに有益でもきっと受け入れられないだろうな

というわけで、タスクシステムに疑問を持ってる人や
タスクシステムを嫌っていて模索している人に
DSLを紹介、知ってる人も多いと思うけど
内部DSL, 外部DSLあたりで検索すれば出てくる
これはいいぜ、タスクシステムと違って
wikiに書かれてるし(タスクシステムは残念ながらw)
外国の人も議論しまくってるし、観念的にもそれほど難しくない
使わなくても知っているだけでかなり有益な情報
お勧め

俺がお勧めした時点で、俺を嫌ってる人は
DSLへのハードルが高くなっちゃったね、ごめんね
俺、性格悪くてごめんね、ポエマーでごめんね
0455名前は開発中のものです。2009/02/12(木) 21:33:27ID:V7VMrK+q
なんかタスクっていう技術概念を、完成されたなんにでも使える万能薬みたいに思ってる馬鹿なおじさんがいるね^^
ここではみんなかまってくれておじさんも楽しそうだね^^
0456名前は開発中のものです。2009/02/12(木) 21:48:47ID:Hu+5ypA8
>でもDSLがなんの問題を解決するのか一度もでてないよね
売名目的ぐらいしか思いつかない
自分の知名度を向上させるにはどうすればいいかという問題を解決できそうだ
自分ではよくわからなくてもまわりが凄い凄い言ってれば
なんだか凄そうに見えるという人間の心理を応用した
いわばカルト的人民掌握術と言える
実際に、ゲーム脳やマイナスイオンの偽科学もそれで普及した
DSLをわざわざ持ち上げるのは、その恩恵にあずかりたいから
自己顕示欲と無知、それが連鎖してDSLは一大宗教勢力となった
DSLスカーが全力でDSLを守る理由も
自分の過去を正当化するため、又はその恩恵にあずかりたいから
典型的なカルトに洗脳された信者の行動と類似する
0457名前は開発中のものです。2009/02/12(木) 22:14:01ID:S9ebbf2b
内容ありゃ口悪けりゃいいなんて嘯く輩はいっぱい見てきたけど、
やっぱり面白がられてるだけだなあ。突付けばすぐ反応してくれるし。

そういうのは何らかの権威がある身元のはっきりした人が言うから意味があるんであって、
ネットの片隅の名無しが言っても説得力なんて皆無なんだよね。

こういう事いうと「分かってくれるやつだけ分かればいい」なんて強がるけど、
そんなん身内でお互いを褒め合って慰めあってる
ネット上の一山いくらの連中と大差ないわけで。
ブログかmixiでやれって感じだ。
0458名前は開発中のものです。2009/02/12(木) 22:16:26ID:/tzajE1Z
でもタスクシステムがなんの問題を解決するのか一度もでてないよね
0459名前は開発中のものです。2009/02/12(木) 22:19:35ID:efZR4RxD
お勧めのドメイン固有言語をバカにされちゃいましたっ><
くやしいっ……でも感じちゃう、ビクビクッ
DSL凄いんだぞー、マイクロソフトなんかの大企業が
研究したり論文書いてたりツール作ったりしちゃうんだぞー
タスクシステムなんてWIKIにすら載ってないじゃんかよー
ばーかばーかちんじゃえ
0460名前は開発中のものです。2009/02/12(木) 22:32:19ID:/tzajE1Z
【DSL】
# デジタル加入者線の略。
# プロレスラー、リングパフォーマードラゴンソルジャーLAWの通称。
# ニンテンドーDS Liteの略称。
# Damn Small Linuxの略称。
0461名前は開発中のものです。2009/02/12(木) 22:38:49ID:efZR4RxD
このスレにひどいいじめっこがいますっ><
DSLって言ったらdomain specific languageドメイン固有言語のことに決まってるじゃないかよー
試行錯誤が必要な問題領域を、可読性を高く記述するために必要なんだよー
タスクシステムなんて一番重要な部分の柔軟性を奪って複雑にしてるだけじゃないかよー
0462名前は開発中のものです。2009/02/12(木) 23:01:07ID:8rFN+WjA
>437
タスクシステム(>2の中身とは違うナムコ式の)で製作されたゲームが何本もあるという事実を
どうかんがえているんだろう?

過去にタスクシステム(という名の何か)でモノが作られたという事実と、今それらしい影が見当たらない
という事実は別物なんだがな。
0463名前は開発中のものです。2009/02/12(木) 23:03:46ID:/tzajE1Z
>>462
ひらしょーさん:なにそれ?
0464名前は開発中のものです。2009/02/12(木) 23:20:12ID:MNXQWJB9
>>462
当時はメモリ空間64KBで、
・自動変数、なにそれ?
・アセンブリ言語以外ありえない
・アドレス決め打ち上等
・複数のインスタンスで同一のメモリアドレスを共有
 (インスタンスの寿命が重複しないように、人間が考えて割り振り)
・自己書き換えカコイイ!
という世界だよ。

その状況においては、メモリ断片化を避けた動的メモリ確保、複数フレームに
またがるコンテクスト保持(コルーチン)を実現したナムコのタスクシステムは、
煩雑な手作業によるメモリ割り振りを回避し、処理の柔軟性も向上させる
優れた解決策だった。

今はメモリ豊富なんだし、コンパイラがいろいろ面倒見てくれるんだから、そっち
使うだろ。どうしてもアセンブリ言語で組みたいってのなら止めないが、コンパイラが
提供する型チェックの機能や最適化など全部窓から投げ捨てる羽目になるぞ。
0465名前は開発中のものです。2009/02/12(木) 23:23:39ID:baxVhIC/
>>462
>>2の中身とは違うナムコ式のタスクシステム?

そんな馬鹿な!>>2は日本ビデオゲーム業界黎明期に開発されたスーパーテクです!
ギャラクシアンが起源です!

やねちゃんなんてパックマンやゼビウスをリバースエンジニアリングして
本を書いたんだぞすごいだろーって日記で豪語してるんだからね!
上のほうでやねちゃんは偉大なプログラマ達と仲良しの凄い人ですよーって
紹介してくれた優しい人がいたでしょ?
やねちゃんは>>2のCodezineの記事をタスクシステムの教科書と呼んでるよ!
どうだ参ったか!
0466名前は開発中のものです。2009/02/12(木) 23:26:24ID:efZR4RxD
ジョブコンの目的はコードの可読性を高めるってことみたいだな
DSLの目的も似てる
ほとんどの人はこれを模索していたはずだった

一方タスクシステムは可読性を無視して、目的を失い迷走した
ジョブコンは広義のタスクシステムだよっ
って誰かが言うんだろうな、恥の上塗り
昔の人もいい言葉を残している
君子豹変、小人革面
0467名前は開発中のものです。2009/02/12(木) 23:30:23ID:baxVhIC/
分かってくれるやつだけ分かればいい
タスクシステムは素晴らしい。夢と希望に溢れているよ
それに比べてひらしょーはどうだ
新清士によればひらしょーには夢も希望もないんだそうだ。全くその通りだね
タスクシステムをなにそれ?なんて言う人が夢や希望を語れるはずがない!
0468名前は開発中のものです。2009/02/12(木) 23:36:57ID:baxVhIC/
>>464
タスクシステムとジョブコンを混同するなんてあんまりだね
誰がどう見ても タスクシステム>>>(越えられない壁)>>>ジョブコン ですよ!

ジョブコン?なにあれ?スタックを弄繰り回す変態、超ド変態プログラムじゃん!
可読性のためとかいってアクロバティックなことやってホルホルしてただけじゃん!
0469名前は開発中のものです。2009/02/12(木) 23:47:50ID:baxVhIC/
>>451
>>2はobserver patternだと思う?思わないよな?思うなら>>359に答えてみ?

三下のタスカー共がダンマリを決め込んでるから俺が答えてやる!
何度だって言ってやる!>>2がオブザーバー・パターン?大変な思い違いだ!
順序が違う!オブザーバー・パターンというのはタスクシステムのおいしい部分を
全て取り払った劣化タスクシステムパターンなのだ。GoFは全くバカな奴らだ

ConstrainedTaskSystemだと前スレで言っただろう。あれは間違いだ
Observer Pattern とは Brain Damaged Task System Pattern なんだよ
分かったか!参ったか!
0470名前は開発中のものです。2009/02/12(木) 23:52:53ID:/tzajE1Z
いいか、馬鹿どもよくきけ
お前等、オブジェクト指向だの、デザインパターンだのいってるが
結局、お前等の使ってるタスクシステムは
自機のソースに敵の処理も弾の処理も書くから
自機のソースだけもってきて単体テストもすることができない=カプセル化全くされてない
ゴミシステムだ

わかったらさっさと

「参りました、いま、すごく恥ずかしくて死にたい気分です」

って3回、大声で復唱して糞して寝ろ
0471名前は開発中のものです。2009/02/13(金) 00:00:39ID:baxVhIC/
>>451
>>2はゲームプログラムの初歩的原型だと思う?思わないよな?思うなら>>387 >>388に答えて

これも三下のタスカー共がダンマリを決め込んでるから俺が答えてやる!
ドアホめ!犬畜生め!
タスクシステムがゲームプログラムの初歩的原型?それはちょっと語弊があるね!
>>2は上位タスクシステマーになれる優性遺伝子を保有する限られた選ばれた初心者が
読むことが許される究極の栄養満点の初歩的原型だ!
そんじょそこらのどこの馬の骨かも分からない劣等の子の初心者が使うことは許されない
下郎共め!ひれ伏せ!したーにー!したーにー!分かったか!
0472名前は開発中のものです。2009/02/13(金) 00:06:30ID:Y/f9HM+b
まあ、名前さえタスクシステムじゃなかったらどうでもいいわ。
暴走族と同じでな、馬鹿に「こりゃカッコいい!」と勘違いさせる要素があるのがマズイ。

珍走に倣って「ウンコシステム」と呼ぼうぜ。

そしてこの呼び名を布教させよう。
タスクシステムのせいで「タスク」という単語がずいぶん汚染されたよな。
腹立たしいことだ。
0473名前は開発中のものです。2009/02/13(金) 00:10:59ID:vXMg0VMq
>>470
Cだけで書いてるけど、自機の中に敵の処理はない。
自機の弾の発射だけはしてる。
0474名前は開発中のものです。2009/02/13(金) 00:22:58ID:Dzt9fUT0
で、結局どう書くのよ。
タスクもアンチタスクも作品出さないよね。
もしかしてこのスレには私みたいなワナビーしかいないの?
0475名前は開発中のものです。2009/02/13(金) 00:33:31ID:jTWpdRUF
>>474
典型的には、メインループはこんなもんだろ。

for (;;) {
 ProcessInput();
 ProcessFileIO();

 player.Update(*this);
 for_each(enemies.begin(), enemies.end(), boost::bind(&Enemy::Update, ::_1, boost::ref(*this));

 if (player.Finished())
  break;

 HitCheck();

 backGround.Draw();
 player.Draw();
 for_each(enemies.begin(), enemies.end(), boost::bind(&Enemy::Draw, ::_1));

 WaitVSync();
}
0476名前は開発中のものです。2009/02/13(金) 00:39:28ID:rBZGA9oW
DQ9はタスクシステムを使っていないから発売延期になったんだよ!
DQ9でタスクシステムを使っていたら、去年の年末には発売されてたに違いない!!!

とかいう人とか、

DQ9はタスクシステムを使ってるから発売延期になったんだよ!
DQ9でタスクシステムを使っていなかったら、去年の年末には発売されてたに違いない!!!

とかいう人ばっかりだな、このスレは。
0477名前は開発中のものです。2009/02/13(金) 01:05:50ID:xGWapjQs
>>475
前の方で話題になってたオブジェクト間の相互作用はどうなってるの?
そこのthisに他のオブジェクトを返す関数を持たせてるの?
0478名前は開発中のものです。2009/02/13(金) 01:45:27ID:JLcOgyKP
>で、結局どう書くのよ。
>タスクもアンチタスクも作品出さないよね。
DSL的に書けばいい、調べればコード例も載ってる
解決したい問題領域を必要最小限にシンプルに書けばそれがDSLのコードになる
それ以外のノイズを含めたものは別のメソッドに追い出す
処理と描画を一まとめに書くかどうかはフレームワーク次第
0479名前は開発中のものです。2009/02/13(金) 02:08:31ID:s/PWQtfm
>>477
例えば、星と星の間に働く万有引力の話なら、メインループのどこかに、

for(int i=0; i<size; ++i)
for(int j=0; j<size; ++j)
{
 if(i==j){ continue; }
 /* ここで万有引力の処理をする */
}

なんかを挟めばいいんじゃない?
0480名前は開発中のものです。2009/02/13(金) 03:02:38ID:jTWpdRUF
>>477
そう。もうちょっとまともに書くなら

struct EnemyInterface {
 // プレイヤーの位置を取得
 virtual bool GetPlayerPos(Position* pos) const = 0;
};

class Scene : public PlayerInterface, public EnemyInterface {
public:
 virtual ~Scene() {}
 void MainLoop() { /* この中でさっきの for(;;) {} 相当の処理 */ }
 // プレイヤーの位置を取得
 virtual void GetPlayerPos(Position* pos) const;
private:
 Player player_;
 std::list<Enemy> enemies_;
};

とでもして、プレイヤーを追跡する敵を作りたければ次のように書く。

void Enemy::Update(EnemyInterface& scene) {
  Position pos;
  scene.GetPlayerPos(&pos);
  // 自分の位置を pos に近づくように更新
}

これだと Enemy::Update, Player::Update から呼ばれる処理を EnemyInterface,
PlayerInterface で細かく指定できるから、予期しないタイミングで変数の値が
変更されて orz となる事が減る。特に、仕事分業するときに役立つ。
0481名前は開発中のものです。2009/02/13(金) 03:35:55ID:RXyTKZmk
変わったsceneだな。通常のsceneは
"scene is-a player" "scene is-a enemy"じゃなくて
"scene has-a player" "scene has-a enemy"だから
集約を使うんだが

シーングラフってそういうもんでしょ
0482名前は開発中のものです。2009/02/13(金) 05:00:10ID:RXyTKZmk
あー
EnemyInterfaceというのはSceneInterfaceForEnemy
PlayerInterfaceというのはSceneInterfaceForPlayer
なのか。スマン
0483名前は開発中のものです。2009/02/13(金) 07:33:41ID:zbAaxVah
>>473
それは駄目だ
自機は自機のソースだけで動くようにしろ
関連はシーンに書くようにしろ
無理やりでもそう組め
0484名前は開発中のものです。2009/02/13(金) 07:34:47ID:rBZGA9oW
>478
> 解決したい問題領域を必要最小限にシンプルに書けば

言ってることは、タスクシステムとあまり変わらんなw
■ このスレッドは過去ログ倉庫に格納されています