クイーンズ: システム設計紹介 スキル編
今回は作成中のゲーム:クイーンズのスキルシステムの紹介記事です!
ゲームシステム紹介の観点もありますが、どちらかというとコーディング・設計寄りの内容になります。
可愛さ成分が全然足りなくなるので、今回はコノハちゃんにコメントをお願いしています。よろしくね
頼りになりますね。遠慮はいらなさそうです。
クリエイターさん、特にプログラマーとして独自にゲームシステムを設計している方に、色々な設計パターンの一つとしてこんなのがあるんだ~ というのを持ち帰っていただければ良いな、と思って書いています。
(解説のノイズになるので、今回の記事ではコノハの妖術きつねロールプレイは抑えめにしてもらっています)
スキルシステム
自分のターン中、いつでも何回でもスキルを使えます。
コストとなるMPは以下の手段で増やすことができます。
- カードを1枚出すと1増加
- ターン終了時に余ったカード * 5 増加
ものによっては複数回使えるものもあります。
装備
スキルは事前に装備してゲームに持ち込みます。
3つまで、どんなことをやりたいかに合わせて自由に戦略を立てましょう。
遊び部分の設計思想
- 引きムラに対抗する手段の提供
- 自分の意志でゲームを壊す体験の提供
- 攻略パターンの組み合わせ数増加
- ステージのバリエーション創出
を意図してこの要素を追加しています。
最強コンボを見つけてもらってもよし、対戦相手のやってくることに特化してもよし、「100回に1回の負け」をなくしてもらってもよし、です。
対戦相手もスキルを使えるようにしているので、ステージのバリエーションを作るのにも貢献しています。
データ構造設計
ここからはゲームの作り方観点の解説です。
自作のデータ入稿システムを作っており、スプレッドシートにテーブル形式でスキルデータを入力しています。
ひとつのスキルが成立するために必要な
- 名前
- アイコン画像名
- 消費MP
- 効果内容
- 使用可能回数
などなど、すべての情報をこのシート1枚に押し込んで管理しています。
工夫しているのは「効果内容」を 効果キー 効果量 対象が自分か敵か の3要素で表現しているのと、その「効果内容」を1スキルに2つまで設定できるようにしている点です。
「回復」の効果キー addHp に対応する処理をひとつ作ってみると...
- 自分を全回復 (addHp / 999 / 自分)
- 3回まで使える小回復 (addHp / 10 / 自分)(limit_count: 3)
- 相手を回復させちゃうけど自分も回復(addHp / 10 / 自分)(addHp / 10 / 相手)
とすることで、ソースコードは一つしか処理を書いていないのに複数のスキル効果を表現できます。
スキルの数に対してスキル処理にかけているソースコード量は相当小さく抑えられており、表現力も高いですがそれ以上にデバッグがやりやすいのがメリットですね。
実装設計
スプレッドシートの内容はJSON 形式で吐き出せるようにしていて、これをゲームの起動処理時に読み込んでいます。
効果処理
スキル処理内容は「効果名の関数を呼び出す」という激激シンプルな作りにしていて、それぞれの効果処理ごとにどんなことでも書くことができます。
おたのしみに!
...とまあ、ここまで解説してしまったんですが、まだまだ全体のバランス調整はこれから行う予定です。
クイーンズの開発は毎週何かしらこうして開発状況をお伝えするようにしておりますので、フォローして完成を楽しみにお待ち下さいね。