Darkside(リンクエラー修正しました)

2016年5月23日(月) 21:20

小人を呼ぶまで

 スクリプトを数日以上も放置して勝手に調査させるというのは、それだけ見ていると楽な話だ。だが、スクリプトをスタートさせるまでが大変である。
 初期条件が少しぐらい異なっても同じスクリプトが適用できるようでなければ、系統立った調査はできない。ところが、初期条件が少し違ったらスクリプトが動作しなくなるという現象は、やたら多発する。

 例えば、直進してから左に曲がるという走りをスクリプト探索するとしよう。
 この場合、直進フレーム数と左ハンドルを切るフレーム数が可変となる。道は左曲がりとして、直進し過ぎれば曲がり切れず奥に衝突する。直進が不足すれば手前に衝突する。左ガンドルを切る量に関わらず、妥当な直進フレーム数の範囲というものがある。そんなことを気にせず片っ端から調査していると、場合の数が多くなり過ぎて実用にならない。
 数日ならともかく、数ヶ月も走らせてようやく1つの結論が得られるようなスクリプトでは困る。

 だから、直進フレーム数の上限と下限を決定する。緩く曲がっても手前に衝突するようでは駄目。キツく曲がっても奥に衝突するようでは駄目。
 しかし、そういうのは人間が見れば明らかだが、スクリプトに概念を教えるのは難しい。画像認識とディープラーニングによってゲームの自動運転させる訳じゃない。旧来の条件記述・手続き型プログラムを動かすのだ。
 そこで、速度とか減速量とか座標など、限られた変数から状況を判定することになる。これが、想定外の例外により、期待通りに機能しなかったりする。例えば、ダートによる減速で何かを判断する場合、ダート際が波打っていると判定ミスすることがある。

 ある初期条件から期待通りに動いているスクリプトが、別の初期条件では何の解も発見できずに終了する。そうなると、どこで誤算が生じているのかを調べねばならない。そして、スクリプトを修正する。大抵は、想定外の新条件に対処するコードを追加するので、スクリプトは複雑になる。そういった改変を加えて少しずつ信頼性を上げるのだが、それによってスクリプトは複雑化する一方。
 今回のように何ヶ月ものブランクを置いて再開する場合、記憶が無くなっているからスクリプトをいじるのも大変だ。

 数日連続で放置できるようなスクリプトは、容易に手に入らない。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4