2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

1 :名無しさん@お腹いっぱい。:01/11/17 12:31 ID:EBHuprcv.net
age of empireとかstarcraftみたいな
リアルタイムストラテジーの開発の話題

595 :名前は開発中のものです。:2008/01/04(金) 22:30:10 ID:1B2gtP5p.net
あ、ごめんなさい。50%ではだめでした。
壁の数がセルの幅未満だったら(4x4なら4未満だったら)、に訂正しておきます。
(幸運にも上の例では結果は変わらず)

596 :名前は開発中のものです。:2008/01/04(金) 23:24:17 ID:pabnnvk7.net
>>595
ざっとみた限りでとりあえず気づいた問題となりそうなこと

・4x4の荒いグリッド内に3以下の壁で閉区間になっている可能性があるので、その荒さのみでは判断できない

□□■□
□□□■
□□□□
□□□□

・塗りつぶした区画の面積の幅が大きく、また縦や横に長くなる可能性があるので、経路を探索結果が最短でない可能性がある。(このあたりが凹みのない形にこだわる理由だと思う。たぶん方形または円に近い形での分割が理想)

597 :名前は開発中のものです。:2008/01/04(金) 23:44:09 ID:U38EPRLH.net
実際にRTS作るとしたら閉鎖された領域対策は
経路探索するとき探索したノード数が一定以上になったら強制的に終了って感じにするかな。

598 :名前は開発中のものです。:2008/01/05(土) 00:59:27 ID:DWnOTY5L.net
評価ありがとう。
やっぱり方形か円のほうが都合がいいんだね。
速度を無視するなら簡易ライフゲームを使うとかなり最適に近い分割ができるかも。
全ての地点に種を蒔いて、風船みたいに膨らませてゆく。全部が限界まで膨らんだら、
大きい順に被ってないものを確定させて、残った空間で繰り返し。

遅いかもだが、他アルゴリズムとの比較には使えそう。

599 :名前は開発中のものです。:2008/01/05(土) 01:25:45 ID:DWnOTY5L.net
全ての点を使うかわりに、壁と壁の中央線の交点を使えば速くなるのかにゃー。

600 :名前は開発中のものです。:2008/01/12(土) 11:51:10 ID:IT6ibzlX.net
地形やユニット、建物をどんな形で持てばいいのかがわからない・・・
衝突判定によく使われるだろうから、マップを大き目のメッシュに区切って
その範囲にあるオブジェクトごとにまとめる方法しか思いつかないんだけどなにかいい方法ないかな

601 :名前は開発中のものです。:2008/01/12(土) 19:20:27 ID:hEqKucAj.net
地形建物は位置固定だから、単純にX*Yサイズの配列でいいと思うけど、ユニットは位置がどんどん変化するし、かなり偏りがあると思うから、衝突判定にいい感じに使えるようにインデックスつきの配列か、木構造に入れるのがいいんじゃないか?

602 :名前は開発中のものです。:2008/03/12(水) 04:48:44 ID:qd0viGkL.net
移動先を指定したら、そこへ向けて探査機を走らせる
移動不可能地形を踏んだらその座標を記憶(a,b)
そのまま真っ直ぐ進んで再び移動可能地形を踏んだらその座標を記憶(c,d)して止まる
(a,b)と(c,d)の中間地点にジャンプしてそこからもともとの移動方向の左右90°方向に
腕を伸ばしていき、その先端が先に移動可能地形を踏んだら、先端の座標を
中継地点として記憶(e,f)、直前の点と向かっていた点の間に挿入
母機に戻って、今度は母機−(e,f)−移動先の順で以下ループ
移動先まで一度も移動不可能地形を踏まなかったらループ脱出、母機がトレース

検索に時間かかるけど、これでかなり複雑な地形も避けれた

603 :名前は開発中のものです。:2008/03/12(水) 09:19:36 ID:2gVZEmZ8.net
その方法だと移動不可能地形の中にくりぬいたように移動可能地形があると、ルートが検索できなくならないか?

604 :名前は開発中のものです。:2008/06/04(水) 19:44:06 ID:xVETCOHb.net
新しい gamedeve 一応かきかき
TopPage - game-develop.com wiki
http://wiki.game-develop.com/

GameDevWikiを何とかするスレ
http://pc11.2ch.net/test/read.cgi/gamedev/1156117275/

605 :名前は開発中のものです。:2008/12/13(土) 08:25:05 ID:cgk67oNk.net
コサックスとかって当たり判定はどうしてんだろ

606 :名前は開発中のものです。:2009/02/14(土) 09:00:22 ID:tlIUVtpz.net
保守

607 :名前は開発中のものです。:2009/02/14(土) 12:15:06 ID:YNh7Hq3A.net
>>605
空間をうまいことユニット量の扁りに合わせてインデックス付けして、とかじゃない?

