面白いゲームとは(3) 【黒猫ミカエルと最後の祝福】開発体験記

はじめに

もし、ドラクエの最初のスライムがいきなりラスボス並みに強かったら 。
あるいは、最初の町から次の町へ向かう道が、迷路のように複雑すぎて二度と戻れなかったら。

そんな“理不尽な世界”では、どんな名作ゲームでも一瞬でクソゲーになってしまいます。

今回の体験は、まさにその「クソゲーを避けるための土台作り」、
つまり パラメータ設定・ゲームバランス調整・マップデザインがどれほど重要かを実感できる内容でした。

このあと、実際に私たちがどのようにゲームの流れを考え、
どんなポイントに注意して設計を進めたのかを、
順を追って説明していきます。

 

ゲームシステムの面白さを引き出すために

パラメータ設定


キャラや敵、アイテムなどに
具体的な数値を与える作業

本作のゲーム(黒猫ミカエル)の場合

ミカエル・アントン・サラのHP(体力)・攻撃力 防御力など

敵キャラのHP(体力)・攻撃力 防御力など

アイテムの効果 


攻撃力と防御力の数値バランスが適切かどうか、必殺技・魔法攻撃・通常攻撃の威力が過不足なく調整されているかを、
ダメージ計算式を用いて理論的に検証し、全体のバランスを確認しました。この時点で敵キャラが強すぎたり、
味方キャラが強すぎる場合は、調整しました。

 

 

ゲームバランス調整

パラメータ設定で決めた数値を実際にプレイして調整する作業

今回のゲーム開発で行ったこと
・ボードゲームに起こしてゲームをプレイ
 ⇒結果
  敵キャラの防御力が高く、なかなか倒せず、
想定していたプレイ時間を大幅に超えてしまいました。

・ダメージ計算機でシミュレーションする
 AIがプロンプト(指示文)を元に自動でアプリケーションを作成できる
サイトがあり、そのサイトでダメージ計算機を作成しました。

▲ダメージ計算アプリ

⇒ ところが、このダメージ計算機には思わぬ弱点がありました。
アプリのUI(画面)上では キャラの体力や魔力といった大事なステータスが一切見えないんです。
まるで、料理番組を見ているのに「調味料は…企業秘密です!」と言われてしまうような状態。

 それじゃ味の調整(=ダメージのバランス調整)なんてできるわけがありません。
さらに、新しい属性や技を追加しようとしても、元の仕組みが対応していないため、数値の比較がとても難しい状況に。
実はスクリプトという“裏側の魔法”を書き足せば解決できるのですが、

筆者にはプログラムの知識がほとんどなく、しかもその魔法を使うには 有料版が必要
そんなこんなで、泣く泣くこのダメージ計算機は“ボツ”という判断になりました。

 

その後、バランス調整を引き継いだEOのOです。
今回は比較的データの調整が行いやすいExcelで計算機を作成して調整しました。

・確定数
ダメージのバランス調整をする上で最も考慮したのはポケモン用語でいうところの確定数、つまり何回の攻撃で倒せる、
倒されるかという点です。何故かと言うと、この確定数のバランスさえ良ければどんな計算式を使おうが
1億を超えるようなステータスを使おうが基本的にバランスが良い調整となるからです。

 

・ダメージ計算式
今回のダメージ計算式は

(攻撃側の攻撃×術技倍率+術技威力)×50/(防御側の防御+50)×武器倍率×属性耐性×クリティカル×乱数

という式にしました。(変更する可能性あり)

このように術技によるダメージを攻撃力の影響を受ける乗算の術技倍率と攻撃力の影響を受けない加算の術技威力に分けることで技の特徴を増やすことが出来ます。
防御側の計算式は与ダメージが1以下になる事をある程度防ぐため、減算ではなく1以下の乗算でダメージを軽減する仕組みにしました。

実際に50/(防御側の防御+50)という計算式に防御を代入してみると、防御10で0.83、防御20で0.71、防御50で0.50となり、乗算でダメージを軽減できていることがわかります。

 

・バランス調整
今回バランス調整を引き継いだ際にキャラクターのステータスやレベルアップ時のステータス上昇量などが設定されていたので
基本的に操作キャラクターのステータスをあまり変更せず、操作キャラクターのステータスを基準としてダメージ計算式、
敵キャラクター、装備、スキルの調整を行いました。

 

 

マップデザイン

プレイヤーが歩く空間=ゲーム世界の設計

内容
・地形の配置(道、山、谷、障害物)
地形の配置について最初は1マスの幅の道で迷路を作成しようとしたのですが、移動がスムーズに出来なくなってしまったので基本的に道を3~5マスの幅にするようにしました。
また、最初の森から道が複雑だと最序盤で迷子になりかねないのでゲーム序盤の道をある程度単純化し、ゲームが後半になるにつれて道が複雑になるような調整をしました。

・マップのサイズ
マップのサイズは基本的に64×64や63×63(開発中の移動速度でマップの上端から下端まで約7秒)で設計しました。
ゲーム中の視界は約25×19、つまり、マップのサイズは横視界2.56個分、縦視界約3.37個分です。
曲がり道で移動時間を更に増やすことが出来るのでこの位が良いバランスかなと思います。

 

調整のために開発したツール

今回扱うマップデータはこのようになっています
(作成中のため、完成版は更に変数が増える)。

この中でマップチップでマップを自動生成するのがtilesなのですが、
64×64=4096マスで流石にデータ量が多いですね、多いです。

こんなの手打ちで数字を打ってたら日が暮れます。というか自分だったら
数字の手打ちで完成なんて無理だと思います。

という訳でChatGPTを使ってこのようなツールを作成しました。

使い方はほぼ見た目通りです。右のパレットで塗るマップチップを選択して左のマップに左ドラッグで塗る。
右ドラッグでマップのスクロール、マウスホイールでマップの拡大縮小などマップ作成に必要な基本的な機能を備えています。
4日程度でツールが完成したのでAIって便利ですね。

 

最後に

今回の取り組みを通して、パラメータ設定・ゲームバランス調整・マップデザインの重要性を改めて深く実感することができました。
パラメータ設定ではキャラクターやアイテムの数値を管理し、ゲームバランス調整ではボードゲーム化やダメージ計算機を使ったシミュレーションを通して、程よい難易度感を保つための調整を行いました。
さらにマップデザインでは、プレイヤーを退屈させないために何をどこに配置するかを慎重に考える必要がありました。
どれか一つでも欠ければ、ゲーム体験は一気に崩れてしまいます。

この一連の作業を経験したことで、普段何気なく遊んでいるゲームを裏で支えている開発者の努力や凄さを強く感じました。
そして、ゲームを“遊ぶだけ”でなく“作る側”に回ることで、より一層ゲームというものの面白さと奥深さを知る貴重な機会となりました。