がむしゃらメモ

がむしゃらのメモ的な扱いのブログです

『逆襲ブタバトル』っていうゲームを作った話

 久しぶりにゲームを作ったので、その振り返りです。

 

unityroom.com

 

『逆襲ブタバトル』っていうゲームを作りました。

4つの攻撃をどの順番で出すか考えるターン制バトルです。

 

 

開発のはじまり

 ゲーム作りに行き詰まりを感じていたところ、ツイッターでちょくちょく交流させていただいている方から、「手触りに頼れないゲーム作ったら?ターン制バトルとか」と言われたのをきっかけにターン制バトルを作ってみることにしました。

これが2020年5月頃の話。

 

 

5ヶ月後…

 

 

なんの成果も!!得られませんでした!!*1

 

 

 

 流石にマズいと思い、「駄作でもいいから1本完成させよう!」と開き直り2週間*2ほどで作ったのが『逆襲ブタバトル』です。

 

 

大まかな企画経緯

 『リトルタウンヒーロー』というターン制バトルゲームが好きなので、似たような感覚を呼び起こすゲームを作りたいなあと漠然と考えていました。『リトルタウンヒーロー』では一つの行動に攻撃力と耐久力という二つの値が設定されているのですが、これを一つの値に統合してもっとシンプルなバトルにしてみたいなあと考えました。

とはいえ、『リトルタウンヒーロー』は色んな要素が組み合わさって出来ている上に、巨大なゲームなので、簡単に真似を出来るとは考えていませんでした。あくまで「変数一つだけのバトル」を発想するきっかけって話ですね。

 

 「変数一つだけのバトル」をネタにゲームを作ろうと考えるわけですが、「持っている値が大きい方が勝つ」問題が浮かびます。まあ当たり前の話ですね。

じゃあどうにかして「プレイヤーが工夫することで値を大きくし、最終的に相手の値を上回れる」ようなゲームにしようと考えました。そこで「逆襲システム」を思い付きました。

 

「逆襲システム」、受けたダメージをそっくりそのまま相手にお返しする仕組みです。この仕組みによって変数一つだけのやり取りでも展開に変化が生まれます。いわば「肉を斬らせて骨を断つ」仕組みです。なので先を読んで行動し、それが上手くいったときの「してやったり感」を味わえそうでした。また、似たようなシステムは世にあるゲームでも見かけそうなものです。そうした世のゲームが既に作り上げた文脈に乗っかることで、説明コストおよびプレイヤーの学習コストを下げられそうなのも良い点でした。

ただし、「逆襲システム」だけではまだ不十分です。これだけでは結局、死ぬ直前まで自分のHPを消費しつつ攻撃するだけのゲームになります。もう一つ何かが必要ということで、「ブレイクシステム」を考えました。

 

「ブレイクシステム」、相手と同じ攻撃力だったときにブレイクが発生し、ブレイクポイントを1つ獲得。ターン終了時に得たブレイクポイントを消費して攻撃力を+1する仕組みです。このシステムの導入によって、逆襲システムの活かし方に幅が生まれます。また、値を「揃える」のは少しだけですが生理的な快感があると考えています。

 

その他の仕組みとして、「1ターン4手」が挙げられますね。これは5手だと脳内シミュレーションがあまりにも困難すぎる、3手だと逆に容易すぎる、ということで4手になりました。*3

 

というわけで、バトルシステムが完成しました。めでたしめでたし。

 

と、なんかあっさり完成させられたみたいに書いてみましたが、最初は「ブレイクシステム」や「敵の攻撃力」なんかが違いました。その辺りについても少しだけ、ざっくりと触れておきます。

敵は「毎ターンランダムで攻撃力が決定される」仕組みでした。これは計画を立てるのが難しく、特に逆襲システムとの相性が悪かったです。

最初のブレイクシステムは「攻撃力が同値ならブレイクが発生」までは同じでしたが、「ターン終了時にポイントを消費して攻撃力アップ」は存在せず、

  • 戦闘中、累計で溜まっていく
  • 攻撃力対決で上回った値+ブレイクポイント = 敵に与えるダメージ
  • 戦闘終了後に溜まったポイントを消費して攻撃力を強化

という仕組みでした。戦闘終了後強化の仕組み*4は、前述の敵の仕様と組み合わせた場合、敵によって強化具合に著しい差が生じる可能性があるのが問題でした。戦闘中に強化ポイントを稼ぐのと、ダメージが増幅していく仕組みは面白いところもあるので、どこかでまた再挑戦してみたいところ。

 

 

 ここまで書いてみて、そもそもこのゲームって何を目的としてたのかを書いていないことに気付きました。書いてみます。

  • 一手一手深く考える濃密なターン制バトルゲーム
  • 敵の攻撃をギリギリで耐え凌ぐ死闘感
  • 敵の隙を見つけて一気呵成に攻める爽快感

