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

2015年5月25日(月) 21:23

急がば回れ

 状況に応じて、3通りのスクリプトを使い分ける。

 1つは、単純にその位置から入力可能なアナログ値を片っ端から調べる。所定フレーム先での速度や座標をファイル出力する。それを見て、有力と思われるステア値を取り出す。
 挙動は線形ではないので、類似のステア値ごっそり似たような到達速度になっている場合と、大して速くない回答群の中に突出して速い場合がある。

 突出して速いのは、特別な加速要因が含まれていることが多い。
 壁に反射したついでにクルマを押し潰す場合、大抵は遅くなる。そして特定のタイミングになった場合だけ、大きく加速する。
 このような特例の大加速を発見するのに、単純な1重ループの探索は余り有効ではない。

 ステア値Aで、Xフレーム前進。そこから、ステア値を全パターン片っ端から調べて、Yフレーム先における速度を見る。ついでに、途中経過における最高速度も記憶しておく。
 AとYは固定で、Xは変化させる。
 この2重ループが、効果と時間のバランス良好で主力スクリプト。屋台の爆発加速に使ったものの改良版である。

 壁反射からの加速でも、いい感じに加速解を探し出せる。
 到達速度および中間最高速度のそれぞれについて、探索中のベストを更新したらステートセーブ。
 通常は大きな減速になるバスとの衝突も、加速に変えられる。

 スポーツカーの弾き飛ばしは、ほとんど加速しないが減速もせず、120キロで突破。

 これによって、コの字に遠回りしても10秒の先行になることが判明した。
 遠距離射撃で戻った場合は、速度は60キロに落ちてしまうため7秒しか先行できない。かくして、速度を落とさずに遠回りする方が有利と確定した。

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