タスクシステム総合スレ part4
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/02/01(日) 12:38:10ID:rVEgp4cMpart3 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/
0341名前は開発中のものです。
2009/02/09(月) 16:43:55ID:kpyVvUs4わけがわからないから3行でまとめて。
0342名前は開発中のものです。
2009/02/09(月) 16:47:46ID:rrMBb3Sk今一度C++で何が起こったか考えるべき。
データ構造と制御構造と定数はそれぞれ別々のもの。
一つに纏めようとするのはナンセンス。
0343名前は開発中のものです。
2009/02/09(月) 16:54:17ID:Q7FeorJ2知らない奴は
サヨウナラ
0344名前は開発中のものです。
2009/02/09(月) 17:06:06ID:rrMBb3Sk0345名前は開発中のものです。
2009/02/09(月) 17:10:20ID:iuuYPzaN0346名前は開発中のものです。
2009/02/09(月) 17:11:46ID:OcO9vKc8>となり、前述のデータの流れ(処理の流れ)
> ウィンドウ(in)→ゲーム管理→ゲームオブジェクト→DirectX→ウィンドウ(out)
>と相反してくる。
ミドルウェア(グローバル関数)→ゲーム管理(シーンクラス)→ゲームオブジェクト(クラス群)→ミドルウェア
こうならいいのかな。よく分からんけど。
0347名前は開発中のものです。
2009/02/09(月) 17:23:48ID:rrMBb3SkC++とかだと、定数は、
class C
{
private:
enum{ HOGE_MAX=10, PIYO_SIZE=100, };
public:
enum{ ERR_MEM=1, };
};
とかするのが美徳とされている。
0348名前は開発中のものです。
2009/02/09(月) 17:38:52ID:qRHH/+SEそれは、プレイヤーや敵キャラのループはハードコーディングしかありえないって意味?
あるいはループとは違う仕組みとか。(タイマ割り込みとか)
>>339-340
それは単なるプログラミングスタイル(表現)の違い。
Cを始めとする手続き型言語を用いたプログラミングでは処理を始めから最後まで小説のように一本の線で書くことが得意。
それに対しC++やJavaを始めとするオブジェクト指向な言語によるプログラミングでは地図のように、オブジェクト間にはりめぐらされる道(ネットワーク)によってプログラムを表現しようとする。
だからソースを上から順番に読めば全体が理解できるとかいう話では無くなる。
C++で書かれたプログラムの全体を理解したいのであれば、クラス図(UML)でも書き起こすと良いと思うよ。
Doxygen対応のコメント書いておけば自動生成できるし。
0349名前は開発中のものです。
2009/02/09(月) 17:45:46ID:rrMBb3Skゲームオブジェクト(クラス群)→ミドルウェア
の部分はどうなってるの?
1.ミドルウェアはグローバルであり、どこからでもアクセスできる。
2.ミドルウェアへのアクセサは処理の都度、引数でもらう。
3.ゲームオブジェクトはミドルウェアへのアクセサを内部に保持している。
(ゲーム管理クラス経由、など間接的な場合を含む)
0350名前は開発中のものです。
2009/02/09(月) 17:51:54ID:OcO9vKc81
0351名前は開発中のものです。
2009/02/09(月) 18:07:00ID:pOUPLq7jなんかごちゃごちゃ長いけど
タスクシステムが何の問題の何を解決するのかでたのかい?
0352名前は開発中のものです。
2009/02/09(月) 18:10:33ID:rrMBb3Sk>それに対しC++やJavaを始めとするオブジェクト指向な言語によるプログラミングでは地図のように、
>オブジェクト間にはりめぐらされる道(ネットワーク)によってプログラムを表現しようとする。
あなたは「オブジェクト指向では地図のように〜〜」と言うが、その理由までは考えないのか。
また、そういう性質はゲームに向いていると思う?
「地図のようにはりめぐらされるネットワークによってプログラムを表現」したい?
それに例えオブジェクト指向でも、地図のようにはりめぐらされるネットワークは決して歓迎されていない。
0353名前は開発中のものです。
2009/02/09(月) 18:22:40ID:rrMBb3Skデータ構造よりもデータの流れ(処理の流れ)
ミドルウェア(グローバル関数)→ゲーム管理(シーンクラス)→ゲームオブジェクト(クラス群)→ミドルウェア
を重視した設計だね。
0354名前は開発中のものです。
2009/02/09(月) 18:51:16ID:ixLiaNv+タスクシステムは実はフレームワークだったのだよ
なにー!?
0355名前は開発中のものです。
2009/02/09(月) 18:53:31ID:Tt5KtR55> まだ君の頭では理解できないことかもしれないけど
http://www.google.co.jp/search?hl=ja&q="ジョブ時間管理"
"ジョブ時間管理"との一致はありません
google様が聞いたことねーっつってるわけ。意味わかる?
お前はそんだけ奇特な用語をポコポコ発明してるわけよ
自覚ねーの?ワナビーだから?知ったかクンだから?巣篭もりしてっから?
とっとと部屋から出ろよバーカ
で、もしかしてお前、ジョブスケジューラとかジョブスケジューリングのことが言いたいの?
だったら何で
>”MTフレームワーク”でググって勉強してみれば意味が分かるかもね…
何でMTフレームワークでググって勉強とかいう超絶的に頭悪そうなお話になるのかな?
ジョブスケジューラとかジョブスケジューリングってもっと汎用的な、OSの概念だよねぇ?
MTフレームワークのお勉強?低学歴ワナビーは紹介記事を読んだだけでお勉強になるの?
おめぇそんなんで何かを知っちゃった気になれるわけ?ワナビーが背伸び発言するには十分なの?
0356名前は開発中のものです。
2009/02/09(月) 18:59:43ID:ixLiaNv+イディオムなの?
デザインパターンなの?
フレームワークなの?
それとも、それらを超越した存在、神いわゆるGODなの?
それとも、新しいプログラミング言語のプロトタイプなの?
それとも、やっぱりただのうんこなの?
謎は深まるばかりだ
"working time management"
マイナーなつづりだな、きっと一部の選ばれしものだけが読める
論文かなんかで秘密裏に発表されているんだろう
俺ら凡人に対してそんな高度な言葉を使うなんて
普通に嫌な奴だな
0357名前は開発中のものです。
2009/02/09(月) 20:37:24ID:Tt5KtR55mediatorやobserverがゲームプログラムの中に登場するというなら問題ない
タスクシステム(>>2)の中にmediatorやobserverがあるというなら知能障害確定だな
ねーよ。どこにも
前スレで>>2はオブサーバーだとか言って喚いてたバカに何度も何度も何度も
何で?何で?何で?何で?何で?何で?何で?何で?何で?何で?何で?
と質問責めにしたが、まともな返事は返ってこなかった
0358名前は開発中のものです。
2009/02/09(月) 20:47:32ID:xIvd3PJC帰ってきてたじゃん
アレだろ?
更新タイミングはメッセージじゃね?
って返答だっただろ?
んでそうだよ→ちがうよ→そうだもん→ちがうもん・・・以下ループ
で終わったじゃん
俺は当事者じゃねぇけどw
0359名前は開発中のものです。
2009/02/09(月) 21:03:37ID:Tt5KtR55タスクという内部の処理単位を扱う何らかのシステムであるわけだ
>>2はビデオゲームにおけるあらゆる処理を1/60[sec]で起床させる
何で?何で?何で?何で?何で?何で?何で?何で?何で?何で?
バカ?バカ?バカ?バカ?バカ?バカ?バカ?バカ?バカ?バカ?
ほれ。これに答えた奴は一人もいねーよ
0360名前は開発中のものです。
2009/02/09(月) 21:18:37ID:8Rt3AtN00361名前は開発中のものです。
2009/02/09(月) 21:25:02ID:Tt5KtR550362名前は開発中のものです。
2009/02/09(月) 23:04:12ID:ixLiaNv+すげぇむかつく
設計の本読んで初めてタスクシステム詐欺に騙されたと気づいたときには
無意味なクソコードを何ヶ月も書いていたあのいまいましい思い出と共に
うんこと一緒に流れてしまえ
いまだにタスクシステムを擁護している連中は
俺から見ると、やっと流したウンコを拾ってきてまたこびりつけるような奴だ
このクソいまいましい観念は俺が3Dを覚えるときにも邪魔しやがった
本当に俺の前に立ちふさがるうんこだった
このうんこは除去しなければならない
0363名前は開発中のものです。
2009/02/09(月) 23:07:22ID:GJIaJ9hd0364名前は開発中のものです。
2009/02/09(月) 23:24:44ID:Tt5KtR55>そういうのやねうらおだけじゃなかったけどね
>昔は多少わかりにくくても考えながら聞いてやったけど
>いまって時代が変わったってのもあるよね
>もう別に奴等の言うことをわざわざ理解してやる義理も必要もないし
>情報が氾濫しすぎてて何かしゃべっても説明責任はてめぇの方にあんだよバーカ
説明責任かー。前スレでそれ絶叫してシカトされまくってたタスクバカがいたなぁ
自分に都合の良いウソを語る奴には説明責任を追及しないくせに
自分に都合の悪い事実を語る奴に説明責任を追及するタスクバカ
例えば、タスクバカにとってタスクシステム(>>2)ってのはゲーム業界固有の秘儀!至宝のテクニック!
であらねばならなかったわけなんだが、その根拠レスな確信を揺るがしかねない歴史的事実には
頑として抵抗して耳を塞いでたな。ほんとカルトってこえーわ
んで、「それはスレ違い!スレ違い!タスクステムと関係ないから関係ないから!」って一人で騒いでたね
0365名前は開発中のものです。
2009/02/09(月) 23:36:02ID:K+aHd4rkなんか今日は違う流れっぽい。
0366名前は開発中のものです。
2009/02/09(月) 23:43:53ID:UkCGE4Ld>>2の代わりとなるわかりやすい原型を紹介してくんねーかな?
「普通に書く」っていうけど、その実態がよく分からんから、
普通の人に、鼻つまみモノ扱いされるんだと思うぞ。
タスクシステムについては、>>2で最も初歩的な原型が示されているわけだしさ。
0367名前は開発中のものです。
2009/02/09(月) 23:58:01ID:ixLiaNv+それを万能のフレームワークのようにありがたがって無意味に誇張して
本質を語る邪魔をする、全て捨てろ、それは錬金術だ
今の体系的なパターンに含むことも出来ない過去の遺物だ
タスクシステムをありがたがっている奴は
設計の本なんて一冊も読んだことがないだろ、DSLすら知らないだろ
過去の栄光にすがっていると自覚しろ
わしの若いころはこうじゃった、だからお前もこうしろって
じじいかよ、性質の悪い爺かよ
役に立たない上に新しい観念を考えるときに邪魔にしかならない
最初に覚えるべきことじゃない、それは博物館に飾って置いておくだけのもので
実用するべきものじゃない
うんこー
0368名前は開発中のものです。
2009/02/09(月) 23:58:59ID:K+aHd4rk{
wait_vblank();
自機.update( ... );
foreach ( 敵 in 敵リスト )
敵.update( ... );
foreach ( 弾 in 自弾リスト )
弾.update( ... );
foreach ( 弾 in 敵弾リスト )
弾.update( ... );
checkCollision_自機vs敵弾( 自機, 敵弾リスト );
checkCollision_自機vs敵( 自機, 敵リスト );
checkCollision_敵vs自弾( 敵リスト, 自弾リスト );
}
とかやっていくんじゃないの?
これでも出来ないことは無いよ。
0369名前は開発中のものです。
2009/02/10(火) 00:11:36ID:KBLQ7wOOその部分を汎用的にすることを止めれば
すなわちタスコシステムを使わないという選択肢を取れば
使える手が増える、増えるワカメぐらいに増える
それが様々なパターン、フレームワークの選択に繋がる
そこを汎用的にすることに執着することが、もっとも愚かしく
そして考えの浅さを露呈している箇所である
そこを隠しても大きなメリットはない
男の乳首と同じだ、わざわざ隠すような所ではない
お前らは乳首を隠してパンツはいてない
そういう間抜けなことを他人に強要しているのだよ
君たちはノーパン信者なんだよ
何も知らない奴に乳首を隠せノーパンに目覚めよと言っている
恐ろしいカルトなのだよ
0370名前は開発中のものです。
2009/02/10(火) 00:12:45ID:Gj2vSSkO否定的見解はよくわかった。
だがしかし、>>2に代わる初歩的原型は具体的に無いということだな。
>>368
それって実質タスクシステムじゃん。
0371名前は開発中のものです。
2009/02/10(火) 00:13:38ID:D1ATM4io> それが様々なパターン、フレームワークの選択に繋がる
じゃ、タスクというパターンを選択してもいいんだ。
よかったな、お前ら>1-1000
0372名前は開発中のものです。
2009/02/10(火) 00:22:09ID:lnAkDE/Dいや、原型が>>368なんじゃね? もうベタベタまんまの原型なんじゃね?
で、>>368を↓という風に美しくまとめたのがウンコシステムじゃなかったっけ?
while ( true )
{
wait_vblank();
foreach ( ウンコ in ウンコリスト )
ウンコ.update( ... );
}
んで、↓みたいなのはウンコ同士のつっつきあいで表現するんだろ?
ウンコがウンコを生成したり消滅させたりしながら。
checkCollision_自機vs敵弾( 自機, 敵弾リスト );
checkCollision_自機vs敵( 自機, 敵リスト );
checkCollision_敵vs自弾( 敵リスト, 自弾リスト );
違ったっけ?
違ったらスマン。
0373名前は開発中のものです。
2009/02/10(火) 00:23:48ID:D1ATM4io0374名前は開発中のものです。
2009/02/10(火) 00:25:21ID:st5qSMNL>それって実質タスクシステムじゃん。
うん
実質は同じだ。データのやりとり。
違うのは可読性。
実質は同じ。
違うのは可読性。
実質は同じ。
違うのは可読性。
>>371
タスクはOK
マルチスレッドの単位もスレッドだし。
だがタスクシステム。てめーはダメだ!
0375名前は開発中のものです。
2009/02/10(火) 00:37:44ID:D1ATM4io{
virtual void update( Context& );
};
typedef list< BaseTas* > TaskList;
class JikiTask : public BaseTask { ... };
class TekiTask : public BaseTask { ... };
typedef list< TekiTask* > TekiList;
class JidanTask : public BaseTask { ... }; // 自弾全部管理してるタスクだと思えw
class TekidanTask : public BaseTask { ... }; // 敵弾全部管理してる(ry
====
TaskList tasks;
JikiTask jiki;
TekiTask teki[100くらい];
TekiList tekis;
JidanTask jidan( 100くらい );
TekidanTask tekidan( 弾幕系なので2000くらいw );
0376名前は開発中のものです。
2009/02/10(火) 00:38:27ID:D1ATM4iotasks.append( jiki );
tasks.append( teki全部 );
tasks.append( jidan );
tasks.append( tekidan );
while ( true )
{
wait_vblank();
foreach ( タスク in tasks )
タスク.update( context );
当たり判定( jiki, tekis, tekidan );
当たり判定( jidan, tekis );
}
とかはイカンのか?
0377名前は開発中のものです。
2009/02/10(火) 00:39:20ID:D1ATM4iotasks.appen( teki全部 );
が一つ余計だな。
0378名前は開発中のものです。
2009/02/10(火) 00:41:18ID:KBLQ7wOOこれをタスクシステムに投入すると
list.add(a).add(b).add(new C(a, b)).execute();
c.execute() { value = a + b; }
こうなる
dという要素をこのリストに突っ込む場合
abcがdに干渉されないのであれば
d.execute()を適当に実装すればよい
干渉するのであればabcのexecuteを修正する
よって追加に強いというメリットはないと断言できる
コマンドのメリットである追加に強いというメリットはない
ないのだよ
これじゃあコマンドパターンの意味がないじゃないか
この屈辱、コマンドに対する屈辱
コマンドパターンがかわいそうだ
タスク信者はコマンドパターンに謝れ、あやまれよぅ
0379名前は開発中のものです。
2009/02/10(火) 00:46:45ID:Gj2vSSkO>>368は局部的な実装をちょこっとだけ厚化粧しただけ。
その程度の可読性有り難がってどうすんだよ。
必ずしも個々のオブジェクト(タスク)の発生と消滅のタイミングが整然としている、
例えば60フレームごとに、全タスクが一斉に発生・消滅してるわけじゃないじゃん。
つまり発生と消滅のタイミングが、微妙にずれていることにより、カオスが表現できる。
しかしカオスな状態を裏方で制御する努力は、>>2でも>>368でも変わりがない。
つまりさ、
現実を見ろ、
タスクシステムに立ち向かえ、
カオスを克服する運用ルールを見極めろ、
ってことだよ。
0380名前は開発中のものです。
2009/02/10(火) 00:49:09ID:D1ATM4io0381名前は開発中のものです。
2009/02/10(火) 00:53:47ID:0//SUk3r0382名前は開発中のものです。
2009/02/10(火) 00:53:54ID:lnAkDE/D主従関係があるとないとでは全然違う。
要素が要素に直接干渉し、要素がさらなる要素を生成消滅させるのと、
リストを扱う奴が要素同士の関係を管理して、要素を生成消滅させるの、
違うよな。
>>336がFAでいいと思うがな。
>タイトル画面や戦闘シーンは、相互依存がほとんどなく、インスタンス数もたかが知れてる。また処理パターンが仕様変更で変わる可能性がある。
こういう部分で>>2を使うことには何の異論もない。
「相互依存がほとんどなく」ってのがポイント。
タスクシステムとかいう単語を見るとな、全部ウンコリストの中でやっつけようというイメージがあるんだが、ちゃうの?
ちゃんと使い分けしてるんならそれは否定しない。>>2は否定する。全部一緒だから。
0383名前は開発中のものです。
2009/02/10(火) 00:56:22ID:r6EeZy16仮想関数とか関数ポインタとか使うと
可読性が悪くなってデバッガで追えなくなるから
全部switch/caseで書けって言ってたプログラマが居たなぁ…
0384名前は開発中のものです。
2009/02/10(火) 00:57:58ID:M5ksrydA馬鹿じゃね。
>例えば60フレームごとに、全タスクが一斉に発生・消滅してるわけじゃないじゃん。
>つまり発生と消滅のタイミングが、微妙にずれていることにより、カオスが表現できる。
それのどこがカオスなの?寿命管理なんて、結局自クラスで閉じてるジャン。
そんなことより、例えば、宇宙に漂う星々を観賞するソフトをタスクシステムで作ることを考える。
星をタスクで実装したとして、各星の間に働いている万有引力はどう記述するの?
現実を見るのはお前だな。
0385名前は開発中のものです。
2009/02/10(火) 01:05:40ID:D1ATM4io厳密にやるならワークをそれぞれ2つ持って、フレームごとにフリップだろ。
面倒だったら一つ一つ更新して、n+1がnを参照してもn+1を参照しても対して問題が無い様にするさ。
どこまで誤差を容認できるか知らんけど。
0386名前は開発中のものです。
2009/02/10(火) 01:06:43ID:r6EeZy16そーいうタスクの実行順序が結果に影響する場合は
実行時間単位でタスク状態のスナップショットを取って相互参照はそのスナップショットを参照、
という方法で擬似的に「いっせーのせ」をやる方法を物理演算系ライブラリでよくやってる。
0387名前は開発中のものです。
2009/02/10(火) 01:07:10ID:VmByRVIY>>>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> >>373
> >>>2に代わる初歩的原型
> 初歩的原型?>>2が?どーこがだよ
俺のレスに突っ込みかよw
0390名前は開発中のものです。
2009/02/10(火) 01:13:56ID:VmByRVIY0391名前は開発中のものです。
2009/02/10(火) 01:15:44ID:M5ksrydA>>386
それは論点が違う。書き方が悪かったかな・・・
>宇宙に漂う星々を観賞するソフトをタスクシステムで作ることを考える。
>星をタスクで実装したとして、各星の間に働いている万有引力はどう記述するか。
この問題の論点は、タスクシステムにおいて、タスク間にまたがる処理はどこに書くのか?。
0392名前は開発中のものです。
2009/02/10(火) 01:17:04ID:D1ATM4ioとりあえずこの問題に限定するけど、フリーの物理エンジンの実装見たことある?
0393名前は開発中のものです。
2009/02/10(火) 01:19:09ID:r6EeZy16>こういう環境上で律儀に真似しようとするのはなーんでなんで?どうして?
そのまま同じコードで実装して使ってるところは無いと思うけど。
特にC++が主流になった現場では。
まぁ、同じ考え方のシステムはスペックにあった実装されて使われてるけどね。
スペックに関係なくゲーム作るうえで処理のプライオリティ付きでゲームの状態遷移によって出し入れできるタスク管理は便利だから。
他にいい方法があれば淘汰されてるだろうけど、この考えのシステムを淘汰できるような物は今のところ無いみたいだしね。
0394名前は開発中のものです。
2009/02/10(火) 01:21:28ID:D1ATM4ioFPSなんかは、全部仮想関数でupdateを持つEntityクラスのサブクラスにしてたりするよ。
0395名前は開発中のものです。
2009/02/10(火) 01:21:36ID:M5ksrydA無いけど。
0396名前は開発中のものです。
2009/02/10(火) 01:24:07ID:D1ATM4io答えが全部書いてあるから、見てみるといいよ。
0397名前は開発中のものです。
2009/02/10(火) 01:24:48ID:M5ksrydA逃げるなよ。絶対書いてないと断言できる。
今ここで示して見せてくれ。
0398名前は開発中のものです。
2009/02/10(火) 01:28:52ID:D1ATM4io万有引力は距離関係ないけどまぁ有効距離を設定したとして、一つ一つの星にかかる引力を合計して
その星の質量から加速度と速度を計算する。
で、単位時間(多分1フレーム)あたりの移動量がでるから、それを位置に加算するだけ。
0399名前は開発中のものです。
2009/02/10(火) 01:33:26ID:VmByRVIY>>394
数値積分の(代表的な、最小の)タイムステップとして例えばリフレッシュレートを選択し
そのタイムステップで可視属性のエンティティの処理を周期的に呼ぶというのは問題ない
アニメーション処理など、表示系の処理はリフレッシュレートに同期させないと美しくないからだ
>>2が腐ってるのは「あらゆる処理をちゃんこ鍋リストに入れてリフレッシュレートを基準に
周期的にバッチ処理して起床させる」というトンチンカンプログラムだから
0400名前は開発中のものです。
2009/02/10(火) 01:41:21ID:M5ksrydA>一つ一つの星にかかる引力を合計して
どこで合計するの?誰が合計するの?星タスクの中でやるの?
結局、タスクシステムの外で計算するしかないんじゃないの?
0401名前は開発中のものです。
2009/02/10(火) 01:45:28ID:VmByRVIY例えばFPSのエンジン。これのエンティティのMODを作る人間がユーザーとしよう
エンジンは内部ではBSPなりPVSで空間領域分割しているがMODの開発者は
そんなこたしらねーわけ
可視範囲内にいる脅威のデータをくれっていえばエンジンはくれるわけ
例えば視界のコーン(or視錐台)を渡して、最近傍のバカのデータをよこしてくれる
俺が使ったのはそういうエンジンだった
敵AIを作る奴の目的はレベル内の敵性物体の掃討であり、それを適切に連携しながら
行なうことだ。
タスクシステムってのは
脅威の情報くれ ⇒ エンティティのちゃんこ鍋リストあげるからテメェで探せバーカ
こういうもの
0402名前は開発中のものです。
2009/02/10(火) 01:46:55ID:M5ksrydA画面のリフレッシュレートは特にウィンドウモードの場合まちまちだから、
ゲームロジックのFPSと描画のFPSが別々になることがある。
例えば、ゲームロジック60FPS、描画72FPSとか。
この辺のギャップを滑らかに埋める仕組みを作るのは結構面倒。
俺の自作描画エンジンはそれを勝手に面倒見てくれるように作ってる。
それすら実装されてないのにタスクシステムとか言われても・・・ねぇ。
0403名前は開発中のものです。
2009/02/10(火) 01:47:59ID:VmByRVIYあ、これですらないわ。全処理のちゃんこ鍋リストだわ。ははーは
0404名前は開発中のものです。
2009/02/10(火) 01:57:23ID:VmByRVIY>画面のリフレッシュレートは特にウィンドウモードの場合まちまちだから、
YES。フルスクリーンであろうと指定したリフレッシュレートにしてくれない
ポンコツビデオカードがまかり通ってた時代もあるしな
>ゲームロジックのFPSと描画のFPSが別々になることがある。
YES。そのとおり。そしてリフレッシュレートが既知であろうとなかろうと
AIを作る奴にイベント駆動システムを提供することだってある
これはゲームエンジンが階層型スケジューラをサポートしている
0405名前は開発中のものです。
2009/02/10(火) 02:05:40ID:r6EeZy16>「あらゆる処理をちゃんこ鍋リストに入れてリフレッシュレートを基準に周期的にバッチ処理して起床させる」
これ、FPS単位では無いけどタイムシェアリングのOSのスレッド管理と同じような考え方だね。
タスクシステムもスリープ状態とか、スレッドのようなフラグ付けして使うのはよくある実装。
独立した時間軸のある処理を複数持ちたい、となるとスレッドなりタスクシステム的なものが必要になるわけで。
で、ゲームの場合はオブジェクト毎にスレッド立てるなんてのはパフォーマンス的に無駄なのでもっと簡素なシステムを使ってると、
そんな感じじゃないのかな。
別にそんなトンチンカンでは無いと思うけど。
タスクシステムで出来ることを全て網羅していてもっとスマートな方法があるならそれを使えばいいんだろうけど…
今まで見たことあるのは結局タスクシステム+αしたようなタスク拡張システムで、パラダイムの違うのは見たこと無いなぁ…
0406名前は開発中のものです。
2009/02/10(火) 02:18:31ID:VmByRVIYやねちゃんなの?
0407名前は開発中のものです。
2009/02/10(火) 02:26:24ID:VmByRVIY>無駄なのでもっと簡素なシステムを使ってると、そんな感じじゃないのかな
ん。違うな。やねちゃんではないな
協調的マルチタスクシステムがタスクシステム的だとか言わんよな。彼なら
眠気を我慢してる状態でごにょごにょ長文を読むとみんなやねに見えるから困る
寝る
0408名前は開発中のものです。
2009/02/10(火) 03:11:04ID:6K+49H2V0409名前は開発中のものです。
2009/02/10(火) 06:04:16ID:VmByRVIY>これ、FPS単位では無いけどタイムシェアリングのOSのスレッド管理と同じような考え方だね。
>タスクシステムもスリープ状態とか、スレッドのようなフラグ付けして使うのはよくある実装。
FPS単位とかよくわかんないけどさ
オラが村の自慢の生娘のウンコ(タスクシステム)に似てるとかドーデモイーわけ
所詮はローカル用語。お前さんの自慢のタスクシステムなんて誰も興味ねーし
お前さんが自慢のウンコを職場内でタスクシステムと呼んでようがドーデモイーわけ
俺がバーカバーカって言ってるのは公衆の前でタスクシステムとして布教されている>>2
そして>>2を超すごいオーパーツだとか可搬性と再利用性に優れたミラクル秘儀だとか
祭り上げてる(いた)バカ共
あと、定義不明瞭なオラが村のローカル用語(タスクシステム)を引っ張り出して擁護するイナカッペ
誰もてめぇのひりだしたウンコの名前の良し悪しの話なんてしてねーから安心しろ
0410名前は開発中のものです。
2009/02/10(火) 06:10:00ID:VmByRVIY>独立した時間軸のある処理を複数持ちたい、となるとスレッドなりタスクシステム的なものが必要になるわけで。
いやだからそのタスクシステム的ってナニ?意味わかんねーのよ
なんでそういうオラが村のローカル用語を駆使するの?自覚ある?ない?
まずお前のいうそのタスクシステムってやつを説明してくれないと
ホント意味わかんねーから
>で、ゲームの場合はオブジェクト毎にスレッド立てるなんてのはパフォーマンス的に
>無駄なのでもっと簡素なシステムを使ってると、 そんな感じじゃないのかな。
もうチンプンカンプンだよ
お前さんは一体ナニが作りたいの?協調的マルチタスクシステムが作りたいの?
だったら何でそれが>>2になっちゃうの?コンテキストスイッチはどこ?目的と実装は一致してるの?
何度も言うけど、一体ナニが作りたいの?ゲーム作りたいんじゃなかったの?目的変わった?
0411名前は開発中のものです。
2009/02/10(火) 06:12:33ID:VmByRVIY>別にそんなトンチンカンでは無いと思うけど。
ちゃんこ鍋リストに全てをぶち込んでバッチ処理がしたいんであれば>>2はトンチンカンじゃないな
ちゃんこじゃなくてウンコ鍋だったっけ
>タスクシステムで出来ることを全て網羅していてもっとスマートな方法があるならそれを使えばいいんだろうけど…
網羅する必要?どこにあるの?ねーよ?まず、ゲームは
ちゃんこ鍋リストに全てをぶち込んでバッチ処理する必要ねーから
でもお前はある。しかもタスクシステムが出来ることが他にもあるという。
網羅できないと駄目だと。じゃあこれについて語ってくれないか?
お前のタスクシステムで出来ることを全て網羅的に説明してくれ
逐一、それが>>2である必要がないことをみんなが説明できるぞ
>今まで見たことあるのは結局タスクシステム+αしたようなタスク拡張システムで、パラダイムの違うのは見たこと無いなぁ…
たしかに>>2は強烈なウンコパラダイムだな。ウンコパラダイムシフトってのは巻き糞なのかな?
0412名前は開発中のものです。
2009/02/10(火) 06:16:14ID:VmByRVIY0413名前は開発中のものです。
2009/02/10(火) 06:27:18ID:uUTFFFLf>ちゃんこ鍋リストに全てをぶち込んでバッチ処理する必要ねーから
まったくその通りだなw
0414名前は開発中のものです。
2009/02/10(火) 07:11:22ID:D1ATM4ioだから『個々の更新で処理しない』って書いてるでしょ?
中じゃなかったら外でやるしか無いじゃん。
>401
そこまで判ってるなら言うこと無いよ。
実行巡回リスト以外に、必要な各種コンテナを追加すればいいだけ。
だいたいその存在目的が違うのに、なんで『ごった煮リスト』からEntityの検索をしないといけないんだ?
> 脅威の情報くれ ⇒ エンティティのちゃんこ鍋リストあげるからテメェで探せバーカ
オマエの邪推だろ。
実行巡回リスト以外に管理しているものがあるとか想像できない、その貧しい発想がダメだな。
0415名前は開発中のものです。
2009/02/10(火) 09:26:37ID:lnAkDE/D話がぶれすぎ。
ウンコ信者は>>2をよく見て、それに含まれていないものを勝手に追加したり「想像しろ」とか言わないように。
>>2について決着がついたら、更なる進化系ウンコを提示してもらおう。
あと、質問には単純明快に答えてほしいな。
「どこで?」と聞かれたら「ここで」と答えよう。
「他のソース見たことある?」とか「フリーのソース見ればわかる」とか「こう計算する」とか「中ではない(だから外だ。でもどこかは言明しない)」ではなく、
明確にどこかを示してほしいもんだ。
0416名前は開発中のものです。
2009/02/10(火) 19:16:53ID:KBLQ7wOOタスカーの目的は保守だから逃げたり煙に巻くことだけを考えている
だからごまかせればそれでいい、逆に揚げ足取りを狙うだけ
自分からサンドバッグになるほどバカじゃないだろう
0417名前は開発中のものです。
2009/02/10(火) 19:22:31ID:uUTFFFLf0418名前は開発中のものです。
2009/02/10(火) 19:35:00ID:KBLQ7wOO使い方だけが記述してある
使う理由や、使うことで得られるもの等は書かれていない
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ジャンルごと、ゲームごとにルール、論理は異なる
にも関わらずなぜ共通の処理を用いようとするのか
なぜそこまで固着できるのか、それ以外を否定し続けなければならないのか
もはやカルト的、ゲーム脳的、マイナスイオン的
これは広義のタスクシステムなのだよっと言って
俺まで仲間にされたんじゃあ、たまったものではない
今こそ、そのこびりついたウンコを便器の奥に流し去るとき
0423名前は開発中のものです。
2009/02/10(火) 21:05:52ID:b8DkhQKbにも関わらずなぜタスクシステムを否とするのか
なぜそこまで固着できるのか、それを否定し続けなければならないのか
もはやカルト的、ゲーム脳的、マイナスイオン的
これは絶対的に醜悪なシステムなのだよっと言って
悪魔の仲間にされたんじゃあ、たまったものではない
0424名前は開発中のものです。
2009/02/10(火) 21:09:59ID:D1ATM4io0425名前は開発中のものです。
2009/02/10(火) 21:10:30ID:D1ATM4io0426名前は開発中のものです。
2009/02/10(火) 21:23:40ID:Gj2vSSkO>それのどこがカオスなの?
ある時点で、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最近はこういうのも『カオス』って言っちゃうんだ。
0429名前は開発中のものです。
2009/02/10(火) 22:37:10ID:KBLQ7wOOなぜそれを実装しているかという理由を考慮していない
実装したらどういうメリットとデメリットがあるのか考えていない
0430名前は開発中のものです。
2009/02/10(火) 23:18:09ID:mL1fBwYe万里ゆうじって、緑ウンコ本の人?
0431名前は開発中のものです。
2009/02/11(水) 00:32:00ID:+7H05QpINASAが開発した新技術で作られた商品です
プロも愛用しているこの商品
今回はなんとこの値段でご提供します
おおおー
なんだよ、その詐欺臭い言い回しは
0432名前は開発中のものです。
2009/02/11(水) 00:37:35ID:IygtSNqi今なら、このタスクシステム利用したフレームワークも付いて、お値段なんと9割引!
0433名前は開発中のものです。
2009/02/11(水) 05:39:41ID:UOmJaSIc世の中夜勤帰りで朝から寝てる人だっているんだよ?
引っ越しの時ちゃんと挨拶行った?
顔合わせたら軽く会話するとかしてちゃんとコンタクト取り続けてる?
日頃からそういうコミニュケーションが取れてればいつ洗濯機を回していいのか
いつ静かにしなければならないのか
迷惑を掛けないように生活出来るはずなんだが
0434名前は開発中のものです。
2009/02/11(水) 22:16:11ID:+7H05QpI>>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+mZ780438名前は開発中のものです。
2009/02/12(木) 12:44:58ID:V7VMrK+q0439名前は開発中のものです。
2009/02/12(木) 14:49:06ID:EGHKIPxYDXライブラリ信者がこの板で多いのも頷ける
0440名前は開発中のものです。
2009/02/12(木) 14:53:50ID:7VGTCBGVどんな問題を解決するのかという問いには問題が発生する場合との比較が
内在していて問題が発生する場合がなければ答えられない。
よってまず非タスクシステムではどう書かれていて
どんな問題があるのかを調査する必要がある。
■ このスレッドは過去ログ倉庫に格納されています