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

2017年6月28日(水) 20:55

カオスとの戦い

 3つ目の急コーナーを操作するスクリプトの初期状態で比較すると、速い1周目(左)は速度も速い。2周目(右)に比べると、より左側を向いていることも分かる。
 そこで、エミュレーターならではの機能を使って調査することを考える。

 初期値を少しずつ変化させ、どれぐらいまでのズレなら1周目のように速く抜けられるかを確認する。そして、直前のスクリプトでは、その範囲に入るような解を選んで出力させてみよう。
 この基本アイデアを元に、まずは過去の走行におけるパラメーターを確認する。自機の座標と向きと速度が、どうなっているか?

 結果は意外だった。最速1周目のパラメーターはごく平均的であり、他から突出したものは無い。特徴はない。すなわち、初期状態を見て有望かどうかの判断はできない。
 このこと自体は想定内。60分の1秒という時間分解能が余りに大雑把過ぎて、最適化がカオス状態だという話は何度も書いている。他とどこが違うのかも分からない微妙な初期値の差が、簡単に2フレーム差に開いたりするのだ。このゲームにおいて、トータルタイムで究極の0.1秒落ち以内まで迫ろうとすれば、カオスを掻き分けて最適化を行わねばならない。それは、ひたすら計算リソースを消費する。
 だから、誰もこのゲームのTASを作ろうとしない。

 他にも爆弾がある。

 1周目は3つ目のコーナーが爆速だが、実は棒磁石地帯が遅い。棒磁石地帯に入る直前には、1周目と2周目の差は1693フレームである。これが、昨日の記事の通り、棒磁石地帯後には一時的に1692フレーム差にまで(2周目に)詰められている。

 だから1周目の棒磁石地帯は作り直すべきであり、これすなわち爆速の1周目コーナー抜けも作り直さねばならないという意味だ。
 1周目から5周目まで、3つのコーナーを爆速で抜けねばならない。そして今作っているのはプラクティスだが、グランプリのマスタークラスだってある。最低でも10回は、3連続コーナーのスクリプトを動作させるのだ。コーナー1つあたり、一昼夜ぶっ通しでも終わらないのに!

 まして、カオス攻略のため試行錯誤する余裕などない。このままでは、完全に詰んでいる。

 そこでまず、スクリプトの高速化に取り組む。ポート2はプラクティスとグランプリの両方で製作するため、他コースに比べるとスクリプトの活躍機会が2倍。特に時間の掛かる3連続コーナーのスクリプトは、時間を使って性能を上げる価値がある。

 最初に目を付けたのは、クリッピングポイントだ。各コーナーで、ガードビームすれすれを走行できないような走りは、さっさと捨てても問題ないはずだ。ガードビームとの間合いを監視し、離れ過ぎた走行は即座に切り捨てて次の操作パターンを調べる。特に第2コーナーは、過去の走行例が安定してインベタになっている。非常に切り捨てし易い。2分木サーチも入れて、調査速度を上げる。
 すると、第2コーナーを抜けられる解はすべて合わせて、44通りしか存在しなくなった(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