トップページgamedev
638コメント231KB

リアルタイムストラテジーの話

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/17 12:31ID:EBHuprcv
age of empireとかstarcraftみたいな
リアルタイムストラテジーの開発の話題
0055名前は開発中のものです。01/11/30 13:23ID:???
>>54
じゃあ、キミが作ればぁ? 2chRTS。
0056名前は開発中のものです。01/11/30 13:23ID:???
マニアが紛れ込んできて、製作とは関係ない話はじめるしね。
0057名前は開発中のものです。01/11/30 13:56ID:???
CG板に行ってなんでこの板でCG描かないんだとか
楽器・作曲板に行ってなんでこの板で曲作らないんだとか
同人ノウハウ板に行ってなんでこの板で同人誌作らないんだとか言うか?

どうもゲームに限って何か勘違いしてる奴がいるな。
00585401/11/30 14:51ID:???
実際に何かを作ってない段階で、システムはこうだとか
パラメータはああだとか言っててもしょうがないだろ?
すでに開発中のゲームがあって、それをどう弄れば面白くなるか?
というような議論をするのがこの板の趣旨なんじゃないのか?

まだ企画段階だから、ここでそのアイデアを出し合ってるだけとか
言いたいかもしれんが、その後きっちり開発がはじまるのか?
そうじゃなければただのオナニースレだって言いたかったんだよ。

やるんならゲームの開発状況や途中経過を報告してくれ。
その上での議論ならありだと思う。

何も作らないで「僕のちゅきなRTSはこれでちゅ!」話に
終始するのが不毛だってこと。
0059名前は開発中のものです。01/11/30 15:00ID:???
>>58
>すでに開発中のゲームがあって、それをどう弄れば面白くなるか?
>というような議論をするのがこの板の趣旨なんじゃないのか?
違うと思うんだが...
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:???
>>63 製作技術の意味の解説きぼん
0065名前は開発中のものです。01/11/30 23:07ID:???
>>57>>64
みたいな妄想と設計の区別のつかないヲタは来るな。
設計やプログラミング技術は文字だけでも出来るんだよ。
まあ、このスレもヲタ臭くて近寄る人へったがな。
0066ネタフリ01/11/30 23:21ID:4PQHEBVP
え〜、ゴホン、史上初のRTSは、ポピュラスです。
これはリアルタイムのようにみえて、実は内部的にはターン制で動いてます。
つまり、ユニットが500いたら、IDが0から499までついていて、0が動いて1が動いて2が動いて、、、
というのをものすごく速くやるとリアルタイムに動いているように見えます。