この辺りが実現したかったものです。が…正直あまり上手くいっていませんね。結果的に出来たものは

  • 頭の中で長い計算をするパズルゲーム
  • 計算が解ける気持ち良さ

でした。死闘感や爽快感はあまり感じません…死闘感を感じないのは、ランダム要素が無く、逆襲システムの存在から「ピンチになることが予定調和」だからかもしれません。爽快感に関しても、やはり予定調和だから。あとは演出力不足でしょうか。

 

 

実装部分について

ざっと振り返ります。

 

・プログラミング

 →大体の挙動をMainSystemっていうスクリプトに3000行くらい書いてゴリ押しました。流石に馬鹿すぎるのでもうちょっとプログラミング勉強しないと…

 

・グラフィック

 →戦いの火ブタっていう洒落を思い付いたので、ブタにしました。正直、戦うのはなんでも良かったので。ただ、逆襲システムやブレイクシステムがもっと直感的に理解出来るようなキャラクターを戦わせれば、プレイヤーの学習コストを下げられた可能性があります。

 →枠をゲーム内に作り、ゲーム画面とサイトの背景の境目を生まないようにしました。以前からやってみたかったことでしたが、これはまあまあ良い感じ。今後も使いたいかも。

 →タイトルロゴ、どうも自分は『ゼルダの伝説』や『ワンダと巨像』みたいなぶっとい字幅のやつが好きらしいことを最近自覚したので自分でも作ってみました。わりと良かった。

 

・演出

 →初めはTimelineとAnimatorを使おうとしていたのですが、分からなくて敗北。

 →代わりにDoTweenを使いました。神でした。コード3000行書くはめになったけどな!*5

 

サウンド

 →効果音はほとんど以前作った物を流用しました。作るモチベーションが湧かなかった。

 →BGMは起伏が多いと考えるのに邪魔かなと考え、平坦なメロディにしました。ただ、平坦すぎた気がします。BGMのクオリティの低さがゲーム全体の質を下げることになっているので、一度どこかでがっつり勉強するか、諦めてフリー素材使うかしたいところですね。毎回こう言っているうちにまた次のゲーム制作が始まり、拙い作曲をしてしまうわけですが…

 

・UI

 →難しかった。プレイヤーにやってほしいこと/見てほしいところを伝えるの、難しいですね…ここは改めて色んなゲームのUIを観察していく必要がありそう。

 

・ゲームバランス

 →Excelで素早くテストプレイをしていました。数値のやり取りをするだけなので、Excelが活用できるんですね。こんなゲーム開発方法は初めてだったのでちょっと面白かった。

 →敵のHPは基本的に20ですが、どうやっても20減らせないような敵はHPを減らしました*6。基本的にギリギリで勝てるように調整しました。死闘感を出したかったからですね。

 

 

