【作品紹介】
この作品はレースゲームの研究目的で制作しました。
きっかけは学校で「レースゲームは難しいからやめた方がいい」という話を聞いたからです。
そんなに難しいならやってやろうと思い挑戦しました。
はじめにレースゲームを制作する上で必要な要素を考えた結果
・周回の判定
・敵の走行ルート
この2点が出来れば制作できると思いました。
【周回の判定について】
今回のレースゲームでは同じステージを3周したら終了ということを前提に制作しました。
その時に1周したかの判定をゴール地点のゲートだけにすると
ゴールゲートをくぐる
↓
バック(or旋回)で戻る
↓
再びゴールゲートをくぐる
というゲートを行ったり来たりするだけでクリアが出来てしまいます。
そこでステージ上にチェックポイントを設置しチェックポイントを順に通らないとゴール出来ないというシステムを導入しました。
こうすることでコース通りに走らせることが出来たり、コースアウトした時の復帰箇所の選出、現在の順位の管理など様々なことが出来るようになりました。
【敵の走行ルートについて】
先ほどコースを周回するシステムは作りましたが一人で走っていてもレースゲームとは呼べません。
ということで次は敵の走行ルートの決め方についてです。
敵の走行ルートを決めるうえで特に悩んだ点はカーブ地点です。
最悪直線ルートは前に走らせるだけですがカーブはそうはいきません。
そこでコース上に敵用の進むべき箇所(目的地)を複数設置しました。
そうすることで目的地を順番に通り無事に一周できました。
しかしまだ問題があります。
それは目的地を順に通るだけでは何度遊んでも敵が同じ走行ルートで走ってしまうという点です。
悩んだ結果
目的地にチェックポイントのように番号付けをし1番のチェックポイントを3つ、2番のチェックポイントを5つなど同じ番号のチェックポイントを複数設置します。
そして同じ番号のチェックポイント内で価値を設定しその価値を基準に進路を決定するというやり方に変更しました。
こうすることでとにかく最短ルートを目指す敵や多少遠回りしても加速アイテムを取ろうとする敵、障害物は絶対に除け安全に着実に進む敵など敵の性格を設定できるようになったりなりました。
また、同じ設定をしていても最後に通った目的地の価値や現在の順位などでも走行ルートが変わるので敵を複数用意しても全くの同一ルートを通ることはほぼありません。
【今後のやりたいこと】
現状は全員が同スペックの機体なので「最高速度が速い機体」や「加速度が高い機体」、「旋回がしやすい機体」など様々な特徴のある機体を用意したり、コースのバリエーションを増やしルート分岐やショートカット可能なルートを作ったりして遊びの幅を増やしたいと考えています。