リアルタイムストラテジーの話
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/17 12:31ID:EBHuprcvリアルタイムストラテジーの開発の話題
0266名前は開発中のものです。
04/10/01 14:26:36ID:O43ApdSb普通にA*でいいんじゃねーの?
人間らしいって基準が曖昧すぎるし。
0267名前は開発中のものです。
04/10/01 18:42:12ID:zwXzWCUq後はそれをどう高速化するかの問題で。
確かGame AI Programming wisdomにEmpire Earthが使ってる
アルゴリズムが詳しく書かれてたような。
スレは一定以上の書き込みがないと自然に落ちるんだった気がする。
話題の範囲が狭すぎるし立てても盛り上がらないと思うが。
0268名前は開発中のものです。
04/10/01 19:38:24ID:dqIcPXUT話題あるなら、振ってみては?
盛り上がって、専用スレたてる必要が出たら、建てればいいじゃないかと。
0269名前は開発中のものです。
04/10/01 20:50:48ID:2OSRZNcv0270名前は開発中のものです。
04/10/02 06:20:14ID:yZt9Ze2Q「"A" は一般すぎる言葉のため、 検索には使用されていません。」
って出てきて検索できないw
A*について詳しい解説載ってるHPなど教えてください
0271名前は開発中のものです。
04/10/02 07:16:25ID:KLtZBFZb0272名前は開発中のものです。
04/10/02 07:24:49ID:yZt9Ze2Qありがとうございます
早速見てみます
0273名前は開発中のものです。
04/10/05 05:48:54ID:5f2iU622「見える範囲内で最短経路を移動する 」
を繰り返して目的地へ移動する。
ただし、これだとすぐに行き止まるし、最初から迂回することは出来ないよね。
プレイヤーの視界をユニットの視界としているなら問題ないけど、
それなら通常のA*となんら変わりはない。
0274名前は開発中のものです。
04/10/05 11:19:18ID:xfYu84rc情報収集を事前に行うのが大前提で、
普通のA*的な移動を行う方がリアリティあると思う。
目的地への地図も無いまま当ても無く進軍するなんて
聞いたこと無いし、大体、目的地の方角と距離が
わかってるんだったら、そこまで行くまでの地図を持ってるだろ?
斥候の移動に関してなら同意かも。
0275名前は開発中のものです。
04/10/06 04:56:40ID:gBC0qLZJグラフィックでは?
AoEなら、8方向でさらに攻撃ややられた時のアニメーションまで考えると膨大な量になる。
0276名前は開発中のものです。
04/10/06 05:23:38ID:gslwRw1x0277名前は開発中のものです。
04/10/06 06:05:27ID:gslwRw1xマップ上で障害物を認識するためにあらかじめマップに処理を加えてます
0278名前は開発中のものです。
04/10/06 06:14:59ID:ve+bFW7rアルゴリズムが理解出来ないのなら仕方ないけど。
0279名前は開発中のものです。
04/10/06 07:45:46ID:gslwRw1xバラバラに配列されたユニットを効率よく陣形に整列させるのは難しそうだな〜
0280名前は開発中のものです。
04/10/06 07:56:36ID:gslwRw1xグラフィッカーが必要だね
0281名前は開発中のものです。
04/10/06 09:10:33ID:twLAxOIdVersion 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ツクール?
0282名前は開発中のものです。
04/10/07 00:06:04ID:NMtn3pwf陣形はsin,cosで簡単にできる。
0283名前は開発中のものです。
04/10/07 06:17:51ID:TjpukT3q三角関数で
「与えられた陣形にフィットするように各配置それぞれに最も近いキャラクターを移動させる」
とか
「マップ上に通行不可能なオブジェクトが配置されていた場合それにそって陣形を歪める」
とか
全部計算できちゃうんですか?
0284名前は開発中のものです。
04/10/07 06:33:58ID:VDnDz3Ih三角関数は回転だけですよ。
0285名前は開発中のものです。
04/10/07 08:59:41ID:RpkpkZiqAIの善し悪しによってゲームのおもしろさが違ってくるし
RTS制作は敷居が高いな…
コンピュータープレイヤーが町作りや資源採集、戦闘したりするAIって
手間がかかりそうだな…
0286名前は開発中のものです。
04/10/08 10:04:47ID:4NElyh0r上下左右に1タイル分移動する時の距離を1とすると
斜めに1タイル分移動するときは距離√2=1.4移動することになって
しまって斜めに移動するとかなり早く移動できてしまう矛盾を修正するにはどうしたらいいいのかな?
上下左右に1タイル移動するのに時間1かかるとすると
斜めに1タイル移動する時間を1/1.4=0.7として表現すると
どんなプログラムになるんだろうか?
0287286
04/10/08 10:09:22ID:4NElyh0r0288名前は開発中のものです。
04/10/08 16:53:57ID:gaYtTq1W・気にしない (確か旧WARCRAFTはそうだった)
・クウォータービューにしてみる
・移動のタイミングを計るカウンタを1.4倍にしてみる
・進行方向θ、移動距離Rとして、 sin & cos でXとYの移動量を算出する
0289名前は開発中のものです。
04/10/09 01:46:44ID:aGUImBFj0290名前は開発中のものです。
04/10/09 06:45:43ID:PAlJT6kn4番目の方法は解決になってなくない?
タイルベースだから移動量を半端な数にできないって話なんだから。一度に長距離を進めるのならともかく
その方法を使うには結局位置を実数ベースで所持して、格子上の整数に投影するなどする必要がある
ついでにもう一つ案を加えるなら
5.ヘックス型の升目を採用する
0291名前は開発中のものです。
04/10/09 16:27:09ID:FXYAdpBg>・移動のタイミングを計るカウンタを1.4倍にしてみる
ここのところをもっと詳しく説明お願いします
0292288
04/10/09 17:54:06ID:AolCtkdRタイル状に地形データを保持しているマップの上をスムースに移動できるRTSだと思って
いたのだけど…違った?>>286 その時は勿論 X,Y は実数や固定小数点に。
大戦略のようにタイルごとに大きく進むとしたら、 sin , cos を使う方法はバツか。
>>291
例えば、 QueryPerformanceCounter() などで、ユニットを動かすタイミングを計っている
ときに、 10000 カウントに一回動かしているユニットを斜め移動の時だけ 14000 カウント
に一回動かす方法。 カウンタは各ユニット1個ずつ保持。
…よく考えると、あまり良い方法じゃないかな。
0293名前は開発中のものです。
04/10/09 18:15:20ID:5XbefvOQ目的地が隣接8マスのみでそれぞれに同じ移動時間がかからなければならないなら
座標を計算していくのではなく移動した割合(1秒に10%移動などして)をもとに座標を計算。
地形がマスだからって移動をマス縛りにする必要はあまりない気もするけど。
0294名前は開発中のものです。
04/10/10 00:24:57ID:EW6DpZIfでかい升目のRTSってあまり見かけないし
0295名前は開発中のものです。
04/10/10 01:11:51ID:hHFLHP4A0296名前は開発中のものです。
04/10/10 09:15:31ID:8cEQ4xXP坂をなめらかに表現したり
キャラがちゃんと坂を上ってるように見せたり(平面を歩いてる時とは違って
坂の凹凸に投影される影の付け方や坂のでこぼこに合わせてキャラも上下するような細かいところ)
0297名前は開発中のものです。
04/10/14 16:55:44ID:szgQjWRt0298名前は開発中のものです。
04/10/14 20:16:03ID:SsqOauk13Dでもでこぼこに影つけるのは結構面倒だよ。
RTS って技術的にかなり総合力が必要だよね。
MMORPGなんかのほうがはるかに楽な気がする・・・。
移動ルーチン、敵の思考ルーチン、大量のキャラクターの表示、
視界計算等等。
まぁ、敵の思考ルーチン以外はセオリーは知れ渡ってるけど、
とっかかりにくいことも事実だよな。
0299名前は開発中のものです。
04/10/16 17:37:22ID:bjrieUYwまだ一個の障害物でテスト運行中だけどどんないびつな形でも
スマートに回避して目的地点に行くようになったな
まだ少しバグは残ってるけどバグ退治したら
複数の障害物を避けれるようにしようと思う
0300名前は開発中のものです。
04/10/17 00:09:18ID:+im6Jrl50301名前は開発中のものです。
04/10/19 14:07:21ID:9VxouD/4AOCのMODスタジオ使ってグラフィック抜き出して見てみたんだけど
グラフィックの量がものすごい多い
色の使い方が絶妙で真似できないよ
手書きをスキャナかなんかで取り込んだのかなって思うくらい配色がうまい
0302名前は開発中のものです。
04/10/19 15:02:10ID:ivPA+Lovどんなもんか見てみたい
0303名前は開発中のものです。
04/10/19 15:14:47ID:FBoLmNYxフリーのRTSがみたいならコレ
http://www.glest.org/eng/index.htm
RTSというものを見てみたいならage of empiresシリーズの体験版
0304名前は開発中のものです。
04/10/19 15:20:26ID:ivPA+Lov3DのRTSは作るの難しそうですね
勉強のために日本人の素人が作った2DのRTSが見てみたいです
0305名前は開発中のものです。
04/10/19 15:33:06ID:FBoLmNYx国産は見たことないなぁ
厳密にはRTSというジャンルに入らないだろうけど
RTS風の戦闘をするゲーム
Makuri version3.00
http://www.broba-web.jp/zzzaaa/
0306名前は開発中のものです。
04/10/19 15:44:14ID:ivPA+Lov早速やってみました
敵をなるべく多くで囲んでたこ殴りにしたほうがいいみたいですね
参考になりました
0307名前は開発中のものです。
04/10/19 17:26:21ID:Arclihm/AOCのグラフィックは、3Dでモデリングしたものを、2Dのアニメパターンに落としてつかってたと思ったけど
0308名前は開発中のものです。
04/10/19 17:32:03ID:ivPA+Lovなるほどそうでしたか…
情報ありがとうございます
0309名前は開発中のものです。
04/10/20 13:35:09ID:YkkEKPYn特にグラフィックとキャラのアニメーションがしょぼいと見栄えが悪いね
0310名前は開発中のものです。
04/10/21 06:53:33ID:o+A1oj8OCGだって、製品には及ばずともなかなか健闘してると思う。
製品でもいいけど日本製のRTSってなんかあるの?
0311名前は開発中のものです。
04/10/21 07:01:31ID:aFfvccIwハンドレットソード
0312名前は開発中のものです。
04/10/21 19:08:24ID:aFfvccIwhttp://www.pathengine.com/
経路探索のエンジンらしい。デモのミニゲーむずい。
0313名前は開発中のものです。
04/10/21 20:47:14ID:JRx/eNbM二面の途中でやめたんだけど先に進むともっと複雑な地形が出てくるのかな?
二面までの地形は単純すぎてエンジンのすごさを実感できないな…
0314名前は開発中のものです。
04/10/22 00:51:29ID:lm/v2Idq建築や伐採で地形が変形した時のA*ツリーの再構築方法等はかなりどうしていいかわかんない。
WarCraftとかDOSの時代に動いてたRTSはまさにオーパーツだな。どうなってんだ?
0315名前は開発中のものです。
04/10/22 00:59:57ID:qD7kBMXk0316名前は開発中のものです。
04/10/22 01:10:07ID:lXG05Pdv0317名前は開発中のものです。
04/10/22 01:14:10ID:qD7kBMXk(1) マップから特長点を認識して特長点だけのマップを作っておく。
(2) 特長点のマップを使ってA*で経路探索して結果だけNGの道も含めて保存しておく
(この経路行けるかなと思ったけどダメだった)も含めて多めに保存。
(3) 地形が変更されたら、特長点マップも変更されるかも。
(4) 特長点マップが変更されて、その変更が(2)の結果にかかってたら、そこから計算やり直し。
でどうだろう?データ量多すぎかな。
0318名前は開発中のものです。
04/10/22 04:19:53ID:DfmegXGs昔は検索しやすいようなデータ形式でそれに見栄えをあわせる、
ってことをしてたわけだけど、今は見栄えがまずありきで、
それだと検索のしやすさなんか無視だからね。
本当はPCが賢かったり登場するユニット数が多いほうが
面白いゲームが出来るような気がするけど、流れ的には
見栄え重視だよね。
0319名前は開発中のものです。
04/10/22 15:15:32ID:7o3XPRV8この程度の経路探査なら
A*使わないでできてるけど
0320名前は開発中のものです。
04/10/23 23:40:28ID:9cyRTk8L0321名前は開発中のものです。
04/10/23 23:53:15ID:RcLJRZoC0322名前は開発中のものです。
04/10/24 00:53:20ID:RmtXN3bTただ検索しにくいってのには同意。
0323名前は開発中のものです。
04/10/24 11:27:34ID:v/WiQab40324名前は開発中のものです。
04/10/24 12:18:53ID:FW4WrutQAが付くとなりゃ決まってる!
アナル
0325名前は開発中のものです。
04/10/24 12:46:29ID:ZH7GhJGuAを含んでると検索してくれないんだけど…
A*関連のHPを片っ端から紹介してください
0326名前は開発中のものです。
04/10/24 12:51:47ID:/K5Gjlom0327名前は開発中のものです。
04/10/24 12:57:44ID:ZH7GhJGu0328名前は開発中のものです。
04/10/24 13:40:23ID:PVuW7gwUhttp://www.google.co.jp/intl/ja/help.html
0329名前は開発中のものです。
04/10/24 13:46:38ID:/K5Gjlomhttp://gamdev.org/w/?%5B%5BAStarAlgorithmTutorial%5D%5D
http://plus.naver.co.jp/browse/db_detail.php?dir_id=107&docid=27003
http://mikilab.doshisha.ac.jp/dia/research/report/2004/0716/004/report20040716004.html
http://kyu.pobox.ne.jp/softcomputing/ai/ai3.html
0330名前は開発中のものです。
04/10/24 23:37:01ID:yVwq865pttp://ai-depot.com/Interview/PathEngine.html
0331名前は開発中のものです。
04/10/25 01:29:36ID:m5bCAFqQ2Dコリジョン上で複数ユニットを動かすなんて10人いたら10人とも同じもの作りそうなんだが
何故か全然情報ないんだよね…。
国産のMMOでもまともに経路検索してるの無いし。海外のはちゃんとMobが障害物に挟まらずに
追ってきたりするのに。
0332名前は開発中のものです。
04/10/25 10:52:22ID:NdprxpT53Dでモデリングしたものを、2Dのアニメパターンに落とすツールかソフトないでしょうかね…
0333名前は開発中のものです。
04/10/25 10:56:55ID:NdprxpT5普通は32×32ドットとかパターンサイズを統一してると思うんだけどな
0334名前は開発中のものです。
04/10/25 13:49:53ID:lKhw0+h2EmpireTohuっての見つけたぞ
http://i-saint.abz.jp/pg/
SDL+OpenGL+Luaつー環境もなかなかアツイ
0335名前は開発中のものです。
04/10/25 14:42:21ID:NdprxpT5まだ開発途中だけどAOMみたいで形はできあがってる感じだね
3Dだしミサイルの弾道や爆発シーンもかっこいい
参考になりました
0336名前は開発中のものです。
04/10/26 00:38:26ID:BVRK4NBo日本のゲームプログラマの質の低さを物語っていますね。
0337名前は開発中のものです。
04/10/26 00:42:40ID:BVRK4NBo0338名前は開発中のものです。
04/10/26 00:43:46ID:C7eujjr/それは多すぎだよw
0339名前は開発中のものです。
04/10/26 03:27:23ID:0qtmMtwB理系集団だし。
0340名前は開発中のものです。
04/10/26 05:31:04ID:uAktRXLcFF10は100人で作ったらしいけど、そのうちグラフィッカーは
50人以上いるでしょ?
0341名前は開発中のものです。
04/10/26 05:37:39ID:sWxPsHDTなんか漏れ的に懐かしい話題のスレのようなので、
俺が大昔に書いた経路選択処理を書くっす。
a.マップ(スクエアマップで斜め移動は1.4倍コスト)と同じサイズの整数2次元配列を用意し、「未到達」値で初期化
(以後の処理は全てこの配列を対象とする)
b.移動目標とするべき地点に、その重みに応じた「重要度」数値をプロット(小さいほうが重要箇所)
c.配列全てをスキャンし、「重要度」がプロットされている地点の
隣接スクエアに「元の地点の重要度+スクエア間移動コスト」を重要度としてプロットする。
(既に重要度がプロットされている場合は、新しい値が小さくなるときだけプロットする)
d.移動させたいユニットのスクエアが「未到達」でなくなるまでcを繰り返す
e.ユニットは値の「重要度」値の小さいほうに移動する
ってやって、目標設定も一緒にやってた。
データ処理量の問題とかありそうだけど、ま、何かの参考になれば・・・・
#思考ルーチンスレにも似たこと書いたけど、
#こっちのが具体的に書いたので重複許して。
0342名前は開発中のものです。
04/10/26 11:19:48ID:DOYIFEE2目標地点を基点にしてA*で探索すれば配列全てをスキャンしなくてもすむと思うんだけど、気のせい?
0343名前は開発中のものです。
04/10/26 14:01:17ID:P3ofJO/vまぁ、基本的にはそう。
最終的には(A*は知らなかったけど)もう少しましな実装にしたいなぁ、とは思ってた。
だけど、
a.思考ルーチンも兼ねてて、「複数の目標のうち、どれを選択するべきか」ってのも
その処理でやらせてた(今考えるとさもしい発想かも・・・)
b.コード側のメモリ制限が厳しかったので、メモリ食いそうなコードを書きたくなかった
c.配列を1枚プロットすれば、他のユニットにも使いまわせたので、
合計処理時間は意外とかからなかった
ので、そのまま実用にしちゃった:p
マップサイズが小さかった(確か80x50)から
全スキャンでどうにかなった、といえばそうかもしれない。
0344名前は開発中のものです。
04/10/29 02:13:59ID:1Lxx1m5hそれ全然経路検索してねーやん。ユニット重なりも怪しい。
そう言えばフロントミッション:オルタの経路検索も酷かったよね。和製RTSの恥部って感じ。
0345名前は開発中のものです。
04/10/30 06:18:16ID:I7LW/FD4司令部が計算し、現場の戦車に移動方向や弾を撃つ方向を指示する。
測量から、1秒もかからないで、イラクの戦車に命中。
でも歩兵の場合は、おおまかな指示が歩兵のディスプレイに伝えられる
だけで、あとは歩兵同士のP2P通信で、現場で判断して行動してください。
0346名前は開発中のものです。
04/10/31 18:17:41ID:hvTxRR6C0347名前は開発中のものです。
04/10/31 20:51:10ID:BJZgJqz9バグフィックスにだいぶかかりそうだ・・・
0348名前は開発中のものです。
04/11/04 16:55:51ID:OKON4TbNまじでRTSの話で盛り上がりたい
0349名前は開発中のものです。
04/11/04 21:15:38ID:2ineS6xy0350名前は開発中のものです。
04/11/07 08:58:53ID:HxZsVm4g0351名前は開発中のものです。
04/11/09 21:14:03ID:vKua+4YEある場所教えてください
0352名前は開発中のものです。
04/11/10 23:04:35ID:ewz442zdAOEのように高低差をなめらかに作るのむずかしそうだな
directX8で高低差のあるマップの作り方書いてるサイトないかな?
0353名前は開発中のものです。
04/11/11 19:04:07ID:xwGyZvY40354名前は開発中のものです。
04/11/11 19:04:46ID:xwGyZvY4googleに「もしかして」って指摘されたOTL
0355名前は開発中のものです。
04/11/11 19:19:14ID:EcHuenuyHeightMapってなんですか?
検索したけどあまり詳しくかいてなかったので
0356名前は開発中のものです。
04/11/11 19:37:35ID:xwGyZvY4http://www.google.co.jp/search?hl=ja&c2coff=1&q=Terrain+rendering+&lr=
0357名前は開発中のものです。
04/11/11 19:38:41ID:EcHuenuy英語苦手なんですw
0358名前は開発中のものです。
04/11/11 19:40:28ID:EcHuenuyおすすめのHPとか教えてください
0359名前は開発中のものです。
04/11/11 19:43:26ID:U7fOSr9v0360名前は開発中のものです。
04/11/11 19:45:23ID:EcHuenuy1フレームごとに経路選択用の地形データを更新してたら重くなるしな
0361名前は開発中のものです。
04/11/11 23:55:46ID:gCLa/mOb2次元配列で高さを管理する方法。
0362名前は開発中のものです。
04/11/12 00:50:24ID:6BjBpz3E地形が変化したときだけ、経路探索用データを更新すればいいんじゃない?
0363名前は開発中のものです。
04/11/12 04:57:53ID:o15WkWIgもっと詳しく説明おねがいします
>>362
あちこちで森を切ったりしてるから頻繁に更新しないといけないかも
私が使ってる経路探査用地形データを一フレームごとに更新したら超スローになったので
そこらへんどうしてるのかなと思いまして
0364名前は開発中のものです。
04/11/12 05:37:46ID:Xcu+uIP9説明しよう!
heightmapとはxy方向に等分に分割したマップである
頂点は周りの8方向の頂点と合計4つの四角形を構成し頂点を共有するので
メッシュを別個に置いていく方法と比べて滑らかにできる
もちろん分割数が少ないとカクカクになり、分割数が多いととても滑らかになる
ちなみにDirectXSDKサンプルにも収録されている
自然な地形の作り方はgame programming gemsなど
0365名前は開発中のものです。
04/11/12 06:06:05ID:FE7zbcBO別に1フレームごとに更新することは無いんじゃない?
ちょっとずつ更新して、2秒に一回更新することにしたら?
コストが100分の1以下になるよね?
AoEって高さの概念って攻撃力ぐらいじゃなかったっけか?
■ このスレッドは過去ログ倉庫に格納されています