見出し画像

ふだんチーム仕事なゲームプランナーがオフにひとりでUnity自作ゲームのバトルシステムを設計した話

こんにちは。仕様です。(@shiyoumasayume)という名前でSNSをやっているゲームプランナーです。

普段は会社でたくさんの人と一緒にコンシューマー向けタイトルの開発をしているのですが、テレワークが進んだ結果として自分の自由な時間が増えました。そこでここはひとつ、勉強も兼ねて普段の業務では作れないようなゲームを自分で作ってみようと思った次第です。

今回の記事では、この自作ゲームを例にしてバトルシステムを作る際の思考をまとめて見ようと思います。

このnote単体で読んでいただいても大丈夫ですが、作っているゲームについての詳細を知りたいという方は前段の記事などを見ていただけると嬉しいです。こちらではゲームのコンセプトや遊びの概要を決めるまでの思考をまとめています。

 作成中のゲーム「Dr.Holeking」についての全記事はこちら

開発に使うもの

PC
・MacBook Air 2020 13インチモデル
・第10世代の1.2GHzクアッドコアIntel Core i7プロセッサ
・Intel Iris Plus Graphics
・16GB 3,733MHz LPDDR4Xメモリ
・1TB SSDストレージ
ゲームエンジン
・Unity バージョン2020.1.2f1
Google chrome
・調べ物をするときに
Twitter / note
・経過報告用

Macbook AirにUnityというツールを入れてゲームを作成します。
ノートPCが1台だけというコンパクトな状況でもゲームを作ることができる時代です。

作ろうとしているゲームの概要

今回作っている「Dr.Holeking」というゲームはこんな要素を持っています。

・ポストアポカリプス(崩壊後の世界)なSFモノ
・基地のリソースを管理して襲来する敵を倒す
・敵を倒して得たリソースを使って基地の地下を掘削し、地球の核へと到達する
・iPhoneの縦持ちでプレイ

プレイヤーが遊ぶときの流れは以下のようになります。

1.基地のリソースを消費して基地設備を整える
2.襲来する敵を倒す
3.敵を倒して得たリソースでさらに基地を増築or地面の掘削を進める。

敗北条件:所有する基地の設備が襲来する敵を倒しきれなかった
クリア条件:特定の深度まで掘削を進めた

今回の記事では、攻めてきた敵を倒してリソースを得る部分の設計と実装を進めます。

現在の実装状況

・メインゲームシーンからバトルシーンへの遷移ができる
・確定勝利+確定報酬

この2点が入り、最低限のゲームサイクルが回りはじめた状態です。
ただこれでは工夫もなにもなく、遊びにならないのでちゃんとバトルシステムの機能を入れていきます。

バトルシステムの要件

仕様やパラメーターを細かく決めてから作るというより、ざっくりとした状態で組み上げつつ仕様漏れやバランス調整などしていく方式をとります。

個人開発のため意思決定プロセスは完全に自分が握っていること、ゲームの方向性は最初に決めているためその範疇であれば多少雑に作っても大きくハズレることはないだろう、という点からスピード重視で作業を進めています。

このゲームにおけるバトル要素は

・プレイヤーは攻めてくる敵の傾向をゲーム内情報から予測する
・予測をもとに必要そうなリソースを準備する
・敵が攻めてきた時にリソースが足りていれば勝利

このくらいのイメージで進めます。

ゲームは、プレイヤーが「うまくやってやった」と感じられるところが遊びになります。このDr.Holekingに照らしてみると、予測→準備 の部分がプレイヤーが工夫するところであり、うまくやってやった感を得られるところになっていくという想定です。

ゲーム内情報の提示はバトルシステム外の部分で切り分けられるのでいったん置いておき、今回はプレイヤーが準備したリソースを消費して戦闘を行う部分のシステムを作っていきます。

準備したリソースにダメージを与える

このゲームでプレイヤーが用意する主なリソースは以下の3つです。

1. 兵士 … 敵個体の強さに対して備える要素
2. 罠  … 敵の数に対して備える要素
3. 餌  … 敵の質や量を上昇させ、効率よく戦闘報酬を獲得する要素

