戦略シミュレーションゲームを作るスレ
■ このスレッドは過去ログ倉庫に格納されています
>>97 まだ時々見に来てるよ。
よさげなユニット素材みつかったら続きやる。なんなら何か描いてくれ 六角形を表示しただけで……ゲームを作れるような自信がわきあがってきたぜ!! レベル1を大量生産するスレになったんだから、二人目まだ〜?
まさか、六角形の表示すらできない人しかいないのか!! C#とかJavaの図形APIを使えば画像なしで六角形作れるぜ 段階的戦略シミュレーションゲーム開発戦略
【レベル2】マップ単位の付帯情報(地形データ)を扱う
・各マップチップに、>>16に示されているような地形のアトリビュートを保持させる
・マップ表示画面上で地形が区別できるように、アトリビュートに応じて
6角形の色または画像を変えて描き分ける
・カーソル地点の地形の名称を別ウィンドウまたはステータスバーに表示する
・地形の属性の初期値は乱数で与えてもよし、マウスで編集できるようにしてもよしで、
データファイルに保存および読み込みできればさらによしとする。 段階的戦略シミュレーションゲーム開発戦略
【レベル3】マップ上にユニットを配置する
・マップ上の任意の位置を指定し、ユニット(部隊)を配置できるようにする
・すでにユニットが配置済みの場所を指定した場合、部隊情報表示とメニューを開く。
(部隊情報にはとりあえずユニット番号程度を表示する)
(メニュー項目にはとりあえず「撤収」だけは実装する)
・マップ上に配置可能なユニットの総数を、後で調整可能なようにコーディングするとよい。
・「ユニット」と「地形(またはマップセル情報)」を引数に、配置可能か否かを判定する関数を作り、
誤った配置の指示があった際、プレイヤーに確認すると良い。 段階的戦略シミュレーションゲーム開発戦略
【レベル4】配置したユニットを移動する
・レベル3で配置したユニットのひとつを選択した際、規定の移動コスト内で
移動可能な範囲を示し、プレイヤーの指示により移動させられるようにする。
・設置済みユニットをクリックしたときのメニューに「移動」を追加する。
・「ユニット」と「現在位置の地形」「隣接する移動先の地形」を引数に、
1マス分の移動コストを計算する関数を作ると良い。
その場合、進入不能なマスへの移動コストは無限大を返す。
・任意の移動可能範囲内のマスまでの移動指示に対して、
コスト最小経路を自動で導出できると良い。 あるユニットの移動可能範囲は、
A*などのグラフ理論で、計算できるが、
AIの戦略を考えるのが難しい
ユニットの状態を、1から順に判断していく
1. 補給まち。弾、エネルギーが少なくなったとき
2. 後退。ユニットが半分以上、破壊されたとき
3. 進む マス目が4角形でも、マス目を半分ずらせば、
理論上は6角形と同じになるから、
4角形と6角形の両方で、出来るようにしてほしい
ちなみにマス目は、縦方向に一直線で、
横方向には半マスずれているのか?
この場合、データの持ち方は、
縦方向(列)でまとめて持つのか?
1列目、2列目、〜
それとも横方向でまとめる方が、描画処理が速い?
それと試しに、100マスぐらいの全マスに、
ランダムに移動コストを付けて、
首都から全マスへの距離を、測定してほしい マップを幾つかのエリアに分けて管理するときに、
エリア内に立ち入り禁止の山脈があり、
そのエリアが幾つかの部分に分かれるときに、
使えそうなのが、Union-Find木
数字は各マスの番号で、
それらは山脈で隔てられているときに、
マス目同士が、同じグループかどうか判別できる
(1, 2, 3) (4, 5) (6, 7)
1, 4, 6 が根とすると、与えられた数字を根までたどり、
根が同じかどうかで、同じグループかどうかを判別する
例えば、3の根は1、5の根は4で、違うグループ AIを考えるとき、個々のマスについて、
一々経路などを計算していると、計算量も多くなるので、
マップを100ぐらいのエリアに分けて考える
そして、エリアが近い場合のみ、個々のマスで計算する
エリアの分け方は、単純に座標によって分けると、
エリア内に、山脈などの移動できない部分ができて、
同じ・近いエリアなのに、移動コストは大きくなり、
移動計算量が見積もりにくくなる
それを避けるため、エリアを30-50移動コストごとに分割する
マップの左上から、横方向に1行ずつ、または、
マップの4隅から、中央へ向かって、エリアに分けていく
先のエリアAが確定した後に、後のエリアBを決めるときに、
A内のマスで、Bからの方が近いマスは、エリアBに入れる
つまり、移動コストが小さい場合は、上書きする これ見ればイインジャネーノ
追いかけっこサンプル
プレイヤーが敵に追われたり、プレイヤーが敵を追ったり出来ます。
斜めに移動する場合、上下左右に移動する場合、障害物がある場合など、3種類×2+合体+釣り改造例の計8種類収録。
http://www.vector.co.jp/soft/win95/game/se472151.html 住人ではないぞ。
AIの前にウィンドウシステムと画面遷移の仕様が欲しい。
陣営の仕様は?部隊≠ユニットなのか? ユニットは1台の戦車などを表し、戦闘画面で戦闘するもので、
それが10台集まって、1つの部隊になる
部隊は、移動する時の移動単位で、1つの駒を表す
ユニットは、戦闘単位。部隊は、移動単位
ユニット * 10 = 部隊
これで合っている?逆かな?
>>118
自己レス
>ちなみにマス目は、縦方向に一直線で、
>横方向には半マスずれているのか?
マス目は、横方向に一直線で、
縦方向には半マスずれているようにしようと思う 部隊は、オウガ1と同じか
イージス艦×10⇒海上部隊(低速)とかだな
ttp://www1.axfc.net/u/3243821
ttp://www1.axfc.net/u/3243822 段階的戦略シミュレーションゲーム開発戦略
【レベル5】プレイヤーターンを処理する
複数(5部隊程度)を適当な初期位置に配置した状態から開始し、
各隊について一回ずつ、レベル4の方法による移動を行う。
すべての隊が移動したとき、ターン終了の表示を行い、
再度全部隊を移動可能にする、ということを繰り返す。
他の隊が存在する場所を通過することはできるが、
目的地にする(2つの部隊が重なる)ことは禁止する。
移動が終わった隊は、プレイヤーが判別しやすいように色を変えるか、目印をつける。
・移動しない(待機)を選べるようにするか、「ターン終了」コマンドを実装するとよい。 試作を開始しました。
【レベル1】ttp://www13.plala.or.jp/amagame/hexmap/warsimlv1.png
【レベル2】ttp://www13.plala.or.jp/amagame/hexmap/warsimlv2.png 【レベル3】ttp://www13.plala.or.jp/amagame/hexmap/warsimlv3.png 【レベル4】ttp://www13.plala.or.jp/amagame/hexmap/warsimlv4.png やっぱりmini-MaxとかAスターとかいうアルゴリズム使わないと実現できないのかな?
スーファミの大戦略レベルのものが作れたらいいだけなんだけど そんな使うのをためらうほど難しいアルゴリズムじゃないと思うが。 段階的戦略シミュレーションゲーム開発戦略
【レベル6】簡易な戦闘を処理する
各隊を移動後、その周囲6マスに敵のユニットがある場合、攻撃するようにする。
複数の敵ユニットがいる場合、いずれかを選択できるようにする。
あらかじめ各ユニットに耐久力(例えば初期値10)を設定しておき、
攻撃の際、ランダムで0〜3ポイント減少させる。
耐久力が0になったユニットは消滅する。
攻撃を受けた側で耐久力が残っていた場合は、攻撃を仕掛けてきたユニットに対し、
ランダムで0〜3ポイント反撃を行う。
いずれかの隊が全滅したら、ゲーム終了の表示を行う。 余計なことかもしれんが、そもそも戦略ってマップしだいだから。
相手の本拠地までのルートをどう通るか。
相手の裏をかけば相手の本隊と出くわさずに済むし、そもそも複数ルートあるなら相手の戦力を分散できる。
それをどう片付けていくか。
端っこから順番に攻めるしか能がないんじゃ戦略でも何でもない。
戦場で主導権を握る。それが戦略シミュレーションゲーム。 そもそも大戦略自体が吹かしというか、名が体を表してないからな
あのゲームは「大戦術」が正しい
大戦略を名乗っていいのは「アドバンスド大戦略4」と「アドバンスド大戦略5」
ぐらいじゃないか? 戦略で優位に立てるなら戦術要素はなくて良いし
戦術で優位をひっくり返されるなら戦略とは何だったのかということになる 戦術級ゲームに戦略の名を冠して売っていこうという戦略 【レベル5】 http://www13.plala.or.jp/amagame/hexmap/warsimlv5.png
【レベル6】 http://www13.plala.or.jp/amagame/hexmap/warsimlv6.png
ここまで作ってみて、へクス型マップのターン制ボードゲームを作るのに
必須のプログラミングテクニックは理解できたような気がします。
戦略か戦術かという話は、どちらかというとゲームデザイン的な観点で
語られるべきかと思います。 ライフゲームっぽい戦略シミュレーション作ってる
対戦相手のユニット死亡判定のアルゴリズムどうするか悩んでて頭禿げそう
これが解決すれば、ほぼゲームは完成する
CPU三人と同時にゲーム進行する内容なので、マップ上の駒データと配列上の駒ステータスに分けて管理してたが、これがそもそも間違いだったのかな >>143
なにいってんかわかんない。
エスパー!お客様の中にエスパーはいらっしゃいませんか? 四人将棋をイメージしてくれ
碁盤用の座標配列上にユニットの番号書いて、各人の駒の名前とHP、現在位置座標用の配列変数用意して、CPU三人相手に戦うゲーム
例えば三人目CPUが▲63飛車の場合、三人目の持駒X座標6、持駒Y座標3と、持駒名前用変数に飛車に該当する番号を振ってある
これと別に碁盤上の二元配列のX6、Y3の座標に飛車に該当する数字も振ってある
この▲63飛車に隣接しているプレイヤーの△62金が倒したとする
その際にプログラム上で、6と2の位置にいたプレイヤーの駒からしたら6と3の位置にいる倒された飛車が誰のものなのか分からないので、管理者であるシステムに倒された飛車の持ち主が三人目のCPUであるという事をどのように認識させようか考えてるところ
碁盤上では飛車が倒された事はユニット用座標でゼロにするだけだから簡単なんだが、その飛車の持ち主が三人目であると判明させる手段が思いつかない
判明した後の飛車が亡くなった場合の持駒の整理の方法は出来上がってるんだけど、そこに繋げるアルゴリズムで詰まってる >>143について自己解決出来そうな答えが見つかった
今迄、プレイヤー同士の駒としての概念で作ってたのが間違ってた
簡単な話、盤上の世界をホテルの個室として考えれば良かったんだ
盤上のホテルが40階建1フロア30部屋なら滞在可能数は300人
そのホテルに四つの団体のお客様が部屋借りてますよで良かったんだ
つまんない話出して済まんかったな! 300人じゃなくて1200人だった、ちょっとゴルゴに撃たれてくる 大戦略は作戦級だと思う(さらにややこしくするパティーン)
RPGの合間に、なんとなくシミュレーションゲームが作りたくなった。
【レベル0.5】ヘックスマップの表示までできた。
http://s1.gazo.cc/up/188610.jpg
三国志11みたいな視点変更ができるせいで、マウス座標→マップ座標変換どうしよう。。。
>>146
ライフゲーム的ってことは、駒オブジェクトを生成しないで、
各座標の属性に、駒やHPの情報を持たせるってことかな?
そのついでに、駒の持ち主情報も持たせればいいな。
(もう答えにたどり着いてそうだけど)
駒がダイナミックに増減しない(生産、全滅程度の増減)なら、
駒オブジェクトに座標情報を持たせる作り方のほうがいいと思う。 【レベル1】ヘクスを表示してマウスで選択できるところまでできた。
俯角変更とかマップ回転って、大戦略としては不要だなぁと思った。
http://s2.gazo.cc/up/38366.jpg 大戦略としては不要かもしれんが、149の起伏のあるマップかっこいい こういうマップいいな、シミュレーションじゃなくRPGでもいい 感想ありがとうございます!
マップのランダム作成は、RPGの全体マップ作成ルーチンを流用したものですが、
RPG内で高低差のあるマップ表示は考えていませんでした。
たしかに、RPGの街とか村周辺を3D表示するだけでも、いい演出になりそうです。
【レベル2.5】
首都や街の配置、ユニットの表示までできた。
首都配置時の距離測定用にA*アルゴリズムも実装。
http://s2.gazo.cc/up/38427.jpg 【レベル3】生産
http://s2.gazo.cc/up/38530.jpg
【レベル4】移動
http://s2.gazo.cc/up/38532.jpg
を作った。
お手製のゲーム基盤がキーボード入力メインの作りだったのでマウス周りの機能を追加した。
ビジネスロジックに比べて、ユーザインタフェースを作りこむのは大変だな、やっぱり。
【レベル5】プレイヤーターンも気づいたらできてた。
戦闘システムを作る前に、敵AIでも作るか。
(目標)
・敵のランダム生産
・敵のランダム移動 なんだろう、今日はとてつもなく眠いぞ
先週の成果
・Windows10をインストールした
・ナレーターがうざい
・電源オフにしても電源が落ちない・・・
・残り容量が2Gから87Gに増えた
・まだVisualStudioとPowerDVDしかインストール終わってない・・・
・敵AIを作った
http://s2.gazo.cc/up/38666.jpg
ちなみに敵AIは
・生産20ステップ
・ユニット設定12ステップ
・移動5ステップ
の合計37ステップ、開発時間10分!
次の目標
・移動時にZOCを考慮する 3週間ぶりになってしまった。。。
この期間の成果
・せっかくのOSクリーンインストールなのでSSD容量256Gにした。128Gじゃ足りない
・ついでにメモリ8G増やした
戦闘処理を作りたいけど、戦闘結果が数値で出るだけだと寂しいので、
フィールド画面上にパーティクルを発生させて、お茶を濁すことにした。
ってことで、パーティクル機能実装。
動作テストのため、マウスクリックした場所の上空で爆発パーティクルを発生させてみた。
http://s2.gazo.cc/up/38995.jpg ,彳;;;;;;;;;;;;;;;;;;;;;;;;;;、
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,ヽ 涙が あとからあとから あふれ出て
/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;t、
,';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;z 止めることができなく なる
!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i
|''';;;;;;;;;;;;;'''" ,;;;;;;;;;;;;;;;;;;;;f ニ;、 マヨーレマヨーレ!
{丁 "'' _ ,;;;;;;;;;;;;;;;;;//万 !
! .i厂\( \ 六夂 i、__ http://goo.gl/kY6CYb
! .{.\ \ \ ,' ! ‐ ´  ̄ ̄ Zz、
i >、 ヽ \ \ | | \
.| \\\ ヽ ー= ! .\
! \\\ 、,. `' | ヽ
} ≧! 、,,. ! !
ノ .', | |
./ 八 ', !
/ ./ .>‐、 .∧ :; .!
./ / / ヽ \ ∧ !: ハ
/ / ./ ', ヽ .∧ / ノ i
/ / , ', ∧ ! ' !
// ! ∨ ∧ ,' i .!
/ / セ、 ∨ ∧ ! ! .|
/z ´ .\ ∨ \ _| .' .| 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
2LHIHLEKYD 今日は3時間くらい作業した。
最終的には時給いくらになるのか。絶望した! unityで作ってるんどけど、ちょこちょこ待ち時間が長くて、マシンパワーががが。
もっと強いPCが欲しいよう。 ウォーキングデッドノーマンズランドがシミュレーションゲームの中では一番面白いかな。
こういうのを作るのって難易度高いのかな?敵が単調なので難しくないのかも知れないが。
何年前かは魔神転生の続編みたいなのを作ろうとしてた人がいたけど、更新何年も前に止まってるし。 ■ このスレッドは過去ログ倉庫に格納されています