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

2014年1月28日(火) 21:22

直角コーナーに穴

 S-JET 噴射開始の最適パターンを見つけ出し、続いて3周目第1→第2→直角コーナーの探索に入る。
 しかしここで、1周目には存在しなかった邪魔カーが障害になる。そのままでは探索中に衝突してしまうので、インかアウトに回避してから探索開始せねばならない。
 アウトから抜くほうが動きは少ないが、走行距離は明らかに伸びる。インから抜くパターンを手動で最適化し、衝突が回避できる座標で真北を向かせてステートセーブ。スクリプト探索開始。

 暫く走らせたところで、自機が爆発。
 これは良くある話で、スクリプトがエラーで停止すると自機が暴走する。最後はどこかのガードビームに突っ込むので、どんどんエネルギーが無くなってすぐに爆発という次第。
 今更になって、スクリプトのバグが発覚した。それも、大バグだ。

 原因は、第2コーナーを曲がった後の進路判定を手抜きしていた点にある。
 直角コーナーの突入時に、ガードビームとの間合いをある範囲内に収めたい。確実なのは、実際にそこまで走って内部座標を読む方式である。しかしその場合、第2コーナーの曲がり量を変化させるたびに直角コーナー手前まで走る訳で、時間を食う。そこで、第2コーナーを曲がった後の向きだけで判定していた。向きだけで判定するためには、根元の座標が安定していなければならない。根元とは、第2コーナーを曲がり終えた段階である。
 第2コーナーで膨らむとタイムが遅くなるし根元の位置もズレるから、そういうのは探索木の枝刈りで捨てていた。

 問題は、逆に第2コーナーをコンパクトに曲がれた場合だった。
 今度は、想定外にガードビームに接近してしまう結果となる。コンパクトに曲がれるというのはタイムが速い可能性が高いのだが、そんな良候補の走行ラインがガードビームに近くなり過ぎて、まっとうに直角コーナーを曲がれなくなっていた。このたび余りにも接近し過ぎてガードビームに突っ込んだおかげで、バグが発覚した。
 直角コーナー手前まで走り、ガードビームとの正確な距離を調べるように修正したところ、内部座標で3もの改善が可能だと判明。

 2周目の作り直しが確定した。

 探索時間は伸びるが、探索結果を検討したところ、第1コーナーを曲がった直後のガードビームとの間合いを車体半分という最適値近辺に絞っても大丈夫だと見通しが付いた。そっちで枝刈りすることにより、探索時間の伸びを抑えられる。
 だが、より恐ろしい可能性が頭に浮かんだ。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