2Dターン制ゲーム開発

OVERVIEW

制作にはUnity(C#)を使用しました

【概要】

ターン制ゲームを開発したいと思い、ポケモンのゲームを参考にして作成しました。

基本操作はポケモンと変わりませんが、ポケモンの代わりにお笑い芸人を採用しています。また、技についても全てオリジナルです。

レベルシステムは存在せず、出現時ランダムに与えられるランクとキャラクター毎の基本ステータスによって性能が決まります。

街に存在する8人の中ボスを倒した後、5人の最終ボスを倒すことでゲームクリアとなります。


【制作背景】

ポケモンは子供の頃によくプレイしていましたが、ふと戦闘システムや多数のキャラクターや技の管理などはどのように行われているのかが気になり、実際に自分で作ってみようと思ったことがきっかけです。

それらのゲームシステムの仕組みを知ることで別のゲームを作る際の助けにもなると感じたことも理由の一つです。


【プレイシーン】

①ゲームスタート

  • ゲーム開始時はキャラクターを所持していない為、先に進むことができません。博士のラボがあるので貰いに行きます。


②戦闘画面(ランダムエンカウント)

  • 草むらを歩いているとランダムでキャラクターが出現します。
  • ボールコマンドを使用すると相手キャラクターを仲間にすることができます。その際、相手のHPが減っていたり、状態異常があれば確率が上昇します。
  • 相手のHPを0にすると特に何もなく戦闘は終了します


③メニュー画面

  • 「げいにん」コマンドでは手持ちキャラクターのステータス確認、順番の並び替えができます。
  • 「バッジ」コマンドでは獲得したバッジを確認できます。
  • 「セーブ」コマンドではプレイ状況をセーブでき、次回起動時にはタイトル画面でロードできます。


④戦闘画面(中ボス戦)

  • 対人戦ではボールコマンド、逃げるコマンドが使用できません。
  • 対人戦では相手の手持ちキャラクター( 最大6体)を全て倒すことで勝利となります。勝利するとバッジを一つ獲得できます。
  • 最終戦へ進むにはバッジを8個全て獲得する必要があります。⑤最終戦
  • 最終戦は5人のボスを倒す必要があります。一人倒すと次のボスの部屋へ続く扉が開きます。
  • 全てのボスを倒すと殿堂入りとなり、手持ちキャラクターの一覧が紹介された後、最初の街へと戻ります。

【戦闘システム】

  • キャラクターにはそれぞれタイプ相性があり、有効な攻撃や無効な攻撃があります。
  • 技の種類は5種類(通常/特殊/回復/吸収/ステータス変更)あり、それぞれ挙動が異なります。
  • キャラクターには状態異常が6種類(毒/火傷/麻痺/睡眠/氷/混乱)存在し、行動時に効果が発動します。

【ピックアップ】

  • セーブデータはバイナリデータとして保存されるようになっています。過去に作成したゲームではJSON形式で保存していましたが、セキュリティ面を考慮し変更しました。
  • キャラクターや技の管理はScriptableObjectを使用しました。
  • これまでの開発で処理の重いUpdate関数を乱用していた経緯があり、本作では一つだけしか使用しないよう工夫しました。