ゲーム開発においてゲームのバランス調整は機能開発と同じくらい時間を使わなくていけない。
しかし実際にバランス調整に時間を取れる仕事は少ない・・・。
今回はそんな限られた時間の中で効率的にバランス調整を行うことが出来るようにする設計方法を紹介する。
##開発におけるバランス調整とは
バランス調整とはすなわちデータの数値を変更することである。
つまりデータの値を変更し、素早く反映できることがバランス調整を効率的に行えるということとなる。
##データの外部ファイル化
データはプログラムに直接書くのではなく外部ファイルとして扱い、プログラムでファイルを読み込んで使用するようにする。
外部ファイルにすることによるメリットは以下となる。
- 毎回コンパイルをする必要がない
- 作業を分担できる
- リリース後の更新が容易
###毎回コンパイルをする必要がない
データをプログラム内に直接配列などで記述した場合、データを書き換えるたびにコンパイルをする必要が出てしまう。
規模が大きいプロジェクトのコンパイルは今どきのPC性能であっても数分から数時間かかってしまうため非常に時間を取られてしまう。
ファイルにして読み込むことで不要なコンパイルをなくすことが出来る。
###作業を分担できる
プログラムソースに直接データを書き込んでしまうと複数人数による開発が困難となる。
各データごとに別ファイルにすることで複数の人数が同時に作業することが出来るため作業効率が上がる。
###リリース後の更新が容易
プラットフォームによるが、実行ファイルの更新に申請が必要で時間がかかることが多い。
それに対して、ファイルサーバにデータをアップしてダウンロードする仕組みがある場合
データの更新は即座に行えるため時間がかからない。
##データ管理のツールについて
扱うデータにもよるが、直接数値をいじるデータはExcelを使うのが好ましい。
Excelはソートや重複削除など数値の扱う機能が豊富であり、汎用的なツールであるため
使い方もネットで調べればいくらでも資料があるので、作業する人が入れ替わっても
ツールの扱いを覚えるのに無駄な時間をかけることが少なくなる。
##データの形式について
データファイルはテキストとバイナリの両方を扱えるシステムを構築しておくとよい。
開発時はテキストファイルで管理することでデバッグがしやすくなり
リリース時はバイナリにすることで圧縮や暗号化を掛けることができる。
##私のデータの管理方法について
マクロ組んでおき、保存するとExcel形式とcsv形式の両方が出力されるようにして
ゲームではcsvを読み込むようにする。(昨今ではJson形式で扱うところも多いのでマクロでJsonを吐き出すようにしても良い)
csvをバイナリ変換するツールも別途用意しておき、リリース時はcsvをバイナリ化して
ゲームに読み込ませる。
##プログラム側の処理
更新されたデータは素早く読み込めることが重要であるため、データが更新された場合
ゲームを再起動させるのではなく現在のシーンをリセットさせる機能を作っておくことが好ましい。
以前記述したゲーム開発におけるクラスの基礎設計のInitializeがここで生きてくる。
シーンのInitializeを呼び出すボタンをゲーム内に作っておき、データを更新した後に
初期化ボタンを押せば更新されたデータをすぐに確認することが出来るため
効率の良いバランス調整が可能となる。
Comments
Let's comment your feelings that are more than good