「ゲームプログラミング/バランス調整」の版間の差分

削除された内容 追加された内容
計算ミスを修正。
385 行
 
 
なので、大まかな解決策として、下記のような幾つかの案が考えられ
:・1つの関数だけでなく複数の関数を連結する方式
:・2次関数や3次関数など、増加率が1次関数を超えるが、しか指数関数よりかは増加スピードの小さい関数を使う方式
394 行
 
ゲーム序盤は、作者が直接、基準の能力値をプログラムに手入力しておき、ゲーム中盤からは数式による能力値に切り替えるなど、です。
 
 
 
401 ⟶ 400行目:
解決策よりも先に、まず知って置くべき重要知識が、いくつか、あります。
 
それは、現在のネット全盛の時代、調整によるバージョンアップの際、能力値も再計算する必要がある生じやすいという事です。
 
現代では、1980年代や90年代のファミコンやスーファミのような1回だけ販売すれば更新しなくて済んだ時代とは、もはや違うのです。
 
 
たとえば、昔のゲームでは、レベルアップの際の能力上昇の幅がランダム(偶然)なゲームがありました。
407 ⟶ 409行目:
しかし現在のネット環境のゲームにおいて、こういうランダムな能力上昇のレベルアップシステムを作ると、バージョンアップ時の管理が、かなりメンドウです。
 
なぜなら、もしランダムな能力上昇だと、もし調整で能力値に調整が入った場合に、いまではバージョンアップの再計算のさい、更新後の数値がランダムに決まってしまうからです。
:もし、再計算をしない方式だとすると、能力値にバグが入った場合などに、後方互換性などの問題で、かなり面倒なことになるからです。
:このため、バグ修正時などに再計算の必要があります。
 
つまり、もし完全にレベルアップ能力上昇のランダムな能力上昇システムを作ってしまうと、たとえば、バグ修正時にver1.00からver1.01に更新するのをセーブデータを3個つくって、3回別々に更新を試してみて、3種類とも同じver1.01であるにもかかわらずに更新後の数値の能力値が異なっているような事態になってしまうので、奇妙です。
 
修正したバグが能力値に関するバグである場合、結果がランダムでは、はたしてバグが本当に治ったかどうかの検証も困難になります。
 
なので、たといプレイヤーから見たらランダムな能力上昇値に見えても、プログラム内部では能力曲線は(ランダムではなく)確定値、確定した数式でなければなりません。
 
:どうしてもランダム上昇にしたい場合、デバッグがそのぶん困難になる事を覚悟した上で、決断する事。レベル管理に限らず、デバッグ/テストプレイでは基本的にランダム性の高いシステムであるほど、デバッグ等は困難になります。
とにかく、バージョンアップの再計算の際、確定した結果になるようにしなければ、なりません。
 
 
とにかく、バージョンアップの再計算の際、確定した結果になるようにしなければ、なりません。
現代では、1980年代や90年代のファミコンやスーファミのような1回だけ販売すれば更新しなくて済んだ時代とは、もはや違うのです。
 
 
422 ⟶ 428行目:
 
 
なお、ゲーム中のいつのタイミングで能力値を再計算をするのが作者的にラクかというと、セーブデータのロード時に再計算してしまうのが、いちばん簡単で管理もラクでしょう
 
実際、たとえばアクションRPGなどのフリーゲームなどをデータ改造でメモリ書き換えなどの改造をしてみて能力値を書き換えてみても、ロード時などに、すぐに能力が現在レベルの数値をもとに再計算されてしまうフリー作品も、いくつかあります。(たとえばステータス上昇時に「ピコーン」と音のしたりステータス下落時に「ボンッ」とか音のするゲームの場合、レベル以外の「攻撃力」「守備力」などの(レベル以外の)能力値のデータ書き換えすると、ロード直後にピコーンと音がしたりボンッと音がしたりして、ステータス画面を見ると改造内容とは違った内容のレベル相当のステータスに戻っていたりするような作品もいくつかある。)
 
 
;ユーザーの所有バージョンの問題
また、バージョンアップする際も、たとえばver1.38にアップする場合、必ずしもプレイヤーの皆が、直前のver1.37から更新するとは限らない、というような事にも気をつける必要があります。
 
465 ⟶ 472行目:
成長曲線のプログラムだけを技巧的に作りこんでも、あまり面白いゲームになりません。
 
もし、上述のような成長曲線のプログラムを作るのがメンドウなら、いっそレベルはせいぜいレベル10が最高レベルとかのように、低い数値を限界にしてしまう方式もあります。
 
こうすれば、たった10回だけ成長曲線を具体値で直接に指定すれば済みますので、計算の必要が無くなります。
477 ⟶ 484行目:
 
「攻撃力」「素早さ」「魔力」「守備力」「魅力」「運」・・・などパラメータが多い場合も、どれか1つか2つのパラメータを基準にしてしまうのがラクでしょう。
 
 
===== 具体的な解決策 =====