あと、Diablo ははじめターン制のゲームになる予定でした。
でも、途中で、リアルタイムにしよう、という話がでて、すっごく難しかったけど、リアルタイムで組みなおしました。
プログラムは大変だったけど、このおかげでDiabloがとっても楽しいゲームになったのです。
0067名前は開発中のものです。01/11/30 23:52ID:???
ポピュラスよりシルバーゴーストのが古くない?
0068名前は開発中のものです。01/12/01 00:26ID:???
プログラマーとの溝を深めるスレか?(藁
煽り以外に噛み付くやつってプログラマーに多いね。
00694501/12/01 01:32ID:???
>>45はRTSのゲーム的な性格を分析したかったんだが、うまく行かなかったかな。
RTSをゲームたらしめる要素、あるいは通常のSLGと「リアルタイムである」以外の
差異はどういうふうにあるのか、とか。「リアルタイム版大戦略」はあれはRTSなのか?
ちがうよな?
00704501/12/01 01:34ID:???
ところで今作ってるSLGをリアルタイムにしようかどうしようか考えてる。
まだマルチプレイを作れるほど技術無いんで、>>66のポピュラスみたいな
高速ターン制になる(シングルならそれで十分)と思うけど。

昔の98の「フロンティア・ユニバース」とかゲームボーイ版「大戦略」みたいな、
操作(指令)するときだけ時間が止まる(つまり普段は自動的に「自ターン終了」しつづける)
タイプを経て、現在の完全リアルタイムになったと思うんだが。
今のはスレッド処理以外に内部ターン制より何か特別なことしてるのかな?
0071名前は開発中のものです。01/12/01 02:05ID:???
うちは作っていくうちに鋼鉄の咆哮のネット対戦版みたいになてきちゃたよ。
そのうち公開するよ。
007222,2601/12/01 03:03ID:ZSppgHPl
>>32,36
遅いレスと、話を蒸し返すみたいで悪いが、いま見たので。

>(1)体験版をダウンロードしてプレイしてみれば30分で飽きる。
体験版をやってはまった人もいる。

>(2)キャラ同士が重なることができる
重なれません。エア系は一時的に重なれますが、
停止状態だと、離れていきます。

>(3)進化が無い
あります。

>(4)新しい要素が特に何も無い。
何と比較しての意見なのか疑問

>特に致命的なのが
>(5)プレイしていて「おおぉっ!」と感じる部分が無い。
そう感じる人がいて当然だとおもいますが、
あなたの感受性が乏しいという可能性も考えられます。

RTSはテンポのとり方って難しいですよね、
どれぐらいの時間で遊ぶのか、遊ばせるのかって部分が
ゲームバランスに大きく影響するし、
プレイヤーの好みが別れる部分でもありますし・・・
0073名前は開発中のものです。01/12/01 03:26ID:???
RTS作ってみたいんですが、シンプルなモデルが見つかりません。

落ちゲーだとかだと、とりあえずテトリスなら簡単だし完成
した時そこそこ遊べるので、やる気が出ます。

そーいった、「簡単に作れて、完成したらそこそこ遊べる
のが保証されている」制作者入門用RTSって無いでしょうか?
0074名前は開発中のものです。01/12/01 03:45ID:Xa+P0HQD
ボコスカ・ウォーズ
00754501/12/01 13:08ID:???
とりあえず「施設建造」「ユニット生産」「資源採集」「戦闘」の
4要素が揃ってれば相当それっぽく見えると思うなあ。あとは
>>50の言うように「視界」を設定するとぐっと戦略性が高まる。
もともと(ルール的に)シンプルなゲームじゃないので、
実在のゲームでシンプルなモデルは考えにくいかも。

まずリアルタイムじゃないSLG(ユニットとか1、2種類でいい、
「兵士」と「農民」だけとか)を作る
 ↓
ターン進行を自動的に(UIと別処理に)する

で、あとから要素を加えていけば・・・?
00767101/12/01 13:26ID:???
 俺は集団戦闘をリアルタイムに再現出来ていれば最低限のRTSだと思う。
 生産・補給の概念を含んだほうがより良いだろうけど。
 初めてRTSを作る場合、イメージとして、ボコスカやシルバーゴースト(FQシリーズ)を
目指すのが良さげ。
 フリーソフトでも似たようなのあるしね……まずはその辺からでも。
0077名前は開発中のものです。01/12/01 18:09ID:???
プロから見ると、現状のゲームの抽象的な分析の方が参考になるなあ。
あまりゲームやってるヒマないから。
作り方なんか言われないでも分かるし。
否定的な人は、「分析=製作上の最大のポイント」ってことが
分かってない人じゃないの。

もっといろいろ教えてよ。
0078名前は開発中のものです。01/12/01 19:26ID:???
>>77
禿げしくドウイ
0079名前は開発中のものです。01/12/01 19:34ID:???
>>77
誰に言っとるんだ?
0080名前は開発中のものです。01/12/01 21:54ID:rcyattDK
農民が進化して戦士になるほうが面白い。
ポピュラス3では、ユニットは最初は全員農民からはじまって、戦士小屋にしばらく放り込んでおくと戦死になるし、
宗教小屋に放り込んでおくと宗教家になる。
0081名前は開発中のものです。01/12/01 21:56ID:???
RTSはどうしてもキティが寄ってくる運命なのか・・・。
0082名前は開発中のものです。01/12/01 22:07ID:rcyattDK
矢を延々と打てるのはおかしい。せいぜい、持ち運んでる30本くらいだろ。
0083名前は開発中のものです。01/12/01 22:19ID:???
打ったの回収して又打ってるんだろ。
0084名前は開発中のものです。01/12/01 23:17ID:???
ちなみに弓矢の達人はだいたい5秒に1本打てるらしい。
使えるか使えんかよくわからん知識。
0085名前は開発中のものです。01/12/01 23:26ID:fmDEbi46
達人は狙って打てる。

そうでない凡人の場合は、50人とか、100人とか、大量に集めておいて、一つの目標に向かって
「それ打て!」
の合図で一斉に打つ。
0086名前は開発中のものです。01/12/01 23:51ID:???
>>80
> 戦士小屋にしばらく放り込んでおくと戦死になる

言いえて妙ですな。
オモシロ!
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
弾薬の残りがいくつとか、実際の射撃速度(攻撃速度)とかは、
どうしてもゲームとしてユニットジャンケンが必要(?)
になってくるせいで、バランスのために犠牲になりますね。
00917301/12/02 02:35ID:???
>>74
>>75
>>76
レスどうも。なるほど、補給は無くても成り立つんですね。
とりあえず戦闘だけの奴から作ってみます。あと、
ボコスカウォーズはやったことは無いです。ファミコン
だということは知ってますが。
0092名前は開発中のものです。01/12/02 02:46ID:???
>>88
ろんぴょう と ぶんせき を
こくごじてんでしらべてみましょう。
0093名前は開発中のものです。01/12/02 03:25ID:???
屁理屈こねんな。
評論家の意見は具体性が無く製作につながってない。
0094名前は開発中のものです。01/12/02 03:27ID:1e5pm9At
製作に繋がらない分析は他のゲーム板でやれや。
ゲームサロンとかあるだろ。
0095名前は開発中のものです。01/12/02 03:36ID:???
>>94
お前が制作に繋げられないだけ。
人間関係といい、プログラミングといい
総合的な実力に欠けているんだね、君。
お前は個人制作向きだな。

かわいそうなやつだ。せめて、放置してやろう。
0096名前は開発中のものです。01/12/02 03:46ID:???
ゲーム製作板はゲーム製作を話題にする板。
1はRTS開発の話題ですと述べている。

いいかな、ここはゲーム製作サークルではありません。

消防に説明するようで他のみんなに申し訳ないが(;´Д`)
00979601/12/02 03:49ID:???
ってコレでもダメだな。
分析は製作の話題に入ります。
ゲームデザインはゲームの肝。
0098名前は開発中のものです。01/12/02 04:09ID:???
何が言いたかったのだろうか
0099名前は開発中のものです。01/12/02 04:46ID:XLc9NRFu
素人にはお勧めできないって言いたかった
0100名前は開発中のものです。01/12/02 12:22ID:???
分析(実は論評)だけじゃんか。
0101名前は開発中のものです。01/12/02 12:23ID:tB3z/7Ix
「分析」してその後は?
0102名前は開発中のものです。01/12/02 12:26ID:???
分析でも論評でもいいんだけどさあ、
正直、実際のゲームの話を持ち出されても、
遊んでないので話についていけまへん。
ゲーマーほど遊ぶ時間物理的に取れないもので。
0103名前は開発中のものです。01/12/02 12:38ID:tB3z/7Ix
やっぱアルゴリズムが正道。
0104名前は開発中のものです。01/12/02 12:48ID:???
>>102

>時間物理的に取れない
むずかしいこといってるな(笑

あそぶ時間が無いっていう意味で、
スタクラの話についていけないという事だとして、
いままで↑にでてきたぐらいの内容についていけない
のは、どうか?
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:???
RTS ツクールだけ出てないのは、やっぱり難しいからなの?
0112名前は開発中のものです。01/12/02 19:00ID:1OCW+xDM
久しぶりって・・・・

>>17-23参照。

A*検索の話が潰された。 23=ヲタ
それ以来、開発の話に行こうとするとヲタが出てきて壊す。
0113名前は開発中のものです。01/12/02 19:40ID:???
何怒ってんの?作ってないなら出てったら?>煽り
0114名前は開発中のものです。01/12/02 20:27ID:???
113は煽り。
0115名前は開発中のものです。01/12/02 20:38ID:???
>>112
いやその、この板にきたのが久しぶりとゆー意味で。。。
てーか原因がわかってるならサルを放置しながら A* の話に
戻していけば良いのでは?
01164501/12/02 22:02ID:???
実装の話とゲームデザインの話が共存しちゃいけない
ってことは無いと思うんだけど。
興味ない方は放置してくださいよ、うちらを。

たとえばサターンの「クウォヴァディス2」は戦闘に際して
武器の弾道を2次関数で演算してるのがウリだった。
最近では当たり前かもしれないけど。
でもゲームとしてはツマラナカッタ。何故か。

AoEでもなんでもいいが、評価の高いゲームは
戦闘が面白いからなのか、それ以外の部分が面白いからなのか。
あるいは、両方面白いからなのか。
両方面白くないとつまらないゲームになるのか。
どっちかが面白ければいいのか。
そういうところが気になるんですが、俺は。
01174501/12/02 22:12ID:???
>>76
そっか。「リアルタイム版大戦略」がRTSじゃねえと
俺が感じるのは、ユニットの移動なんかが実時間っぽくても
戦闘が相変わらず「Aユニット攻撃、Bユニット地形防御効果○%、
Cユニットの支援効果が○%で・・・」とかやってるからなのかも。
実際に包囲攻撃なら「包囲されて攻撃されてる!」って様が
再現されてれば、補給とか無くてもRTSって感じがするのかな。

あと個人的にはAoEにしろスタクラにしろスデンにしろ、弾が
飛んでいって同時に着弾、とかする様がスキってのがあるかも(w

ただまあ、>>108の言うとおり、「これはRTSに含まれる」
「いや含まれない」っていう言葉の定義の問題はあると思うので、
あんまり「俺的にRTSじゃねえと思う」ってのは言わないほうが
いいのかな、やっぱり・・・。
01184501/12/02 22:21ID:???
>>82
「弓兵」ユニットはあれは単に射手一人だけじゃなくて、その
予備の矢筒とかもすべて含めて抽象してると考えたほうがいいんじゃないかな。
あるいは、あの1ユニットは1人の弓兵ではなくて1小隊分の弓兵を
記号的に表してると考える。
そうでなかったら、たとえば「騎士」だったら単独で行動することは
めったに無くて必ず従者がついて歩くわけだし。でないと鎧脱げないし(w
0119名前は開発中のものです。01/12/02 22:52ID:c7appxyU
うーむ。RTSは技術的にも様々な困難がある分野なので混在は
まじめに作りたがってる人には迷惑だと思うよ。
技術的な問題に関係ないゲームの面白さ「だけ」を議論したいの
ならできれば別スレ立ててくれた方がありがたい。その方がそう
いう議論したい人にも有益だろう。
0120名前は開発中のものです。01/12/02 23:16ID:???
119はナナメ読みができません。合掌。
0121名前は開発中のものです。01/12/02 23:25ID:???
ゲームデザインは製作技術じゃねえよ。
厨房でもヲタでも妄想君でも出来る。
0122名前は開発中のものです。01/12/02 23:30ID:fNtUxcpm
RTS のデザインについて(実装技術は除く)
http://game.2ch.net/test/read.cgi?bbs=gamedev&key=1007303109

住み分け完了。
やはり、マネージャーが一人いないと、ヲタどもはケンカばかりして仕事が進まんな。
0123名前は開発中のものです。01/12/02 23:30ID:???
>>121
・・・絶句。
プロなら問題あるな、その発言は。
でも親切な人が別スレ立ててくれたので話題を分けようか。
0124名前は開発中のものです。01/12/02 23:32ID:???
では以後このスレはA*とかBoidとかオクトツリーとか語るスレ?
0125LI01/12/02 23:50ID:???
分析して考えるなら、
ゲームの世界観がどうのとかは、すっ飛ばしてもいいでしょうね。
もちろん世界観によってデザイン(ユニットなど)時に違いがでてくるでしょうが。
もちろんここでは、どっちが面白いとかそういった話題は必要ないとおもいます。

基本的なゲームシステムだけみると、
スタークラフト=AOE
でもかまわないと思います。

迷路を探るとき両方とも、常に最短路ではないですね。
壁づたいに移動したときの方が目標に近いときにも、
いったん中央(マップチップの)に移動したりしますね。
昔いくつか予測と実験繰り返しましたが、
説明したくても文書だと書きにくいですね。

あと、意見を求めるときはどのゲームのどの部分かを具体的に
書いたほうがいいと思います。
既存でないシステムの場合は、ちょっと説明は大変でしょうね。
0126名前は開発中のものです。01/12/03 00:01ID:???
とりあえずヲタはシツコクてウザイということは同意。
せっかく別スレ用意してもらったのに。
0127名前は開発中のものです。01/12/03 11:45ID:???
こっちは実装スレってことで期待age.
>>124
Boidって、RTSの敵の行動を群れで制御するってこと?
ならば、やはり本家が萌え。
http://www.red3d.com/cwr/boids/

RTSに限らず、群れがワラワラと動くのっていいよね。
アクションとかシューティングの敵の動きをBoidでやってる
ゲームって無いのかな?三国無双なんか結構それっぽいけど。
01284501/12/03 15:17ID:???
大航海時代2の「自動航行」機能は、あらかじめ全マップに
ウェイポイントが振ってあって、目的地毎にそれを辿ってくって
感じだった(だから最初は最も近いウェイポイントを目指す)が、
スタクラのユニット移動はそれに近い動きのように見えたが。

東京都心とかで地下鉄使って移動するイメージに近いかも。
(いちばん近くの駅に行き、あらかじめ設定された経路で移動し、
目的地に近い駅で降りる。

アルゴリズムの名前はしらん。
0129名前は開発中のものです。01/12/03 16:02ID:YsMMJd6J
>>127
Boid と言えばこんなの如何でしょ?
ttp://www.red3d.com/cwr/steer/
車の群体シミュレーションっす。要Java



それにしても、他人に自分の知識や知恵(と思い込んでるもの)を自慢する
ことだけが目的であって、物作るぞ、という真剣さが足り無い人って確か
に邪魔(オレモカモー!)
0130名前は開発中のものです。01/12/03 18:53ID:???
>>129
でもちゃんとリンク書いてくれる人は、参考になるから、イイと思うよ。
0131名前は開発中のものです。01/12/04 11:45ID:???
進行方向に障害物がある場合、それをよけて進む必要があると思うんだけど
ヘックスじゃない移動だと、どうやってリアルな迂回処理をさせれば良いんですか?
なんか、一旦障害物の直前まで行ってから回り込んでたりすると
いかにもヘタレっぽいアルゴでいやなんですけど。

#実装話になったとたん、人が減ったな。
#やはり妄想企画厨だけだったという事か。
013213101/12/04 11:46ID:???
ネタフリage
0133 01/12/04 12:01ID:2qqwViAa
>>131
障害物迂回判定の値を当たりより一回り大きく
とっておけばいいんでないの?
リアルタイム判断じゃなくて、行き先指定された
段階でルート計算すれば問題ないと思うが。
んで、もしルートに障害が現れたら、再計算
する、と。ナビのプログラムに似てるかもな。
0134名前は開発中のものです。01/12/04 19:31ID:???
>>131
そんなときこそA*な経路探索で最短経路を割りだすべし。
まぁ、経路を決定するために、どれだけ重い処理まで許せるか、ってのもあるけど。

動いてるオブジェクト(見方のユニットとか)を動的によけて…とかだと、難しそうだ。
(動くオブジェクトは無視して、そういうオブジェクト同士は実際に異動させるときにコリジョン判定を行うのが普通かな?)

あと、FPSの話だけど、遺伝的アルゴリズムを使って障害物をよけるって話もあるよ。
http://ai-depot.com/BotNavigation/Avoidance-Introduction.html
読んでないけど。
0135名前は開発中のものです。01/12/05 01:47ID:???
ヘックス(内部的なものも含む)移動するものとそうじゃないもので
かなり計算にかかるコストが変わってきそうですね<経路探索

例えば3次元空間上を効率よく移動しようとした場合でも
A*な経路探索って有効なの?
0136名前は開発中のものです。01/12/05 02:30ID:???
>>135
まぁ、全探索するよりかはまし。
コストが問題になる場合は、途中で打ち切る方法と、毎フレーム一定量だけ探索して
探索終わるまでユニットを動かさない、という方法があると思うけど、
途中で打ち切って障害物に引っかかってたりしたら、ヘボいってたたかれるだろうなぁ。
ヘックスじゃない場合は、>>17参照。グリッド分割して、経路のスムージングをするらしい。

というか、経路探索はいっぱい論文でてるんで、探すといいかも知れず。
0137名前は開発中のものです。01/12/05 02:53ID:???
A*アルゴリズムの解説
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:???
>>137
先生! それって自力で考えた経路探索アルゴリズムと全く同じであります!
何度でも車輪を再発明してやるぞゴルア!
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:B52Llkhz
ようやく良スレの予感age
0141名前は開発中のものです。01/12/05 15:51ID:???
A*の面白い特性。
移動コストの予想値が常に実際の最小コスト以下ならば、最短の移動経路を求めることができる。
例えば、予想値の重みを0(すなわち無視)にすると確実に最短移動経路が得られる。遅くて無駄も多いが。
だから、
・高速な検索をしたいときには予想値を素早く得て、重み付けも多くつける
・高精度な検索をしたいときにはなるべく正確な予想値を得て、あまり重み付けはあまり重くしない
ということやね。"アホな敵"をシミュレートしたいならこのあたりを工夫すればそれっぽくなりそう。
0142名前は開発中のものです。01/12/06 19:05ID:???
ついて来れないアフォが消えたからな。
所詮口だけの奴はすぐボロが出る。
0143名前は開発中のものです。01/12/10 15:57ID:93V6hNN9
このスレを呼んでA*を思い出しました(^^;
ちなみに空間に重み付けがなく、単純に最短距離を求めたいだけの場合に
予想値として取られる典型的な値としては、
現在の地点からゴールまでの直線距離が有名です。
途中で迂回すると必ず直線距離より多くのコストがかかるため(三角不等式)、
A*アルゴリズムで必要とされる条件(予想値<=実際の値)を満たすからです。
0144sage01/12/10 16:49ID:93V6hNN9
A*の一番本質(と自分が思っていること)は、探索するときに
「この点を通るとこれからゴールするまで最低これだけのコストがかかる」
という追加情報を利用することです。
単純な探索ではこの情報は利用せずに、
スタート地点からのコストだけを見ていきます。
(すなわち、予想値を常に0としていることに等しい)

例えば東京から大阪まで鉄道で移動する最短経路を求めるとします。
すでに名古屋経由で大阪に行く経路が1本見つかっていたとしても、
単純な検索ではその後に仙台を途中経路として検索してしまいます。
北海道あたりまでたどり着いてようやく東京-名古屋-大阪の経路より
探索経路が長くなるので打ち切りますが、かなりの無駄をしているのは自明。

そこでA*を適用すると、仙台を探索した時点で
東京-仙台間で探索済みのコストと仙台から大阪までの予想値(直線距離)の合計
(予想値の性質より、仙台を通るとどう頑張ってもこれより経路長を小さくできない)
が、すでにもとまっている東京-名古屋-大阪の経路より大きくなってしまうので
仙台以降を検索しても無駄だということがわかります。

実は検索の打ち切りは極端な例で、もっと一般的には
ゴールまでにかかるコストのヒントが分かっていることにより、
東京から出発して仙台と名古屋を比較するときに
名古屋のほうがよりゴールに近いという判断をすることができ、
より速く最適解に近づくことができます。

A*は経路検索だけでなくさまざまな場面で使われますが、
理解への基本のイメージはこれでいいのでは。
ある点からゴールまでのコストの下限が簡単に求められるような
ケースでしか使うことができないのが難点ですが(^^;
0145ラム01/12/21 01:22ID:K6FoePJV
ageるっちゃ。
0146名前は開発中のものです。02/01/10 19:59ID:???
A*って結局普通の探索に評価関数をいれて重みを加えるだけだよね。
たとえば東京→大阪の時、東向きの移動は減点みたいに。
0147名前は開発中のものです。02/02/11 06:48ID:???
age
0148名無しさん02/02/11 13:23ID:???
なあお前等
RTSやってる時によ〜
例えばユニットを移動させるとするだろ、
その時、敵がやってきてすれ違う時何にもアクションしないんだよ。
歩きながら黙って敵の攻撃くらってるの、もうアホかと馬鹿かと
敵が視界に入ったら迎撃しろっての。わかるだろ?
0149名前は開発中のものです。02/02/11 15:11ID:???
>>148
反撃、素通りは指定できるようなってるほうがいいな
なんでもかんでも反撃したらおもいどおりにうごかなくてつまらん
つーか迎撃しないRTSってどれよ?AOEとかは嫌でも反撃はじめるけど
0150名前は開発中のものです。02/02/11 15:12ID:???
かってに戦闘しだしちゃったら、統制とれなくなるんで、困る。
戦闘させたかったら、すれ違うときに移動解除→待機モード→自動戦闘でいいじゃん。
0151名前は開発中のものです。02/02/11 15:18ID:???
>>150
その統制とれないのもゲームの一部だ
撃たれまくってるのに涼しい顔して行進してるのも変だろ
まぁ、そのへんはどこにおもしろさを見出すかという話になるんだろうが
0152名前は開発中のものです。02/02/11 15:23ID:???
うーむ。
「士気」とかのパラメータが有って、低いと命令聞かなくなるとかするのかな?
士気最低で戦闘するとパニックに…
0153名前は開発中のものです。02/02/11 15:34ID:???
戦闘にはいる前の「訓練」や「忠誠」と戦闘状況によって変わる「士気」の組み合わせで
兵士の動きが変わるのとかになればおもしろいな。
雑魚をたくさんひきつれて数を頼みに力押しや少数精鋭で拠点占拠とか作戦の幅もひろがるし。
0154名無しさん02/02/11 17:59ID:???
2つの場所から同時攻撃したい時、
A→Bって操作しないといけないのがめんどい。
行動する時間を設定できたりすれば面白いかも
日の出とともに敵陣に突撃しろとか
■ このスレッドは過去ログ倉庫に格納されています