タスクシステム総合スレ 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/
0471名前は開発中のものです。
2009/02/13(金) 00:00:39ID:baxVhIC/>>>2はゲームプログラムの初歩的原型だと思う?思わないよな?思うなら>>387 >>388に答えて
これも三下のタスカー共がダンマリを決め込んでるから俺が答えてやる!
ドアホめ!犬畜生め!
タスクシステムがゲームプログラムの初歩的原型?それはちょっと語弊があるね!
>>2は上位タスクシステマーになれる優性遺伝子を保有する限られた選ばれた初心者が
読むことが許される究極の栄養満点の初歩的原型だ!
そんじょそこらのどこの馬の骨かも分からない劣等の子の初心者が使うことは許されない
下郎共め!ひれ伏せ!したーにー!したーにー!分かったか!
0472名前は開発中のものです。
2009/02/13(金) 00:06:30ID:Y/f9HM+b暴走族と同じでな、馬鹿に「こりゃカッコいい!」と勘違いさせる要素があるのがマズイ。
珍走に倣って「ウンコシステム」と呼ぼうぜ。
そしてこの呼び名を布教させよう。
タスクシステムのせいで「タスク」という単語がずいぶん汚染されたよな。
腹立たしいことだ。
0473名前は開発中のものです。
2009/02/13(金) 00:10:59ID:vXMg0VMqCだけで書いてるけど、自機の中に敵の処理はない。
自機の弾の発射だけはしてる。
0474名前は開発中のものです。
2009/02/13(金) 00:22:58ID:Dzt9fUT0タスクもアンチタスクも作品出さないよね。
もしかしてこのスレには私みたいなワナビーしかいないの?
0475名前は開発中のものです。
2009/02/13(金) 00:33:31ID:jTWpdRUF典型的には、メインループはこんなもんだろ。
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:rBZGA9oWDQ9でタスクシステムを使っていたら、去年の年末には発売されてたに違いない!!!
とかいう人とか、
DQ9はタスクシステムを使ってるから発売延期になったんだよ!
DQ9でタスクシステムを使っていなかったら、去年の年末には発売されてたに違いない!!!
とかいう人ばっかりだな、このスレは。
0477名前は開発中のものです。
2009/02/13(金) 01:05:50ID:xGWapjQs前の方で話題になってたオブジェクト間の相互作用はどうなってるの?
そこのthisに他のオブジェクトを返す関数を持たせてるの?
0478名前は開発中のものです。
2009/02/13(金) 01:45:27ID:JLcOgyKP>タスクもアンチタスクも作品出さないよね。
DSL的に書けばいい、調べればコード例も載ってる
解決したい問題領域を必要最小限にシンプルに書けばそれがDSLのコードになる
それ以外のノイズを含めたものは別のメソッドに追い出す
処理と描画を一まとめに書くかどうかはフレームワーク次第
0479名前は開発中のものです。
2009/02/13(金) 02:08:31ID:s/PWQtfm例えば、星と星の間に働く万有引力の話なら、メインループのどこかに、
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そう。もうちょっとまともに書くなら
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 is-a player" "scene is-a enemy"じゃなくて
"scene has-a player" "scene has-a enemy"だから
集約を使うんだが
シーングラフってそういうもんでしょ
0482名前は開発中のものです。
2009/02/13(金) 05:00:10ID:RXyTKZmkEnemyInterfaceというのはSceneInterfaceForEnemy
PlayerInterfaceというのはSceneInterfaceForPlayer
なのか。スマン
0483名前は開発中のものです。
2009/02/13(金) 07:33:41ID:zbAaxVahそれは駄目だ
自機は自機のソースだけで動くようにしろ
関連はシーンに書くようにしろ
無理やりでもそう組め
0484名前は開発中のものです。
2009/02/13(金) 07:34:47ID:rBZGA9oW> 解決したい問題領域を必要最小限にシンプルに書けば
言ってることは、タスクシステムとあまり変わらんなw
0485名前は開発中のものです。
2009/02/13(金) 11:40:15ID:JWOETb6dDSLをうたいつつ実体がタスクシステムなものがないとは限りませんし
見当違いのものを見て誤解してしまうとお互いに不幸ですから
具体的にそのコード例を希望します。
URLや論文名でそれが掲載されている資料を指し示してくださっても結構です。
0486名前は開発中のものです。
2009/02/13(金) 12:43:14ID:zbAaxVah0487名前は開発中のものです。
2009/02/13(金) 13:57:19ID:bN8FG44k0488名前は開発中のものです。
2009/02/13(金) 17:57:13ID:zbAaxVahそーはいかねぇんだよ
やねうらお二世
DSLは明確なソース記述例がでるまで
ドラゴンソルジャーLaw以外の解釈を認めない
0489名前は開発中のものです。
2009/02/13(金) 21:14:08ID:rBZGA9oW0490名前は開発中のものです。
2009/02/13(金) 21:22:01ID:JLcOgyKP他人の記事パクって書いてるから読んでみろよ
何かが違う、本質を理解しているのかといわれれば
理解しているように見えて全く理解していないようにも見えるけど
実際のところやねちゃん本人は理解しているんだえへんと
言うだろうけど、やっぱり俺の主観では理解しているようにはみえないけど
本人がそういうんだからそういうことにして置いてあげるのが
人情ってモノじゃないかなと思う今日この頃であった
何がいいたいかというと、うんこしながら考える
0491名前は開発中のものです。
2009/02/13(金) 21:45:40ID:cRTNceU4アセンブリ言語ならともかく、C++なら小細工せずにメンバ変数で良いんじゃない?
コルーチンが欲しいところは、スタックレスVMとスクリプト言語。
0492名前は開発中のものです。
2009/02/13(金) 23:47:47ID:rBZGA9oWcontiuationが無い場合は、protothreadなり何なりでFSMにするしかないか。メンドクサイな。
0493名前は開発中のものです。
2009/02/14(土) 00:04:21ID:8ytu66WRバカアホ連呼の楽しい泥仕合が繰り広げられていて新作ポエムを投下する
タイミングがなかなか見つからなくて悔しいのね
1/17のID:1fr/EvSg以降ご無沙汰なので話の流れがよくわからないんだが
『GPU(DSP)カード』っていうフレーズを見た瞬間ちょっと寒気したのね
何かの意図があってコピペしてるのか?まぁいいけど
>>490
ポエマーの称号はあなたにお譲りします。というかファンです
0494名前は開発中のものです。
2009/02/14(土) 00:18:25ID:8ytu66WR反射的に劣等感を覚えるおじさんはこの話題にコメントするのビクビクなんだが
アセンブリ言語やC言語コードに変換してくれるプリプロセッサを用意して
ゲームコードを楽に記述してもらえるようにする一工夫も外部DSL(?)なのかな?
デバッグ情報も吐いて、デバッガーの画面にゲームコードも出しちゃうやつ
0495名前は開発中のものです。
2009/02/14(土) 00:20:56ID:8ytu66WR×アセンブリ言語やC言語コードに変換してくれるプリプロセッサを用意して
×ゲームコードを楽に記述してもらえるようにする一工夫も外部DSL(?)なのかな?
ゲームコードをアセンブリ言語やC言語コードに変換してくれるプリプロセッサを用意して
ジョブを楽に記述できるようにする一工夫ってあるじゃない?
あーいうのも外部DSL(?)なのかな
寝る
0496名前は開発中のものです。
2009/02/14(土) 00:33:54ID:wj98RZ4CDSLはドラゴンソルジャーLaw以外の解釈を認めない
0497名前は開発中のものです。
2009/02/14(土) 00:41:01ID:vvv9+ke/人によってDSLのレベルは異なるんじゃないの
古い3D迷路探索に特化し、適当なアルゴリズムを外部で書くなら
if (ここはゴール) 終われ;
else if (前は壁) 右向け;
else 進め;
という感じが俺DSL
ただ、こういう風に書くには不向きなOSや言語だったのが不幸の始まり
試行錯誤していった結果、妙な方向に特化した副産物が
タスクシステムということだろう
コルーチンのおかげでようやく道が開けた
0498名前は開発中のものです。
2009/02/14(土) 00:47:41ID:wj98RZ4C駄目だ
そんなあいまいな回答許さん
DSLとはこうだ!
と言い切れ
言い切れないならはじめからDSLなんて言葉自体出すな
話が進んでから「実はそれ違いますーw」とか言い出すに決まってるだろ
いままで何度くだらない繰り返しをしてきたと思っているんだ
0499名前は開発中のものです。
2009/02/14(土) 00:55:34ID:vvv9+ke/>ジョブを楽に記述できるようにする一工夫ってあるじゃない?
>あーいうのも外部DSL(?)なのかな
そういうことじゃないの、超高級言語だから
論理的な部分から余計なものノイズを全部取り除いたものを
何らかの形で表現できればそれが一番欲しかったもの
常に理想的なDSLがあればいいけど
実際は、コストを考慮してある程度の妥協は必要になるから
マクロや、より自分の理想に近いものを見極める必要はあるけど
コルーチンがあればC++でもそれなりにいいものは出来ると思う
テンプレートやプリプロセッサやSEDなんかで軽く変換するだけでも十分
しなくても可読性を出来る限り高くすれば十分読みやすいのは書ける
スクリプトにしなくてもRPGツクールみたいなツール作ってもいいし
ドローソフトで描いた絵をSVGをそのままGUIに使えるようなツールを作る手もあるだろうし
色々と考える余地があるから柔軟でよいのではないかと思う
0500名前は開発中のものです。
2009/02/14(土) 01:00:57ID:vvv9+ke/>そんなあいまいな回答許さん
>DSLとはこうだ!
>と言い切れ
いいんだよ実装は柔軟で、様々なパターンを適用できるから
問題領域を可能な限り簡単にするという目的さえ見えていればそれでいい
タスクシステムは目的が見えてないからおかしいのだよ
そのくせ、実装に介入してくるから柔軟さが大きく欠けていた
それで複雑になって実装時間が長くなるという最悪のデメリットが発生した
0501名前は開発中のものです。
2009/02/14(土) 01:03:10ID:wj98RZ4Cほら、また定義に関する議論になるだろ?
この糞野郎
だから辞めろって言ってるだろ
お前は技術者でもなんでもないただの糞だ
誰もてめーのいうことなんて聞いてねーよ
育ちが悪いな
なんでそうやって曲解して答えるくせが体に染み付いてるの?
0502名前は開発中のものです。
2009/02/14(土) 01:04:38ID:wj98RZ4C誠意もなんにもなくて頭に糞しか詰まってないなら
さっさとプログラマなんて辞めて
儲かる業界いけよ
このチンカス野郎
0503名前は開発中のものです。
2009/02/14(土) 01:22:44ID:vvv9+ke/そのまま文を崩して書いているだけなのだよ
挑発気味に書いているのは、安易な挑発に乗るおばかさん達をひきつける目的と
わざと挑発に乗る性格の悪い人達をひきつける目的があるからだよ
そしてこう書くことで、俺の手のひらに乗ることに嫌悪を感じて
書き込まなくなる人も少しはいるのだろうなと推測してみたり
>なんでそうやって曲解して答えるくせが体に染み付いてるの?
俺が天才だから超天才だから
ちなみに挑発の後に質問しても、感情的に書きなぐるつもりはないよ
俺は、君の発言の目的しか見てないから、怒る理由がない
わざと挑発に乗るのも面白いけど
最後に
……とミサカは挑発します
って感じに文にかかる目的を書いてくれると君の思考が公開されて面白い
と、ミサカは要求します
バカという言葉も、不快だったり不快でなかったりするだろ
それは、発言者のその言葉に目的があるからだよ
そのバカという言葉の目的を見ることが出来れば
もっと幅広いコードも書けるようになるかもしれないね
俺ってやさしいだろー
0504名前は開発中のものです。
2009/02/14(土) 01:23:46ID:1cFYmXpg組み込みスクリプトでいいや俺。Squirrel可愛いよ。Squirrel
0505名前は開発中のものです。
2009/02/14(土) 01:37:28ID:wj98RZ4C気持ち悪いからレスしないでくんない
0506名前は開発中のものです。
2009/02/14(土) 01:43:47ID:GZoT97geシーンが複数あるときはそれぞれが>475のようなものを持ちますか?
言い替えると共通部分はどうしますか?
想像できたのは親シーンを継承してテンプレートメソッドパターンか
別の管理するものを作ってそれに投げるかですがそれ以外がありますか?
それとも現実にはそんなに共通部分は無いですか?
0507名前は開発中のものです。
2009/02/14(土) 02:24:07ID:qebnM/U5こんな気持ち悪い人間が育つのだなあ。
0508名前は開発中のものです。
2009/02/14(土) 08:15:50ID:krP7oFWEまともなプログラマなら、もっと高収入が望める仕事やるだろ
0509名前は開発中のものです。
2009/02/14(土) 08:30:11ID:LGQXbjlW0510名前は開発中のものです。
2009/02/14(土) 08:31:15ID:V87nWtWSちょっと変わったタスクシステム出来たよ。
なにが違うの?
・タスクはデータ構造ではなく制御構造。
・タスクはオブジェクトではない。
・タスクはデータを持たない。
・タスクはオブジェクト間での相互作用を記述する。
・タスクは関数やメソッドの中に定義する。
ちゃんとデバッグしてないから多分バグある。
サンプルプログラムは星の間に働く万有引力のやつ。
0511名前は開発中のものです。
2009/02/14(土) 09:28:11ID:xuJiOY9g・×reflesh ○refresh
・std::vectorだとinsert/deleteがO(N)になるけどオブジェクトが増えてくるとまずくない?
・挙動は、defineマクロじゃなくboost::functionで定義できるようにしようよ
・ifで定数との比較のときに定数を左に書くのはCのころの慣習で、いまや==と=を間違えても
コンパイル時に警告が出るのだから、これはやめたほうがいい。
・2オブジェクト間の挙動を実装するのにループが2重になってるけど、これを改善しないと
オブジェクトが増えてきたときに困りそう。
・structにtypedefは不要。どうせCとしてコンパイルすることはないんだから、こんな書き方やめたほうがいい。
・Operandでvoidの関数の末尾で書いているreturnは何か意味があるの?
・staticでOperandListを持っているのがダサイね。static禁止!
まあ、意図は伝わったし、その意図は大変いいと思う。
今後のさらなる改良を期待します。
0512名前は開発中のものです。
2009/02/14(土) 10:14:19ID:V87nWtWS空きインデックス保持&削除時NULL代入式なのでO(1)のはず・・・
>2オブジェクト間の挙動を実装するのにループが2重になってるけど、これを改善しないと
>オブジェクトが増えてきたときに困りそう。
でもまぁそういう処理を行うというアプリ側の仕様だからなぁ。
オブジェクトは型ごとにリストアップしているけど、
型の種類が増えると、型自体の検索のオーバーヘッドがどうなるかというのはちょっと心配だ。
なんせdynamic_castはむちゃくちゃ重いからなぁ。
すべての型へのキャスト可不可テーブル作って高速化って手はありそう。
>structにtypedefは不要。
マジでしらんかった。勉強になりました。C++すげー
>staticでOperandListを持っているのがダサイね。static禁止!
うーん、これに関しては、static使わないとなると、引数を持ちまわらないといけなくなるから勘弁ねがいたい。
OperandListの切り替え(バンク切り替えみたいに)が出来る仕組みを用意して、お茶を濁そう。
ゲームの場合は事足りるでしょう。
もしくはデータに親子関係をつけたりして、型以外でも検索できるようにするか。理想はSQL。
0513名前は開発中のものです。
2009/02/14(土) 11:07:09ID:xuJiOY9g>>std::vectorだとinsert/deleteがO(N)になるけどオブジェクトが増えてくるとまずくない?
>空きインデックス保持&削除時NULL代入式なのでO(1)のはず・・・
そこまで見てなかった。ごめん。
一時的にオブジェクトを1万ぐらい作って、その99%がdeleteされた場合、
すかすかのstd::vectorが残るのでgarbageは何らかの条件でやったほうがいい気はするけど
まあ、それはそれやね。
> 型の種類が増えると、型自体の検索のオーバーヘッドがどうなるかというのはちょっと心配だ。
> なんせdynamic_castはむちゃくちゃ重いからなぁ。
型ごとに分類するため一回traverseしていいなら、dynamic_castなんか使わずに
typeidでそのアドレスで分類したほうが速いでしょう。
>>structにtypedefは不要。
>マジでしらんかった。勉強になりました。C++すげー
うん
struct XXX
{
};←最後型名とか書かない。
どうも、あなたのソースは書き方がC++としては素人っぽいので、
C++をもう少し勉強しよう。
0514名前は開発中のものです。
2009/02/14(土) 11:13:13ID:xuJiOY9g>>staticでOperandListを持っているのがダサイね。static禁止!
>うーん、これに関しては、static使わないとなると、引数を持ちまわらないといけなくなるから勘弁ねがいたい。
なんで?
TaskSystemがOperandListを持っているなら、素直に
taskSystem.AddOperand(boost::function…)
↑これ指定するだけのことだけど、これがそんなに嫌?
0515名前は開発中のものです。
2009/02/14(土) 11:52:44ID:V87nWtWS「taskSystem」はグローバル変数?
とにかく、OperandListがプロセス中で唯一になれば、あとはどうでも。
0516名前は開発中のものです。
2009/02/14(土) 12:02:55ID:AT9MJLSnまた、目的も計画性も無しにとりあえず組んでみた?
会社だったらその作業に誰にどんな理由で金払わせるの?
説明してよ
0517名前は開発中のものです。
2009/02/14(土) 12:11:31ID:V87nWtWS0518名前は開発中のものです。
2009/02/14(土) 12:27:01ID:q8lA0UPYまーたプロ気取りお説教君がブリブリしてるのか
その学生さんが投下したネタの趣旨くらい適当にESPで汲み取ったれや。な
爪先立ちのワナビー君とかモバゲ底辺のクズにはそんな心の余裕はないかい?ん?
0519名前は開発中のものです。
2009/02/14(土) 12:28:31ID:g0on6kGh他のクソ・パターン?・サンプルにも突っ込んでやれよ。
0520名前は開発中のものです。
2009/02/14(土) 12:29:11ID:AT9MJLSn問題はその意味不明な行動理由だよ
毎回毎回目的もなく脊髄反射的に動いて後から自分の行動に理由付けするから
わけわからない方へいくんじゃないの?
0521名前は開発中のものです。
2009/02/14(土) 12:35:03ID:g0on6kGh自他に害及ぼさない限りにおいて。
0522名前は開発中のものです。
2009/02/14(土) 12:38:40ID:q8lA0UPYおめえ、前スレで頭鈍いせいで話に付いてけなくて説明責任!説明責任!とか
吠えてたバカタスカーだろ
0523名前は開発中のものです。
2009/02/14(土) 13:23:18ID:xuJiOY9g> 「taskSystem」はグローバル変数?
> とにかく、OperandListがプロセス中で唯一になれば、あとはどうでも。
なぜそれがグローバル変数だと思うのだ・・。それはある意味やばいぞ。
グローバル変数もstatic変数もまともなC++のクラス設計では使わないし、使う必要もないのだが。
class GameMain
{
TaskSystem taskSystem;
void Start()
{ ... }
};
int main(...)
{
GameMain().Start();
return 0;
}
こうなってると思ってくれ。
0524名前は開発中のものです。
2009/02/14(土) 13:40:46ID:krP7oFWE最後のGameMain().Start()はGameMainのテンポラリオブジェクトを作ってそのメソッドを呼び出しているのか。
お前、C++の相当のマニアだな?
0525名前は開発中のものです。
2009/02/14(土) 13:50:03ID:ojCD6VCw感動した。
0526名前は開発中のものです。
2009/02/14(土) 13:56:13ID:vCXBLjPV昔C言語の話題で「ポインタなんて難しい言葉つかってえらそーに!
そんなの使わないでもプログラム組めるんだよ!」と涙ながらに吼えてるのを
見たことがあるが…
彼は今もポインタという言葉にトラウマを抱えて生きているのだろうか。
0527名前は開発中のものです。
2009/02/14(土) 14:27:14ID:q8lA0UPYそのお話とタスクシステム話はどう結び付くんだい?
ポインターは意味が明らかなわけだが、タスクシステムはどうよ?
みんな俺俺プログラムだよな。定義不明瞭。みんなバラバラ
なーんてというと『いや共通項は>>2だから。実装付きできちんと定義されてるし。ナムコだし』と擁護&釈明してくる
じゃあと>>2に共通する謎仕様、謎実装を追求すると今度は
『オイラのタスクシステムは違う』
『現代的タスクシステムはもっとすごい(はず)』
とか逃げる
じゃあやっぱローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー
というと、『言葉狩りがしたいだけか。名前が気に入らないだけだろ』と知能障害をきたす
パープリンすぎてトラウマになるな
0528名前は開発中のものです。
2009/02/14(土) 14:33:38ID:V87nWtWSそれだと他所の関数や他所のクラスがtaskSystemへのポインタを知るための仕組みが居るから困る。
taskSystem(の中のOperandList)は、ぶっちゃけデータベースだからプロセス毎に一つあればそれでよい考え。
やりたいことは、
ゲーム中で使うデータ(オブジェクトなど)は全部データベースに登録する。
データを処理するときは、データベースにリクエストする。(このとき排他処理も自動的にかける)
リクエストに引っかかったデータはすべて並列的に処理される。(データが多い場合は各コアで並列に)
ねらいどころは、
排他処理の自動化。データ構造に基づいてロックをかけるのでデッドロックしない。
処理の自動並列化。
すべてのデータがデータベースに登録されているので、データ構造が明確。
処理の流れが基本一本道なので、どこで誰がなにをしているかすぐ分かる。
0529名前は開発中のものです。
2009/02/14(土) 14:56:39ID:vCXBLjPV> みんな俺俺プログラムだよな。定義不明瞭。みんなバラバラ
> じゃあやっぱローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー
何か権威から定義付けされてない言葉は公衆の場で使うな、ということかい?
たとえばデザインパターンが生まれる前からあれらのアルゴリズムはみんな俺俺実装で使われてたし
その時代に彼らは自己流な命名で呼び合ってた。むしろGoFみたいに定義されてる方がマレ。
ふつーにゲーム作ったことあるプログラマなら「タスクシステム」と言われれば
どんなことをしたいシステムなのかだいたい想像つくし。よほどの新人でもない限りその程度で事足りる。
現場ごとにのローカル定義用語なんて開発現場じゃいくらでもあるよ。
それらを厳密に定義した言葉じゃないと認めん、なんて言ってたら社会生活おくれんだろ。
まぁ、ここは開発現場じゃなくてゲーム作りたくて挫折した人とかもいて
何かコンプレックスを刺激されるのかもしらんが、そんなトラウマになるほど思いつめなさんな。
0530名前は開発中のものです。
2009/02/14(土) 14:57:04ID:V87nWtWSこれは無理か。
・データベースへのリクエスト時はデータベース全体をジャイアントロック。
・しかし、リクエストそのものは並列実行される。
こうだな。
0531名前は開発中のものです。
2009/02/14(土) 14:57:19ID:krP7oFWE> ぶっちゃけデータベースだからプロセス毎に一つあればそれでよい考え。
データベースにしてもサイトごとに仮想化して何個も用意するじゃん。
ゲームにしても、全然別の2つのゲーム(例えばミニゲームを2つだとか)を動かしうるなら、
そんな何の関係もないオブジェクトを同じOperandListに登録するのは嫌だし、無駄だ。
> それだと他所の関数や他所のクラスがtaskSystemへのポインタを知るための仕組みが居るから困る。
それは実装技術が足りてないだけだろ。
一体、どういうコードを想定してんだ?
ちょっとソースを例示してくれ。俺が書き直してやる。
0532名前は開発中のものです。
2009/02/14(土) 15:15:06ID:q8lA0UPY>何か権威から定義付けされてない言葉は公衆の場で使うな、ということかい?
人と会話するときはきちんと相手の話を聞こうや
それが文章なら、質問する前によく読み返そう
大人の常識でしょ?というか学校で教わったでしょ?
自分で引用した文くらいちゃんと読もう。な。
はい、では大きな声で復唱しましょー
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
『ローカル用語だな。公衆の場で何の事前説明もなくタスクシステムとか語られても意味わかんねー 』
脳みそに染み渡った?質問どうぞ
0533名前は開発中のものです。
2009/02/14(土) 15:21:00ID:XyngaOK40534名前は開発中のものです。
2009/02/14(土) 15:22:55ID:vCXBLjPVまぁ落ち着けや。
別にポインタ分からなくてもプログラムは作れるし
タスクシステム分からなくてもゲームは作れるさ。
君に理解できないことを他人が理解できたからって君が劣っているわけじゃないよ。
人間には個性があるんだから。君にしか出来ないことがあるかもしれない。
涙を拭いて外に出よう。
0535名前は開発中のものです。
2009/02/14(土) 15:23:33ID:vvv9+ke/デザインパターンは良く出る形でメリットがあるものを厳選している
タスクシステムは良く出る形だがメリットがないものを実装だけ俺俺定義している
デザインパターンの本で実装があまり重視されていないのは
メリットデメリットや問題解決などの方が重要だから
一方タスクシステムは実装ばかり重視されてそれ以外がない
よって同一のものではない、形だけが近い別物となる
ちなみにアンチパターンには該当してるみたいだけどね、タスクシステム
次はC++イデオム話ですか、やれやれ
イディオム話をするってことはどうやらフレームワークの話ではないらしい
0536名前は開発中のものです。
2009/02/14(土) 16:01:59ID:q8lA0UPYあれあれ?そうあってほしいの?そう思い込みたいの?
自称大人なのに言うに事欠いて妄想世界にイっちゃうの?
脳内世界で願望を実現して心穏やかになったところ悪いんだけど、何度も聞くよ?
>>529読んでね。脳みそに染み渡った?
で、↓の疑問は氷解した?
>何か権威から定義付けされてない言葉は公衆の場で使うな、ということかい?
もちろん氷解したよね?
0537名前は開発中のものです。
2009/02/14(土) 16:06:35ID:fs9yxo5u0538名前は開発中のものです。
2009/02/14(土) 16:08:51ID:t8bxwdC6>>510よりも良くなればアンチの勝ち。
良くならなかったらタスカーの勝ちだな。
0539名前は開発中のものです。
2009/02/14(土) 16:10:52ID:g0on6kGh結局言葉遊びか。外に出ろ
>>534わろた
0540名前は開発中のものです。
2009/02/14(土) 16:50:55ID:vvv9+ke/>>>510よりも良くなればアンチの勝ち。
>良くならなかったらタスカーの勝ちだな。
負けました、コード見たけど何がなんだかよくわからなかった
俺の知能じゃあ理解できないや
それにしてもタスクシステムはとっても便利な気がします
まさに神に選ばれた超天才のみが使いこなせるという
伝説の剣、そういわゆるゴッド神装備であることを痛感いたしました
俺は凡人だから使わないだろうけど
天才の方々は頑張ってください
凡人の俺はシェーダーでもいじってます
0541名前は開発中のものです。
2009/02/14(土) 17:13:51ID:AT9MJLSnまた、目的もなくとりあえず組んじゃった?
そういう行動改めた方がいいよ
自分では頑張ってるつもりなのにいつも結果に結び付かない状態になるよ
ソース読んであれこれ評価してる奴もおかしい
目的もなにもわかってないのになんであーだこーだ言えるの?
テキトーに気分で評価してテキトーなコメント入れてない?
ちゃんと目的を満たしているかどうかが評価ポイントじゃない?
0542名前は開発中のものです。
2009/02/14(土) 17:14:15ID:krP7oFWEあの程度のコードすら読めないとはよっぽど馬鹿なんだろうな
タスク派とかアンチタスク派とか以前にプログラマとして失格
お前みたいなクルクルパーに絡まれるやねが気の毒だ
0543名前は開発中のものです。
2009/02/14(土) 17:15:10ID:krP7oFWEお前みたいなクルクルパーもこのスレにはいらないからどっか行ってくれ。
0544名前は開発中のものです。
2009/02/14(土) 17:21:40ID:vvv9+ke/>タスク派とかアンチタスク派とか以前にプログラマとして失格
>お前みたいなクルクルパーに絡まれるやねが気の毒だ
おっしゃるとおりです
くやしいっ、でも感じちゃう、ビクビクッ
0545名前は開発中のものです。
2009/02/14(土) 17:29:48ID:vvv9+ke/問題領域がちょっと微妙な気もした
描画とロジックを混在させるのはまぁ、みなかったことにして
ロジックが細切れで、流れは見づらくないだろうかと思った
計算する部分を重視して、それがどう組み合わされているのかの部分が
ブラックボックス化するのには何か意味があるのでしょうか
俺にはその辺の意味が理解できなかった
まぁ、アンチタスカーで敗北者の俺の意見なんて無視していいよ
タスカーは神いわゆるゴッドなのだから気にするな
0546名前は開発中のものです。
2009/02/14(土) 17:32:45ID:laLZtnFH0547名前は開発中のものです。
2009/02/14(土) 17:48:23ID:krP7oFWE> 描画とロジックを混在させるのはまぁ、みなかったことにして
本当に馬鹿なんだなぁ。あれがあのフレームワークの真骨頂なのに。
あのフレームワークは、オブジェクトのinteractionを定義できるようになっているから、
描画すらも、Windowとobject(画面に表示すべき物体)とのinteractionとして定義できるってことだ。
なんで一番大切なところを見なかったことにするかな…
あんたはクルクルパーなんだから、アンチタスカーなんかを名乗ってくれるなよ。
アンチタスカーがみんなクルクルパーだと思われるじゃん。
0548名前は開発中のものです。
2009/02/14(土) 17:54:46ID:wj98RZ4Cで?結局、なんのためのソースだったの?
意味不明な行動してんじゃねーよ
いきなりソースもってきて「どうよ?」とか馬鹿か、頭おかしいのか?
0549名前は開発中のものです。
2009/02/14(土) 17:59:14ID:UJelYgTfおもしろい
void Loop() の相互作用が一覧で見れるってとこがかなりいいね
俺的難点を挙げるなら、「Tasksystem.h」何やってんだかワカンネェ orz
というあたりか。
・staticで定義された唯一のリストにデータを一緒くたに持ってる(型を気にせず)
・TASK1()とかTASK2()とかの引数に指定された型を元にリストから対象データを検索して処理を適用してる
この2点の意図を読み取るのがやっとだった。
演算子の意味づけ変更しちゃうともうC++じゃないね。俺的ゲーム用汎用スクリプト言語って感じ。読めない(俺が)。
他にはデータの保持方法がリストに全突っ込みってのがいいのか悪いのか判断がつかない。あまり問題は無い気もするが。
全体通してみると相互作用が見やすいという利点があって、逆に明確な悪いとこは今すぐ思いつかない。
データアクセス時に検索処理が間に入る分だけ、普通に変数定義しまくって変数名で直接アクセスするよりも重そうだなという程度。
ゲーム部分の可読性は高いし、性能が問題になったらデータ定義方法変えればいい話だし、かなりいけてる気がする。
今までのタスクシステムよりは断然こっち使う方が良い。先につながる。
ちなみに俺はアンチタスクシステム派です。
0550名前は開発中のものです。
2009/02/14(土) 18:02:25ID:Py1NnjYOお美しい・・・
0551名前は開発中のものです。
2009/02/14(土) 18:25:49ID:krP7oFWE頭がおかしいのはお前。あのレベルのソースすら読めないならプログラマの資格なし。
低脳がほざくんじゃねえ!
0552名前は開発中のものです。
2009/02/14(土) 18:30:38ID:ojCD6VCwごった煮リストにすることの利点が、相互作用を
"ちゃちゃっ"と記述ことにあるんだよ
と解釈したのだけれど、自分は結構面白く感じたし、、
十分利点になると思う
速度はどうなの?とか実装的問題は賢い人がなんとか解決するとして。
すると、中身でごった煮になっていない方法もありえるのかも
因みに自分もアンチ
0553名前は開発中のものです。
2009/02/14(土) 19:00:13ID:vvv9+ke/おっしゃるとおりバカでございます
有名なフレームワークの名前は一通り存じてございますので
名前をおっしゃっていただきさえすれば理解することもできましょうが
なにぶん、新種のフレームワーク事情にうといものでして
名前もわからないと何がなんだかわからぬのでございます
問おう、何のフレームワーク?
これだけ、罵ったんだから当然知っているだろうし答えられるよね(はーと)
0554名前は開発中のものです。
2009/02/14(土) 19:06:36ID:krP7oFWE何言ってんのかわからん。
510をフレームワークと呼んで何が悪いんだ?
0555名前は開発中のものです。
2009/02/14(土) 19:13:09ID:vvv9+ke/>510をフレームワークと呼んで何が悪いんだ?
何言ってるんですか
フレームワークといったらMVCやDocument-Viewなんかのことですよ
基本ですよ、知らないはずがないじゃないですか
もし、知らないでフレームワークフレームワークきゃはきゃは言ってたら馬鹿ですよバカ
新種のフレームワークなら名前を付けてください名前を
既存のフレームワークのような口ぶりで語るから
有名なフレームワークと勘違いしたじゃありませんか
あやまってください、お天道様にあやまってください
あやまれよぅ><
0556名前は開発中のものです。
2009/02/14(土) 19:13:48ID:vCXBLjPV結局、言葉遊びで批判はできるけどプログラムで証明することは出来なかったということか。
0557名前は開発中のものです。
2009/02/14(土) 19:14:30ID:q8lA0UPY>> 描画とロジックを混在させるのはまぁ、みなかったことにして
>本当に馬鹿なんだなぁ。あれがあのフレームワークの真骨頂なのに。
あのフレームワークて何?まさか>>2?
描画?真骨頂?OBJやBGを出力してくれる回路積んでた当時の話?
OBJの描画処理つーても基本的にはOAM(OBJの属性情報を入れるRAM。位置とかパターン番号とか)の
指定位置を書き換えるだけ。更新、状態遷移が確定したついでにOAMの指定位置を書き換えてたってだけ
真骨頂?は?
>あのフレームワークは、オブジェクトのinteractionを定義できるようになっているから、
>描画すらも、Windowとobject(画面に表示すべき物体)とのinteractionとして定義できるってことだ。
何いってるのこのバカタスカーは?頭蓋の中に何入ってるの?うんこ?
0558名前は開発中のものです。
2009/02/14(土) 19:16:49ID:krP7oFWE本当に馬鹿なんでね?ソフトウェア工学でフレームワークって言ったら
http://en.wikipedia.org/wiki/Framework
A software framework is a re-usable design for a software system (or subsystem)
この程度の意味だろ。
510は十分、re-usable designだと思うんだが。
0559名前は開発中のものです。
2009/02/14(土) 19:17:49ID:krP7oFWE基地外死んでくれ。
あのソースすら読めないならプログラムを語る資格はあんたにゃ無い。
0560名前は開発中のものです。
2009/02/14(土) 19:27:38ID:q8lA0UPYなんであのフレームワークとか言うんだ?
本人がタスクシステムつー名前付けてるんだから
>>510のタスクシステムて呼んであげればいい
>>2との共通部分はごった煮ってだけだけど
作者の意思は尊重されるべき
0561名前は開発中のものです。
2009/02/14(土) 19:28:26ID:krP7oFWEああ、そういう意味なら、勝手に呼び変えて悪かった。
0562名前は開発中のものです。
2009/02/14(土) 19:29:53ID:vvv9+ke/アーキテクチャパターンの話だと思ったんじゃがのぅ
違ったようじゃのぅ、何の話をしておるのかさっぱりじゃのぅ
しかし、そのスーパータスクシステムフレームワークを使う効能は
なんじゃろのぅ
わしゃいなかものじゃけぇ、ようわからん
0563名前は開発中のものです。
2009/02/14(土) 19:46:22ID:vCXBLjPV無理に理解する必要無いでしょ。特に必要性を感じてないなら。
別に他の方法で実装することもできるんだし。
自分のスキルにあった好きな方法で作ればいいんでない?
いくつかゲーム作ってれば、そのうち「あぁ、ここで使えば便利かも」って思える日が来るかもしれないし。
ゲームのタスクシステムなんて必要性を感じて、あれば便利だと思う人が使えばいいだけのもの。
誰も使用を強制なんてしてないよ。個人で作る範囲ではね。
0564名前は開発中のものです。
2009/02/14(土) 20:04:51ID:vvv9+ke/なるほど、あんたがやねうらおさんか又はそれに類する人ですね
タスクシステムはカルトや偽科学と同じ有害なもので
関わったものをほぼ間違いなく不幸にするだろう
カエルとびをすれば足腰が鍛えられるよって言う時代もあっただろう
焦って高い技能を取得しようとしている人を騙して(本人にその自覚はないだろうが)
あのおかしなパターンの使い方のくせを身に付けさせてしまったら
まともなパターンの使い方を覚える枷となる
ゼロからやるよりも長い時間を費やすことになるだろう
そして、あなたは長い時間をかけて嫌われていくのだろう
自らの無知を自覚せず行動するものは多数の者を傷つけるのだろう
あんたは何もわかっていない、又はわかっていて騙している悪人だ
私はあんたに要求する、黙るか、もっと考えろと、そして私欲を捨てろ
うんこでもしながらよく考えるんだな
0565名前は開発中のものです。
2009/02/14(土) 20:11:13ID:vCXBLjPVあのな
あんた一つの目的を達成する方法は一つしか無い、と考えてるのかい?
別にタスクシステムの考え方は万能じゃない、一つの方法に過ぎんよ。
使えるときには使う、他の方法がいいときは他の方法を使うって柔軟性が無いと
プログラマなんてできんよ。
方法はたくさん知ってるほうが有利だろ、タスクシステムを頭に入れたら
頭の中それだけになって他の方法を入れられないような鶏頭なら別だが…
0566名前は開発中のものです。
2009/02/14(土) 20:20:42ID:KRjtx6a7シンプルな相互作用と、シンプルなインスタンスなら簡単に書けて良いけど、
ちょっと規模が大きくなると辛そうな気はするな。
たとえば FPS だと、ヒット判定は総当りではなく BSP なり何なりで空間分割しないと
キツいが、こうなると TASK2() 使えない。もちろん"タスク”の枠組みでも書けなくは
ないが、ベタ書きより複雑になったら意味ないので。
メンバ変数全部 public も辛いかなぁ。アクセス保護の観点では、Star と Windows の
相互作用では m_x, m_y, m_w を readonly でアクセスしたいが、TASK1(Star) では
メンバ変数全部 read/writeしたい。
あとメンバ変数直接アクセスする仕組みだと、分割コンパイルにも支障が出るかなぁ。
処理が全部 Loop() に集中するから、こいつは Star や Window など全クラスの
定義を知っている必要がある。
また、Star などが単純で状態をほとんどもたないなら良いんだが、状態が複雑になると
外から直接メンバ変数を書き換えるのは危ない。たいていの場合、ヒット判定して、ヒット
してたら双方にメッセージを送っておくだけで、すぐには処理しない。で、後で自分の
Update() 処理の中でメッセージを受け取ってきて、自分の状態とメッセージを照合して
状態遷移する。
この辺の仕組みを入れようとすると、逆に複雑になりそうな気がする。
最後に欠点じゃないけど、タスクの派生クラスをどう扱うかは悩みどころだ。たとえば
Star を継承した Blackhole があったとして、こいつは TASK2(Star,Star) で参照される
べきか無視されるべきかの指定はあったほうが良いと思う。
0567名前は開発中のものです。
2009/02/14(土) 20:27:11ID:krP7oFWEポエマーいい加減死んでくれ
プログラムが読めない低脳がプログラム語るんじゃねえ
0568名前は開発中のものです。
2009/02/14(土) 20:36:30ID:q8lA0UPY寝言は寝て言え
たとえば、アンチタスクシステム側である俺が何故一貫して『>>510のタスクシステム』を
一切叩かないかというと、それが>>2とは提供する機能も実装も異なり、そして思想レベルでも>>2とは異質だから
たまたま同じタスクシステムという名、固有名詞を産みの親より授かった実態の全く異なるプログラムでしかない
俺の攻撃対象である>>2とそれを誉めそやして猿まねしてる石器人とは異質すぎる
0569名前は開発中のものです。
2009/02/14(土) 20:47:33ID:krP7oFWE実装も思想レベルでもありふれたタスクシステムと変わらないと思うが。
510の実装のキーポイントは、型を指定しての列挙だろう。
タスクのinteractionを書けるが、それにしても2つの型を指定して列挙してforeachを2重に回して
書いているのと何ら変わりがない。
これらの必要性は従来のタスクシステムでも散々言われてきたことだ。
0570名前は開発中のものです。
2009/02/14(土) 20:48:47ID:q8lA0UPYそいつはうんこうんこ言う詩的な便意君だろ
うんこが詰まると思考も詰まる体質なのかしらんが言動の水準が不安定だな
■ このスレッドは過去ログ倉庫に格納されています