608 :ううううううううう:2009/03/20(金) 13:40:37 ID:fumyNFsN.net
みんな死ね

609 :名前は開発中のものです。:2009/03/20(金) 15:23:24 ID:SKg/aFx3.net
私は死んだ。スイーツ(笑)

610 :名前は開発中のものです。:2009/03/22(日) 17:24:58 ID:9ppwVol5.net
res


611 :名前は開発中のものです。:2009/04/16(木) 22:46:15 ID:PbgwUxSo.net
改めて読み直すと、このスレ結構役立つなぁ

612 :名前は開発中のものです。:2009/08/11(火) 22:42:15 ID:sQbOWnZn.net
ほしゅ。
RTSっていろんな技術の集大成みたいなプログラムだな。

613 :名前は開発中のものです。:2009/08/12(水) 20:31:40 ID:nD4qvmJk.net
ゲームジャンルの中でも最も難しい部類に入るだろうな

614 :名前は開発中のものです。:2009/08/15(土) 14:15:27 ID:rbwkkWCO.net
海外でRTSツクールとか作られてないのかな

615 :名前は開発中のものです。:2009/08/15(土) 18:31:11 ID:fNTYYbsV.net
ツクールなんぞ最低だろ

616 :名前は開発中のものです。:2009/08/16(日) 17:59:36 ID:lEqnVWVf.net
RTSのアイデアをそれなりに実現できるなら、人によってはツクールもありだろうけど、RTSってゲームシステムが最も重要な要素だから、
ゲームシステムを自由にカスタマイズできるツクールなんてできるわけないので(処理速度要求されるRTSでは特に)、実現不可能だろうね。
絵とシナリオだけ差し替えたRTSなんてなんの面白みもない。

617 :名前は開発中のものです。:2009/08/17(月) 10:34:20 ID:Iq/i6CUr.net
あったとしてもMOD的なものになりそうだね

618 :名前は開発中のものです。:2009/08/22(土) 23:57:29 ID:FHc1a/ds.net
もう7年ほどRTSを個人制作してる俺だが、
RTSでよく使うシステム…ユニット選択とか管理とか指示とか地形、視界、経路探索、AI諸々のスクリプトサンプルを
シリーズで出そうとしたことがある
全部まとめるとblizzard式ウォーシミュの骨格が出来る予定だったが…

本体のほうでやることが多すぎて手がつけられませんでしたとさ

619 :名前は開発中のものです。:2009/08/23(日) 06:49:23 ID:fpmJyPHD.net
よく分からないが、ツールを作ろうとしたの?

620 :名前は開発中のものです。:2009/08/23(日) 15:00:05 ID:iFWgU0ct.net
>>614
俺、昔 RPGツクール2000でRTS作ってたよww

今となっては良い黒歴史だ。

621 :名前は開発中のものです。:2009/09/17(木) 23:09:29 ID:dP/tTAbd.net
A*で、広大なマップの経路を求めたいんだけど、
どういう方法が良いんだろうか。

256x256くらいなら素直にできなくもないが、
1024x1024くらいになると絶望的。
中継点置いたり、ノード数を減らすしか無いのかな。
動的マップだと方法が思いつかん・・・。

622 :名前は開発中のものです。:2009/09/17(木) 23:44:00 ID:rLw6XjO+.net
動的マップって地形が変化するって事?

623 :名前は開発中のものです。:2009/09/18(金) 07:32:11 ID:Sq5wG8G7.net
>>622
建物や壁が建ったりする事。
グリッド単位のA*なら、塞ぐだけで良いんだけど、
マップがでかくなると計算量が爆発してしまう。
普通のRTSはどうやって管理してるのかなぁ・・・。

624 :名前は開発中のものです。:2009/09/18(金) 09:06:43 ID:VKzlhJpp.net
おれもそこで行き詰った
基本的には中継点設置とノード粒度の粗化が効果的な気がする
どっちの場合も、動的変化時の再設置or再計算のアルゴリズムが単純にならないんだよな

他には、一回計算した経路探索結果を記録しておいて後から使う方法とか
これも動的に変化した場合の対応が面倒そうなのは変わらないんだけどね

625 :名前は開発中のものです。:2009/09/18(金) 10:00:07 ID:b8hoyw0a.net
みんなユニット同士の衝突回避はどうやってるの?
ぼくは経路探索と障害物回避は別アルゴリズムでやるのが良いと思ってるのだが
建物とか壁とか木とかは、ユニット同士の衝突回避ができてれば同じ方法でいけないか?

626 :名前は開発中のものです。:2009/09/18(金) 10:29:24 ID:VKzlhJpp.net
障害回避は、経路の探索はできないんだよね。
そうだとすると、地形が変化してが経路が分断・接続された場合に、
実際の状況と異なって、行けないor行けるを判定できないよね?

