リアルタイムストラテジーの話
■ このスレッドは過去ログ倉庫に格納されています
age of empireとかstarcraftみたいな リアルタイムストラテジーの開発の話題 このジャンルって作るの難しいのかな? 個人レベルで作ってる人みたことない。 リアルタイムシミュレーションゲームなら結構いるんじゃない? 大戦略4みたいなストラテジとちょっと毛色の違うやつ。 ストラテジの場合はオンライン対戦があたりまえだから ネットワーク使う時点で敷居が高いのが理由とみたがどうよ? たしかに、シングルプレーにするにしても 思考ルーチン作らなきゃならんしねぇ >>1 おめでとうございます。 このスレがゲーム製作板設置からちょうど100番目のスッドレです。 スタクラはレスポンスいいよなぁ うち回線遅いけどこのゲームだけは快適にプレイできるYO AoEみたく分散するのと、サーバー依存するのとどっちがいいのかなー ブロードバンド時代なら後者のほうでいいのかな アクションやRPGよりは技術的に難しいね。 バランス取るのも大変そうだ。 俺は作りたくないや。 RTSといえば、まず、経路探索(Path Finding)の話題からじゃないの? マス目がない場合の経路探索ってどうやるんだろ。 >>16 RTSなんて作ったこと無いけど、ある程度の大きさにサンプリングして そのグリッドの評価値を設定してA*アルゴリズムで経路検索ってのは ダメかなぁ?グリッドの分割数で正確さ/処理速度のトレードオフが簡単 そうだし。 http://www.gamasutra.com/features/20010314/pinter_01.htm >>16 A*アルゴリズムってなんだろ? 俺の知ってる経路検索は「ぐるぐる塗りつぶしアルゴリズム」に 番号つけた奴。 俺も三国志みたいな、ゲーム考えてた。 でも、やっぱルーチンが作れなかった・・・・。 >>18 それがA*かもしんない。ここらへん↓でやってるのもそうかな。 http://www.campus.ne.jp/ ~ishigami/CREATION/MAKING/index.html って私もGame Programming Gemsで初めて名前を知ったヘタレなんですけどね。 ちなみに「エースター」と読むらしい。 >>20 そのリンク先のは正当な経路検索あきらめてる。 RTSでは、スタクラがやっぱし最高峰でない? スタクラの経路検索、真似して組もうとしたけど、えらく重くなる。 マップ管理にもいろいろ仕掛けありそうだね。 スタークラフト AOE コサックス 等々RTSやったがスタークラフトはスゲ-よ マジで AOEやコサックスはどの種族とっても 生産ユニットそれほど変わらないが スタクラはまったく異なる コサックスみたく複雑すぎずかつ奥深い 日本生命の削除依頼公開スレッド 1 :ひろゆき@暫定管理人 ★ :01/11/01 15:49 ID:??? 「削除依頼は公開」の原則に従って削除したものを公開してますー。 ソース。 http://www.dd.iij4u.or.jp/ ~cap/nissei/ 14 :名無しさん@お腹いっぱい。 :01/11/01 15:59 ID:I8TSGCyI むしろこのGIFを保存しといてそこらにミラー作りまくるのが 2chねらの使命かと 15 :名無しさん@お腹いっぱい。 :01/11/01 16:00 ID:pX4yzwVD >>10 つか、それがひろゆきのねらいだろ 16 :名無しさん :01/11/01 16:00 ID:4XQtcOuc オイラはとりあえず保存しといたよ 17 :ひろゆき@暫定管理人 ★ :01/11/01 16:01 ID:??? いやぁ、削除依頼は公開って原則ですから、、 ( ̄ー ̄)ニヤリ 18 :va :01/11/01 16:01 ID:+W2rWnl4 同じこと書き込んだら、速攻で削除されるのかな? 19 :ひろゆき@暫定管理人 ★ :01/11/01 16:03 ID:??? 削除依頼がくるまで放置っす。 キティ>>23 >>24 乱入によりこのスレは強制終了しました。 >>23 俺もAoKとか、ほかのRTSも何本かやったけど、 スタクラが一番だね。 ゲームとしてのバランス抜群だし、 インターフェイス・操作性もろもろ洗練されてるね。 RTS作りたいなら1度はやってみることを進めるね。 いまさらですが、リアルタイムストラテジーってなんの事ですか? real time : 即時。同時。実時間。 strategy : 戦略。用兵学。 やっぱコーダーは感覚狂ってるわ。 スタークラフトは、ゲーマーのあいだでは、最低の評価だよ。クソゲーだよ。 ほんとコーダーの感覚は狂ってるな。 スタクラはクソゲーだからクソゲーって逝ってんだよ。 真実を提示すると荒らし扱いか?いっぺん氏ねよ。 じゃあどうしてクソなのか説明してくれよ。 ただクソクソ連呼するだけじゃ荒らしと言われてもしょうがないぞ。 別にゲーマーの意見は求めてないんだがな。ゲーム評価する板じゃねぇし。 クソゲーというならその根拠を示せや。 いちいち説明しなければわからない低脳児の集まりかここは、、、 (1)体験版をダウンロードしてプレイしてみれば30分で飽きる。 (2)キャラ同士が重なることができる (3)進化が無い (4)新しい要素が特に何も無い。 特に致命的なのが (5)プレイしていて「おおぉっ!」と感じる部分が無い。 よく分かったよ。自称ゲーマの意見が製作に関して参考にならないってのが。 いや、ホント。こう回答がくるとは思いもしなかった。 >>36 (1)体験版だけで評価したわけね (2)それが何か? (3)それが何か? (4)当時は色々新しかったぞ (5)当時は「おおぉっ!」と感じたぞ キミの説明とやらは、何の説明にもなっておらんね。 まぁまぁ。 体験版はやったことないけど確かに敷居は高いと思うよ。 発売当初はCOMのラッシュが強くて最初はテラン以外で ラッシュを防げなかった記憶がある。(建物で飛んで逃げた) もちろんルールを理解してくればなんでもなくなってくるんだけど。 30分は1種族すら把握できる時間じゃないよ。 じっくりプレイしていけばチェスみたいに奥の深いゲームだよ。 AOE、HomeWorld・・色々やったけど スタクラは未だに飽きないね。 スタクラが面白いとか逝ってるコーダーは、脳の回路焼ききれてるだろ。 こっちはゲームウオッチからやってるつーの。 面白い面白くないじゃなくて、製作のハナシだっつーの。 こっちは、ピンポンテニスからやってるっつーの。 >>40 Pゲー板へどうぞ。 こっちはENIACからやってるつーの。 >>40 やっぱ真性ゲーマーは頭いかれてるね(ワラ さて、考察に行こうか。 代表的なRTSってのはいわゆる「農民」クラスによって自勢力の「国力」 (「体力」あるいは「国体」と言い換えてもいいね)を抽象化してる。 一見「施設」がそれを表してるように見えるけれども、技術開発と装備充足に 十分な資源を確保するためには一定量以上の「農民」が必要なわけだから。 で、その「国体」を護持するための軍事力が必要になってくるわけで、 ここの自由度の高さがRTS最大のウリであると思われる。 「大戦略」のようなターン制だとやはりプレイヤーの采配能力は「戦略」に 留まるわけだけれども、RTSの場合はもっと低レベルの「戦術」(つまりは マウスさばき)までプレイヤーの采配が及ぶわけで、これがSLG的に画期的な 要素だったんではないかと。まあ、これであるがゆえに、単位時間当たりの 操作量が絶対的な戦闘能力の差になってきて、マルチプレイで2正面作戦やると 確実に敗北する理由ではあるわけだが。 あとはまあ、HEXレスでシームレスな部隊移動とかは、あくまで副次的なものだと 俺は考える。 あとRTSで重要な要素って何だ? 輸送や補給の概念があるRTSは面白そうということでデザインを構想中。 やりすぎると「太平洋の嵐」のリアルタイム版とかになって氏ねそうだが。 2時間くらいで終わってしまうのではなくて、UOみたいに1年くらいかけて遊びたい。 状況が不利になったら、撤退して体制を立て直したい。 AoEでなぜそれができないのか?それはマップが小さすぎるからだ。 マップをめちゃめちゃ広くすればよい。 そして小戦闘に勝ったらどんどん進撃するのではなくて、まずその地域の治安や経済を安定させて、そこでの国力を充実させてから次の戦闘に進むようにしたほうがよい。 MMORTSはどこかが作ってるんじゃなかったっけ? >>45 大戦略は、実は「戦術級」で、 RTSが「戦略級」(+戦術)だとおもってるがどうか? 時間軸がちがうから、一概には比較できんが。 「情報」かね。 各ユニットや施設が視野を持ってる場合、 地形や敵の動向をより速く把握したほうが有利。 いくらマウスさばきが早くとも後出しジャンケンの要領で 撃退されると手も足も出ない。 監視テクニックが鍵になってくる。 スタクラだと幻影を見せて誤認させるっていうテクニックがあったな。 >>47 ネクソンのタクティカルコマンダーってゲームはそれに近いかな。 ネットゲーで25人VS25人で一人6〜12機のユニットを操作する。 レベルアップもある意欲作かなと。無料版もあるので、1度やってみると 参考になるかもしれない。でも無料版は人数少ないから、みたいところが 全部は見れないかも。 自分的にはRTSとシムシティ系を組み合わせたものがやりたいなぁ。 むしろ、戦闘はほとんどなくても良いと思ったり。どうでもいいか。w >>47 >そして小戦闘に勝ったらどんどん進撃するのではなくて、まずその地域の治安や経済を安定させて、 >そこでの国力を充実させてから次の戦闘に進むようにしたほうがよい。 それはシングルの分にはいいかもしれんが、マルチプレイではローマや 米国のような「最強国家」(自分以外のすべての世界を相手にしても負けない)の 存在を許すような。んでそのプレーヤが暴君だったりした日にはもう・・・。 マップが広大ということは、いくら撤退しても、その撤退した分の資源を敵勢力に 奪われるわけだから、いつか捻りつぶされるぞ。 >>49 ワールドアドバンスド大戦略しかやったことないんだが、あれは戦略も 戦術も両方できた。つまりマップのスケールが可変なので、環太平洋 マップであれば戦略だし、そのなかのミッドウェー海域マップであれば 戦術なわけだ。 要は「補給」とか「兵站」の概念があれば戦略なんだと思う。 RTSなら「資源採集」、大戦略なら「都市占領」。 >>52 (RTS+シムシティ) 「CAESAR3」(SIERRA,日本語販売元イマジニア)をお勧め。シングル専用だが。 余談だがこのソフトの日本語版マニュアルほど秀逸な海外ソフトの 日本語マニュアル他に見たこと無いなあ。 >>54 じゃあ、キミが作ればぁ? 2chRTS。 マニアが紛れ込んできて、製作とは関係ない話はじめるしね。 CG板に行ってなんでこの板でCG描かないんだとか 楽器・作曲板に行ってなんでこの板で曲作らないんだとか 同人ノウハウ板に行ってなんでこの板で同人誌作らないんだとか言うか? どうもゲームに限って何か勘違いしてる奴がいるな。 実際に何かを作ってない段階で、システムはこうだとか パラメータはああだとか言っててもしょうがないだろ? すでに開発中のゲームがあって、それをどう弄れば面白くなるか? というような議論をするのがこの板の趣旨なんじゃないのか? まだ企画段階だから、ここでそのアイデアを出し合ってるだけとか 言いたいかもしれんが、その後きっちり開発がはじまるのか? そうじゃなければただのオナニースレだって言いたかったんだよ。 やるんならゲームの開発状況や途中経過を報告してくれ。 その上での議論ならありだと思う。 何も作らないで「僕のちゅきなRTSはこれでちゅ!」話に 終始するのが不毛だってこと。 >>58 >すでに開発中のゲームがあって、それをどう弄れば面白くなるか? >というような議論をするのがこの板の趣旨なんじゃないのか? 違うと思うんだが... なぜ、「開発」やら、「企画」やらの話に持ってくかな? ここは「製作技術」板なんでしょ? ということで、>>58 はそもそも認識が間違ってる。 もちろん、スレ違いなゲーム評価発言をしてるやつは、ただのバカ。 製作技術=開発の為の板だと認識していたのだが・・・ まぁいいや、あんまり続けてもスレ汚しになるだけなんで、ここらでやめとく。 正直、スマンかった。 でも、ネタが出てこないのも事実。 ハンドレッドソードは、海外のやつに比べてどうよ? あたりから、技術的に逝く? だめだこりゃ。 「製作技術」の意味の判らない馬鹿が現実と夢を混同しとる。 >>57 や>>64 みたいな妄想と設計の区別のつかないヲタは来るな。 設計やプログラミング技術は文字だけでも出来るんだよ。 まあ、このスレもヲタ臭くて近寄る人へったがな。 え〜、ゴホン、史上初のRTSは、ポピュラスです。 これはリアルタイムのようにみえて、実は内部的にはターン制で動いてます。 つまり、ユニットが500いたら、IDが0から499までついていて、0が動いて1が動いて2が動いて、、、 というのをものすごく速くやるとリアルタイムに動いているように見えます。 あと、Diablo ははじめターン制のゲームになる予定でした。 でも、途中で、リアルタイムにしよう、という話がでて、すっごく難しかったけど、リアルタイムで組みなおしました。 プログラムは大変だったけど、このおかげでDiabloがとっても楽しいゲームになったのです。 プログラマーとの溝を深めるスレか?(藁 煽り以外に噛み付くやつってプログラマーに多いね。 >>45 はRTSのゲーム的な性格を分析したかったんだが、うまく行かなかったかな。 RTSをゲームたらしめる要素、あるいは通常のSLGと「リアルタイムである」以外の 差異はどういうふうにあるのか、とか。「リアルタイム版大戦略」はあれはRTSなのか? ちがうよな? ところで今作ってるSLGをリアルタイムにしようかどうしようか考えてる。 まだマルチプレイを作れるほど技術無いんで、>>66 のポピュラスみたいな 高速ターン制になる(シングルならそれで十分)と思うけど。 昔の98の「フロンティア・ユニバース」とかゲームボーイ版「大戦略」みたいな、 操作(指令)するときだけ時間が止まる(つまり普段は自動的に「自ターン終了」しつづける) タイプを経て、現在の完全リアルタイムになったと思うんだが。 今のはスレッド処理以外に内部ターン制より何か特別なことしてるのかな? うちは作っていくうちに鋼鉄の咆哮のネット対戦版みたいになてきちゃたよ。 そのうち公開するよ。 >>32 ,36 遅いレスと、話を蒸し返すみたいで悪いが、いま見たので。 >(1)体験版をダウンロードしてプレイしてみれば30分で飽きる。 体験版をやってはまった人もいる。 >(2)キャラ同士が重なることができる 重なれません。エア系は一時的に重なれますが、 停止状態だと、離れていきます。 >(3)進化が無い あります。 >(4)新しい要素が特に何も無い。 何と比較しての意見なのか疑問 >特に致命的なのが >(5)プレイしていて「おおぉっ!」と感じる部分が無い。 そう感じる人がいて当然だとおもいますが、 あなたの感受性が乏しいという可能性も考えられます。 RTSはテンポのとり方って難しいですよね、 どれぐらいの時間で遊ぶのか、遊ばせるのかって部分が ゲームバランスに大きく影響するし、 プレイヤーの好みが別れる部分でもありますし・・・ RTS作ってみたいんですが、シンプルなモデルが見つかりません。 落ちゲーだとかだと、とりあえずテトリスなら簡単だし完成 した時そこそこ遊べるので、やる気が出ます。 そーいった、「簡単に作れて、完成したらそこそこ遊べる のが保証されている」制作者入門用RTSって無いでしょうか? とりあえず「施設建造」「ユニット生産」「資源採集」「戦闘」の 4要素が揃ってれば相当それっぽく見えると思うなあ。あとは >>50 の言うように「視界」を設定するとぐっと戦略性が高まる。 もともと(ルール的に)シンプルなゲームじゃないので、 実在のゲームでシンプルなモデルは考えにくいかも。 まずリアルタイムじゃないSLG(ユニットとか1、2種類でいい、 「兵士」と「農民」だけとか)を作る ↓ ターン進行を自動的に(UIと別処理に)する で、あとから要素を加えていけば・・・? 俺は集団戦闘をリアルタイムに再現出来ていれば最低限のRTSだと思う。 生産・補給の概念を含んだほうがより良いだろうけど。 初めてRTSを作る場合、イメージとして、ボコスカやシルバーゴースト(FQシリーズ)を 目指すのが良さげ。 フリーソフトでも似たようなのあるしね……まずはその辺からでも。 プロから見ると、現状のゲームの抽象的な分析の方が参考になるなあ。 あまりゲームやってるヒマないから。 作り方なんか言われないでも分かるし。 否定的な人は、「分析=製作上の最大のポイント」ってことが 分かってない人じゃないの。 もっといろいろ教えてよ。 農民が進化して戦士になるほうが面白い。 ポピュラス3では、ユニットは最初は全員農民からはじまって、戦士小屋にしばらく放り込んでおくと戦死になるし、 宗教小屋に放り込んでおくと宗教家になる。 RTSはどうしてもキティが寄ってくる運命なのか・・・。 矢を延々と打てるのはおかしい。せいぜい、持ち運んでる30本くらいだろ。 ちなみに弓矢の達人はだいたい5秒に1本打てるらしい。 使えるか使えんかよくわからん知識。 達人は狙って打てる。 そうでない凡人の場合は、50人とか、100人とか、大量に集めておいて、一つの目標に向かって 「それ打て!」 の合図で一斉に打つ。 >>80 > 戦士小屋にしばらく放り込んでおくと戦死になる 言いえて妙ですな。 オモシロ! 情報に関する考察などしてみた。 なんども上げられてるスタクラを例に取る。 このゲームでは各ユニット・施設がそれぞれ視界を持って同盟軍内で共有する。 実際に画面に移るのもレーダーに映るのも視界内のものだけ。 もうひとつ、クロークという概念があって見た目的には所謂光学迷彩。 ただしレーダーにも映らない。クローク破りのユニットや施設で対応する。 (けど背景が屈折するんで頑張れば見える・・かも) これらのルールによってこのゲームは情報戦が鍵になってる。 やってみると解るがRTSと情報隠蔽はかなり親和性が高い。 これによってどうなるかと言うと相手が何をやってくるのかが解りにくい。 囲碁や将棋では戦局が細かくても相手が何をやってくるかは元々解りにくい。 それは戦いの自由度の高さによるものだが 一方、多くのゲームは生産されたユニットを見た時点である程度 敵の動向が予測できてしまう。 これを防ぐ為にあえて情報を隠蔽するようにした、と漏れは考える。 ヲタはどうあっても製作技術板で論評したいらしいな。 弾薬の残りがいくつとか、実際の射撃速度(攻撃速度)とかは、 どうしてもゲームとしてユニットジャンケンが必要(?) になってくるせいで、バランスのために犠牲になりますね。 >>74 >>75 >>76 レスどうも。なるほど、補給は無くても成り立つんですね。 とりあえず戦闘だけの奴から作ってみます。あと、 ボコスカウォーズはやったことは無いです。ファミコン だということは知ってますが。 >>88 ろんぴょう と ぶんせき を こくごじてんでしらべてみましょう。 屁理屈こねんな。 評論家の意見は具体性が無く製作につながってない。 製作に繋がらない分析は他のゲーム板でやれや。 ゲームサロンとかあるだろ。 >>94 お前が制作に繋げられないだけ。 人間関係といい、プログラミングといい 総合的な実力に欠けているんだね、君。 お前は個人制作向きだな。 かわいそうなやつだ。せめて、放置してやろう。 ゲーム製作板はゲーム製作を話題にする板。 1はRTS開発の話題ですと述べている。 いいかな、ここはゲーム製作サークルではありません。 消防に説明するようで他のみんなに申し訳ないが(;´Д`) ってコレでもダメだな。 分析は製作の話題に入ります。 ゲームデザインはゲームの肝。 分析でも論評でもいいんだけどさあ、 正直、実際のゲームの話を持ち出されても、 遊んでないので話についていけまへん。 ゲーマーほど遊ぶ時間物理的に取れないもので。 >>102 >時間物理的に取れない むずかしいこといってるな(笑 あそぶ時間が無いっていう意味で、 スタクラの話についていけないという事だとして、 いままで↑にでてきたぐらいの内容についていけない のは、どうか? やっぱり話題の範囲が広すぎるかもな。このスレ。 アルゴリズムや実装の話は誰もネタ振らないから 今は無いだけだろ。 「スタクラの話についていけない」って・・・・・。 ヲタの世界観はやっぱ違うな。 頼むからゲーム板に帰ってくれ。 なんか煽ってるやつがいるな。 かちゅ〜しゃユーザは透明あぼ〜んを活用のこと。 盛大にディスコミュニケーションしまくりなこのスレ。 RTSと一口に言われても、他ジャンルと違ってコンセンサスがないため 皆が話したいことがまったくバラバラなのが原因と見たが。 他の板に逝けとか言ってるくらいならさ… ていうか、質問があるんだったら素直に 質問したほうがいいと思うよ。ネタ振りにもなるし。 久しぶりに来たら荒れてるみたいだけど、なんかあったの? 過去ログ読むのメンドイ。 RTS ツクールだけ出てないのは、やっぱり難しいからなの? 久しぶりって・・・・ >>17-23 参照。 A*検索の話が潰された。 23=ヲタ それ以来、開発の話に行こうとするとヲタが出てきて壊す。 >>112 いやその、この板にきたのが久しぶりとゆー意味で。。。 てーか原因がわかってるならサルを放置しながら A* の話に 戻していけば良いのでは? 実装の話とゲームデザインの話が共存しちゃいけない ってことは無いと思うんだけど。 興味ない方は放置してくださいよ、うちらを。 たとえばサターンの「クウォヴァディス2」は戦闘に際して 武器の弾道を2次関数で演算してるのがウリだった。 最近では当たり前かもしれないけど。 でもゲームとしてはツマラナカッタ。何故か。 AoEでもなんでもいいが、評価の高いゲームは 戦闘が面白いからなのか、それ以外の部分が面白いからなのか。 あるいは、両方面白いからなのか。 両方面白くないとつまらないゲームになるのか。 どっちかが面白ければいいのか。 そういうところが気になるんですが、俺は。 >>76 そっか。「リアルタイム版大戦略」がRTSじゃねえと 俺が感じるのは、ユニットの移動なんかが実時間っぽくても 戦闘が相変わらず「Aユニット攻撃、Bユニット地形防御効果○%、 Cユニットの支援効果が○%で・・・」とかやってるからなのかも。 実際に包囲攻撃なら「包囲されて攻撃されてる!」って様が 再現されてれば、補給とか無くてもRTSって感じがするのかな。 あと個人的にはAoEにしろスタクラにしろスデンにしろ、弾が 飛んでいって同時に着弾、とかする様がスキってのがあるかも(w ただまあ、>>108 の言うとおり、「これはRTSに含まれる」 「いや含まれない」っていう言葉の定義の問題はあると思うので、 あんまり「俺的にRTSじゃねえと思う」ってのは言わないほうが いいのかな、やっぱり・・・。 >>82 「弓兵」ユニットはあれは単に射手一人だけじゃなくて、その 予備の矢筒とかもすべて含めて抽象してると考えたほうがいいんじゃないかな。 あるいは、あの1ユニットは1人の弓兵ではなくて1小隊分の弓兵を 記号的に表してると考える。 そうでなかったら、たとえば「騎士」だったら単独で行動することは めったに無くて必ず従者がついて歩くわけだし。でないと鎧脱げないし(w うーむ。RTSは技術的にも様々な困難がある分野なので混在は まじめに作りたがってる人には迷惑だと思うよ。 技術的な問題に関係ないゲームの面白さ「だけ」を議論したいの ならできれば別スレ立ててくれた方がありがたい。その方がそう いう議論したい人にも有益だろう。 ゲームデザインは製作技術じゃねえよ。 厨房でもヲタでも妄想君でも出来る。 RTS のデザインについて(実装技術は除く) http://game.2ch.net/test/read.cgi?bbs=gamedev&key=1007303109 住み分け完了。 やはり、マネージャーが一人いないと、ヲタどもはケンカばかりして仕事が進まんな。 >>121 ・・・絶句。 プロなら問題あるな、その発言は。 でも親切な人が別スレ立ててくれたので話題を分けようか。 では以後このスレはA*とかBoidとかオクトツリーとか語るスレ? 分析して考えるなら、 ゲームの世界観がどうのとかは、すっ飛ばしてもいいでしょうね。 もちろん世界観によってデザイン(ユニットなど)時に違いがでてくるでしょうが。 もちろんここでは、どっちが面白いとかそういった話題は必要ないとおもいます。 基本的なゲームシステムだけみると、 スタークラフト=AOE でもかまわないと思います。 迷路を探るとき両方とも、常に最短路ではないですね。 壁づたいに移動したときの方が目標に近いときにも、 いったん中央(マップチップの)に移動したりしますね。 昔いくつか予測と実験繰り返しましたが、 説明したくても文書だと書きにくいですね。 あと、意見を求めるときはどのゲームのどの部分かを具体的に 書いたほうがいいと思います。 既存でないシステムの場合は、ちょっと説明は大変でしょうね。 とりあえずヲタはシツコクてウザイということは同意。 せっかく別スレ用意してもらったのに。 こっちは実装スレってことで期待age. >>124 Boidって、RTSの敵の行動を群れで制御するってこと? ならば、やはり本家が萌え。 http://www.red3d.com/cwr/boids/ RTSに限らず、群れがワラワラと動くのっていいよね。 アクションとかシューティングの敵の動きをBoidでやってる ゲームって無いのかな?三国無双なんか結構それっぽいけど。 大航海時代2の「自動航行」機能は、あらかじめ全マップに ウェイポイントが振ってあって、目的地毎にそれを辿ってくって 感じだった(だから最初は最も近いウェイポイントを目指す)が、 スタクラのユニット移動はそれに近い動きのように見えたが。 東京都心とかで地下鉄使って移動するイメージに近いかも。 (いちばん近くの駅に行き、あらかじめ設定された経路で移動し、 目的地に近い駅で降りる。 アルゴリズムの名前はしらん。 >>127 Boid と言えばこんなの如何でしょ? ttp://www.red3d.com/cwr/steer/ 車の群体シミュレーションっす。要Java それにしても、他人に自分の知識や知恵(と思い込んでるもの)を自慢する ことだけが目的であって、物作るぞ、という真剣さが足り無い人って確か に邪魔(オレモカモー!) >>129 でもちゃんとリンク書いてくれる人は、参考になるから、イイと思うよ。 進行方向に障害物がある場合、それをよけて進む必要があると思うんだけど ヘックスじゃない移動だと、どうやってリアルな迂回処理をさせれば良いんですか? なんか、一旦障害物の直前まで行ってから回り込んでたりすると いかにもヘタレっぽいアルゴでいやなんですけど。 #実装話になったとたん、人が減ったな。 #やはり妄想企画厨だけだったという事か。 >>131 障害物迂回判定の値を当たりより一回り大きく とっておけばいいんでないの? リアルタイム判断じゃなくて、行き先指定された 段階でルート計算すれば問題ないと思うが。 んで、もしルートに障害が現れたら、再計算 する、と。ナビのプログラムに似てるかもな。 >>131 そんなときこそA*な経路探索で最短経路を割りだすべし。 まぁ、経路を決定するために、どれだけ重い処理まで許せるか、ってのもあるけど。 動いてるオブジェクト(見方のユニットとか)を動的によけて…とかだと、難しそうだ。 (動くオブジェクトは無視して、そういうオブジェクト同士は実際に異動させるときにコリジョン判定を行うのが普通かな?) あと、FPSの話だけど、遺伝的アルゴリズムを使って障害物をよけるって話もあるよ。 http://ai-depot.com/BotNavigation/Avoidance-Introduction.html 読んでないけど。 ヘックス(内部的なものも含む)移動するものとそうじゃないもので かなり計算にかかるコストが変わってきそうですね<経路探索 例えば3次元空間上を効率よく移動しようとした場合でも A*な経路探索って有効なの? >>135 まぁ、全探索するよりかはまし。 コストが問題になる場合は、途中で打ち切る方法と、毎フレーム一定量だけ探索して 探索終わるまでユニットを動かさない、という方法があると思うけど、 途中で打ち切って障害物に引っかかってたりしたら、ヘボいってたたかれるだろうなぁ。 ヘックスじゃない場合は、>>17 参照。グリッド分割して、経路のスムージングをするらしい。 というか、経路探索はいっぱい論文でてるんで、探すといいかも知れず。 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で使うやつなら適当で言いと思うけど。 >>137 先生! それって自力で考えた経路探索アルゴリズムと全く同じであります! 何度でも車輪を再発明してやるぞゴルア! くやしいので最適化の所を纏めてみた。 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次元配列で作るかな。 A*の面白い特性。 移動コストの予想値が常に実際の最小コスト以下ならば、最短の移動経路を求めることができる。 例えば、予想値の重みを0(すなわち無視)にすると確実に最短移動経路が得られる。遅くて無駄も多いが。 だから、 ・高速な検索をしたいときには予想値を素早く得て、重み付けも多くつける ・高精度な検索をしたいときにはなるべく正確な予想値を得て、あまり重み付けはあまり重くしない ということやね。"アホな敵"をシミュレートしたいならこのあたりを工夫すればそれっぽくなりそう。 ついて来れないアフォが消えたからな。 所詮口だけの奴はすぐボロが出る。 このスレを呼んでA*を思い出しました(^^; ちなみに空間に重み付けがなく、単純に最短距離を求めたいだけの場合に 予想値として取られる典型的な値としては、 現在の地点からゴールまでの直線距離が有名です。 途中で迂回すると必ず直線距離より多くのコストがかかるため(三角不等式)、 A*アルゴリズムで必要とされる条件(予想値<=実際の値)を満たすからです。 A*の一番本質(と自分が思っていること)は、探索するときに 「この点を通るとこれからゴールするまで最低これだけのコストがかかる」 という追加情報を利用することです。 単純な探索ではこの情報は利用せずに、 スタート地点からのコストだけを見ていきます。 (すなわち、予想値を常に0としていることに等しい) 例えば東京から大阪まで鉄道で移動する最短経路を求めるとします。 すでに名古屋経由で大阪に行く経路が1本見つかっていたとしても、 単純な検索ではその後に仙台を途中経路として検索してしまいます。 北海道あたりまでたどり着いてようやく東京-名古屋-大阪の経路より 探索経路が長くなるので打ち切りますが、かなりの無駄をしているのは自明。 そこでA*を適用すると、仙台を探索した時点で 東京-仙台間で探索済みのコストと仙台から大阪までの予想値(直線距離)の合計 (予想値の性質より、仙台を通るとどう頑張ってもこれより経路長を小さくできない) が、すでにもとまっている東京-名古屋-大阪の経路より大きくなってしまうので 仙台以降を検索しても無駄だということがわかります。 実は検索の打ち切りは極端な例で、もっと一般的には ゴールまでにかかるコストのヒントが分かっていることにより、 東京から出発して仙台と名古屋を比較するときに 名古屋のほうがよりゴールに近いという判断をすることができ、 より速く最適解に近づくことができます。 A*は経路検索だけでなくさまざまな場面で使われますが、 理解への基本のイメージはこれでいいのでは。 ある点からゴールまでのコストの下限が簡単に求められるような ケースでしか使うことができないのが難点ですが(^^; A*って結局普通の探索に評価関数をいれて重みを加えるだけだよね。 たとえば東京→大阪の時、東向きの移動は減点みたいに。 なあお前等 RTSやってる時によ〜 例えばユニットを移動させるとするだろ、 その時、敵がやってきてすれ違う時何にもアクションしないんだよ。 歩きながら黙って敵の攻撃くらってるの、もうアホかと馬鹿かと 敵が視界に入ったら迎撃しろっての。わかるだろ? >>148 反撃、素通りは指定できるようなってるほうがいいな なんでもかんでも反撃したらおもいどおりにうごかなくてつまらん つーか迎撃しないRTSってどれよ?AOEとかは嫌でも反撃はじめるけど かってに戦闘しだしちゃったら、統制とれなくなるんで、困る。 戦闘させたかったら、すれ違うときに移動解除→待機モード→自動戦闘でいいじゃん。 >>150 その統制とれないのもゲームの一部だ 撃たれまくってるのに涼しい顔して行進してるのも変だろ まぁ、そのへんはどこにおもしろさを見出すかという話になるんだろうが うーむ。 「士気」とかのパラメータが有って、低いと命令聞かなくなるとかするのかな? 士気最低で戦闘するとパニックに… 戦闘にはいる前の「訓練」や「忠誠」と戦闘状況によって変わる「士気」の組み合わせで 兵士の動きが変わるのとかになればおもしろいな。 雑魚をたくさんひきつれて数を頼みに力押しや少数精鋭で拠点占拠とか作戦の幅もひろがるし。 2つの場所から同時攻撃したい時、 A→Bって操作しないといけないのがめんどい。 行動する時間を設定できたりすれば面白いかも 日の出とともに敵陣に突撃しろとか >>146 そういう意味もありますが、 A*で求めた解は最良であるという保証があるのも大きいかと。 最良の保証は評価値が最良値より常に小さいという条件に依ります。 兵の「士気」とかは、KOHANですでに実現されてるね。 エイジオブエンパイア2がプレステ2で発売されたわけだけど評判どうよ? どうでもいいが、いつ見てもエイジオブアンパイアと読んでしまう。ゴミ。 >>157 うわーん、ミリティアが入ってないよよぉ 護美レス許せ ミリティアは良いゲームだ。あれで対戦できるだけで満足なんだが 誰か作ってくれぇ だれか、ゲームに応用できそうなアルゴリズムを語ってください。 ダイクストラ先生追悼記念で(遅いけど)。 個人的な希望としては、 ・グラフ理論(A*の続き) ・遺伝的アルゴリズム/ニューラルネットワークの応用 あたりをきぼん。 遺伝的アルゴリズムは原理的に問題があるという話を 何かで見たけど、実際のところどうなの? RTSに3Dは必要だと思いますか? シングルプレイゲームとしてのRTSなら3Dでもいいと思うんだけど、 勝つことが重要な要素になるマルチプレイだと3Dは必要とは思わない。 でも、新作のRTSは例外なく3Dだし、WC3も順調に売れてるみたいだから、 自分の感覚は少数派なのかなあと。。 3D は楽じゃないよ、というのは誰でも言うだろうからおいといて、と。 アングル変えるだけでいちいち絵を描かなくていいから、と 楽になることを期待されていた時期はあったよね、確かに。 俺もRTSだと2Dじゃなきゃ全体が把握できなくなるからいやかな。 もしも2Dマップ上で操作できるなら、ずっとそのモードで遊ぶ。 でも2Dは売れないよ、きっとね。見た目の問題さ。 やりこむ人よりも、少しやってやめてしまう見た目重視の人のほうが圧倒的に多いということか。。 ゲーム的には2Dのほうが向いているのに、売れないからという理由で、 3Dにしてしまっているのなら、それってかなしいですねえ。 少しやってやめてしまうんじゃなくて、 少し見て(買うのを)やめてしまう見た目重視の人、 が圧倒的に多いの。きっと。 売れないからという理由で何々にする、というのは、 3Dに始まった話じゃないしね。昔っから何かにつけてそうだし。 高さの概念が重要なやつは3D化する意義は十分あると思う。 MYTHとか。 Home World とかは2Dだと表現できないと思う。 マルチプレイに向いているかは置いとくとして。 ところでRTSってゲームの中でどの位メジャーなんだろうか。 この板って過疎化激しいからなんともいえないけど、このスレってあまりにも沈みすぎ。。。 個人的には、プレイヤ人口率(ゲーム人口の中のRTSに関心のある人の割合)20%くらいかなと思ってるんだけど。 コンシューマでそもそもメジャーになってないからねぇ、日本では。 全体でみるとかなりマイナーそう。 PCだとAoEがあるからな PS2?マウスとキーボード(ORストラテジックコントローラ)じゃないとゲームになんないよ ∧ ∧ シュー (,,゚Д゚) リョー 〜( ) ||| (__)_) 【糸冬】 コサックスの船の画像って、すごくなめらかに動くんだけどどうやってるんだろうか? あの大きさの画像で全部パターンでVRAMに置いてるとは思えないんだけど。 あのゲーム、要求スペックかなり低いしなあ。 どなたか分かる人いません? □□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□ 英語サイトを閲覧する時は、エキサイトの翻訳サービスで見る? ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/終 ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖\/‖ ‖ ‖ \_/\_/\_/\_/\_/\_/\_/\_/\_/ _________________________ /| |\ \だからさぁクソスレ立てんなって言っただろ/ ?パチパチ?パチパチ  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄?パチパチ? ∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ( ´∀`)∧_∧∧_∧∧_∧ _∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧ ∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧∧_∧ ( ) ( ) ( ) ( ) RTSもRPGもシステムの大半はボードゲームからの流用。 ボードゲーム・TRPGのシステムを学習したまえ。 あとボードゲーに関してはドイツが先進国。てゆうかあそこはすごすぎる。 □□□□■□□□□□■□□□□□□□□□□□□□□□□□□□□□ □□□■■□□□□□■□□□□□□□■■■■■■■■■■■■□□ □□■■□□□□□■■■■■■□□□□□□□□□□□□□■■□□ □■■□□■□□□■□□□□■□□□□□□□□□□□□■■□□□ □□■□■■□□■■■□□■■□□□□□□□□□□□■■□□□□ □□□■■□□■■□■■■■□□□□□□□□□□□■■□□□□□ □□■■□□□□□□□■■□□□□□□□□□□□■■□□□□□□ □□■□□□■□□□■■■■□□□□□□□□□□■□□□□□□□ □■■■■■■□□■■□□■■□□□□□□□□□■□□□□□□□ □□□□■□□□■■□□□□■■□□□□□□□□■□□□□□□□ □□■□■□■□□□□■■□□□□□□□□□□□■□□□□□□□ □□■□■□■□□□□□■■□□□□□□□□□□■□□□□□□□ □■■□■□■□□□□□□□□□□□□□□□□□■□□□□□□□ □■□□■□□□□■■■□□□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□■■■□□□□□□□□□□■□□□□□□□ □□□□■□□□□□□□□■■□□□□□□■■■■□□□□□□□ ところで超亀レスで申し訳ないが>>71 はRealTimeTacticsじゃないのか・・・? 誰も突っ込んでなかった様なので一応 敵と味方双方のゲーム(戦闘行為など)が実時間に対して同時に進行していくもので、(RT) ゲームに投入される戦力が、ゲーム内でのプレイヤーの裁量、戦果、戦況によって 変化するものをRTSといい、変化しないものをRTTという。 でもこれだとスーパーマリオブラザーズはRTT。 ・Bungieの名作"Myth"はRTT ・大戦略III系はRTS ということか。 まぁ、戦略か戦術かという切り軸的にも妥当かも。 もっともRTTという呼び方がどれくらい一般的なのかは知らないけど。 >>209 いやそんなややこしい定義じゃなくて単純に 戦術に注目したゲームか、戦略に注目したゲームか という区切りのつもりだよ 集団戦闘「のみ」フィーチャーされてるんなら どうがんばっても戦略に手を出せないからさ 例えばShatteredGalaxy(TacticalCommander)は >>209 の定義で行くとRTTになっちゃうけど 大域の戦況を見て国家元首や各プレイヤーが どこに戦力を投資するか意思決定できるので 俺は立派にRTSだと思う で、なんでそんなこと言い出したかっていうと どうもRTSの事を、直接ではなくても感覚的に 「斜め見下ろしのマップでちっこい兵隊がボカスカ戦うゲーム」 みたいな捉え方してる人がいるっぽいんで それはRPGの事を 「フィールドマップを歩き回って敵と戦って成長するゲーム」 と頓珍漢な解釈してる日本ゲーム業界と同じ過ちを繰り返してるんじゃないかと ちょっと警鐘を鳴らしてみたかったワケ でも、日本でも海外でも、RTSは実質的に >「斜め見下ろしのマップでちっこい兵隊がボカスカ戦うゲーム」 程度の認識しかないんじゃない?MythもRTTという紹介は海外サイトの 一部にあるにはあるけど、数から言って一般的とはいえないように見える。 あとは、「戦略がない」ことを別表現で呼ぶ必要があるか、という問題ですかね。 (RTTという表現を一般的にするという運動をするならという話だけど。) >>213 いや、RTSの定義をしよう!って趣旨のレスなのに 「ソレ全然Strategyじゃねぇだろ!」って突っ込みたかったので 別にRTTという言葉を認知させたいワケじゃないです・・・ 「ソレあえていうならRTTになるだろ」って事 うひゃ。 Strategyが重要ってのは同意。 なくても面白いのは出来るが(Mythファンなので)、 やっぱあってこその所謂RTSだとおもう。 >>215 スレの趣旨を堂々といきなり変えるな(w FLASH・動画にたいして、JASRACが、いくらなんでも酷いので、 JASRACひどすぎと、スレたてました http://live5.2ch.net/test/read.cgi/festival/1058904910/l50 みんな立ち上がってください >>217 は?良く読め そして無駄にageんなボケ >>215 「所謂RTS」⊃RTTということで。 特に無理してRTSじゃないという必要もないと思う。 日本語でシミュレーションゲームって言われると信長の〜とか大戦略〜とかしか 思いつかないんだが、そもそも何のシミュレーションなのかによって 大きくゲームとして違ってこないかね・・・(シミュレーションゲームって括りに無理が) 日本のシミュ=Strategy or Tactics 普通シミュレーションとか言うとフライトシミュレータとかになるのかな? ライフゲームは進化するとSimCityになります。多分。 良く考えたらRTSって リアルタイム戦略「シミュレーション」だな リアルタイム戦略「ゲーム」かもしれんけどな! ぐーぐるさんに聞いたところ、ゲームの方が一般的っぽい。 ウォーゲームをシミュレーションに分類してるのは日本だけ? RTSを作るときに、一番の難関になりそうなのはどの部分ですか? 市販だと新作が最近たくさん出てますが、フリーや同人のものがほとんど無いのは、何故に? 敵AI?その前に経路探索でつっかかる人が多いかも? >>229 AIと資源管理(プレイヤーリソースじゃなくて、アホみたいに増えるオブジェクト)が かなーり素人お断り状態に思える 単純に、100〜200ユニットいるとして 馬鹿正直に全てのオブジェクトでAI処理してたらゲームにならんだろうし ネットワークをどう分散するかも難しい課題に思える まさか200ユニット全てシンクロさせるわけにいかないし (再現性100%の経路検索ができればいいのかな・・・?) とはいうけど、市販RTSの経路検索も、決して優秀ではないよね・・・ >>231 >ネットワークをどう分散するかも難しい課題に思える >まさか200ユニット全てシンクロさせるわけにいかないし これは各ユニットが他のどのオブジェクトに反応して行動するか、って意味? >>232 いや、各ユニットの状態を「毎フレームサーバに送り続ける」のは非現実的なんじゃないかなと 馬鹿正直に組むとそうなっちゃうよね UnrealEngineなんかはうまくごまかしてる >>233 一昔前の自分の知ってるRTS(StarCraft、AOEシリーズ)は、回線も細かったから、操作情報(指示コマンド)のみ、渡して各PCで同じ計算をさせてたと思う。 (>>231 再現性100%の経路検索と同意かな?) 全体のどこの場所のユニットでも情報を見ることができるので、一部のみ計算して、後はごまかすという方法は取れないだろうし。 最近は回線も太くなってきてるから、最新のはもっと高度に分散させてるのかも知れないけど。 市販でもセガのハンドレットソードは所謂AIはあきらめてるな、 マルチはおもろいけどシングル最悪だった。。 >>234 結局、RTSだと、乱戦になったらぐちゃぐちゃでどうなってるか人間にはわからないんだから、 すべてのプレイヤーが「完全に」同じ画面を見ていなければならない、というわけでもない、 と考えることも出来るね。「サーバ役」のPCがちゃんと計算できてればいい話。 FPSと比べると、サーバに近いこと(サーバであること)のアドバンテージはそんなに大きくなさそうだし。 あと、PCの性能も上がってるわけだから、処理を分散するのはプログラムが複雑になるばかりで、 メリット無さそう。まぁ、数万とか数十万のユニットがいるとかならまた別だろうけど(MMORTS?)。 呉ソフトの ファーストクイーン ザ・ニューワールドやってみ? 5年ほど前の奴だが、400人くらい3Dでサクサク動いて 考えさせられるぞ。 ユニット数で言えば、年内発売予定のコサックス2は3Dで最大32000ユニットらしいね。 どうせ、うちのPCじゃ重くてできないんだろうけど。。 メガドライブのヘルツォークは アクションだがRTSっぽい。 あまりにも忙しすぎてなかなかプレイする気にもなれない・・・ かわいい中学生のパイパンおま○こ画像を発見でつ!! (´Д`;)ハァハァ ↓ http://plaza16.mbn.or.jp/ ~satchel/sukesuke_idol/omanko_wareme/ 本日更新! モロアニメが無料で見られる!! アニメならではの非現実的な世界をお楽しみください 無料サンプルはココから http://www.pinkfriend.com/ 不謹慎ゲームとかの類では無いです。 真面目にゲームとして戦略性が高く、楽しめる物を作りたいと思っています。 Age of EmpiresやCivilization、 リアルタイム版大戦略、信長の野望などの ゲームシステムをご存知の方なら分かりやすいと思うのですが、 基本構想として、 ・TCP/IP等を利用したリアルタイム対戦型戦略陣取りSLG ・平面マップ上での陣取り(四角平面、もしくはクォーター) ・活動は幹部等のに命令を下して行う(信長の武将の様な扱いです) ・プレイヤーごとに固有の教団を予め設定して参加が可能(Age of Empiresの文明の様な物です) ・軽くてスペックの低いマシンでも動作可能 ・1ゲーム時間は長くとも2時間程 を考えています。 他の教団との抗争や、経済政策、テクノロジーの開発等をしながら、 自分の教団の進歩させて布教や改宗による地域の統一を目指します。 教祖や幹部等のメンバーを活動ユニットとして扱い、 信者を率いて布教活動や破壊活動を行います。 修行施設や研究施設など、教団施設の建設も考えています。 陣取りというのか、エリア確保はCivilizationの様なマス目で、 テクノロジー開発や建設などの進化や生産などをAOEの様に、 ユニットとしてリーダー格を中心とした行動部隊を編成するといった物 を考えています。 エリア単位で人口や土地生産力などの要素を持っているという感じで。 情報量の多さにプレイヤーが迷わない様に、メッシュマップや戦況表などの インターフェースにも気を使った物にしたいです。 こういう企画はどうでしょうか。 私も時間さえあれば作れるだけの最低技術は持っているとは思うのですが、 中々一人で作り上げる時間が無いのと、構想がまとまりません。 ご意見などあったらどうかお願いします。 直接の戦闘行為(?)がどんなふうになるのかイメージがわかないな。 何を争うゲームなのか(何を楽しむゲームなのか)がわかんない。 戦闘行為ですが、今のところ考えているのは、 例えば戦闘が行われている部隊は点滅するなりアニメーションなりで そのユーザーに戦闘中であると分かるようにします。 それぞれの部隊の戦闘行為などを一つ一つ追っていくのでは リアルタイム進行は不可能ですし。 ですから、時間が経つにつれてその部隊の状況が 自動的に変化していく様にと。 システムソフトのリアルタイム大戦略や大戦略4などの戦闘が 私のイメージに近い物だと思います。 何を争うゲームかと言えば、要は敵を淘汰して自分が勝つという事 になると思いますが、勿論時間制限のスコアを競うといった形や、 その他の応用ルールなどの目的にもできると思います。 このゲームのイメージを分かりやすく捉えていただくとしたら、 リアルタイムのシヴィライゼーション、でしょうか。 沢山の小ユニットがわらわら動いて闘うといった AOEの様な感じのものとは少し違う感じです。 アニメーション多いと、グラフィックソースを用意するのも大変ですから…。 ちょっと大戦略自体がマイナーかも知れませんので、 参考までにリンク張っておきます。 ttp://www.ss-alpha.co.jp/products/DS6Integral.html 大戦略がマイナーな訳、無いって。 宗教中心のストラテジーって、こんな感じ? ttp://www.watch.impress.co.jp/game/docs/20030715/demo0715.htm 最近大戦略をご存じない方が増えている気がしましたので… こんなゲームが出るのですね。初めて知りました。 ですが、個人を改宗していくというよりも、地域単位で信者を獲得して、 それが生産力などの基盤になるといった物を考えています。 確かに宗教がらみではあるのですが、もう少しバイオレンスというか、 戦闘行動のある様なゲームをイメージしています。 そういう意味では真っ当な宗教布教というより、テロリストとか マフィア同士の抗争という物に近いかもしれません。 宗教でなく黒社会の抗争とかでも出来そうな感じですね。 単に、宗教の名を借りた洗脳による地域統一といってしまえばそうですが。 ゲームイメージもAOE系というよりは、civ系の様な感じです。 ttp://www.watch.impress.co.jp/game/docs/20020411/civ3.htm http://moon.cyberfront.co.jp/title/pc/civ_3/ 平成15年 皆さんが「今、何が欲しいのか調査しています。」 あなたの欲しいものをランキングで紹介します。 http://www.c-gmf.com/Quest.htm だいぶ前にこの板に経路探査の技術を議論するスレ立てたんだけど すぐに削除されてしまってがっくりきたんだけど このスレでも経路探査について話し合われてるね RTSの肝はやっぱ経路探査法だね 私も最終的にはRTS作りたいと思ってるんだけど 現段階では経路探査法をいろいろ模索してる最中です なかなか人間らしい経路探査法が見つからない RTSの経路探査専門のスレ立てたいけどまた削除されるのかな 削除の基準とか知ってる方いらっしゃいますか? >>265 普通にA*でいいんじゃねーの? 人間らしいって基準が曖昧すぎるし。 普通のRTSだと経路探索はA*一択だとおもう。 後はそれをどう高速化するかの問題で。 確かGame AI Programming wisdomにEmpire Earthが使ってる アルゴリズムが詳しく書かれてたような。 スレは一定以上の書き込みがないと自然に落ちるんだった気がする。 話題の範囲が狭すぎるし立てても盛り上がらないと思うが。 このスレじゃだめなの? 話題あるなら、振ってみては? 盛り上がって、専用スレたてる必要が出たら、建てればいいじゃないかと。 "A*"で検索かけても 「"A" は一般すぎる言葉のため、 検索には使用されていません。」 って出てきて検索できないw A*について詳しい解説載ってるHPなど教えてください 人間らしいと言うのは、視界を考慮した移動ですよね。 「見える範囲内で最短経路を移動する 」 を繰り返して目的地へ移動する。 ただし、これだとすぐに行き止まるし、最初から迂回することは出来ないよね。 プレイヤーの視界をユニットの視界としているなら問題ないけど、 それなら通常のA*となんら変わりはない。 ストラテジーの場合、というか戦争を行う場合、 情報収集を事前に行うのが大前提で、 普通のA*的な移動を行う方がリアリティあると思う。 目的地への地図も無いまま当ても無く進軍するなんて 聞いたこと無いし、大体、目的地の方角と距離が わかってるんだったら、そこまで行くまでの地図を持ってるだろ? 斥候の移動に関してなら同意かも。 >>229 グラフィックでは? AoEなら、8方向でさらに攻撃ややられた時のアニメーションまで考えると膨大な量になる。 1ゲームでだいたい何人くらいのグラフィッカーが関わってるんだろうか? あらかじめ場合分けして数個から数十個の条件分岐で経路探査できるようなルーチンを考えてます マップ上で障害物を認識するためにあらかじめマップに処理を加えてます A*が駄目な理由が解かりませんよ。 アルゴリズムが理解出来ないのなら仕方ないけど。 経路選択と陣形に整列させるのがRTSで一番難しいプログラムかな? バラバラに配列されたユニットを効率よく陣形に整列させるのは難しそうだな〜 Glest Customizable RTS Version 1.0.1 of Glest was recently made available, a project that aims to create a free, customizable RTS game. While the project is currently closed source, the toolset allows nearly every aspect of the game to be altered and customized. (Excite翻訳) Glestのバージョン1.0.1は最近利用可能になりました、プロジェクト、それ、自由なカスタマイズ可能な RTSゲームを作成する目的。プロジェクトが現在ある間、出所を閉じた、toolsetは、ゲームのほぼすべての 面が変更されカスタマイズされることを可能にします。 :: Glest :: http://www.glest.org/ RTSツクール? >>282 三角関数で 「与えられた陣形にフィットするように各配置それぞれに最も近いキャラクターを移動させる」 とか 「マップ上に通行不可能なオブジェクトが配置されていた場合それにそって陣形を歪める」 とか 全部計算できちゃうんですか? コンピュータープレイヤーの賢いAI作るのも難しいだろうな AIの善し悪しによってゲームのおもしろさが違ってくるし RTS制作は敷居が高いな… コンピュータープレイヤーが町作りや資源採集、戦闘したりするAIって 手間がかかりそうだな… 地形が正方形のタイルを敷き詰めて表現されてる場合 上下左右に1タイル分移動する時の距離を1とすると 斜めに1タイル分移動するときは距離√2=1.4移動することになって しまって斜めに移動するとかなり早く移動できてしまう矛盾を修正するにはどうしたらいいいのかな? 上下左右に1タイル移動するのに時間1かかるとすると 斜めに1タイル移動する時間を1/1.4=0.7として表現すると どんなプログラムになるんだろうか? >>286 ふと思いついた4つの方法。 ・気にしない (確か旧WARCRAFTはそうだった) ・クウォータービューにしてみる ・移動のタイミングを計るカウンタを1.4倍にしてみる ・進行方向θ、移動距離Rとして、 sin & cos でXとYの移動量を算出する FreeCraftというオープンソースのWARCRAFTのクローンがあったよ >>288 4番目の方法は解決になってなくない? タイルベースだから移動量を半端な数にできないって話なんだから。一度に長距離を進めるのならともかく その方法を使うには結局位置を実数ベースで所持して、格子上の整数に投影するなどする必要がある ついでにもう一つ案を加えるなら 5.ヘックス型の升目を採用する >>288 >・移動のタイミングを計るカウンタを1.4倍にしてみる ここのところをもっと詳しく説明お願いします >>290 タイル状に地形データを保持しているマップの上をスムースに移動できるRTSだと思って いたのだけど…違った?>>286 その時は勿論 X,Y は実数や固定小数点に。 大戦略のようにタイルごとに大きく進むとしたら、 sin , cos を使う方法はバツか。 >>291 例えば、 QueryPerformanceCounter() などで、ユニットを動かすタイミングを計っている ときに、 10000 カウントに一回動かしているユニットを斜め移動の時だけ 14000 カウント に一回動かす方法。 カウンタは各ユニット1個ずつ保持。 …よく考えると、あまり良い方法じゃないかな。 >>286 目的地が隣接8マスのみでそれぞれに同じ移動時間がかからなければならないなら 座標を計算していくのではなく移動した割合(1秒に10%移動などして)をもとに座標を計算。 地形がマスだからって移動をマス縛りにする必要はあまりない気もするけど。 sin.cosで良いんじゃないか? でかい升目のRTSってあまり見かけないし 2Dで高低差を表現するのは難しそうだね 坂をなめらかに表現したり キャラがちゃんと坂を上ってるように見せたり(平面を歩いてる時とは違って 坂の凹凸に投影される影の付け方や坂のでこぼこに合わせてキャラも上下するような細かいところ) >>296 3Dでもでこぼこに影つけるのは結構面倒だよ。 RTS って技術的にかなり総合力が必要だよね。 MMORPGなんかのほうがはるかに楽な気がする・・・。 移動ルーチン、敵の思考ルーチン、大量のキャラクターの表示、 視界計算等等。 まぁ、敵の思考ルーチン以外はセオリーは知れ渡ってるけど、 とっかかりにくいことも事実だよな。 移動ルーチンはだいぶん形になってきた まだ一個の障害物でテスト運行中だけどどんないびつな形でも スマートに回避して目的地点に行くようになったな まだ少しバグは残ってるけどバグ退治したら 複数の障害物を避けれるようにしようと思う グラフィックの勉強しようと思って手本としてAOCを選んだわけなんだけど AOCのMODスタジオ使ってグラフィック抜き出して見てみたんだけど グラフィックの量がものすごい多い 色の使い方が絶妙で真似できないよ 手書きをスキャナかなんかで取り込んだのかなって思うくらい配色がうまい フリーのRTSゲームないかな? どんなもんか見てみたい >>302 フリーのRTSがみたいならコレ http://www.glest.org/eng/index.htm RTSというものを見てみたいならage of empiresシリーズの体験版 >>303 3DのRTSは作るの難しそうですね 勉強のために日本人の素人が作った2DのRTSが見てみたいです >>304 国産は見たことないなぁ 厳密にはRTSというジャンルに入らないだろうけど RTS風の戦闘をするゲーム Makuri version3.00 http://www.broba-web.jp/zzzaaa/ >>305 早速やってみました 敵をなるべく多くで囲んでたこ殴りにしたほうがいいみたいですね 参考になりました >>301 AOCのグラフィックは、3Dでモデリングしたものを、2Dのアニメパターンに落としてつかってたと思ったけど >>307 なるほどそうでしたか… 情報ありがとうございます やっぱ製品とフリーでは雲泥の差があるよね 特にグラフィックとキャラのアニメーションがしょぼいと見栄えが悪いね Glest はフリーにしちゃよく出来てると思うよ。 CGだって、製品には及ばずともなかなか健闘してると思う。 製品でもいいけど日本製のRTSってなんかあるの? PATHEngine http://www.pathengine.com/ 経路探索のエンジンらしい。デモのミニゲーむずい。 >>312 二面の途中でやめたんだけど先に進むともっと複雑な地形が出てくるのかな? 二面までの地形は単純すぎてエンジンのすごさを実感できないな… まぁ100歩ぐらい譲ってA*による経路検索は出来たとしよう。しかし、ユニットで経路がふさがれた時の挙動や 建築や伐採で地形が変形した時のA*ツリーの再構築方法等はかなりどうしていいかわかんない。 WarCraftとかDOSの時代に動いてたRTSはまさにオーパーツだな。どうなってんだ? >>312 2面で敵に殺された。経路探索について知りたいのに! 地形の変化への対応は再探索が普通なんじゃないのか? >>314 (1) マップから特長点を認識して特長点だけのマップを作っておく。 (2) 特長点のマップを使ってA*で経路探索して結果だけNGの道も含めて保存しておく (この経路行けるかなと思ったけどダメだった)も含めて多めに保存。 (3) 地形が変更されたら、特長点マップも変更されるかも。 (4) 特長点マップが変更されて、その変更が(2)の結果にかかってたら、そこから計算やり直し。 でどうだろう?データ量多すぎかな。 >>314 昔は検索しやすいようなデータ形式でそれに見栄えをあわせる、 ってことをしてたわけだけど、今は見栄えがまずありきで、 それだと検索のしやすさなんか無視だからね。 本当はPCが賢かったり登場するユニット数が多いほうが 面白いゲームが出来るような気がするけど、流れ的には 見栄え重視だよね。 >>312 この程度の経路探査なら A*使わないでできてるけど 移動ルーチンは8割がたできあがったけど他のプログラムやグラフィック、音楽などがまだ一つも完成してない しかしなんでこんな汎用アルゴリズムにGoogleで検索しづらい名前つけるんだろね A*が考案されたのは1968年だぞ…無茶言うなよ。 ただ検索しにくいってのには同意。 それではこれからこのスレは一時A*の新しい名前を考えるスレということでよろしいでしょうか? *から連想されて Aが付くとなりゃ決まってる! アナル A*ってどうやって検索すればいいの? Aを含んでると検索してくれないんだけど… A*関連のHPを片っ端から紹介してください PATHEngine 作者インタビュー ttp://ai-depot.com/Interview/PathEngine.html どっちかといえばA*のアルゴリズムよりもノードの動的な構成方法の方が謎領域だな。 2Dコリジョン上で複数ユニットを動かすなんて10人いたら10人とも同じもの作りそうなんだが 何故か全然情報ないんだよね…。 国産のMMOでもまともに経路検索してるの無いし。海外のはちゃんとMobが障害物に挟まらずに 追ってきたりするのに。 >>307 3Dでモデリングしたものを、2Dのアニメパターンに落とすツールかソフトないでしょうかね… AOCのグラフィックをMOD PACK STUDIOで見ると同じキャラでもパターンのサイズがいろいろ違うね 普通は32×32ドットとかパターンサイズを統一してると思うんだけどな >>302 EmpireTohuっての見つけたぞ http://i-saint.abz.jp/pg/ SDL+OpenGL+Luaつー環境もなかなかアツイ >>334 まだ開発途中だけどAOMみたいで形はできあがってる感じだね 3Dだしミサイルの弾道や爆発シーンもかっこいい 参考になりました >>331 日本のゲームプログラマの質の低さを物語っていますね。 GoogleにA*で検索できないぞゴルァって言えば案外対応してくれそうな気もする。 理系集団だし。 50人って多すぎかな? FF10は100人で作ったらしいけど、そのうちグラフィッカーは 50人以上いるでしょ? 8bit時代のロートルぷろぐらまだす。 なんか漏れ的に懐かしい話題のスレのようなので、 俺が大昔に書いた経路選択処理を書くっす。 a.マップ(スクエアマップで斜め移動は1.4倍コスト)と同じサイズの整数2次元配列を用意し、「未到達」値で初期化 (以後の処理は全てこの配列を対象とする) b.移動目標とするべき地点に、その重みに応じた「重要度」数値をプロット(小さいほうが重要箇所) c.配列全てをスキャンし、「重要度」がプロットされている地点の 隣接スクエアに「元の地点の重要度+スクエア間移動コスト」を重要度としてプロットする。 (既に重要度がプロットされている場合は、新しい値が小さくなるときだけプロットする) d.移動させたいユニットのスクエアが「未到達」でなくなるまでcを繰り返す e.ユニットは値の「重要度」値の小さいほうに移動する ってやって、目標設定も一緒にやってた。 データ処理量の問題とかありそうだけど、ま、何かの参考になれば・・・・ #思考ルーチンスレにも似たこと書いたけど、 #こっちのが具体的に書いたので重複許して。 >>341 目標地点を基点にしてA*で探索すれば配列全てをスキャンしなくてもすむと思うんだけど、気のせい? >>342 まぁ、基本的にはそう。 最終的には(A*は知らなかったけど)もう少しましな実装にしたいなぁ、とは思ってた。 だけど、 a.思考ルーチンも兼ねてて、「複数の目標のうち、どれを選択するべきか」ってのも その処理でやらせてた(今考えるとさもしい発想かも・・・) b.コード側のメモリ制限が厳しかったので、メモリ食いそうなコードを書きたくなかった c.配列を1枚プロットすれば、他のユニットにも使いまわせたので、 合計処理時間は意外とかからなかった ので、そのまま実用にしちゃった:p マップサイズが小さかった(確か80x50)から 全スキャンでどうにかなった、といえばそうかもしれない。 >>334 それ全然経路検索してねーやん。ユニット重なりも怪しい。 そう言えばフロントミッション:オルタの経路検索も酷かったよね。和製RTSの恥部って感じ。 米軍は衛星や航空部隊が、味方と敵の位置と移動方向を把握して、 司令部が計算し、現場の戦車に移動方向や弾を撃つ方向を指示する。 測量から、1秒もかからないで、イラクの戦車に命中。 でも歩兵の場合は、おおまかな指示が歩兵のディスプレイに伝えられる だけで、あとは歩兵同士のP2P通信で、現場で判断して行動してください。 移動ルーチン思ったよりバグが多かった バグフィックスにだいぶかかりそうだ・・・ LANで存在しているホストを調べるにはどうしたらいいんですか? どなたか、AOE開発元のアンサンブルスタジオがHPに載せてた経路選択についてのレポートの ある場所教えてください やっぱRTS作るなら戦略的に面白くなるように高低差のあるマップじゃないとな… AOEのように高低差をなめらかに作るのむずかしそうだな directX8で高低差のあるマップの作り方書いてるサイトないかな? HeightMapでした失礼 googleに「もしかして」って指摘されたOTL >>353 HeightMapってなんですか? 検索したけどあまり詳しくかいてなかったので AOEの地形の変化にも柔軟に対応した経路選択ってどうしてるんだろうな… 1フレームごとに経路選択用の地形データを更新してたら重くなるしな >>360 地形が変化したときだけ、経路探索用データを更新すればいいんじゃない? >>361 もっと詳しく説明おねがいします >>362 あちこちで森を切ったりしてるから頻繁に更新しないといけないかも 私が使ってる経路探査用地形データを一フレームごとに更新したら超スローになったので そこらへんどうしてるのかなと思いまして >>363 説明しよう! heightmapとはxy方向に等分に分割したマップである 頂点は周りの8方向の頂点と合計4つの四角形を構成し頂点を共有するので メッシュを別個に置いていく方法と比べて滑らかにできる もちろん分割数が少ないとカクカクになり、分割数が多いととても滑らかになる ちなみにDirectXSDKサンプルにも収録されている 自然な地形の作り方はgame programming gemsなど >>363 別に1フレームごとに更新することは無いんじゃない? ちょっとずつ更新して、2秒に一回更新することにしたら? コストが100分の1以下になるよね? AoEって高さの概念って攻撃力ぐらいじゃなかったっけか? >>364 早速サンプルを見てみます >>365 ちょっとずつ更新ってどうやるんですか 経路選択ルーチンをを分割しておいて1フレームごとに少しずつ実行して数フレーム後に更新が完了するような感じですか? 攻撃力が上がるだけですね >>364 DirectxSDKのC++のサンプルさがしたけどそれらしいのが発見できなかったです サンプルの名前教えてください >>363 毎フレームしている探索用データの更新処理ってどんなことをやってるの? その更新処理のコストってどの程度のものなの? >>638 処理の内容は内緒ですw かなり重くて移動が超スローになりました 基本的にこの手のスレが盛り上がらない理由ってのも 内緒が多いからという気がする。 まぁ、そういう俺も内緒派だけど。 メリケンだとnyユーザも顔負けの共有意識があるけどな。やっぱ英語が読めないときついわ。 >>373 外国だとすでにゲームプログラムも定式化されてて隠す必要がないから 知識を共有してるのかもしれないね 国内の情報が少なすぎるよね 2ヶ月ほど前から、こういうゲームを作って公開を始めています。 http://www.geocities.jp/retsuden2004/ また、つい2、3日前ですが、ようやくネット対戦が出来るようになりました。 ということで、現在遊んで みて動作検証やバグ報告にご協力いただける 方を募集しております。また完成度もまだ低いですので、感想や要望など を色々頂けると開発の励みになります。よろしくお願いします。 >>377 銀英伝みたいでいいね 艦隊戦燃えるねー 応援しとります やっと1人プレイでやり方覚えた もう通信対戦はじまってるのかな さっきどなたか接続を試みられたようですが、そちらのポートが開いて いないようでエラーで止まってます。 今までの常連さんは接続できているので、たぶんこちらからリンクで 飛んできてもらった方だと思うのですが… >>384 (誤)CIVILIZAION → (正)CIVILIZATION スマン。 動いてるキャラを止めるのもむずい… 移動ルーチンは難しいね 一応、移動、攻撃ができるようになったけど攻撃の勝敗が一瞬でついてしまってわかりにくいので ウエイトかけたいんだけど攻撃は0.5秒ごと、移動は0.3秒ごとに発動するようにしたいんだけど このウエイトの間もプログラムは回っていてウエイトによってプログラムが停止してないようなやつってどうしたらいいんですか? >>388 与えられているジョブ、現在行っている行動、現在行っている行動の残り時間 ユニットごとにこれだけ記憶しとけば対応できるんじゃね? 大雑把だけどこんな流れ 移動や戦闘をする ↓ 次回の行動開始時刻(現在時刻+硬直時間)を記憶する ↓ <?:ループ毎に行動開始時刻と現在時刻を比較する> ↓ ↓ ↓ <yes:現在時刻が行動開始時刻を過ぎた> ↓ ↓ ↓ 行動可能(移動や戦闘など現在与えられているジョブを実行する) ↓ <no:現在時刻が行動開始時刻を過ぎていない> ↓ なにもしない >>389 うまくいきました アドバイスありがとうございました そろそろキャラのグラフィック用意しないとだめなんだけどキャラ一体につき 移動時、8方向×4=32 戦闘時、8方向×3=24 静止時、8方向×3=24 計80パターン用意しないといけない・・・ 気が遠くなりそうだ >>392 移動時、8方向×4=32 戦闘時、8方向×3=24 静止時、8方向×3=24 死亡時、8方向×3=24 計104パターンかよ やる気なくなってきたw >>393 メタセコイアとか使えば? 3Dなら一度型さえつくれば、どれだけでも好きな方向から取れるし。 >>394 3Dの型作るのが難しいよw そんな技術ないし習得するのに時間がかかりそうだしw 2D表示でもプリレンダという選択肢がある3Dはおぼえといたほうが良い。 3Dならフリーのコミカルなモデルデータ使うのが楽。 394だが、396と同じ意味合いで3Dつかったらと言ったの。 まぁ、あれだ、104パターンもドット絵描く位なら、 3D関連の本手元に置きながらガシガシやったほうが早いよ。 3Dでレンダリングしたイメージ(2D) を表示に使うって意味。 もっとわかりやすくいうと、ドット絵をチクチク描かずに 3Dソフトにドット絵を描かせる。 1フレームごとに全画面を書き換えた方がいいのかな? 外枠は書き換える必要ないんだけどな SFの艦隊戦を題材とした以下のようなRTSを作成しています。 ネットワーク対戦にも対応しています。 http://www.geocities.jp/retsuden2004/ 現在、キャンペーンモードのシナリオを書いてくださる方、艦艇 や背景のモデルを作ってくださる方、エフェクトなどのテクスチ ャを描いてくださる方を募集しています。 また遊んでみて要望・感想等を聞かしてもらえる方も大歓迎で す。よろしくお願いします。 いいね! これはやっぱり銀河英雄伝説を忠実に再現するつもりのゲーム? そういや、シュワルツシルトなんてゲームもあったな…… 作者の公式コメントとしては、 「ユーザーさんがシナリオを作成することで、色々な会戦を 再現可能なRTS」 になります。ということでよろしくお願いします。 aoeを超えるRTS作ってたけどaoe3のニュース見て制作を断念した とりあえず最後まで作ってみたほうがいいよ AOEシリーズはAOMになってコケた感じもあるし。 RTSの戦術、戦闘に絞ってゲーム作ることを考えてたら、 やっぱこりゃRTTだなと過去レス見てオモタ A*で経路探索するのに、boost::graphは使えますか? ロードオブザリング バトルフォーミドルアースってRTSの中では面白い方ですか? 一応、Command & Conquers Generalsのスタッフが作ってるから、面白いとは思う シングルは面白い。がマルチは最初からバランスを取る事を放棄している。 画面の割にはいっぱいユニット出るし結構頑張っているんではないかとと思う。 最近RTSでおもしろいなーと思ったのがWarCraft3のユーザカスタムマップのDotAってやつ なんだけどあれぐらいなら個人で作れないかなーと思うんだけどあんなんでも意外と大変そうね。 もっと大規模なRTSって無いのですかね〜 正直言ってバトルフォーミドルアースでも最大ユニット数に不服してます。 訊いておいてそのままというのもなんなので、調べてみて解ったことを報告 (間違いがあるかも知れませんがお許しください)。 ・boost::graphにはA*アルゴリズムが用意されていない ・ダイクストラならあるが、終点を指定できない為(始点から全ての頂点への経路を探索)RTSには不向き? ・関数オブジェクトでダイクストラをA*に拡張することも、上記の理由で無意味 ・A*関数を自分で書けば、他の部分は使えそう RTS作るのにboost::graphを使うメリットはあまり感じないです。 まだ発売してないけどTelladar Chronicles:Declineなんてどうですかね? 2万人という壮大な数で戦闘が繰り広げられるそうです あのー 前言ってたRome : Total Warってゲームは動きとかリアルですか? 持ってる人がいたら感想とか聞かせてください お願いします もう2ヶ月ほど頓挫してるよ プログラムが複雑になるにつれて急激に難しくなってきたし 仕様を少し変更しようとするたびに何百行も修正しないといけないし ちゃんと思い通りに動かせるまでに修正加えるのが面倒になってきた なんかやる気が失せてきた >>422 この手のゲームだけじゃないけど、 部分々々に完全に分けて作らないとエライ事になるよな。 >>422 どのへんが、難しい? やっぱり、経路探索? >>422 プログラム初心者だから部分部分に分けてやる技術がないから大変だよ >>424 大まかな経路探査はできたんだけど 細い道とかはまだ通れない段階 細かいところの調整が一番難しいです >>425 そりゃぁ、ゼロからやろうとしたらノウハウないから大変だろうな。 頓挫したらもう一度設計しなおして、また最初から作り直してみるといい。 ソース分割も含めてな。最初からできる奴なんて誰もいないんだから気にするな。 http://i-saint.abz.jp/pg/index.html ここのEmpireTohu (2005/4/28)がなかなかのできだな >>427 のEmpireTohuみたいに3Dマップ上をユニットが走り回るようなプログラムをdirectxとVC++を使って 詳しく解説したHPとかありましたら教えてください ていうかRTSやってる人、日本だとi-saintさんくらいじゃないかしら つーわけで、>>428 が自らやってみるよろし 六ヶ月ぶりにプログラム再開しようと以前のプログラムみたら まったくわけわかんねw ほぼすべて忘れてるw >>430 漏れも同じタイプ 納品して1ヵ月後に納品先でテストが始まって問い合わせが来るんだが ま っ た く わ か ら ん ひどいときは自分で作ったかどうかすらわからん 病気だな…orz >>431 普通です そのためにコメントという機能があります そのためにJavaDocやDoxygenというツールがあります 活用してますか? ヤター♪ ♪ ∧,,∧ ∧..∧ ∧..∧ ∧,,∧ ∧..∧ ∧..∧ [;´Д`][;´Д`][;´Д`][;´Д`][;´Д`][;´Д`] ゚○-J゚ ゚○-J゚ ゚○-J゚ ゚○-J゚ ゚○-J゚ ゚○-J゚ うほ、久しぶりにやったらA*うまくうごかねえええええええage Z80アセンブラだった人間です。どうせ 128*128ぐらいのマップでそ? map(maxX,maxY) Costmap(maxX,maxY) Checkmap(maxX,MaxY) push StartY push StartX loop pop X pop Y if X=null and Y=null then exit if X=GoalX and X=GoalY then Success! - dx=-1 dy=-1 - if map(X-dx,Y-dy)=移動可能 and Checkmap(X-dx,Y-dy)=0 then NodeAdd - if Costmap(X-dx,y-dy) > Costmap(X,Y)+1 then Costmap(X-dx,y-dy)=Costmap(X,Y)+1 3行を繰り返し。dx dyはその都度ゴール方角でで処理順番を変える。 スタックの上にゴールに近いものが来るようにね。 endloop NodeAdd { Checkmap(X-dx,Y-dy)=1 Costmap(X-dx,y-dy)=Costmap(X,Y)+1 push Y-dy push X-dx } Success - Costmapを見ながら移動すればOK ぐらいでいいじゃまいか?。 全く脳内だが。 +,- の間違いを直して、適当にフリーのBASICで組んでみた。 スタック型とキュー型で試してみたよ。 どちらにせよ、最後にノイズ(ゴールに至らないセル)を消さないといけないけど これはやはり二次元配列に仕掛けさえしておけば簡単で、最後に実行すれば いいのでスタックでもキューでも同じコードでできる。 結局、力任せでコスト計算をしているわけになるんだけどね。 スタック型は縦検索だから、ゴールに着くのが早いことも多い。 だけど、1セルごとの予測展開だから、広い空き地などでは予測が外れた場合には 壁沿いの動きになる。もちろん偶然にも途中で過去の経路に接した場合には、 実際に動かす時はそっちへ動けるので大幅にショートカットできるけど。 キュー型は横検索だから、処理量が増えますね。 利点は、最終的に複数のルートがそのまま二次元配列に残ること。 複数ユニットを動かすときに、一列縦隊を強制される場面が少ない。 また、途中で新たな障害物が出来ても回避できる可能性もアップ。 f{. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| f} ,.-::‐:¬〜ー:.、 | f{ r;.-‐〜ー-、:::::::::::ヽ | f} }! t:::::::::::::', | f{. {i-ュJ r≦` `i:::::::::::ヽ | f} ,.|‘”j/ `’ }::r'ヽ:::::i | f{ ノ:l 't-._ {:j _/::::::ト| f} `ヘ 'ニ_-` /::::::::::::}| f{ ヽ 、 _,,..ィ {::::::::::f^`| f} `i¨"´:./〃 !::_;r'^ _|_ /_う } /// `7ー;、 とニ`ヽ ,′ ⊇ ,ィ´{ / / ヾニ., } l }´ / ,′ヽ.___,.-'´ / | } ! | {'ー‐ァ―┬───‐┬―、―‐/ | | ! / ,个____,个 ヽ / l ! l′ /レ: :、: : : : : : : `i、 ,' | | ! / k―``ー-ュ: :V: ! \.{ ,′ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ オンライン最大4人協力可能 ! 主人公は自分!キャラクターエディット 本格忍者アクションゲーム 天誅千乱 on xbox360 今年秋発売 ストリーミングムービー http://zetubou.mine.nu/itoshiki/nozomu/zetubou26267.avi 公式サイト http://www.tenchu.net/senran/index.html ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 実際のRTSって、ターン制ベースの擬似リアルタイムなんだろうか それとも、1個1個のオブジェクトがスレッドになっててメッセージのやりとりで リアルタイム性を実現してるんだろうか。 >>451 普通のアクションゲームなんかと同じだろ スレッドつーか、疑似マルチタスク処理だとおも >>451 ポピュラス1は 擬似ターン制だったよ 0.0001秒ごととかに 敵1のターン 味方1のターン 敵2のターン 、、、、 とかって、ちょっとづつ動いてくの 一昔前のRTSは、処理速度の問題から擬似ターン制だけど ミレニアム以降のスムーズなRTSは、マルチスレッド制だよ。 擬似ターンでは、同時間帯でもキューのフロントにいる方が そのアクションも優先されるので(特に当たり判定の部分) 時系列が不自然になるが、マルチスレッド制では完全並行処理が可能なので 現実の時空間に極めて近い処理が可能となる。 >>455 1000本ぐらいスレッドたてても、オーバーヘッドとか無いのかな? ちょっと試してみようかな。 >>455 >キューのフロントにいる方が >そのアクションも優先される マルチスレッドにすれば解消される問題じゃないと思うけど。 ネタ? ネイティブスレッドに落とし込むと、タスクスケジューリングの公平性を 保つのが難しくなるしなぁ。 優先度を全部同じにしてラウンドロビンでやればいいのだが、それは結果的に 擬似マルチタスクとほとんど同じものになる。 排他制御で悩むことを考えると、やはりスレッドはなるべく使わないほうが賢明である。 スレッドを使いこなせない人がいるのは、このスレですか? C++のゲームプログラミングばかりでなく、システム系も勉強した方がいいでしょう >>459 いまどきそんなやついるのか? マルチスレッドとかキューイングシステムを覚え立てのやつが言いそうな台詞だなw >>455 どうみても爆釣りです。 本当にありが(ry 擬似ターン制も糞もノイマン型のコンピュータとTSSのOS使ってる限り同時進行などない 擬似ターン制も糞もノイマン型のコンピュータとTSSのOS使ってる限り同時進行などない もしかしてマルチスレッドなら同時進行とかみぼけたことが言いたいのかね┐(´∇`)┌ えーっと、ノイマン型〜は置いといて、 RTSの各ユニット制御の話に戻そう。 で、結局最近のRTSってユニット毎にスレッド作るみたいな 重そうな処理やってるんだろうか? >>470 そんな間抜けなことはしない。 メモリの無駄。 スレッドの数ならシステムモニターで見られる。 メインスレッドとBGM用の二つだと思うよ。 なぁ 上のほうにある、○秒毎に切り替わるターン制ってなんだ? 処理が終わるのを待たなければターン制にならないと思うのだが >>474 なんで?それじゃリアルタイムにならないジャン。 実際のRTSで○秒ごと、って固定できることは無いけど。 >>474 ゲーム一般でいう所の所謂ターン制の話じゃないと思うよ。 タイムスライス制とかクォンタム制とでもいうべきか。 あるキャラの時間を微小時間だけ進めたら、次のキャラも 同じ時間進める事で疑似リアルタイムを実現する方法。 カーネルスレッド→論外 ユーザレベルスレッド→マンドクサイ ステートマシン→ウマー >>475 引っ込んでてくれ >>476 あんたの言いたいことはわかる。 しかし>>454 の発言はやはり理解できない >あるキャラの時間を微小時間だけ進めたら これは CPU 時間じゃなくてゲーム内時間の事を書いたつもりだったんだけど、 そういう事と違う? >>477 ノードに沿って移動中のキャラの回避って 判定と補正を普通にやるのは簡単だけど、 通信がからむとかなりきついね。 みんなどうやってるの? 索敵のパターンってどんなのがあるのかな。 まず基本は視覚による索敵だよね。 ・パラメータとしては視野角と視力、方角がそれぞれのユニットに備わっている ・ユニットの向いている方角に対して視野角の範囲で視力の届く距離を視界とする ・視界に入っている敵ユニットを攻撃対象とする ・視界に入っているかどうかの判定は視錐台カリングと一緒 ・視界に敵ユニットが複数いた場合はヘイトにより攻撃対象ユニットを決める ・天候(晴天/雨天)や時間帯(昼夜)によって視力は変化する ・種族や装備によって視野角・視力は変化する ・視覚による索敵は、透明になる呪文等でスポイル出来る 後は聴覚と嗅覚かな。 >>482 それもってるけど、ちょっと古い。 基本的なことしか載ってないし。 Gems のほうがいいと思う。 >>484 「ゲーム開発者のためのAI入門」よりは少なくとも MMO に関する技術も載ってる。 記事が多いから当たり前だけどさ。 この板の某スレに、なかなか良さげなのが上がってるな ただ、あれはRTSと言ってるけど、ストラテジではない。 ストラテジとタクティクスの違いが分かってる人はどれだけいるのか‥ gemsの人工知能関連はかなり有用みたいだが、 それだけのために買うにはgemsは高すぎる。 助けて。 >>487 人工知能以外の部分も、役に立てればいいじゃないか。 戦術と戦略ってゲームを作るが分からしたらあんまり関係無い気がするけど。 よっしゃ戦略級のゲームを作るぞーと考えて作るわけじゃないでしょ。 >>491 関係あると思うけど。 戦略級だと、外交までサポートするのが普通だし、インターフェイス デザインとかも変わってくる。 表現したいものが何か決まった時点で「級」が決まるから、 結局それは 「よっしゃ戦略級のゲームを作るぞー」 ってのと同じだよね。 好きなゲームを作ってみたら戦略級でした、ってのはあまりにも 行き当たりばったり過ぎない? まあ視点の違いかな。 俺は戦闘以外で敵のパラメータを変動させるゲーム内要素があって、ゲームが戦略級なら それを『外交』と名付けるという風に考える。ゲームが戦術級なら同じ要素が別の名前に マッピングされるだけ。 実現したいゲームシステムが先にあって、それをどういう『級』にマッピングするかは どちらかというと後付けになる。 >>494 とりあえず土日スレにあった「小サックス2」みたいなのを作ってみれ。 小サックスUは、総勢500人くらいだったか? 本家コサックスUは、最大6万4千ユニットが動き回るって触れ込みで 正に10万に近かったが、3ギガヘルツとゲフォ6でも重すぎて 4千人がやっとだった。 HSPで、画面のスクロールとミニマップまで作れました。 次はBOIDみたいにユニットを集団行動させてみようと思います。 >>501 俺も初めて経路探索が必要になった時は躓いたよ。 で、もう一回ツリーからおさらいした。 A*一択だぜ!って言わずに、いろいろやってみるといいとおもう。 >>137 を見本に作ってみたいんだけど >node_successor.h = node_successorからnode_goalまでの移動コスト(適当なアルゴリズムで予想する) ってところは障害物も考慮して計算するのでしょうか? ただの障害物無視の最短距離で計算すると下のようになって、 さらに障害物を増やすとかなり時間がかかってしまう\(^o^)/ □□□■ □□□□■ ○□□□□□□□□□■ ● □□□□■ □ □□□□□□□ ○スタート ●ゴール □探査した場所 ■障害物 「\(^o^)/」は無視してくださいorz コピペしてたのを間違って貼っちゃった AIの話。 http://www.gamedev.net/community/forums/topic.asp?topic_id=436899 興味深い話してる感じだけど、英語苦手でなかなか読み進まないorz ↑の1の要約 「やぁ!RTSをはじめて作ってるんだけどさー、 経路探索とか障害物回避とか編隊行動(?)とか資源の探索&回収とかは 実装したけど、それをまとめて計画するにはどうすりゃいいんだぜ?」 たまに出てくるinfluence map(影響力マップ?)ってなんだろ? 心太(ところてん)を日→英、でてきたものを英→日。 >>513 eciteよりlivedoorの翻訳サービスの方がすこし頭いい気がするよ openaiとかAIのライブラリを使う、作る、公開する >>516 どこからがAIと言っているのかわかりにくいけど、 コアなところは誰にでも作れるってもんじゃないしなぁ。 誰にでも作れるようにするには教育しかないんじゃないか? 重み付けの、パラメータ変数を外に出して弄らせるのが手っ取り早い オブジェクトが多いと当たり判定をするだけでも大変だな ストホ見たいに城壁を作れるようにするつもりだからやたら多くなる・・・ ほんとRTSは開発の壁が多すぎる(;´Д`) empire of 豆腐のソース読みながらがんばる おまいらそんながんばってもこんなロジックのゲームが 場か売れしちゃうんだぞ 【爆死確定】聖剣伝説ヒーローズ オブ マナ葬式会場 http://game11.2ch.net/test/read.cgi/handygame/1173165865/l50 まずこの映像をごらんいただきたい。 敵敵□□□□□ ↓↓□□←←← 自□□□□□□ 敵敵□□□□□ ↓↓□□←←← 自□□□□□□ □□□□□□□ 敵敵□□□□↑ □□□□□□□ □□□□□□□ 敵敵□□□□↑ □□□自□□□ □□□□□□□ □□□↑□□↑ □□□□□□□ □□□□□自自 □□□↑←自自 敵敵□□□□□ □□□□□自自 □←←←←自自 敵敵自□□□□ 実はこれ、「聖剣伝説 ヒーローズ オブ マナ」で起こった事を写した決定的瞬間なのである >>525 スレ見てきた。ヽ('A`)ノウンコーって言ってる人ばっかで バカ売れしてるとは思えないんだけど、ほんと売れてんの? あのスクエニが、こんなポカをやってしまうのが本当なら、 RTSってそんなに難しいのかね? 確かに国産じゃ、あまり出てないけどな(洋ゲーはたくさんあるけど)。 フリー同人じゃ、empire of 豆腐と小サックスくらいか? 外にもあったっけ? 俺はGPGを参考にしてA*とメッセージドリブンで普通に出来た >>526 スクウェアの新作で、聖剣の名前を冠して、 初動1万五千本って売れてないってことだと思う・・・ 中古で値段下がりまくりだし、安いから買ってこよう・・・ empire of 豆腐ってなんですか? ググっても見つけられなかったのでよかった教えてください gl_kanjiの作者が公開してるゲーム luaが混じってるからluaの言語知識もいるよ >>532 見つけることができました。ありがとうございます。 つーか、このスレの上のほうにアドレスあった気がするけど そういやファルコムのモナークモナークはRTSに入るのかな。 >>527 アハリスは、内政要素がないからRTSとは言えないな。 >>536 内政要素なくてもRTSはRTSだと思うけど アハリスは知らんが アハリスって、コサックスが元ネタの奴かw どうみてもRTSですw >>536 が言いたいのは strategy = 戦略 tactics = 戦術 とした時にRTSは戦略だから内政無いとおかしいってことだろ strategyには意味として戦術も戦略も含まれてるからどっちでもいい気もする 個人的にはジャンルのくくりなんてそもそもどうでもいいと思うが そんなくだらん話より、技術的な話をしたいんだ! と、うちの犬が言ってました。 そんな風にあいまいにしておくと、そのうち 自機がパワーアップするシューティングも、RTSだと言えるようになってしまうのだが 言えるようになって制作に何か問題でも出るのか? 下らん定義づけはゲハでやれ ずいぶん前に、現物のゲームがどーしたこーしたを話すスレを 別に誰かが用意してなかったっけ? それ以降、こっちのスレは技術的な話をすることになったはず 今のところ無くてもそれほど困らない機能なんだけどさ、 マップをランダム生成するときに特に深く考えずに中点変位とかで 作ると自然といえば自然な地形にはなってくれるんだけどさ いい具合に崖があったりとか谷があったりとか、 説明しにくいんだけどアクセントがつきにくい気がするんだけど 普通、どうやって地形生成してるんだろ? 来月PS2で出るグリムグリモアってのがRTSだな。 オブジェクトや地形ってどう管理すればいいの・・・ 経路探査を遅くしたくないから2次元にしてみたいんだけど恐ろしくメモリ食っちゃう むしろ、経路探索をどう処理しているか気になる 戦術シムのなら作ったんだけどなー RTSでもマップをヘックスとかスクウェアとかに分割してやるんだろうか >>549 どういうやり方やってるのかわからないけど、メモリの使用量と、処理量はトレードオフだから、現実的に利用できる落としどころを見つけて、後は最適化がんばるしかないんじゃないの? >>544 中点変異ってダイヤモンド・スクエア アルゴリズムのこと? ダイヤモンド・スクエア アルゴリズムだとheightの取り幅によるけど、 平坦か、とげとげした地形になりがちのような気がする。 例えば、ダイヤモンド・スクエア アルゴリズムで大体の地形を作った後、 1次元フラクタルで溝を掘ったりとか、段階ごとに複数のアルゴリズムを 組み合わせたりすればいいんじゃないか? >>552 遅いレスですまん。見てなかった。 ダイアモンド・スクエアステップでもいいし、quadtreeっぽいのを作りながら 単純にどんどん分割でもいいんだけど細分化してくことを言ってた。 とげとげ地形は、xz平面の1辺1mとした時に高さも1m単位にすると 角度が急になりすぎるんでとげとげになるね。 そこから高さ成分は適当に縮小してあげれば (y * 0.2とか)なめらか地形になるよね。 高さ8bitだと値の範囲が足りないけど、16bitとか32bit使えばそれなりに幅でるし。 やっぱり、地形作ったあとに谷とか川とかを作る作業が必要なのかな。 AI * FEAR o http://fear.sourceforge.net/ * PathLIB o http://pathlib.hildebrand.cz/pathlib.html * MicroPather o http://www.grinninglizard.com/MicroPather/ AI Links repositories * Generation5 - Articles * GameDev.net -- AI * AI on the Web * AngelCode.com - reference database * Game Research and Technology * IGDA - AI SIG * The Game AI Page * aboutAI.net * aboutAI.net * Generation5 - Competition * AI Center - Site Map * gameAI_news [edit] SDKs * FEAR :: Foundations for Genuine Game AI * MetaAgent, A Steering Behavior Template Library - Compiling Meta Agent * OpenSteer * OpenAI * OpenSkyNet General and Specific Architecture Articles General Architectures * Half-life AI (MUST READ) * AI Horizon: Essays on Artificial Intelligence, from the Basics to the Advanced * AI Halo * Gamasutra - Features - Handling Complexity in the Halo 2 AI * Gamasutra -"Decision-based Gameplay Design" * Complete Game AI: Volume I * Item Management Systems PathFinding * Huge Theorical exhaustive Book on pathfinding * Terrain analysis on age of empire (MUST READ) * AI terrain * Amit's A* Pages * An optimal pathfinder for vehicles in real-world digital terrain maps * Smart Moves: Intelligent Path Finding * Toward More Realistic Pathfinding * All FPS pathing problems in a presentation * 3d path * C++ Group Pathfinding Basic Library and Test Tool * ASTAR pathfinding algorithm in Ogre - Nice example with source Group AI * Boids (Flocks, Herds, and Schools: a Distributed Behavioral Model) Tactic * Game AI and Tactical AI Steering * List : steering Behaviors For Autonomous Characters Rule-Based System (RBS) * Rule-Based Systems and Identification Trees Neural Networks (NN) * tensor (small NN) Fuzzy logic (FL) * aiGuru.com Finite State Machine (FSM) * Visual Finite State Machine AI Systems Decision Tree (DT) * generation5 - Binary Decision Tree implementation in C++ Emotion * generation5 - VPI: Virtual Personality Interaction Lag * Defeating Lag With Cubic Splines Or AI path moves Cells Expert Systems * Expert Systems Learning Systems * AI character learning 実例で学ぶゲームAIプログラミングがいい感じです。 経路選択から、集団でのAIまでカバーという・・・ 障害物ありの2Dマップで、メッシュに区切って、A*での経路選択も解説されてる サンプルのAIは、アクションゲームよりなので、 そのまんまとはいえないけど、かなり使えると思う 目次と、サンプルプログラムのダウンロードはこちらから http://www.oreilly.co.jp/books/9784873113395/ Amazon.co.jp: 実例で学ぶゲームAIプログラミング: 本: Mat Buckland,松田 晃一 http://amazon.co.jp/dp/4873113393/ >>557 総当りで、無駄を省いたものと思ったらいい。 >>558 この本のソースコード試した人いる? http://www.wordware.com/files/ai/files/Buckland_AISource.zip HandyGraphFunctions.hの中のCreateAllPairsTable()が失敗しちゃうんだけど誰かわからないかなぁ。 //グラフ作成 SparseGraph<NavGraphNode<>, GraphEdge> graph( false ); //グリッド作成 GraphHelper_CreateGrid<SparseGraph<NavGraphNode<>, GraphEdge> >( graph, 32, 32, 16, 16 ); //パステーブル作成 std::vector<std::vector<int> > table = CreateAllPairsTable<SparseGraph<NavGraphNode<>, GraphEdge> >( graph );//実行時エラーが出る Graph_SearchDijkstra<graph_type>::Search()の中のconst Edge* pE=ConstEdgeItr.begin()で _DEBUG_ERROR("list iterator not dereferencable")が出てるっぽい。 保守 A*がわかりそうでわからない 当分は壁伝いねずみ方式のままだな 質問です 以前、マップを升目で分割するとかいう話が出ましたが、これは 「画面には表示しないが、データ上はターン制シミュのように升目を単位に移動する」 ということですか? 俺はRTS作った事ないからあくまで「自分が作るならこうするだろう」的憶測だけど、 「移動目標地点」を決める時に升目で計算して おおざっぱな座標が求められればそれでいいんじゃないのかな? 「指定された座標の”近くまで”移動する」って感じで。 何をするのかはだいたい分かりました それをやれば計算量がそれなりに減るのですか? それは、君が現在何をやっているかを知りえない私たちにはわからない 障害物が固定だと最適化の方法をいくつか思いつくことができるけど、 建物とかあとからあとから頻繁に作られる障害物のことを考えると・・・ほんと難しいな 今のところ、最初に大きく区切ったもので探索して、 通れそうなら小さいメッシュに区切ったもので探索 重くなる場合は何フレームかに分けて・・・AIや描画のことも考えると激重にならないか心配・・・ A*使え。分かんない奴は何がわからないんだ? そもそも再帰が分かってないんじゃないの? >>568 そうなんだよね 大雑把計算用のマップ作ると障害物が出来たり消えたりしたときに経路が変ったのを大雑把マップに反映させるのが大変 軽いいいアルゴリズムがなかなか思いつかない 市販のゲームはどうやってんだろ >>569 ちょっと弄ってはいるけどA*を使ってる ほんと昔のゲームはどうやっていたんだろう AgeOfEmpire1 とか、適当だよ。 経路あるのに、凹凸があるとすぐに引っかかる。 長い障害物は地形か壁ぐらいだし 接触したらある程度それに沿って探査するとよさそうなんだけど・・・A*にうまく組み込めない/(^o^)\ あと、ルートがない場所とかどうやって判断するんだろう RTSじゃ壁で囲むとかよくありそうだけど >>573 塗りつぶしアルゴリズムで閉じた領域を探すとかできそうだけど。 □■□□□■□□□□□ ■■□□□■□□□□□ □□□□□■□■■■■ □■□□□■□■□□□ □■□□□■□■□□□ □■□□□■□■□□□ ↑あらかじめ塗りつぶすと、以下のように区画分けができる。 省略しているが、区画IDはその区画の全地点に書かれている。 1 ■2 □□■3 □□□□ ■■□□□■□□□□□ □□□□□■□■■■■ □■□□□■□■4 □□ □■□□□■□■□□□ □■□□□■□■□□□ これで、ユニットがある区画IDにいるとして、目的地の区画IDと 同じかどうかによって。移動できるか否かを一瞬で判断できる。 最適化できるポイントとしては、 壁(通り抜けできないオブジェクト)が作られたときに周囲のマスを見て 同じ区画IDを分割してたら、その区画だけ塗り直し。 壁が破壊されたときに違う区画IDを接続してたら、区画IDの小さいほうで 大きいほうを塗り潰す。(IDの連番化のタイミングはお好みで) A*で探索するときには、開始地点と同じ区画IDの領域しか探索しない。 などがあると思われる。 地形とかゲーム中はずっと固定なら最初に処理しておけばいいけど、 オブジェクト作るたびに調べるのは逆に処理が多くなったりしない? 早くする方法あると思うけどそれは表に出てないのかも >>580 区画の分割で使うアルゴリズムはWindowsのペイントで画像の塗りつぶし処理するときの アルゴリズムと同じ(シードフィルアルゴリズム)だから、そんなに遅くなることは無いと 思うけど・・・低スペックのPCも動作対象?(汗 具体的な処理の多さ、ゲームシステム的にどんなペースで障害物を作っていくか (消えていくか)にもよると思う。 たとえばAoE系のRTSでは、森も障害物の一種で、採取されると消えていく。 また、「塔の死角を埋めるため」や「じっくり内政するため」に森と壁を組み合わせて 区画を作っていくこともある。総合的に見ると、イベントとして一番多いのは森の減少だと思う。 つまり、ほぼ森が減るたびに区画分け処理が必要になるはず。 たぶん最近のPCなら速度は問題にならないだろうけど、再帰が何度も走ることによる メモリの細分化など、ゲーム特有の心配事が出てくる可能性はあるかもしれない。 この場合、森が減っても最低でもX秒の間隔を空けないと区画を更新しないとか、 そういう姑息な逃げ方もある。移動ルートの有無判定に使うなら、数秒くらい遅れても 気にする人はほとんどいないだろうし。 壁壊しても数秒は通れないなんてのはさすがにあり得ない 少なくともAOCでは 区分けの塗り替え方は分かるけど、区分けするかしないかの判断方法が知りたいです そういえば、なにかのゲームで壁に穴を開けてもすぐに通れなかったことがあった ストロングホールドだったかな お風呂入っていたら思いついた・・・ よく考えて質問すればよかった。スマソ 移動可否判定だけのための区画分けするなら、実際に移動が指示されたときだけ やればいいという投げやりな最適化もある。この方法なら、細かい森や壁の増減は パフォーマンスに影響しない(はず)。 作成したオブジェクトに隣接している空白マス同士全て繋がっていれば、区分けの必要はないと判断できるから 隣接した空白マスから探索を始めて、全て繋がっているか調べればいいんじゃ? "探索は通り抜けられないオブジェクト沿いにする"って条件をつければ探索するマスも少なくて済みそう。 これならどうだろう? そもそもその方法って、探索対象から閉区間を除外するってだけだから、閉区間がないマップだとメリットがないよね 閉路をA*でまともに探索したら全探索になるからそういう意味では意味もあると思うけど、RTSのマップって閉区間への移動ってあんまり多くない気もするしなあ http://www.o440.info/developing/findpath/ ここでやってるようなやり方でオブジェクトが頻繁に変更されても対応できるようなのがベストだと思うんだが >>589 そのページを見て思ったこと。 長方形にこだわる理由が薄いと思った。 そのページの手法とシードフィル(塗りつぶし)と比較すると、シードフィルは 常に高さ1の長方形を利用する、再帰的な空間分割アルゴリズムとみなせる。 なので、もし閉空間が無いマップなら、(たぶん)再帰の順序を記録していけば 一回でグラフ化までやれるはず。 (閉空間がn個ある場合は何も考えずに書くとn回の全検索が要るかもしれないが) ただ、あんまり細切れの空間にしてしまうとA*を高速化するという 本来の目的から離れてしまう可能性がなきにしもあらず。 いくつかの「高さ1の長方形」を結合して「高さnの長方形+小さな空間」に することで、全体的に見てそのページのアルゴリズムの欠点(空間分割の遅さ) を改善できるんじゃないかと思った。 つづき。 共通しているのは、凸凹が多いマップだと空間分割が遅くなる(または 小空間の結合がうまくいかない)だろうということ。 それでも、壁や木などのユニット以外の障害物が相手ならば有効だと思う。 ---- しかし、ユニット(動く小さな障害物)を含めて処理しようとすると マップは凸凹だらけになってしまい、空間分割をかなりの頻度で 行う必要が出てきてしまうのではないか? なので、少し荒いマップ(4x4程度の大きなセル)を用意して 「障害物の密度」を集計し、50%とかの閾値を越えたら「壁」、以下なら「道」と いうことにしてしまい、そっちの荒いマップで空間分割&グラフ化 →分割漏れのセルを周囲の空間グラフに結合。 みたいな最適化が必要になってくるのでは・・・ ただ、荒いマップを使う場合、アルゴリズムとして評価するのが 難しくなってしまうというデメリットがあるのでおいらも分からん・・・ 少し考えてみる・・・。以下のような8x8のマップがあるとする。■は壁。 □□□□□□□□ □□□■■■■□ □□□□□■□□ □□■■□■■■ □□■□□□□□ □■■■□□□■ □□■■□□□□ ■□■□□□□□ これを左上から単純に塗っていくと以下のようになる。 1 1 1 1 1 1 1 1 2 2 2 ■■■■E 3 3 3 3 3 ■F F 4 4 ■■9 ■■■ 5 5 ■A A A A A 6 ■■■B B B ■ 7 7 ■■C C C C ■8 ■D D D D D 悪くはないが、左上、右下などに疑問が残る結果となった。 次に、4x4、2x2の荒いマップを考え、個々のセルに対応する 壁の個数を集計する。 ・4x4のマップ(各セルの最大は16) 3 7 8 1 ・2x2のマップ(各セルの最大は4) 0 1 2 1 0 2 2 2 1 3 0 1 1 3 0 0 それぞれ、閾値を50%(8、2)とし、それに満たない領域は 「壁が無い」と見做して優先的に塗る。それ以外は普通に塗る。 2 2 2 2 4 4 3 3 2 2 2 ■■■■3 2 2 6 6 6 ■5 5 2 2 ■■7 ■■■ 2 2 ■8 1 1 1 1 2 ■■■1 1 1 ■ 2 2 ■■1 1 1 1 ■2 ■9 1 1 1 1 1)4x4の右下の1に対応 2)2x2の左上の0、1の部分に対応 3)2x2の右上 得られたグラフ 2−4−3−5 └6−7−1−8 └−9 なんとなく最初よりマシになったような気もするが、 これは「へこみのない空間に分割する」を満たしていないので、 A*適用後の経路探索が遅くなったりするのかも・・・??? 改行が多すぎて3レスになってしまった。検証終わり。 あ、ごめんなさい。50%ではだめでした。 壁の数がセルの幅未満だったら(4x4なら4未満だったら)、に訂正しておきます。 (幸運にも上の例では結果は変わらず) >>595 ざっとみた限りでとりあえず気づいた問題となりそうなこと ・4x4の荒いグリッド内に3以下の壁で閉区間になっている可能性があるので、その荒さのみでは判断できない □□■□ □□□■ □□□□ □□□□ ・塗りつぶした区画の面積の幅が大きく、また縦や横に長くなる可能性があるので、経路を探索結果が最短でない可能性がある。(このあたりが凹みのない形にこだわる理由だと思う。たぶん方形または円に近い形での分割が理想) 実際にRTS作るとしたら閉鎖された領域対策は 経路探索するとき探索したノード数が一定以上になったら強制的に終了って感じにするかな。 評価ありがとう。 やっぱり方形か円のほうが都合がいいんだね。 速度を無視するなら簡易ライフゲームを使うとかなり最適に近い分割ができるかも。 全ての地点に種を蒔いて、風船みたいに膨らませてゆく。全部が限界まで膨らんだら、 大きい順に被ってないものを確定させて、残った空間で繰り返し。 遅いかもだが、他アルゴリズムとの比較には使えそう。 全ての点を使うかわりに、壁と壁の中央線の交点を使えば速くなるのかにゃー。 地形やユニット、建物をどんな形で持てばいいのかがわからない・・・ 衝突判定によく使われるだろうから、マップを大き目のメッシュに区切って その範囲にあるオブジェクトごとにまとめる方法しか思いつかないんだけどなにかいい方法ないかな 地形建物は位置固定だから、単純にX*Yサイズの配列でいいと思うけど、ユニットは位置がどんどん変化するし、かなり偏りがあると思うから、衝突判定にいい感じに使えるようにインデックスつきの配列か、木構造に入れるのがいいんじゃないか? 移動先を指定したら、そこへ向けて探査機を走らせる 移動不可能地形を踏んだらその座標を記憶(a,b) そのまま真っ直ぐ進んで再び移動可能地形を踏んだらその座標を記憶(c,d)して止まる (a,b)と(c,d)の中間地点にジャンプしてそこからもともとの移動方向の左右90°方向に 腕を伸ばしていき、その先端が先に移動可能地形を踏んだら、先端の座標を 中継地点として記憶(e,f)、直前の点と向かっていた点の間に挿入 母機に戻って、今度は母機−(e,f)−移動先の順で以下ループ 移動先まで一度も移動不可能地形を踏まなかったらループ脱出、母機がトレース 検索に時間かかるけど、これでかなり複雑な地形も避けれた その方法だと移動不可能地形の中にくりぬいたように移動可能地形があると、ルートが検索できなくならないか? >>605 空間をうまいことユニット量の扁りに合わせてインデックス付けして、とかじゃない? ほしゅ。 RTSっていろんな技術の集大成みたいなプログラムだな。 ゲームジャンルの中でも最も難しい部類に入るだろうな RTSのアイデアをそれなりに実現できるなら、人によってはツクールもありだろうけど、RTSってゲームシステムが最も重要な要素だから、 ゲームシステムを自由にカスタマイズできるツクールなんてできるわけないので(処理速度要求されるRTSでは特に)、実現不可能だろうね。 絵とシナリオだけ差し替えたRTSなんてなんの面白みもない。 もう7年ほどRTSを個人制作してる俺だが、 RTSでよく使うシステム…ユニット選択とか管理とか指示とか地形、視界、経路探索、AI諸々のスクリプトサンプルを シリーズで出そうとしたことがある 全部まとめるとblizzard式ウォーシミュの骨格が出来る予定だったが… 本体のほうでやることが多すぎて手がつけられませんでしたとさ >>614 俺、昔 RPGツクール2000でRTS作ってたよww 今となっては良い黒歴史だ。 A*で、広大なマップの経路を求めたいんだけど、 どういう方法が良いんだろうか。 256x256くらいなら素直にできなくもないが、 1024x1024くらいになると絶望的。 中継点置いたり、ノード数を減らすしか無いのかな。 動的マップだと方法が思いつかん・・・。 >>622 建物や壁が建ったりする事。 グリッド単位のA*なら、塞ぐだけで良いんだけど、 マップがでかくなると計算量が爆発してしまう。 普通のRTSはどうやって管理してるのかなぁ・・・。 おれもそこで行き詰った 基本的には中継点設置とノード粒度の粗化が効果的な気がする どっちの場合も、動的変化時の再設置or再計算のアルゴリズムが単純にならないんだよな 他には、一回計算した経路探索結果を記録しておいて後から使う方法とか これも動的に変化した場合の対応が面倒そうなのは変わらないんだけどね みんなユニット同士の衝突回避はどうやってるの? ぼくは経路探索と障害物回避は別アルゴリズムでやるのが良いと思ってるのだが 建物とか壁とか木とかは、ユニット同士の衝突回避ができてれば同じ方法でいけないか? 障害回避は、経路の探索はできないんだよね。 そうだとすると、地形が変化してが経路が分断・接続された場合に、 実際の状況と異なって、行けないor行けるを判定できないよね? ごめんちょっと一部修正 >そうだとすると、地形が変化してが経路が分断・接続された場合に、 ↓ そうだとすると、地形・建物の状態が変化して経路が分断・接続された場合に、 それで良いと思ってる 細い道を建物とかで塞いだ場合、経路探索アルゴリズムの決定によってそこを通ろうとするユニットは建物にひっかかる もしそうしないと何か気持ち悪いことになりそうな気がする 例えば、現在地と目的地の間に経路Aと経路Bの2つがあったとする 経路Aの方が近道なので、ユニットは経路Aに向かって移動している 敵が建物(またはユニット)で経路Aを塞いだ場合、動的なオブジェクトについても経路探索するならユニットは経路Bに向かうことになる 問題点その1、この時点でユニットは知っているはずのない情報に基づいて行動している 問題点その2、プレイヤーは敵の建物を破壊して進むことを望んでいるかもしれない (アタック移動ならむしろ建物に攻撃するのが正しいのではないか) 問題点その3、敵が経路Aを塞いだり、開けたりすることでユニットは経路Aと経路Bの間を行ったりきたりすることがある 1については、最後に視界に入った障害物の位置を覚えておき、それに基づいて経路探索する方法もあるけど、 例をあげると長くなるので端折るが、それはそれで別の問題が起きる なので、静的な障害物は経路探索で回避して動的な障害物は別の方法で回避するのがいいのではないかと思った まあ経路探索以前にユニット同士の衝突回避で詰まってるんだけど なんで人間は地図見ても爆発しないんだろうな まあ、する人もいるけどな 問題1と3は同源だな 3は最初に探索した結果に元づいて最後まで歩けばOK(プレイヤーが再指示しない限り再探索しない) 1は自身も言ってるけど、障害物の位置を覚くことで回避でいいんじゃないか? RTSはプレイヤーごとに目視済みのマップを持っているものが多いし(別の問題ってなんだろう?) でも、AOE2ではこの問題起こるんだよね。プレイヤーごとの目視済みマップ持ってるはずなのに、 見えない情報による経路探索を行ってる。で実際にチートライクに情報を得るために使用できる これはAOE2の仕様の欠陥だと思う 2はプレイヤーの選択肢の話 これのポイントは障害物は障害をするためのものってことで相手を通さないことが目的(少なくともその概念で処理する必要がある)。 破壊したい場合もあるだろうが、破壊困難な障害目的のオブジェクトにひたすら攻撃されても困るだろう いずれにしてもプレイヤーの選択肢に依るもの もうひとつは、建物だけなく地形もあり得るってこと、木が伐採されて資源にされて通り道ができてるのに、ものすごく遠回りするっておかしくないか? >>629 それってフレーム問題だよね 人の脳は閾値超えないと意識に上がってこないから、適度に無意識的に無視されてるってことじゃない? 別の問題っていうのは動的な障害物を考慮して経路探索をして解なしになった場合どうするかってこと。 障害物のところまで見に行って情報を更新して、まだ障害物があったら別の障害物を見に行って、そこも残っていたら また始めの障害物があるか見に行くとかやるのかな。スマートなやり方が思いつかない。 実際、>>628 の問題は色々な解決方法があると思う そもそもぼくが動的なものと静的なものの障害物回避を別アルゴリズムにしようと思ったのは、 経路探索でユニット同士の衝突回避する方法が思い浮かばなかったから… >>630 さんはユニット同士の衝突回避は経路探索でやっているの? それが一番聞きたかったりする >動的なものと静的なものの障害物回避を別アルゴリズム ユニットのごく近い移動の部分は遠いマップの移動の経路探索とは別に処理するのがいいと思う。そこは同じ 静的と動的を分ける線の引きかたが自分とは違うだけのように思えるな 1.ゲームの開始から終わりまで経路の障害として変化しないもの(生成・消滅しない地形) 2.生成も消滅もある。ただし、頻繁ではないもの(建物と生成・消滅する地形) 3.生成も消滅も頻繁で、場所がどんどん移動するもの(ユニット) このうちの1.、2.を静的なものとして扱って、3を動的なものとして扱うのがいいんじゃないかという話ね ユニットは移動だけでなく他にもいろいろな動作を行うので、近い範囲の探索(探査)ってたくさん必要になるのでそっちのほうが頭が痛い 衝突回避(近い距離の探索)はA*でなくてもっと単純な方法でもいいと思うよ なんだか、>>621 の言う遠いmapの移動をA*でやろうとするとえらいことになる問題、の話とは少し違う話だね ユニット同士はぶつかっても気にせずに ごりごり押して通ってくでいいんじゃね? 各エリアが部屋みたいなタイプだったら、 入り口に中継ポイント置いて、部屋の中だけ細かく探索すれば良いのかな・・・。 オープンなフィールドタイプだとよく分からん。 >>633 アクションゲーならごり押しでもいい気がするが、 RTSってちゃんと迂回してよけてるよね。 止まってるやつはぶつかって壁沿い移動でも良いかと思ったが、 大勢が接近して動いてるとひっかかる・・・。 なんかいろいろ出てるけど、AI的な行動は重み付けが全ての基本じゃないの? 具体的には、静的な障害物の経路探索の結果得られた経路にそれぞれ経路ポイント (例えば距離などから算出する重み)がついていて、その経路上に動的なオブジェクトが いくつかあるなら、それぞれのオブジェクトが持つ重みを経路ポイントに加えていき、もっとも ポイントの高い(または低い)経路を選択するって方法。 以下大文字は重みで、小文字はその重みに対するAIの係数だとすると D: 目標までの経路が持つ距離の重み A: 動的な障害物の種類A(例えば強敵)が持つ重み B: 同B(例えば雑魚) などとすると、障害物Aが2個、Bが1個ある経路の重みは 重み = D * d + 2*(A * a) + B * b で得られる。 各オブジェクトの重みを適切に設定することが調整で、AIが支配するキャラクターによる 各行動や判断の際に掛ける係数を決めることがAIを編集することになる。 これ以前に必要な目標の設定も、行動の設定も同一の重み計算に帰結させるのが、 基本的なAIの設計だと思うけど。 このスレまだあったのか 一ヶ月前に衝動的にRTSを作りたくなって作ってみた http://hnw.go2.jp/RTS10b.zip 見た目は重視せず最低限RTSとしての体裁を取ろうとしたけれど、 A*なんて複雑なものは使ってないしユニットは重なる、戦略級のAIは未搭載と まだまだ改善点が多い 10年以上続いてるスレww 経路探索って難しいよね 三角関数使えば出来そうな気がする ★2ch勢いランキングサイトリスト★ ☆ +ニュース板 ・ 2NN ・ 2chTimes ☆ +ニュース板新着 ・ 2NN新着 ・ Headline BBY ・ Unker ☆ +ニュース板他 ・ Desktop2ch ・ 記者別一覧 ☆ 全板 ・ 全板縦断勢いランキング ・ スレッドランキング総合ランキング ☆ 実況板 ・ 2勢 ・ READ2CH ・ i-ikioi ※ 要サイト名検索 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる