タスクシステム総合スレ 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/
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どんな問題を解決するのかという問いには問題が発生する場合との比較が
内在していて問題が発生する場合がなければ答えられない。
よってまず非タスクシステムではどう書かれていて
どんな問題があるのかを調査する必要がある。
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を呼びかけたい
挑発したい
これらの意図を読み取れる、あんたの心は見え透いている
透け透けなのよ
次は、もう飽きた寝ると言うんだ
何度も何度も繰り返しそう言うんだ
そして俺がいなくなるのを見計らって、またタスクシステムを布教するんだ
0445名前は開発中のものです。
2009/02/12(木) 16:24:01ID:Hu+5ypA8売名目的ぐらいしか思いつかない
自分の知名度を向上させるにはどうすればいいかという問題を解決できそうだ
自分ではよくわからなくてもまわりが凄い凄い言ってれば
なんだか凄そうに見えるという人間の心理を応用した
いわばカルト的人民掌握術と言える
実際に、ゲーム脳やマイナスイオンの偽科学もそれで普及した
●●●●をわざわざ持ち上げるのは、その恩恵にあずかりたいから
自己顕示欲と無知、それが連鎖して●●●●は一大宗教勢力となった
●●●●が全力で●●●●を守る理由も
自分の過去を正当化するため、又はその恩恵にあずかりたいから
典型的なカルトに洗脳された信者の行動と類似する
0446名前は開発中のものです。
2009/02/12(木) 18:39:05ID:eBGIJffi0447名前は開発中のものです。
2009/02/12(木) 19:00:30ID:aNWZiMstどんな問題を解決するかという問いかけを意味あるものにするには
問題意識の共有も必要だよ。コードのスマートさなんてあいまいで
捉え所の無い審美的主張がありうる話題のときは特にね。
そうでないと好き嫌いで終わる話を無駄に続けることに。
荒してる人はそれを承知で挑発してるのかもしれんが。
0448名前は開発中のものです。
2009/02/12(木) 19:09:11ID:efZR4RxDわかっている
議論や正論に負けたカルトは、対象をキチガイ認定して、数の力で押す
ならば問おう
外人が書いた本にタスクシステムの記述はあるのか?
パターン本にタスクシステムの記述はあるのかと
権威を傘に威張る奴は奴は権威に弱いという
日本ローカルな権威であるタスクシステムも
世界的な視点では、所詮日本のローカルパターンに過ぎない
タスカーは世界的な権威に負けたのだよっ
0449名前は開発中のものです。
2009/02/12(木) 19:14:03ID:+8fkivHK0450名前は開発中のものです。
2009/02/12(木) 19:15:10ID:Hu+5ypA80451名前は開発中のものです。
2009/02/12(木) 20:07:41ID:vBg+I3kHあんたには悪いけどな、俺としてみりゃ
内容が伴ってさえいれば口調が悪かろうがドーデモイーわけ
内容が伴ってさえいれば口調なんざ枝葉末節の些細な問題なわけ
内容が伴ってさえいれば口調なんざそいつの目印、そいつのお好みの芸風、フレイバーでしかないわけ
内容の無い一行レス、罵詈雑言レッテル貼りの一行レスを張る奴なんざ気にするな。無視しとけ
そいつらは、気に食わない相手を論破したくても脳みそが付いてこない哀れな低脳だ
言うに事欠いた時点でそいつ自身は詰んでるのに、大人しく引き下がる勇気の無い、低脳ゾンビだ
論理的に死んでるのに、でも悔しくて仕方なくて、だから相手の態度にウダウダブツブツ文句たれて
一行レス(腐れウンコ)を投げつけるしか成す術のない惨めな低脳腐れウンコゾンビだ
ひらしょーさんひらしょーさん言ってるアンチタスク気取り
やねうらおさん松浦さんさん万里ゆうじさん言ってるタスカー気取り
こいつらは等しく無価値な、内容の無い一行レスで吠えるだけの犬っコロだ
文句言っても消えやしない。いくらでも湧いてくる。今日も湧いてるな
>>442 >>445 >>446 >>449 >>450
ほれ。お前らの感想を聞かせろよ?脳みそついてんだろ?
>>2はobserver patternだと思う?思わないよな?思うなら>>359に答えてみ?
>>2はゲームプログラムの初歩的原型だと思う?思わないよな?思うなら>>387 >>388に答えて
0452名前は開発中のものです。
2009/02/12(木) 20:33:34ID:iaB+mZ780453名前は開発中のものです。
2009/02/12(木) 20:38:08ID:vBg+I3kH0454名前は開発中のものです。
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を守る理由も
自分の過去を正当化するため、又はその恩恵にあずかりたいから
典型的なカルトに洗脳された信者の行動と類似する
0457名前は開発中のものです。
2009/02/12(木) 22:14:01ID:S9ebbf2bやっぱり面白がられてるだけだなあ。突付けばすぐ反応してくれるし。
そういうのは何らかの権威がある身元のはっきりした人が言うから意味があるんであって、
ネットの片隅の名無しが言っても説得力なんて皆無なんだよね。
こういう事いうと「分かってくれるやつだけ分かればいい」なんて強がるけど、
そんなん身内でお互いを褒め合って慰めあってる
ネット上の一山いくらの連中と大差ないわけで。
ブログかmixiでやれって感じだ。
0458名前は開発中のものです。
2009/02/12(木) 22:16:26ID:/tzajE1Z0459名前は開発中のものです。
2009/02/12(木) 22:19:35ID:efZR4RxDくやしいっ……でも感じちゃう、ビクビクッ
DSL凄いんだぞー、マイクロソフトなんかの大企業が
研究したり論文書いてたりツール作ったりしちゃうんだぞー
タスクシステムなんてWIKIにすら載ってないじゃんかよー
ばーかばーかちんじゃえ
0460名前は開発中のものです。
2009/02/12(木) 22:32:19ID:/tzajE1Z# デジタル加入者線の略。
# プロレスラー、リングパフォーマードラゴンソルジャーLAWの通称。
# ニンテンドーDS Liteの略称。
# Damn Small Linuxの略称。
0461名前は開発中のものです。
2009/02/12(木) 22:38:49ID:efZR4RxDDSLって言ったらdomain specific languageドメイン固有言語のことに決まってるじゃないかよー
試行錯誤が必要な問題領域を、可読性を高く記述するために必要なんだよー
タスクシステムなんて一番重要な部分の柔軟性を奪って複雑にしてるだけじゃないかよー
0462名前は開発中のものです。
2009/02/12(木) 23:01:07ID:8rFN+WjAタスクシステム(>2の中身とは違うナムコ式の)で製作されたゲームが何本もあるという事実を
どうかんがえているんだろう?
過去にタスクシステム(という名の何か)でモノが作られたという事実と、今それらしい影が見当たらない
という事実は別物なんだがな。
0463名前は開発中のものです。
2009/02/12(木) 23:03:46ID:/tzajE1Zひらしょーさん:なにそれ?
0464名前は開発中のものです。
2009/02/12(木) 23:20:12ID:MNXQWJB9当時はメモリ空間64KBで、
・自動変数、なにそれ?
・アセンブリ言語以外ありえない
・アドレス決め打ち上等
・複数のインスタンスで同一のメモリアドレスを共有
(インスタンスの寿命が重複しないように、人間が考えて割り振り)
・自己書き換えカコイイ!
という世界だよ。
その状況においては、メモリ断片化を避けた動的メモリ確保、複数フレームに
またがるコンテクスト保持(コルーチン)を実現したナムコのタスクシステムは、
煩雑な手作業によるメモリ割り振りを回避し、処理の柔軟性も向上させる
優れた解決策だった。
今はメモリ豊富なんだし、コンパイラがいろいろ面倒見てくれるんだから、そっち
使うだろ。どうしてもアセンブリ言語で組みたいってのなら止めないが、コンパイラが
提供する型チェックの機能や最適化など全部窓から投げ捨てる羽目になるぞ。
0465名前は開発中のものです。
2009/02/12(木) 23:23:39ID:baxVhIC/>>2の中身とは違うナムコ式のタスクシステム?
そんな馬鹿な!>>2は日本ビデオゲーム業界黎明期に開発されたスーパーテクです!
ギャラクシアンが起源です!
やねちゃんなんてパックマンやゼビウスをリバースエンジニアリングして
本を書いたんだぞすごいだろーって日記で豪語してるんだからね!
上のほうでやねちゃんは偉大なプログラマ達と仲良しの凄い人ですよーって
紹介してくれた優しい人がいたでしょ?
やねちゃんは>>2のCodezineの記事をタスクシステムの教科書と呼んでるよ!
どうだ参ったか!
0466名前は開発中のものです。
2009/02/12(木) 23:26:24ID:efZR4RxDDSLの目的も似てる
ほとんどの人はこれを模索していたはずだった
一方タスクシステムは可読性を無視して、目的を失い迷走した
ジョブコンは広義のタスクシステムだよっ
って誰かが言うんだろうな、恥の上塗り
昔の人もいい言葉を残している
君子豹変、小人革面
0467名前は開発中のものです。
2009/02/12(木) 23:30:23ID:baxVhIC/タスクシステムは素晴らしい。夢と希望に溢れているよ
それに比べてひらしょーはどうだ
新清士によればひらしょーには夢も希望もないんだそうだ。全くその通りだね
タスクシステムをなにそれ?なんて言う人が夢や希望を語れるはずがない!
0468名前は開発中のものです。
2009/02/12(木) 23:36:57ID:baxVhIC/タスクシステムとジョブコンを混同するなんてあんまりだね
誰がどう見ても タスクシステム>>>(越えられない壁)>>>ジョブコン ですよ!
ジョブコン?なにあれ?スタックを弄繰り回す変態、超ド変態プログラムじゃん!
可読性のためとかいってアクロバティックなことやってホルホルしてただけじゃん!
0469名前は開発中のものです。
2009/02/12(木) 23:47:50ID:baxVhIC/>>>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/>>>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問題はその意味不明な行動理由だよ
毎回毎回目的もなく脊髄反射的に動いて後から自分の行動に理由付けするから
わけわからない方へいくんじゃないの?
■ このスレッドは過去ログ倉庫に格納されています