627 :名前は開発中のものです。:2009/09/18(金) 10:31:03 ID:VKzlhJpp.net
ごめんちょっと一部修正
>そうだとすると、地形が変化してが経路が分断・接続された場合に、

そうだとすると、地形・建物の状態が変化して経路が分断・接続された場合に、


628 :名前は開発中のものです。:2009/09/18(金) 12:55:05 ID:b8hoyw0a.net
それで良いと思ってる
細い道を建物とかで塞いだ場合、経路探索アルゴリズムの決定によってそこを通ろうとするユニットは建物にひっかかる

もしそうしないと何か気持ち悪いことになりそうな気がする

例えば、現在地と目的地の間に経路Aと経路Bの2つがあったとする
経路Aの方が近道なので、ユニットは経路Aに向かって移動している
敵が建物(またはユニット)で経路Aを塞いだ場合、動的なオブジェクトについても経路探索するならユニットは経路Bに向かうことになる

問題点その1、この時点でユニットは知っているはずのない情報に基づいて行動している
問題点その2、プレイヤーは敵の建物を破壊して進むことを望んでいるかもしれない
  (アタック移動ならむしろ建物に攻撃するのが正しいのではないか)
問題点その3、敵が経路Aを塞いだり、開けたりすることでユニットは経路Aと経路Bの間を行ったりきたりすることがある

1については、最後に視界に入った障害物の位置を覚えておき、それに基づいて経路探索する方法もあるけど、
例をあげると長くなるので端折るが、それはそれで別の問題が起きる

なので、静的な障害物は経路探索で回避して動的な障害物は別の方法で回避するのがいいのではないかと思った
まあ経路探索以前にユニット同士の衝突回避で詰まってるんだけど

629 :名前は開発中のものです。:2009/09/18(金) 13:02:33 ID:KXYHKk6s.net
なんで人間は地図見ても爆発しないんだろうな

まあ、する人もいるけどな

630 :名前は開発中のものです。:2009/09/18(金) 13:37:39 ID:VKzlhJpp.net
問題1と3は同源だな
3は最初に探索した結果に元づいて最後まで歩けばOK(プレイヤーが再指示しない限り再探索しない)
1は自身も言ってるけど、障害物の位置を覚くことで回避でいいんじゃないか?
RTSはプレイヤーごとに目視済みのマップを持っているものが多いし(別の問題ってなんだろう?)
でも、AOE2ではこの問題起こるんだよね。プレイヤーごとの目視済みマップ持ってるはずなのに、
見えない情報による経路探索を行ってる。で実際にチートライクに情報を得るために使用できる
これはAOE2の仕様の欠陥だと思う

2はプレイヤーの選択肢の話
これのポイントは障害物は障害をするためのものってことで相手を通さないことが目的(少なくともその概念で処理する必要がある)。
破壊したい場合もあるだろうが、破壊困難な障害目的のオブジェクトにひたすら攻撃されても困るだろう
いずれにしてもプレイヤーの選択肢に依るもの

もうひとつは、建物だけなく地形もあり得るってこと、木が伐採されて資源にされて通り道ができてるのに、ものすごく遠回りするっておかしくないか?

>>629 それってフレーム問題だよね
人の脳は閾値超えないと意識に上がってこないから、適度に無意識的に無視されてるってことじゃない?

631 :名前は開発中のものです。:2009/09/18(金) 14:47:33 ID:b8hoyw0a.net
別の問題っていうのは動的な障害物を考慮して経路探索をして解なしになった場合どうするかってこと。
障害物のところまで見に行って情報を更新して、まだ障害物があったら別の障害物を見に行って、そこも残っていたら
また始めの障害物があるか見に行くとかやるのかな。スマートなやり方が思いつかない。

実際、>>628の問題は色々な解決方法があると思う
そもそもぼくが動的なものと静的なものの障害物回避を別アルゴリズムにしようと思ったのは、
経路探索でユニット同士の衝突回避する方法が思い浮かばなかったから…

>>630さんはユニット同士の衝突回避は経路探索でやっているの?
それが一番聞きたかったりする

632 :名前は開発中のものです。:2009/09/18(金) 15:39:49 ID:VKzlhJpp.net
>動的なものと静的なものの障害物回避を別アルゴリズム

ユニットのごく近い移動の部分は遠いマップの移動の経路探索とは別に処理するのがいいと思う。そこは同じ
静的と動的を分ける線の引きかたが自分とは違うだけのように思えるな

1.ゲームの開始から終わりまで経路の障害として変化しないもの(生成・消滅しない地形)
2.生成も消滅もある。ただし、頻繁ではないもの(建物と生成・消滅する地形)
3.生成も消滅も頻繁で、場所がどんどん移動するもの(ユニット)

