ボートレースゲーム
コンソールオセロゲームの棋力アップに限界を感じたので、新たな暇つぶしゲームを作成。
オセロに関してはWZebraというフリーソフトで解析することで一手ごとの評価値が分かる。一生懸命CPUと時間をフル動員して叩き出した結果が最善手でなかった時のショックがかなり応えた。また、良い選択アルゴリズムが思いついたら改良したい。
さて、新たなゲームは、ガラケー時代に面白かった競艇ゲームをプレイした記憶があったので、再現できないかと思ってボートレースゲームにしてみた。
そもそも、競艇のルールがわからないので調べる。
YOUTUBEの「ういちの一人舟」シリーズが面白く、勉強になった。たまに挟んでくる、ういちさんのうん蓄が興味深い。
スタート展示やら、コース取りなどは難しいので省略。とにかく周回すれば、御の字。
レースゲームでのCOM制御は、コース上にポイントを設定して、そのポイント付近を通過するように方向を調整するのが王道のようだ。
ちなみに初代マリオカートをスクラッチというプログラム教育サイトで再現したものを発見。これをスーパーファミコン時代に実装しているというのがすごい。疑似3D恐るべし。
https://scratch.mit.edu/projects/36711178
プログラムをいじってミドリ甲羅を大量にカタパルトするとカオスなことに。
さて、今回は、ポイント設定をせずに、単純にコースを4分割し、上下の直線コースは加速、左右ではターンを行うという、人口無能にした。
曲がり切れずに壁に衝突することもあったので、これまた壁に近づくと壁を避ける方向にターンするよう設定。
これで、なんとかCOMの艇が自動で操舵できるところまでは来た。
画面は相変わらず配列で表現。でも、この作業が一番楽しい。
FPSも一応設定できるが、画面クリアのタイミングで結局チカチカするのであまり意味なし。
さっそく、COM戦をしてみるが、COMが強すぎて、自分が操縦すると勝てない。勝てないので面白くない。
画面上の「~」マークは、ボートの後ろにできる引き波を表現したつもり。一応接触するとスピードが落ちる。
現状ランダム要素が、自分の操作のみなので、COMオンリーだと毎回順位固定になる模様。
ターン時の角度や、水面の状況にランダム要素を入れたほうがいいのかもしれない。そしてランダム要素を入れることで、結局コース上にポイントを設定しないと、逆走したりする舟が発生することになるというオチ。合掌。