スクリプト仕様の再設計


# 脳内メモ.現在進行形で考えていることを適当に書き連ねてみる.


スクリプト仕様について,
「スクリプトの守備範囲」とか「シューティング用スクリプト2」とかで,
ずーっとごまかし通してきてたのですが,欲しいコマンドを追加したり,
タスクやオブジェクトの仕様変更があったりで,いよいよ破綻してきました.


一通り動く物も出来たし,ここらで一旦,大規模なリファクタリングを敢行,
その一環として,スクリプト仕様を整理してみようかなと思いました.
ここでは,プログラムのリファクタリングに並行して,頭の中でコネ回している
「自分に優しいのスクリプト仕様の再設計」を文章化して整理してみたいとなぁと
思ってます.

■ Introduction

「シューティングにおいて,
どこまでをプログラムで書いて,
どこからスクリプト制御にするか?」


この問題の難しい所は,方法論というより,スタイル論に近い点だと思います.
プログラムもスクリプトも一長一短なので,ベストの混合比が存在せず,結局,
自分(チーム)が開発しやすい混合比を探すしかないんじゃない?って思います.


まず,根本的に,スクリプトが必要なのかって事から.


敵の動き/データなどを100%プログラム内に記述する事は可能ですし,
そういうプログラムもよくあります.実際,外観は全く変わりません.
で,特に何の問題も生じません.
つまり,別にスクリプトは必要有りません.
以上.終わり.


...じゃなくて.


「スクリプト化の重要性」みたいな事はGame Programming Gemsで,
読んだ記憶があるのですが,シューティングについて言えば,
そこまで重要じゃないんじゃない?というのが自分の正直な感想です.


〜Gems に書いてあったのは,要は,データを極力人間に見える形で表に出すと
チューニングがやり易くなるし,プログラム知識が無い人でも弄れるようになるので,
開発効率が良くなるよ,プログラミングはその分大変になるけどなっ,
みたいな話だったと解釈しています(全然違うかも).


それって,裏を返せば,スクリプトを使わない開発スタイルは,
チューニングが大変な分,プログラムで楽できるって事だし,
企画がプログラム知識を持っていれば/一人で作っている分には,関係無い,
とも考えられると思います.
さらに,シューティングの場合は,状況に応じて対応が変わったりしますから,
柔軟なスクリプトを作ろうとすると,かなりプログラム的要素を入れる必要が
出てきます.
結局,敵配置とか非常にデータっぽい部分以外(敵動きとか弾とか)は,
全てプロミングしても,それほど大きな問題にはならないんじゃないかと
思います.


という事で,スクリプト仕様の再設計の基本スタンスは,
本来はプログラムで再現する領域をスクリプトに置き換える
という感じで進めてみたいと思います.


(続く)