【Rustのまほう2】#18 ゲームデザインの簡略化

しばらくプログラミングの話が続いたので、今回はゲームデザインの話をしていきます。といっても語れるほどゲームデザインに詳しくはないのですが……。以下はお店の実装をした動画です。

<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">お店でのお買い物を実装しました<br>商品を持ち逃げしようとしたら大変なことになるアレもやろうかな……？<a href="https://twitter.com/hashtag/%E3%82%B2%E3%83%BC%E3%83%A0%E5%88%B6%E4%BD%9C?src=hash&amp;ref_src=twsrc%5Etfw">#ゲーム制作</a> <a href="https://t.co/vGAwCK7T67">pic.twitter.com/vGAwCK7T67</a></p>&mdash; Cubbit (@cubbit2) <a href="https://twitter.com/cubbit2/status/1868956848260628995?ref_src=twsrc%5Etfw">December 17, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# マナ管理の廃止

今回私が作っているゲームでは、なるべく操作やシステムが簡単になるようにと気を付けています。当初は「マナ」、つまり残存魔力の概念があって、魔法を使うとマナが消費し、枯渇すると使えなくなる、という仕様がありました。でも果たしてマナが枯渇して何もできなくなってプレイヤーはそれが楽しいのか？プレイヤーはマナ管理をしたいのか？と思い直して、マナの概念自体を取り払いました。今はマウスボタンを押せば撃ち放題です。

そうなると今度は、**敵がいようがいまいが、魔法が打ち放題ならずっと打ち続けたほうが強い**、ということになってしまいます。そうなるとマウスクリックで攻撃という操作も不要なのではと思われますし、実際そうやって極限まで操作を減らしたのがヴァンパイアサバイバーズなのだと思います(この記事の読者がゲームに詳しいのかわかりませんが、ちなみにヴァンパイアサバイバーズは「ヴァンサバライク」というジャンルを新たに確立したくらいの大ヒットゲームです)。

https://store.steampowered.com/app/1794680/Vampire_Survivors/?l=japanese

ヴァンパイアサバイバーズは操作を極限まで簡略化し、探索要素も無くし、キャラ強化だけに特化したデザインで成功を収めました。でも私はもうちょっと自分の手で戦っている感覚が欲しくて、相手を狙ってタイミングよく撃つ、ということは残したいと思いました。それで、魔法を撃ち続けるペナルティとして、魔法を発射している最中は移動速度が低下する、という仕組みにしました。簡単でわかりやすいですが、攻撃と回避で緩急をつけやすいかと思います。

ローグライクゲームではいわゆるリソース管理がゲームの大きな要素になっていて、体力、マナなどのほか、空腹度やインベントリの容量の制約なんかもあります。食事に気を遣うのもロールプレイ感があって面白いと思いますし、これらをうまく調整しながらダンジョンを探索するのがローグライクのキモではあるのですが、制約が多くて面倒に感じることもあります。せっかくいいアイテムを拾っても、インベントリがいっぱいで泣く泣く捨てて帰る、なんてのもよくありますが、それが楽しいのかというとちょっと違う気もします。インベントリが大きすぎると回復薬なんかを大量に持ち込めてゲームの難易度が下がりすぎてしまう可能性もありますが、そのあたりも別のゲームデザインで回避できる気がします。そのため、今回私の作っているゲームでは、その種の概念は可能な限り少なくなるようにしています。




# インタラクションの簡略化

古典的なローグライクゲームの多くはキーボード前提で設計されていて、多くのキーに操作が割り当てられており、慣れれば様々な機能にすぐにアクセスできるので便利なのですが、初心者にとっては覚えるのが大変です。私の作るゲームは大作ではないので、プレイヤーが腰を据えてじっくり操作を覚えるということは想定されていませんし、とにかく簡単に動かせる必要があります。

今回はゲームでは使うキーはなるべく少なくなるようにしています。WASDキーで移動、マウスクリックで攻撃、などはほかのゲームと同様です。アイテムを拾う操作は、最初はアイテムに近づいてEキーを押すという操作だったのですが、これだとWASDキーから指を伸ばすのが面倒ですし、操作に別のキーを使うならプレイヤーへの説明もしなければならなくなります。それでこれは廃止して、アイテムに触れるだけで拾う仕様にしました。

そうなると、今度は狭い通路にアイテムが落ちているときに、**不要なアイテムでもすべて拾ってインベントリを圧迫してしまう**、という問題もあります。そこで、落ちているアイテムを攻撃して吹き飛ばしたり破壊できるようにしました。これには先述のマナ廃止にも関係していて、魔法を雑に打ち続けると、地面に落ちているアイテムが流れ弾にあたって吹き飛んだり壊れたりします。せっかくのアイテムが入手できなくなるのを避けるためには、適度に調整して魔法を撃つ必要が出てくるというわけです。






