2014 ソフトウェア設計及び演習用の班Wiki

14::gr10::発表

プロジェクト名

タクティクスシミュレーションゲーム

プロジェクト説明

概要

 マス目状に区切られたフィールドで、自分と相手がそれぞれのユニットを操作し、戦闘を行う。障害物のあるフィール上で自分のユニットを動かし、いかに有利な戦況を作り出すことができるか。頭脳と知略が問われる複雑で奥深きゲームである。

操作方法

 基本的にマウスクリックのみである。ボタンやユニットをクリックして操作をする。

フィールド

 はじめに数種類あるフィールドから使用するものを1つ選択できる。フィールドにはそれぞれ特徴があり、見極めが大切。フィールドに使用された美麗グラフィックは今回作成した50×50のドット絵である。

ユニット

 ユニットとは使用するキャラクターのこと。フィールドの次に使用するユニットを複数体選択する。ユニットはHP、攻撃力、移動範囲の数値を持ち、ユニットごとにそれらの数値にはばらつきがある。ユニットごとの長所短所を把握し、先程選択したフィールドとの相性を吟味しながら上手く戦略を立てよう。

ゲーム開始

 選択したフィールドとユニットを使い、戦闘開始。自分と相手のターンを交互に繰り返す。
 自分のターンでは、自分の持ちユニットを動かすことができる。ユニットはそれぞれの移動範囲の数値のぶんだけフィールド上のマスを移動させることが可能。更に移動させたとき、自ユニットに隣接する敵ユニットがあれば攻撃を仕掛けることができる。移動または移動後の攻撃を終えると、ユニットは行動を終え、待機状態となる。ユニットを行動させる順番もよく考慮すると勝利に近づくと思われる。自分の全てのユニットの行動が終わるとターンが終了し、相手のターンとなる。
 ユニットを攻撃するとユニット同士の戦闘が始まる。攻撃をする側が先にダメージを与え、次に攻撃を受ける側がダメージを与える。それぞれ攻撃力のぶんだけHPを減少させる。HPが1以上残っていれば生存し、次ターン以降も行動できる。しかし、HPが0になってしまうとユニットは死亡してしまう。死亡したユニットはフィールド上から消滅し、使用できなくなってしまうので、戦力を大幅に削ることに繋がってしまうだろう。

Game Clear or Game Over

 敵のユニットを全滅させられれば勝利となる。
 逆に自分のユニットを全滅させられてしまうと敗北となる。
 ユニットの力を最大限に活かし、正々堂々戦い、ゲームに勝利しよう。

モジュール分担

  • キャラモジュール                  (佐々木、荒谷、小山)
  • 画面モジュール                   (佐々木、上平、小池)
    • スタート画面、キャラ選択画面、ステージ選択画面   
  • マップモジュール                  (佐々木、上平、小池)
  • ボタンモジュール                  (佐々木、上平、小池)
  • ダメージ計算モジュール               (荒谷、小山)
  • 戦闘別画面へ切り替えモジュール
  • 戦闘別画面表示モジュール
  • キャラ行動モジュール                (佐々木)
  • 移動・攻撃範囲表示モジュール            (佐々木)
  • キャラ画像モジュール                (佐々木、小山)
  • 移動処理モジュール                 (佐々木)
  • カーソル移動、選択モジュール            (佐々木、荒谷)
  • 戦闘勝利判定モジュール

良かったこと

  • 自分たちで作成したマップチップを使用することでオリジナルのステージを自由に作れるようになった。
  • ユニットの移動モジュールがとてもうまく実装できた。  

学んだこと・うまくいかなかったこと

  • 当初は班員全員が楽しくゲームの構想やモジュールなどを構想していたが、いざプログラミングを始めてみると、予想以上の難易度で、はじめの楽しさがなくなってしまった。最初の段階できちんと実現可能なゲームやモジュールを考えるべきであった。
  • 班内で作成したプログラムを統合するのが困難だった。自分以外の人間が作成したプログラムなので、上手く統合させられなかった場合に苦戦した。他の人が見てもわかりやすいようにプログラムを作る必要があることを悟った。グループ内で協力し、互いに助けあいながらゲームを完成させられればよかった。
  • 1つのプログラムファイルにおける役割が多すぎると、ソースの文章が膨大になってしまい、見直しが大変になってしまうが、少しずつ見ていけば修正がしやすいことがわかった。


最終更新日:2015/02/18 12:28:02