強さに対して備える要素と、数に対して備える要素があります。なのでこれを活かせるシチュエーションとして、敵を最低でも2種類用意する必要があります。今は最低限の戦闘システムを実装して後々拡張していこうと思うので、まずは2種類の敵だけ設計します。

ミュータント
→強さを象徴する敵。主に兵士リソースへダメージ。

錯乱した群衆

→数を象徴する敵。主に罠リソースへダメージ。

(システム拡張メモ)
・プレイヤーが保持する餌リソース量に応じて出現する敵の種類が変化

プレイヤーがゲーム内で行動をすると、この2種類の敵がおそってきます。
その戦闘時にプレイヤーは兵士リソースを要求される傾向にあるのか、罠リソースを要求される傾向にあるのかを判断しながら、補充すべきリソースを考えます。

戦闘処理の流れ
・一定範囲でランダムな回数行動したら敵が襲来する
・攻めてきた敵の総量を決定
・総量の中でミュータントと群衆の割合を決定
・ミュータントと群衆の数をもとにダメージ量を計算
・ダメージ量をまかなえるだけのリソースを保持していれば勝利
・倒したミュータントと群衆の量に応じた報酬を獲得

ざっと組んでみる

さっそく組んでみました。
ランダムな回数を行動したのちに戦闘シーンへ遷移。攻めてくる敵の総量も一定の幅をもたせており、その中のミュータントや群衆の構成割合も都度異なるようになっています。
(動画内では「ぐんしゅう」しか現れてません…ランダムなのでそういうこともあります!)

この実装により「リソースを準備する→敵と戦う→戦闘結果を反映してゲームを続ける」という最低限のゲームサイクルがまわるようになりました!(敗北処理などは引き続き対応)

演出について

今の動画を見てもらうとわかるのですがかなり殺風景な画面ですよね。というのもこのゲーム開発ではUnityというツールを入れるだけでどこまでゲームが作れるのかを試したいという意図もあり、このゲームはビジュアル面の外部リソースを使わずUnityで生成できる図形やテキストですべてまかなおうと思っているためです。

そのためテキスト面での演出強化は必須でした。今回ためしにテキストを1文字ずつ表示されるようにしてみたところ、レトロなゲームログっぽい感じがしてとても良い結果になりました。

引き続き画的な制限の中で表現面については工夫をしていこうと思います。図形とテキストだけで構成されたゲーム画面も、システム面の実装が片付き次第ブラッシュアップしていきます。

まとめ

今回は戦闘システムの設計と実装についてを書きました。戦闘面でのバランスについては後ほどになりますが、「こうしようかな」という考えはあるのでまた実装時に触れたいと思います。

この自作ゲーム作業ですが、停滞を防ぐために区切りを決めています。次回の区切りは8月30日(日曜)。それまでに予定しているのは次の作業です。

・バトルシステムの構築
・掘削した結果をビジュアル化する

バトルシステムに関してはゲームサイクルに必要最低限な部分は揃いましたので、次は掘削した結果をビジュアル化するというもの。

冒頭で少し触れましたが、このゲームはポストアポカリプスな世界で基地を運営しながら地球の核を目指すゲームです。

そのためゲームシナリオを進める行為として地面の掘削があり、そういったプレイヤーの大目的を達成した際には気持ち良さを得られるようになっている必要があります。プレイヤーが掘削した深度をビジュアル化して、ゲームを継続するモチベーションとなるよう実装していきます。

この続きが気になる方はこちら!


ここまで読んでいただきありがとうございました!
よろしければコメント、スキ、フォローお願い致します!

Twitterもやっていますのでよろしければこちらでも絡んでいただけると嬉しいです。
https://twitter.com/shiyoumasayume


他にも色々な記事を書いています。

作成中のDr.Holekingについての全記事はこちら

プランナー向けの記事はこちら

はたらくクリエイターのためのプレイリストはこちら




よろしければサポートお願いします!いただいたサポートをモチベーションにまた活動を続けていきます