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

2016年12月13日(火) 21:50

スクリプトの効率化

 曲がり切れる解の中でも最速クラスのものが、もうガードビームのギリギリである。

 アウトインアウトはレースゲームの基本だから、これ自体は一見当たり前に思える。しかし、初代 F-ZERO のマシン挙動は現実のクルマとは別物である。
 最高速は478キロだが、477キロになったとたん旋回性能が大きく向上する。それが476キロになったからと言って、更に大きく向上したりしない。

 ゲーム内物理が現実の物理とは異なるため、現実世界のセオリーはそのまま適用できない。

 ともあれ速そうな解が出て来たら、次はスクリプトの効率化である。どう見ても速いわけがない試走を延々と繰り返すってのは、スクリプトにありがちである。見込みのない試走だということを判断して効率的に働くスクリプトにしておかないと、探索時間が掛かり過ぎる。
 無駄な探索を行っても実用的な時間で終了するスクリプトであっても、それを効率化できれば操作パターンを増やすことができる。

 しかし、明らかに無駄というのは人間には容易に判断できても、スクリプトには難しい。それこそ人工知能の研究どストライクな、超難問である。簡単に判断できるような条件は、とっくにスクリプトに組み込んである。
 良くやる手法としては、操作パターンを規則的に変化させ、最初に成功したパラメーターから+2までだけ調べる、などとやることだ。部分的条件をギリギリで満たした走行の場合、そこから大きく離れた操作パターンはインベタからかけ離れるなど無駄になる可能性が高い。

 しかしこのコーナーリングでは、パラメーターの範囲制限はうまく機能しない。
 条件を絞らないスクリプトが発見した解を、条件を絞ったスクリプトが見逃すのだ。効率化したつもりが、速い解を見逃す欠陥スクリプト製造になっちまってる。

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