短編RPG制作 – その3 システム – ステータスの改造

バットマン vs スーパーマン 公開日に見てきました。
アクション映画は通勤帰りの平日ナイターに限る。疲れて熟睡できます。
ノーランバットマンとはまた違った香りがして楽しめました。


承前

当分の間、本カテゴリ(“短編RPG制作”)の記事は、ゲームシステムなど、中身の話になるので、、
絵的には地味な更新になると思います。

絵や音については、開発後半になると思います。。が、よろしければおつきあいくださいませ。


さて、ウディタの基本的な構造をもっと知っておこうと思います。
今回の作品は単純化を目指しているので、まずは目に付きやすい、
ステータスパラメータの整理から始めました。

基本システムでは、キャラクターのステータスとして
以下の8つのパラメータが有り、バトルでのダメージ値が算出されます。
 (HP/SPといった消耗ステータスは除きます。)

(1) 攻撃力
(2) 防御力
(3) 敏捷性
(4) 精神攻撃
(5) 精神防御
(6) 命中率[%]
(7) 回避率[%]
(8) クリティカル[%]

このうち、(4)~(8)に関しては、
普段RPGをプレイしないようなプレイヤーにとっては、とっつきにくいかも知れません。
精神攻撃と精神防御のトレードオフを楽しむ戦略も有ると思いますが、
今回のゲームでは、もっと違う所に戦略性のフォーカスを当てたいです。

そこで今回は、以下のようなシンプルな構成に再構築したいと思います。

(1) 攻撃力(そのまま)
(2) 防御力(そのまま)
(A) [NEW] すばやさ(≒敏捷性)
(B) [NEW] かしこさ
(C) [NEW] 運の良さ

「(3)~(8)」を、「(A)~(C)」にマッピングするイメージです。

思いつきなので、詳細は、作っているうちに変わるかもしれない。

さて、この「変わるかもしれない」というのが重要かつ厄介で、
将来的には「魅力」などのパラメータも入れたくなるかもしれません。

さらに、この改造はそうそう簡単ではありません。
基本システムのDBで、(1)~(8)の値、または増分をワンセットで格納している個所は、
10か所に有ります(下図)。
それらが必要に応じて同期、ミラーリングされて動作する仕組みになっています。

ステータスを保持しているDB

ステータスを保持しているDB

現状、ステータスの種類が増減するたびに、上記のDBを設定/参照している処理の
全てに手が入る事になります。
今後、ずっとそのメンテナンスを続けるのは骨が折れます。

というわけで、まずは今の仕様を一切変えずに、改造をしやすくする仕組みに作り替えたいと思います。
いわゆる、リファクタリングです。

リファクタリングは、オブジェクト指向を駆使すると非常に強力なのですが、
ウディタは、現段階ではカプセル化を初めとするオブジェクト指向的機能をサポートしていないので、
今の仕組みで、やってみたいと思います。
今のウディタでも、工夫次第で、改造がだいぶ楽になります。

また、広く浅く基本システム全体を触ることになるだろうので、勉強にもなるだろう、という目論見です。

リファクタリングに興味のある方は、
Martin Fowlerの名著「リファクタリング」を一読してみると良いと思います。
※この書籍は、オブジェクト指向設計が前提です。

リファクタリングを使いこなせば、大きなプログラムを闇雲に改造して
破綻するような危険性が減ると思います。

ではまた。続きます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です