リアルタイムストラテジーの話
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/17 12:31ID:EBHuprcvリアルタイムストラテジーの開発の話題
0046名前は開発中のものです。
01/11/29 23:34ID:???やりすぎると「太平洋の嵐」のリアルタイム版とかになって氏ねそうだが。
0047名前は開発中のものです。
01/11/29 23:47ID:g4GBBAEZ状況が不利になったら、撤退して体制を立て直したい。
AoEでなぜそれができないのか?それはマップが小さすぎるからだ。
マップをめちゃめちゃ広くすればよい。
そして小戦闘に勝ったらどんどん進撃するのではなくて、まずその地域の治安や経済を安定させて、そこでの国力を充実させてから次の戦闘に進むようにしたほうがよい。
0048名前は開発中のものです。
01/11/30 00:57ID:???0049名前は開発中のものです。
01/11/30 00:59ID:???大戦略は、実は「戦術級」で、
RTSが「戦略級」(+戦術)だとおもってるがどうか?
時間軸がちがうから、一概には比較できんが。
0050名前は開発中のものです。
01/11/30 03:36ID:R7UviveH各ユニットや施設が視野を持ってる場合、
地形や敵の動向をより速く把握したほうが有利。
いくらマウスさばきが早くとも後出しジャンケンの要領で
撃退されると手も足も出ない。
監視テクニックが鍵になってくる。
0051名前は開発中のものです。
01/11/30 03:49ID:???0052名前は開発中のものです。
01/11/30 03:53ID:???ネクソンのタクティカルコマンダーってゲームはそれに近いかな。
ネットゲーで25人VS25人で一人6〜12機のユニットを操作する。
レベルアップもある意欲作かなと。無料版もあるので、1度やってみると
参考になるかもしれない。でも無料版は人数少ないから、みたいところが
全部は見れないかも。
自分的にはRTSとシムシティ系を組み合わせたものがやりたいなぁ。
むしろ、戦闘はほとんどなくても良いと思ったり。どうでもいいか。w
005345
01/11/30 07:41ID:???>そして小戦闘に勝ったらどんどん進撃するのではなくて、まずその地域の治安や経済を安定させて、
>そこでの国力を充実させてから次の戦闘に進むようにしたほうがよい。
それはシングルの分にはいいかもしれんが、マルチプレイではローマや
米国のような「最強国家」(自分以外のすべての世界を相手にしても負けない)の
存在を許すような。んでそのプレーヤが暴君だったりした日にはもう・・・。
マップが広大ということは、いくら撤退しても、その撤退した分の資源を敵勢力に
奪われるわけだから、いつか捻りつぶされるぞ。
>>49
ワールドアドバンスド大戦略しかやったことないんだが、あれは戦略も
戦術も両方できた。つまりマップのスケールが可変なので、環太平洋
マップであれば戦略だし、そのなかのミッドウェー海域マップであれば
戦術なわけだ。
要は「補給」とか「兵站」の概念があれば戦略なんだと思う。
RTSなら「資源採集」、大戦略なら「都市占領」。
>>52(RTS+シムシティ)
「CAESAR3」(SIERRA,日本語販売元イマジニア)をお勧め。シングル専用だが。
余談だがこのソフトの日本語版マニュアルほど秀逸な海外ソフトの
日本語マニュアル他に見たこと無いなあ。
0054名前は開発中のものです。
01/11/30 13:00ID:???0055名前は開発中のものです。
01/11/30 13:23ID:???じゃあ、キミが作ればぁ? 2chRTS。
0056名前は開発中のものです。
01/11/30 13:23ID:???0057名前は開発中のものです。
01/11/30 13:56ID:???楽器・作曲板に行ってなんでこの板で曲作らないんだとか
同人ノウハウ板に行ってなんでこの板で同人誌作らないんだとか言うか?
どうもゲームに限って何か勘違いしてる奴がいるな。
005854
01/11/30 14:51ID:???パラメータはああだとか言っててもしょうがないだろ?
すでに開発中のゲームがあって、それをどう弄れば面白くなるか?
というような議論をするのがこの板の趣旨なんじゃないのか?
まだ企画段階だから、ここでそのアイデアを出し合ってるだけとか
言いたいかもしれんが、その後きっちり開発がはじまるのか?
そうじゃなければただのオナニースレだって言いたかったんだよ。
やるんならゲームの開発状況や途中経過を報告してくれ。
その上での議論ならありだと思う。
何も作らないで「僕のちゅきなRTSはこれでちゅ!」話に
終始するのが不毛だってこと。
0059名前は開発中のものです。
01/11/30 15:00ID:???>すでに開発中のゲームがあって、それをどう弄れば面白くなるか?
>というような議論をするのがこの板の趣旨なんじゃないのか?
違うと思うんだが...
0060名前は開発中のものです。
01/11/30 15:41ID:???ここは「製作技術」板なんでしょ?
ということで、>>58はそもそも認識が間違ってる。
もちろん、スレ違いなゲーム評価発言をしてるやつは、ただのバカ。
0061名前は開発中のものです。
01/11/30 16:43ID:???まぁいいや、あんまり続けてもスレ汚しになるだけなんで、ここらでやめとく。
正直、スマンかった。
0062名前は開発中のものです。
01/11/30 20:42ID:???ハンドレッドソードは、海外のやつに比べてどうよ?
あたりから、技術的に逝く?
0063名前は開発中のものです。
01/11/30 21:41ID:???「製作技術」の意味の判らない馬鹿が現実と夢を混同しとる。
0064名前は開発中のものです。
01/11/30 22:38ID:???0065名前は開発中のものです。
01/11/30 23:07ID:???みたいな妄想と設計の区別のつかないヲタは来るな。
設計やプログラミング技術は文字だけでも出来るんだよ。
まあ、このスレもヲタ臭くて近寄る人へったがな。
0066ネタフリ
01/11/30 23:21ID:4PQHEBVPこれはリアルタイムのようにみえて、実は内部的にはターン制で動いてます。
つまり、ユニットが500いたら、IDが0から499までついていて、0が動いて1が動いて2が動いて、、、
というのをものすごく速くやるとリアルタイムに動いているように見えます。
あと、Diablo ははじめターン制のゲームになる予定でした。
でも、途中で、リアルタイムにしよう、という話がでて、すっごく難しかったけど、リアルタイムで組みなおしました。
プログラムは大変だったけど、このおかげでDiabloがとっても楽しいゲームになったのです。
0067名前は開発中のものです。
01/11/30 23:52ID:???0068名前は開発中のものです。
01/12/01 00:26ID:???煽り以外に噛み付くやつってプログラマーに多いね。
006945
01/12/01 01:32ID:???RTSをゲームたらしめる要素、あるいは通常のSLGと「リアルタイムである」以外の
差異はどういうふうにあるのか、とか。「リアルタイム版大戦略」はあれはRTSなのか?
ちがうよな?
007045
01/12/01 01:34ID:???まだマルチプレイを作れるほど技術無いんで、>>66のポピュラスみたいな
高速ターン制になる(シングルならそれで十分)と思うけど。
昔の98の「フロンティア・ユニバース」とかゲームボーイ版「大戦略」みたいな、
操作(指令)するときだけ時間が止まる(つまり普段は自動的に「自ターン終了」しつづける)
タイプを経て、現在の完全リアルタイムになったと思うんだが。
今のはスレッド処理以外に内部ターン制より何か特別なことしてるのかな?
0071名前は開発中のものです。
01/12/01 02:05ID:???そのうち公開するよ。
007222,26
01/12/01 03:03ID:ZSppgHPl遅いレスと、話を蒸し返すみたいで悪いが、いま見たので。
>(1)体験版をダウンロードしてプレイしてみれば30分で飽きる。
体験版をやってはまった人もいる。
>(2)キャラ同士が重なることができる
重なれません。エア系は一時的に重なれますが、
停止状態だと、離れていきます。
>(3)進化が無い
あります。
>(4)新しい要素が特に何も無い。
何と比較しての意見なのか疑問
>特に致命的なのが
>(5)プレイしていて「おおぉっ!」と感じる部分が無い。
そう感じる人がいて当然だとおもいますが、
あなたの感受性が乏しいという可能性も考えられます。
RTSはテンポのとり方って難しいですよね、
どれぐらいの時間で遊ぶのか、遊ばせるのかって部分が
ゲームバランスに大きく影響するし、
プレイヤーの好みが別れる部分でもありますし・・・
0073名前は開発中のものです。
01/12/01 03:26ID:???落ちゲーだとかだと、とりあえずテトリスなら簡単だし完成
した時そこそこ遊べるので、やる気が出ます。
そーいった、「簡単に作れて、完成したらそこそこ遊べる
のが保証されている」制作者入門用RTSって無いでしょうか?
0074名前は開発中のものです。
01/12/01 03:45ID:Xa+P0HQD007545
01/12/01 13:08ID:???4要素が揃ってれば相当それっぽく見えると思うなあ。あとは
>>50の言うように「視界」を設定するとぐっと戦略性が高まる。
もともと(ルール的に)シンプルなゲームじゃないので、
実在のゲームでシンプルなモデルは考えにくいかも。
まずリアルタイムじゃないSLG(ユニットとか1、2種類でいい、
「兵士」と「農民」だけとか)を作る
↓
ターン進行を自動的に(UIと別処理に)する
で、あとから要素を加えていけば・・・?
007671
01/12/01 13:26ID:???生産・補給の概念を含んだほうがより良いだろうけど。
初めてRTSを作る場合、イメージとして、ボコスカやシルバーゴースト(FQシリーズ)を
目指すのが良さげ。
フリーソフトでも似たようなのあるしね……まずはその辺からでも。
0077名前は開発中のものです。
01/12/01 18:09ID:???あまりゲームやってるヒマないから。
作り方なんか言われないでも分かるし。
否定的な人は、「分析=製作上の最大のポイント」ってことが
分かってない人じゃないの。
もっといろいろ教えてよ。
0078名前は開発中のものです。
01/12/01 19:26ID:???禿げしくドウイ
0079名前は開発中のものです。
01/12/01 19:34ID:???誰に言っとるんだ?
0080名前は開発中のものです。
01/12/01 21:54ID:rcyattDKポピュラス3では、ユニットは最初は全員農民からはじまって、戦士小屋にしばらく放り込んでおくと戦死になるし、
宗教小屋に放り込んでおくと宗教家になる。
0081名前は開発中のものです。
01/12/01 21:56ID:???0082名前は開発中のものです。
01/12/01 22:07ID:rcyattDK0083名前は開発中のものです。
01/12/01 22:19ID:???0084名前は開発中のものです。
01/12/01 23:17ID:???使えるか使えんかよくわからん知識。
0085名前は開発中のものです。
01/12/01 23:26ID:fmDEbi46そうでない凡人の場合は、50人とか、100人とか、大量に集めておいて、一つの目標に向かって
「それ打て!」
の合図で一斉に打つ。
0086名前は開発中のものです。
01/12/01 23:51ID:???> 戦士小屋にしばらく放り込んでおくと戦死になる
言いえて妙ですな。
オモシロ!
0087名前は開発中のものです。
01/12/02 00:54ID:???なんども上げられてるスタクラを例に取る。
このゲームでは各ユニット・施設がそれぞれ視界を持って同盟軍内で共有する。
実際に画面に移るのもレーダーに映るのも視界内のものだけ。
もうひとつ、クロークという概念があって見た目的には所謂光学迷彩。
ただしレーダーにも映らない。クローク破りのユニットや施設で対応する。
(けど背景が屈折するんで頑張れば見える・・かも)
これらのルールによってこのゲームは情報戦が鍵になってる。
やってみると解るがRTSと情報隠蔽はかなり親和性が高い。
これによってどうなるかと言うと相手が何をやってくるのかが解りにくい。
囲碁や将棋では戦局が細かくても相手が何をやってくるかは元々解りにくい。
それは戦いの自由度の高さによるものだが
一方、多くのゲームは生産されたユニットを見た時点である程度
敵の動向が予測できてしまう。
これを防ぐ為にあえて情報を隠蔽するようにした、と漏れは考える。
0088名前は開発中のものです。
01/12/02 01:18ID:???0089名前は開発中のものです。
01/12/02 02:05ID:???0090LI(22,26,72)
01/12/02 02:32ID:2CZt7wCyどうしてもゲームとしてユニットジャンケンが必要(?)
になってくるせいで、バランスのために犠牲になりますね。
009173
01/12/02 02:35ID:???>>75
>>76
レスどうも。なるほど、補給は無くても成り立つんですね。
とりあえず戦闘だけの奴から作ってみます。あと、
ボコスカウォーズはやったことは無いです。ファミコン
だということは知ってますが。
0092名前は開発中のものです。
01/12/02 02:46ID:???ろんぴょう と ぶんせき を
こくごじてんでしらべてみましょう。
0093名前は開発中のものです。
01/12/02 03:25ID:???評論家の意見は具体性が無く製作につながってない。
0094名前は開発中のものです。
01/12/02 03:27ID:1e5pm9Atゲームサロンとかあるだろ。
0095名前は開発中のものです。
01/12/02 03:36ID:???お前が制作に繋げられないだけ。
人間関係といい、プログラミングといい
総合的な実力に欠けているんだね、君。
お前は個人制作向きだな。
かわいそうなやつだ。せめて、放置してやろう。
0096名前は開発中のものです。
01/12/02 03:46ID:???1はRTS開発の話題ですと述べている。
いいかな、ここはゲーム製作サークルではありません。
消防に説明するようで他のみんなに申し訳ないが(;´Д`)
009796
01/12/02 03:49ID:???分析は製作の話題に入ります。
ゲームデザインはゲームの肝。
0098名前は開発中のものです。
01/12/02 04:09ID:???0099名前は開発中のものです。
01/12/02 04:46ID:XLc9NRFu0100名前は開発中のものです。
01/12/02 12:22ID:???0101名前は開発中のものです。
01/12/02 12:23ID:tB3z/7Ix0102名前は開発中のものです。
01/12/02 12:26ID:???正直、実際のゲームの話を持ち出されても、
遊んでないので話についていけまへん。
ゲーマーほど遊ぶ時間物理的に取れないもので。
0103名前は開発中のものです。
01/12/02 12:38ID:tB3z/7Ix0104名前は開発中のものです。
01/12/02 12:48ID:???>時間物理的に取れない
むずかしいこといってるな(笑
あそぶ時間が無いっていう意味で、
スタクラの話についていけないという事だとして、
いままで↑にでてきたぐらいの内容についていけない
のは、どうか?
0105名前は開発中のものです。
01/12/02 13:15ID:???アルゴリズムや実装の話は誰もネタ振らないから
今は無いだけだろ。
0106名前は開発中のものです。
01/12/02 14:35ID:???ヲタの世界観はやっぱ違うな。
頼むからゲーム板に帰ってくれ。
0107名前は開発中のものです。
01/12/02 15:13ID:???かちゅ〜しゃユーザは透明あぼ〜んを活用のこと。
0108名前は開発中のものです。
01/12/02 15:15ID:???RTSと一口に言われても、他ジャンルと違ってコンセンサスがないため
皆が話したいことがまったくバラバラなのが原因と見たが。
0109名前は開発中のものです。
01/12/02 15:19ID:???ていうか、質問があるんだったら素直に
質問したほうがいいと思うよ。ネタ振りにもなるし。
0110名前は開発中のものです。
01/12/02 16:08ID:???過去ログ読むのメンドイ。
0111名前は開発中のものです。
01/12/02 16:30ID:???0112名前は開発中のものです。
01/12/02 19:00ID:1OCW+xDM>>17-23参照。
A*検索の話が潰された。 23=ヲタ
それ以来、開発の話に行こうとするとヲタが出てきて壊す。
0113名前は開発中のものです。
01/12/02 19:40ID:???0114名前は開発中のものです。
01/12/02 20:27ID:???0115名前は開発中のものです。
01/12/02 20:38ID:???いやその、この板にきたのが久しぶりとゆー意味で。。。
てーか原因がわかってるならサルを放置しながら A* の話に
戻していけば良いのでは?
011645
01/12/02 22:02ID:???ってことは無いと思うんだけど。
興味ない方は放置してくださいよ、うちらを。
たとえばサターンの「クウォヴァディス2」は戦闘に際して
武器の弾道を2次関数で演算してるのがウリだった。
最近では当たり前かもしれないけど。
でもゲームとしてはツマラナカッタ。何故か。
AoEでもなんでもいいが、評価の高いゲームは
戦闘が面白いからなのか、それ以外の部分が面白いからなのか。
あるいは、両方面白いからなのか。
両方面白くないとつまらないゲームになるのか。
どっちかが面白ければいいのか。
そういうところが気になるんですが、俺は。
011745
01/12/02 22:12ID:???そっか。「リアルタイム版大戦略」がRTSじゃねえと
俺が感じるのは、ユニットの移動なんかが実時間っぽくても
戦闘が相変わらず「Aユニット攻撃、Bユニット地形防御効果○%、
Cユニットの支援効果が○%で・・・」とかやってるからなのかも。
実際に包囲攻撃なら「包囲されて攻撃されてる!」って様が
再現されてれば、補給とか無くてもRTSって感じがするのかな。
あと個人的にはAoEにしろスタクラにしろスデンにしろ、弾が
飛んでいって同時に着弾、とかする様がスキってのがあるかも(w
ただまあ、>>108の言うとおり、「これはRTSに含まれる」
「いや含まれない」っていう言葉の定義の問題はあると思うので、
あんまり「俺的にRTSじゃねえと思う」ってのは言わないほうが
いいのかな、やっぱり・・・。
011845
01/12/02 22:21ID:???「弓兵」ユニットはあれは単に射手一人だけじゃなくて、その
予備の矢筒とかもすべて含めて抽象してると考えたほうがいいんじゃないかな。
あるいは、あの1ユニットは1人の弓兵ではなくて1小隊分の弓兵を
記号的に表してると考える。
そうでなかったら、たとえば「騎士」だったら単独で行動することは
めったに無くて必ず従者がついて歩くわけだし。でないと鎧脱げないし(w
0119名前は開発中のものです。
01/12/02 22:52ID:c7appxyUまじめに作りたがってる人には迷惑だと思うよ。
技術的な問題に関係ないゲームの面白さ「だけ」を議論したいの
ならできれば別スレ立ててくれた方がありがたい。その方がそう
いう議論したい人にも有益だろう。
0120名前は開発中のものです。
01/12/02 23:16ID:???0121名前は開発中のものです。
01/12/02 23:25ID:???厨房でもヲタでも妄想君でも出来る。
0122名前は開発中のものです。
01/12/02 23:30ID:fNtUxcpmhttp://game.2ch.net/test/read.cgi?bbs=gamedev&key=1007303109
住み分け完了。
やはり、マネージャーが一人いないと、ヲタどもはケンカばかりして仕事が進まんな。
0123名前は開発中のものです。
01/12/02 23:30ID:???・・・絶句。
プロなら問題あるな、その発言は。
でも親切な人が別スレ立ててくれたので話題を分けようか。
0124名前は開発中のものです。
01/12/02 23:32ID:???0125LI
01/12/02 23:50ID:???ゲームの世界観がどうのとかは、すっ飛ばしてもいいでしょうね。
もちろん世界観によってデザイン(ユニットなど)時に違いがでてくるでしょうが。
もちろんここでは、どっちが面白いとかそういった話題は必要ないとおもいます。
基本的なゲームシステムだけみると、
スタークラフト=AOE
でもかまわないと思います。
迷路を探るとき両方とも、常に最短路ではないですね。
壁づたいに移動したときの方が目標に近いときにも、
いったん中央(マップチップの)に移動したりしますね。
昔いくつか予測と実験繰り返しましたが、
説明したくても文書だと書きにくいですね。
あと、意見を求めるときはどのゲームのどの部分かを具体的に
書いたほうがいいと思います。
既存でないシステムの場合は、ちょっと説明は大変でしょうね。
0126名前は開発中のものです。
01/12/03 00:01ID:???せっかく別スレ用意してもらったのに。
0127名前は開発中のものです。
01/12/03 11:45ID:???>>124
Boidって、RTSの敵の行動を群れで制御するってこと?
ならば、やはり本家が萌え。
http://www.red3d.com/cwr/boids/
RTSに限らず、群れがワラワラと動くのっていいよね。
アクションとかシューティングの敵の動きをBoidでやってる
ゲームって無いのかな?三国無双なんか結構それっぽいけど。
012845
01/12/03 15:17ID:???ウェイポイントが振ってあって、目的地毎にそれを辿ってくって
感じだった(だから最初は最も近いウェイポイントを目指す)が、
スタクラのユニット移動はそれに近い動きのように見えたが。
東京都心とかで地下鉄使って移動するイメージに近いかも。
(いちばん近くの駅に行き、あらかじめ設定された経路で移動し、
目的地に近い駅で降りる。
アルゴリズムの名前はしらん。
0129名前は開発中のものです。
01/12/03 16:02ID:YsMMJd6JBoid と言えばこんなの如何でしょ?
ttp://www.red3d.com/cwr/steer/
車の群体シミュレーションっす。要Java
それにしても、他人に自分の知識や知恵(と思い込んでるもの)を自慢する
ことだけが目的であって、物作るぞ、という真剣さが足り無い人って確か
に邪魔(オレモカモー!)
0130名前は開発中のものです。
01/12/03 18:53ID:???でもちゃんとリンク書いてくれる人は、参考になるから、イイと思うよ。
0131名前は開発中のものです。
01/12/04 11:45ID:???ヘックスじゃない移動だと、どうやってリアルな迂回処理をさせれば良いんですか?
なんか、一旦障害物の直前まで行ってから回り込んでたりすると
いかにもヘタレっぽいアルゴでいやなんですけど。
#実装話になったとたん、人が減ったな。
#やはり妄想企画厨だけだったという事か。
0132131
01/12/04 11:46ID:???0133
01/12/04 12:01ID:2qqwViAa障害物迂回判定の値を当たりより一回り大きく
とっておけばいいんでないの?
リアルタイム判断じゃなくて、行き先指定された
段階でルート計算すれば問題ないと思うが。
んで、もしルートに障害が現れたら、再計算
する、と。ナビのプログラムに似てるかもな。
0134名前は開発中のものです。
01/12/04 19:31ID:???そんなときこそA*な経路探索で最短経路を割りだすべし。
まぁ、経路を決定するために、どれだけ重い処理まで許せるか、ってのもあるけど。
動いてるオブジェクト(見方のユニットとか)を動的によけて…とかだと、難しそうだ。
(動くオブジェクトは無視して、そういうオブジェクト同士は実際に異動させるときにコリジョン判定を行うのが普通かな?)
あと、FPSの話だけど、遺伝的アルゴリズムを使って障害物をよけるって話もあるよ。
http://ai-depot.com/BotNavigation/Avoidance-Introduction.html
読んでないけど。
0135名前は開発中のものです。
01/12/05 01:47ID:???かなり計算にかかるコストが変わってきそうですね<経路探索
例えば3次元空間上を効率よく移動しようとした場合でも
A*な経路探索って有効なの?
0136名前は開発中のものです。
01/12/05 02:30ID:???まぁ、全探索するよりかはまし。
コストが問題になる場合は、途中で打ち切る方法と、毎フレーム一定量だけ探索して
探索終わるまでユニットを動かさない、という方法があると思うけど、
途中で打ち切って障害物に引っかかってたりしたら、ヘボいってたたかれるだろうなぁ。
ヘックスじゃない場合は、>>17参照。グリッド分割して、経路のスムージングをするらしい。
というか、経路探索はいっぱい論文でてるんで、探すといいかも知れず。
0137名前は開発中のものです。
01/12/05 02:53ID:???http://www.geocities.com/jheyesjones/astar.html
アルゴリズムの部分だけ訳してみた↓
node_goal = ゴール状態
node_start = 初期状態
OPEN_listにnode_startを入れる
while ( OPEN_listが空でない ) {
node_current <- OPEN_list内の最小のfを持つノード
node_currentがnode_goalと同じなら終了
foreach (node_successor in {node_currentからたどれるノード集合}) [
node_successor.g = node_current.g + (node_currentからnode_successorまでの移動コスト)
if (OPENリスト内にnode_successorがあり、かつ、そちらgの方が小さい) {
// リスト内のノードのほうがbetterな経路をたどっているので、
node_successorを破棄し、次へ
}
if (CLOSEリスト内にnode_successorがあり、かつ、そちらのgの方が小さい) {
// リスト内のノードのほうがbetterな経路をたどっているので、
node_successorを破棄し、次へ
}
node_successorをOPEN_listとCLOSE_listから削除する
node_successorの親ノードをnode_currentにする
node_successor.h = node_successorからnode_goalまでの移動コスト(適当なアルゴリズムで予想する)
node_successorをOPENリストに入れる
}
}
node_*.g : スタート状態からそのノードまでの移動コスト
node_*.h : そのノードからゴールまでの移動コスト(の予想値)
node_*.f : node_*.g と node_*.h の合計
OPEN_list : 判明しているノードの中でまだ探索していないノード
CLOSE_list : 探索済みのノード
>node_successor.h = node_successorからnode_goalまでの移動コスト(適当なアルゴリズムで予想する)
ここの移動コスト予想アルゴリズムがキモ。
まぁRTSで使うやつなら適当で言いと思うけど。
0138名前は開発中のものです。
01/12/05 11:53ID:???先生! それって自力で考えた経路探索アルゴリズムと全く同じであります!
何度でも車輪を再発明してやるぞゴルア!
0139名前は開発中のものです。
01/12/05 12:37ID:???0)GameGemに最適化手法がいくつか載ってるよ
1)OPEN/CLOSEリストでのnew演算が遅いみたいだから、自分で速いnew作った方が良いよ
2)OPENリストから高速にnodeを取り出すには、OPENリストをpriority queueで実装するといいよ
3)検索に時間をかけたくなかったらハッシュテーブルを使うといいよ
4)後ろ向きの探索はしない方が良いよ。元居たところにそのまま戻るのは絶対に最適解にはなら
ないから((3,4)→(4,4)→(3,4)と動くのは確実に最適解ではない)
以下は僕の私見。
1)に関して:vector等であらかじめでっかい領域を確保しておけばいいように思う
2)に関して:priority queueはSTLの中に入ってる。最上位の要素だけ取り出せればよいのだから、
vectorを常にheapに保っておくのもよいかも(この二つは本質的に同じだが)
3)に関して:hash_mapやhash_setはSTLportやSGI STLの中に入ってる。hasher作るのが面倒とか
3rdパーティ製STLのインストールが面倒ならmap/setで十分と思われ。2Dの升目マップが相手なら
ば、hashなんて遠回りな事をせずに、マップの大きさを持った 2次配列をOPEN/CLOSEリストに使
うのがもっとも高速
僕なら、OPENリストは"heapで管理したvector"と"hash_map"で、CLOSEリストは2次元配列で作るかな。
0140名前は開発中のものです。
01/12/05 13:58ID:B52Llkhz0141名前は開発中のものです。
01/12/05 15:51ID:???移動コストの予想値が常に実際の最小コスト以下ならば、最短の移動経路を求めることができる。
例えば、予想値の重みを0(すなわち無視)にすると確実に最短移動経路が得られる。遅くて無駄も多いが。
だから、
・高速な検索をしたいときには予想値を素早く得て、重み付けも多くつける
・高精度な検索をしたいときにはなるべく正確な予想値を得て、あまり重み付けはあまり重くしない
ということやね。"アホな敵"をシミュレートしたいならこのあたりを工夫すればそれっぽくなりそう。
0142名前は開発中のものです。
01/12/06 19:05ID:???所詮口だけの奴はすぐボロが出る。
0143名前は開発中のものです。
01/12/10 15:57ID:93V6hNN9ちなみに空間に重み付けがなく、単純に最短距離を求めたいだけの場合に
予想値として取られる典型的な値としては、
現在の地点からゴールまでの直線距離が有名です。
途中で迂回すると必ず直線距離より多くのコストがかかるため(三角不等式)、
A*アルゴリズムで必要とされる条件(予想値<=実際の値)を満たすからです。
0144sage
01/12/10 16:49ID:93V6hNN9「この点を通るとこれからゴールするまで最低これだけのコストがかかる」
という追加情報を利用することです。
単純な探索ではこの情報は利用せずに、
スタート地点からのコストだけを見ていきます。
(すなわち、予想値を常に0としていることに等しい)
例えば東京から大阪まで鉄道で移動する最短経路を求めるとします。
すでに名古屋経由で大阪に行く経路が1本見つかっていたとしても、
単純な検索ではその後に仙台を途中経路として検索してしまいます。
北海道あたりまでたどり着いてようやく東京-名古屋-大阪の経路より
探索経路が長くなるので打ち切りますが、かなりの無駄をしているのは自明。
そこでA*を適用すると、仙台を探索した時点で
東京-仙台間で探索済みのコストと仙台から大阪までの予想値(直線距離)の合計
(予想値の性質より、仙台を通るとどう頑張ってもこれより経路長を小さくできない)
が、すでにもとまっている東京-名古屋-大阪の経路より大きくなってしまうので
仙台以降を検索しても無駄だということがわかります。
実は検索の打ち切りは極端な例で、もっと一般的には
ゴールまでにかかるコストのヒントが分かっていることにより、
東京から出発して仙台と名古屋を比較するときに
名古屋のほうがよりゴールに近いという判断をすることができ、
より速く最適解に近づくことができます。
A*は経路検索だけでなくさまざまな場面で使われますが、
理解への基本のイメージはこれでいいのでは。
ある点からゴールまでのコストの下限が簡単に求められるような
ケースでしか使うことができないのが難点ですが(^^;
0145ラム
01/12/21 01:22ID:K6FoePJV■ このスレッドは過去ログ倉庫に格納されています