このうちの1.、2.を静的なものとして扱って、3を動的なものとして扱うのがいいんじゃないかという話ね
ユニットは移動だけでなく他にもいろいろな動作を行うので、近い範囲の探索(探査)ってたくさん必要になるのでそっちのほうが頭が痛い
衝突回避(近い距離の探索)はA*でなくてもっと単純な方法でもいいと思うよ

なんだか、>>621の言う遠いmapの移動をA*でやろうとするとえらいことになる問題、の話とは少し違う話だね

633 :名前は開発中のものです。:2009/09/19(土) 09:52:44 ID:22Nb82Sn.net
ユニット同士はぶつかっても気にせずに
ごりごり押して通ってくでいいんじゃね?

634 :名前は開発中のものです。:2009/09/19(土) 10:22:54 ID:IcY/o6ba.net
各エリアが部屋みたいなタイプだったら、
入り口に中継ポイント置いて、部屋の中だけ細かく探索すれば良いのかな・・・。
オープンなフィールドタイプだとよく分からん。

>>633
アクションゲーならごり押しでもいい気がするが、
RTSってちゃんと迂回してよけてるよね。
止まってるやつはぶつかって壁沿い移動でも良いかと思ったが、
大勢が接近して動いてるとひっかかる・・・。

635 :名前は開発中のものです。:2010/09/25(土) 22:22:43 ID:0wOo+o0q.net
http://wma.haoting.com/21z/0/rydeen20090504/1/7af3253cd08d5546_5.wma?tflag=1285420792&pin=f48529d2f206821687e2b82afe97c8c7&ip=60.56.197.145

636 : 忍法帖【Lv=9,xxxP】 :2011/08/15(月) 07:16:23.21 ID:ykTkgZm2.net
test

637 :名前は開発中のものです。:2011/09/15(木) 03:22:19.28 ID:fDDSGBEh.net
なんかいろいろ出てるけど、AI的な行動は重み付けが全ての基本じゃないの?

具体的には、静的な障害物の経路探索の結果得られた経路にそれぞれ経路ポイント
(例えば距離などから算出する重み)がついていて、その経路上に動的なオブジェクトが
いくつかあるなら、それぞれのオブジェクトが持つ重みを経路ポイントに加えていき、もっとも
ポイントの高い(または低い)経路を選択するって方法。

以下大文字は重みで、小文字はその重みに対するAIの係数だとすると
D: 目標までの経路が持つ距離の重み
A: 動的な障害物の種類A(例えば強敵)が持つ重み
B: 同B(例えば雑魚)
などとすると、障害物Aが2個、Bが1個ある経路の重みは
重み = D * d + 2*(A * a) + B * b
で得られる。

各オブジェクトの重みを適切に設定することが調整で、AIが支配するキャラクターによる
各行動や判断の際に掛ける係数を決めることがAIを編集することになる。

これ以前に必要な目標の設定も、行動の設定も同一の重み計算に帰結させるのが、
基本的なAIの設計だと思うけど。


638 :名前は開発中のものです。:2011/11/15(火) 21:00:28.27 ID:r/wJ2YaA.net
このスレまだあったのか

一ヶ月前に衝動的にRTSを作りたくなって作ってみた
http://hnw.go2.jp/RTS10b.zip

見た目は重視せず最低限RTSとしての体裁を取ろうとしたけれど、
A*なんて複雑なものは使ってないしユニットは重なる、戦略級のAIは未搭載と
まだまだ改善点が多い

639 :名前は開発中のものです。:2012/04/24(火) 10:48:03.62 ID:tJPZWklk.net
http://toro.2ch.net/test/read.cgi/gamedev/1005866352/

640 :名前は開発中のものです。:2013/09/20(金) 21:23:56.95 ID:MYnyRaSn.net
10年以上続いてるスレww

経路探索って難しいよね
三角関数使えば出来そうな気がする

641 :名前は開発中のものです。:2014/08/12(火) 08:47:45.86 ID:uQVGosCr.net
★2ch勢いランキングサイトリスト★

☆ +ニュース板
・ 2NN
・ 2chTimes
☆ +ニュース板新着
・ 2NN新着
・ Headline BBY
・ Unker
☆ +ニュース板他
・ Desktop2ch
・ 記者別一覧
☆ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
☆ 実況板
・ 2勢
・ READ2CH
・ i-ikioi

※ 要サイト名検索

642 :名前は開発中のものです。:2015/12/19(土) 14:19:17.40 ID:V+aPjPCX.net
プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/

643 :名前は開発中のものです。:2016/03/22(火) 00:46:59.04 ID:NbdAtCil.net
りあじゅー

644 :名前は開発中のものです。:2017/04/29(土) 14:53:52.59 ID:czQszmDA.net
これかな
https://s.cryuni.com/b.html?code=01ok29fn44oq

総レス数 644
175 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★