とりあえずゲームプログラムを完成させる上で重要なのは「開発と効率化は別でやる」という点に尽きる
どれだけ処理が似ていようが、完成するまでは決して一纏めにするな。同じ処理を5回でも6回でも書け。関数にしようなどと考えるな
敵モンスターを作るなら、とりあえず5~6体完成して1シーン通しでプレイできる状態になるまで処理をまとめた関数を作らない事が重要だ
きちんと個性を付けて繊細な調整までやった上で、今後もずっと使って行くことが決まったものだけ纏めればいい
ゲームプログラムは「手で触りながら繊細に調整する」必要がある
細かく調整しているうちに、同じ処理だった部分が微妙に変化して、結局まとめられなくなるのは珍しい事ではないし、それに「こいつだけ別の処理」が頻繁に発生する
敵キャラを50種類作る場合「同じ文章を50回書くのを1回にするだけでいい」という効率化よりも
「共通の処理の中に1体のためだけに特別な処理を入れる」を何度も繰り返す方がコストが嵩むことが多い
ゲームプログラミングに限らず、WEBアプリケーションにも当てはまる。
ちょっと似ているからといって脳死して共通化したがるプログラマはいるけど、大体共通部分がIF文の嵐になって手が付けられなくなるし、そもそも規模がそこまで大きくないので愚直に記述した方がマシだったということは多い。
とはいえ、そこを上手くまとめてみせるのがプログラマの腕の見せ所でもあるというのは否定はしない。