カレンダー

2017/05
 
   
       

広告

Twitter

記事検索

ランダムボタン

1年半の成長

by 唐草 [2024/03/24]



 ゲーム開発に挑戦だ!と意気込み開発に着手するも、苦戦続きで開発期間は伸びる一方。すでに1年半が経過している。やはりゲーム設計といった大枠からプログラムやビジュアル作成といった実装面まで全部一人でやろうとするとかなり負担が大きいと痛感している。
 想定より遅れているのは、3Dモデリングが初心者レベルなので足を引っ張ってしまったことが大きい。また、初めて使うUNITYのクセや設計思想に馴染むまで時間を要したことも無視できない遅延要因だ。
 さて、1年半も開発し続けていたので困ったことに気づいてしまった。
 開発初期に書いたコードを確認すると、実装があまりにも稚拙なのだ。他言語での開発経験があるのでアルゴリズムには問題ない。とは言え、C#での実装だと考えるとお粗末なやり方だと言わざるを得ない部分が多々見受けられる。
 初期に書いたコードはC#らしくない。強いて言うなら、他のコンピューター言語にも翻訳できる汎用的な書き方だ。それは言語特性を無視した冗長で無駄の多い書き方だとも言える。
 特にオーバーライドの無駄が多い。これはC#で使える便利なジェネリック型を知らなかったがゆえの失敗だ。逆にC#の可変長配列であるList<>型が便利すぎて必要以上に多用していることも否めない。固定長しか扱わない場面では普通の配列を使うべきだった。
 正直言って、初期に書いたC#理解の浅いコードを見つけるたびに書き直したくて仕方ない。オーバーライドをジェネリック型で書き直せば行数がグッと減って視認性も上がる。また、固定長配列を適切に使えば実行速度が上がるのは間違いない。
 とは言え、そんな書き直しをしていたらただでさえ想定の2倍ぐらいに伸びている開発期間がさらに伸びてしまう。
 今回の開発はUNITYの理解を深めることを目的とした勉強でもある。だが、勉強だけを優先していたらいつまでも完成しない。パーフェクトを目指すことも大切かもしれないが、商売として考えるのなら適切な妥協点を見つけることも大切。
 問題に気づけたのは成長の証。この反省は次に活かせばいい。