Google

2012年8月13日月曜日

Unityでコインゲー開発:開発時間短縮

今回は開発時間の話。

何件かあったUnityプロジェクトの中には、実装が私一人でやらざるを得ないという案件もありました。
4人ぐらいで作れたプロジェクトもあったんですが、1人はさすがにキツかったです。
しかもそーゆーのに限って、2ヶ月ちょいぐらいで仕上げろと要求が。orz

しかし最初から無理と言うのは至極簡単です。

ゲームの基本的な仕様書も、CG素材や音楽は別にありました。
お客さんがレベルデザイン等のバランス系もやってくれるという条件も貰いました。
それでも中身が非常に多く、不測の事態が起きた場合に保証ができないとは伝えたのです。
が、最悪延びたら掛かった分は出すという滅多に無い条件が貰えたため、とにかくチャレンジしてみる事にしたのです。


でも正攻法で作ってたら絶対に間に合いません。
Unityセミナーに行ってどうなるという話でもなかったので、海外コミュニティをあさり色々と考えた策を色々試すことにしました。
ざざっと挙げるとこんな感じです。

  1. 設計は実装しながらアジャイル風に同時進行
  2. 大筋は仕様書に沿うが、細部の仕様は任せてもらう
  3. バランス調整が絡む変数はすべてインスペクタに出し、私は触らない
  4. デバッグ用チートボタンを作る。
  5. 列挙体を作らないw

Unityに直接関係するのが3.位になってしまうのがアレですがw
一応これらの作戦を続ける事にしたわけです。

1.と2.は、取り立てて説明の必要もないかと思います。
アジャイル、と断言はできなくてもそれモドキの開発ならよくある話です。
設計を頭の中でやりながら実装っていうのも(時間に追われて)いつもやるのでこれもさほど問題にはなりませんでした。

さて、関係するのは3.です。
かなり前に以下の様な記事を書きました。

 Unityのインスペクタ

通常、privateにしてゲッタセッタをつけるのがセオリーのメンバ変数をわざわざpublicにすることで、ソースよりも変更が優先されるという危険極まりないシロモノです。
これを大量に適用し、バランス調整や確率データ、その他係数などをすべて目に見えるようにしました。
管理系はやばくなりますが、私はそれらの値を一切触らず、開発しながらゲームバランスを次々と調整してもらうという手段に出たのです。
printやDebug.Logで出すメッセージも極力インスペクタで見てもらうことになりました。

ソースの共有にはAssetServerを使ったのですが、これを仕えたからまだうまく進みましたが、でないとかなり面倒だったかもしれません。
このツールも万能ではなく、修正箇所がぶつかってしまい面倒になることも何度かはありました。
が、この方法は功を奏し、テストと仕様との相違による戻りを稼ぐことができました。


なんか長くなってしまったので残りは次回。

0 件のコメント:

コメントを投稿