# 扉の簡略化

他に簡略化した個所として、扉があります。次のフロアに進むためのギミックとして扉を設置すると、何かキーを押して扉を開けるという操作が増えてしまいますし、ワープゲートに飛び込むと即座に移動できる仕組みだと、攻撃で吹き飛ばされたときにうっかりゲートに飛び込んで移動してしまう、という事故も起きそうです（それはそれで面白そうですが）。また、**すぐに次のフロアに移動できてしまうと、敵をすべて回避してゲートに飛び込むことで容易にフロアを突破できてしまう**可能性があります。実際、私が好きなローグライクゲームのNoitaでは、ダンジョンを飛び降りたりランダムワープを繰り返したりすると、数分でラスボスまで到達できるというスピードランの荒業があります。

そこで、扉を実装する代わりに移動用の魔法陣を設置する、という形にしています。そして魔法陣の上に数秒間乗り続けると、次のフロアへ転移する仕組みです。これにより、操作ミスで間違って次のフロアで進んでしまうという事故が起きにくいですし、敵を回避してフロアを駆け抜けるということもしにくくなります。もし敵を回避して次のフロアに進もうとしても、魔法陣の上で数秒間とどまらなければならず、そのあいだに敵に囲まれて袋叩きにされたり、攻撃で吹き飛ばされて魔法陣からはみ出してしまう、というわけです。しかし十分に強ければフロアを強引に突破することも不可能でないようにしています。

また魔法陣には、現在のフロアから前のフロアへ戻るのを防止する、という役目もあります。ローグライクゲームでは前のフロアに戻れないものが多いのですが、これは何度もフロアを往復してキャラクターをじっくり育成できるとゲームが大味になってしまうからだと思われます。ローグライクゲームだと、**下り階段はあっても上り階段がない**（？）という不自然な演出になっているものが多いです。Noitaだと上のフロアから下のフロアへは飛び降りられるが下からは通常のジャンプ力では上へ届かない、という仕組みになっています。Enter the Gungeonでは一方通行のエレベータで降りる演出ですね。まだ準備が不十分なのに先に進むしかない、でも先に進むと敵がどんどん強くなる、という緊迫感がローグライクの面白さのひとつです。






# お店の操作の簡略化

お店でアイテムを買う操作もなるべく簡略化して、移動キーだけでほぼ完結するようになりました。落ちているアイテムに触れて拾い、あとは店主に近づけば自動的に会話になり、未精算の品物を所持していれば清算します。お店に商品が落ちていて勝手に拾うのは風来のシレンなんかでも同様ですね。私は風来のシレンをやったことはないのですが、最近新作が出たらしいです。

https://store.steampowered.com/app/2178480/_6/

RPGでよくある商品一覧から選ぶパターンも考えたのですが、実際に拾えて試し打ちできたりすると便利ですしね。


 
# ヒットポイントも簡略化する？

というわけで、まだ開発はぜんぜん途中であるにも関わらず、すでにいろんな仕様を削り始めています。次に簡略化を検討しているのはヒットポイントです。今は体力が100ポイントくらいになって、1回の被弾で10ダメージ、くらいになっていますが、これを簡略化して、1回の被弾はいつも1ダメージ、5回当たったらゲームオーバー、みたいな単純さでもいい気がしてきました。魔法の攻撃力の調整もけっこう大変ですし、単純なほうが開発も楽です。でもおおざっぱすぎると、魔法を強化していったときにインフレの幅が狭くなってしまって、悪い意味で小さく収まったゲームになってしまいそうです。魔法を超強化したら100万ダメージになってラスボスも一撃！みたいなこともできたほうが面白いわけで、どうするのがいいか検討中です。



# ゲームパッド操作を省略する？

私自身はマウスやキーボードよりゲームパッドでプレイするほうが好きです。本作もゲームパッドで十分操作できるデザインなのですが、先日の Bevy 0.15 アップデートでゲームパッドまわりのAPIが大きく変更されたこともあって、今のところゲームパッド操作の実装は中断しています。

また、Bevy の UI まわりは機能不足で、マウスとゲームパッドの両方に対応したUIを作るのがかなり大変です。そういう都合もあってゲームパッドは後回しになっていて、最悪省略することも検討しています。もしやるとしてもたぶん実装は一番最後になると思います。いや本当はゲームパッドでプレイしたいのですが……。