反省点

  • ゲームの遊び方についての説明をゲーム内で完結させられていない
  • どうすればゲームが進行するのか分かりづらい
  • 敵の攻撃順番が初見では分からない
  • 特にブレイクポイントを消費して攻撃力を+1するのが大変分かりづらい
  • 見通しが悪すぎる(脳内で戦果を並べて比較検討できない
  • 勝ち確定になったときに作業感が強すぎる
  • 全体的に爽快感が皆無

 うん。多いな!

 

・ゲームの遊び方についての説明をゲーム内で完結させられていない

 これは大問題ですね。チュートリアル、あるいは遊び方みたいなものを用意すべきでした…が、ちょっと気力が尽きていました。いつもの悪い癖が出ましたね。UIの不出来さも相まって分かりづらい箇所がたくさんあると思いますが、特に敵の攻撃順番、ブレイクポイントを消費して攻撃力を+1するところが分かりにくくなってしまっています。ていうかブレイクってなんだよって話になりますね。

 

・見通しが悪すぎる(脳内で戦果を並べて比較検討できない

 『Into the Breach』がいかに優れているか分かりましたね。『逆襲ブタバトル』の1ターン毎の戦果は

  • 受けたダメージ
  • 与えたダメージ
  • ブレイク回数
  • 次のターンに持ち越す逆襲ポイント

という4単位で評価できます。これを記憶してじゃあ別の戦法ではこうしてこうやってこうなった戦果が受けたダメージ8で…って出来るかこんなん。そのくせして、このゲームでは1ターン目で勝ち負けが決まることが結構あるので…致命的だわ。

特に、全ての項目が数字でしかないというのが問題な気がします。脳内で数字を並べたときにどれが何の数字だったか記憶できません。またターン中の手順を考える際もやはり数字のみを頭の中でやり取りするので、これも記憶の難しさに拍車を掛けています。

検討・比較が困難すぎました。イメージングしやすい要素を持ち込む。また、人間が脳内シミュレーション出来る/記憶出来る、ちょうどいい要素数を意識しておく必要がありそうです。*7

 

・勝ち確定になったときに作業感が強すぎる

 これも反省ポイント。上手く見せれば、思考からの解放ということで気持ち良くなれるはずなのにそこを適当にやってしまった気がします。プログラミングで勝ち確定を検知する方法がいまいちイメージ出来なかったのと、そのときの演出をどうするか考えると完成が延びてしまいそうだったので一旦置いていました。

結局は早期完成を優先させたとはいえ、手を抜いてはいけないところが確実に存在するというのは意識しておかなければならない。コンセプト確認を怠るでない…

 

・全体的に爽快感が皆無

 これはどうしたら良いのか分からんね…うーん。これは想像にすぎませんが「こうすればいいんじゃないか?→上手くいった」だけでは弱いんですね*8。その前段階で、「あっもしかして!」という発見/閃きが必要なんじゃないかと思っています。「あっもしかして!→こうすればいいんじゃないか?→上手くいった!」で初めて興奮するんじゃないかという気がします。

しかしどうすれば閃き/発見の瞬間を作れるのか…

 

 

明確に言語化できないけどぼんやりと考えていることメモ

・自分で面白いところ、駄目なところが分かっているゲームを公開する意味があるのか?

 →同意を得るために公開する。このゲーム、ここが面白いけどここがダメだよね?

・ルールが分かれば敵の数字だけで分かるものをわざわざ作る意味はあったのか?

 →ルールを伝えるためにデジタルゲーム化した、とも言える

・1回説明すれば分かること
 ・自分のターンではアクションを選択する、など
 →これはチュートリアルで説明するのが理想的
  →1回でいい,何回も遊ぶ上では省きたい情報が何かを明確にする
 ・『Slay the Spire』形式もアリ
 ・テキストを洗練させれば何回でも表示するのはアリなはず

・画面がごちゃつくかどうか?
・必要な情報をピックアップする→必要な画面サイズを算出する

・テンポvs分かりやすさ

・根っこのゲームシステム/ゲームデザインが一番大事
 →直感的で分かりやすいか?処理が少なく済むか?
 →ダメージ処理+αが基本のゲームだと大変
 →ダメージ処理のみだと分かりやすい
・既存ゲームの文脈に乗っかる
 ・説明コスト・学習コストの両面が下げられる

・数字だけでなく、ゲージ表現などもやはり重要

 →数字ではなく、イメージに頼る

 →数字は正確だが、普遍的すぎるのでイメージが難しい

 

-----------------------------------------------------------------------------------------

ここまでゲーム公開直後に書きました

-----------------------------------------------------------------------------------------

 

反応

 ミニゲーム公開しましたっていうツイートだけで遊んでくれた上に感想くれる方までいてホント、ありがたかったです。ありがとうございます…!

 

上述した自分の考えと一致する感想もあれば、以下のような想定外の意見もありました。

  • 敵の攻撃パターンを共有できる機能あると良さそう
  • ダメージを受けて増加した攻撃力とは別に基本攻撃力も表示してほしい
  • クリアの概念が欲しい
  • プレイヤーが青で敵が赤のイメージだから混乱した
  • スマホゲーにあると良さそう

いずれも大変考えさせられる感想でした。ありがとうございます。

 

ここらの文章を書いている最中に『リトルタウンヒーロー』のアートディレクターさんが『逆襲ブタバトル』を遊ぶって言い出してめちゃくちゃビビりました。もともとツイッターで相互フォローの関係ではあったんですが、いざ反応されるとビビりますね。

 

 

おわりに

 駄作でもいいから1本作ろうと覚悟を決めるとやっぱり強いですね。久しぶりにゲームを作れました。そして遊んでもらえると作業の日々が報われて、もうどうにもたまらない気持ちになりますね。遊んで下さった方々、本当にありがとうございました。

 

次は

  • 進行がある(始まりと終わりと中間がある
  • 運要素マシマシ(ダイスロールとかしてみたい

この辺をテーマに作りたいですね。悩ましさを感じるようなターン制のゲームを。いつか作れるといいなあ。

 

 

おしまい

 

*1:このネタ、当事者になると笑えない

*2:グラフィック,サウンド,演出の実装時間

*3:ただし4手の場合、4手毎の比較はやはり困難でした

*4:最初は進行があるゲームにするつもりでした

*5:どうみてもプログラミング力が足りないせいである

*6:ざっと確認したので、もしかしたら倒せない敵がいるかも…

*7:一手戻す、みたいなプログラミング出来ないしね…

*8:上手く作ったとしても、じわ~っと面白いって感じになる。それはそれで悪くないけど