Game Development #5 Battleship

戦艦ゲーム。戦艦の砲をX軸とY軸で動くようにしました。戦艦は戦車と違って艦に独立した砲塔がたくさんついている構造なので若干面倒でした。とはいえ配列で制御しているので個別に作っているわけではないんですけどね。

 

battleship_20120613_01

戦艦クラスに砲クラスがいくつも乗っている構造。海面から影響を受ける戦艦の姿勢に影響を受けつつも、目標座標に対する狙いを崩さないように計算しています。戦車ゲームと同じ要領です。

で、なぜ砲を上下左右に動かしたかったかというと・・・

 

battleship_20120613_02

対空砲火をやってみたかったからです!

ドドン、ドン、ドン・・・

というのも第二次世界大戦の空戦のドキュメンタリーを見ていたら高射砲や戦艦からの対空砲火の映像が格好良かったんですよねえ。

 

battleship_20120613_03

うーん、戦闘機が必要になってきましたね・・・。この無計画な企画はどこへ向かうのやら。思いつきで続きます。

広告

Game Development #5 Battleship」への3件のフィードバック

  1. 僕もゲームプログラミングはやっていますが、RTS形式なので限界を感じています。

    ysmさんの様にいろいろやってみたんですけど・・・やってみると人工知能は奥が深いです。

    >>うーん、戦闘機が必要になってきましたね・・・
    戦闘機が絡んでくると(と言うか、複数ユニットでは)情報管理が極端に難しくなります。

    例えば、
     偵察機(又は味方艦)が敵艦を発見した
     旗艦に情報を送信する(発見者は、自己判断で退避するか、偵察を続ける)
     旗艦から航空母艦(又は最寄りの空軍基地)に航空支援を要請
     旗艦の判断で艦隊戦をするかどうか
      する→敵艦情報から艦隊配置を計算(例:補助艦が多いなら戦艦主体とか)
      しない→そのまま逃げる
    とか。

    航空母艦とかの母艦系のコードは戦艦よりも少し難しいです。

    航行管制機能(基本的に戦艦とは変わらない)
    火器管制機能(基本的に戦艦とは変わらない)

    厄介なのが、戦闘機管理系(戦闘機の格納状態+発艦着艦制御)です。

    例えば、(まだ研究中ですが)
     敵発見につき航空支援要請を受ける。
     敵の情報を基に必要な航空機の種類や数を決める。
     味方艦隊情報を基にどの順番で飛ばすか決める。
     実際に飛ばしながら戦況を判断して、随時、変更を反映。
     (戦闘中)
     戦闘機の大まかな配置(自分は航空戦闘指揮は空母から、と考えています)の指示
     負傷した戦闘機の着艦(補修)と援軍の発艦
     (戦闘終了)
     飛行状態から見捨てるか優先するかを決めつつ着艦させる。
    という感じです。

    長くてすみません。

    自分はまだまだ中級位ですが、
    ysmさんのような優秀なプログラマーをみると、正直うらやましいです。
    では、失礼しました。

    P.S.戦艦の影をテクスチャーにするとは良いアイデアだと思います。
    一番上の画像をよく見て分かりました。

  2. こんにちわ!

    RTSを制作されているのですか、すごいですね。ちなみにRTSは僕が一番好きなジャンルです。Company of Heroesなんかが大好きです。

    僕のプログラムはまだゲームデザインまでは踏み込んではいなくて(というか考えてなくて)、個々の動作を作っているに過ぎないです。群衆的なことをしたくてゲームAIの本も買ったのですが、仕事のほうで覚えなければならないことがいろいろあったので、勉強せずにそのままになってしまっています・・・。

    YMDさんが説明されているアルゴリズムは第二次世界大戦時代の海戦ですよね?参考にさせて頂きますね!

    戦艦のテクスチャーはオクルージョンマップの焼き付けで、テクスチャーをしっかり描くまでのとりあえずの暫定的なものです。ちょっと雑なのでバレてしまいましたね。笑

    プログラムの研究、頑張ってください。期待しています。

    • 忙しい中、お返事ありがとうございます。

      >>Company of Heroesなんかが大好きです。
      まさに第二次世界大戦ですね(笑)

      自分が初めてやったRTSはAOEO(AgeOfEmpiresOnline)で、グラフィックこそお粗末なものですが、やってみると手軽に(無料で)遊べて楽しいゲームです。

      >>YMDさんが説明されているアルゴリズムは第二次世界大戦時代の海戦ですよね?
      おっしゃる通りです。
      しかし、ここに原子力潜水艦、原子力ミサイル潜水艦、対艦ミサイル、イージス艦、電子戦闘系を追加すれば立派に近代の海戦になります。

      海戦や戦争の有り方は、第二次世界大戦以降では大雑把にいうと、今までの「防御力>攻撃力」が逆転して「攻撃力>防御力」となり、全ての戦闘兵器に対して「攻撃は最大の防御なり」が定着しただけに過ぎません。

      当然、強大な防御力を持って敵の攻撃を無効化し、大砲で敵をボコることによって優位にいた戦艦は立場を失います。何故なら、現代の対艦ミサイルは戦艦大和クラスでも一撃で沈める威力を誇るからです。

      でもやっぱり、戦艦は男のロマンです。
      強力な主砲をブッ飛ばして描く放物線は美しいですし、
      沢山の対空砲で弾幕を張るのは見ていて楽しいですし、
      何よりも戦艦には他の艦にはない荘厳さがあります。
      折角ゲームを作るなら・・・出したいですよね(笑)

      戦艦ゲーム、完成したら是非とも動画をアップしてください、
      期待してます。

      お返事ありがとうございました。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中