ふと「今までレースゲームを作ったことがない。作ってみよう」と思い、シンプルな2Dのレースゲームを作ることにしてみました。その際、10年位前にiPadでプレイした"
Reckless Racing HD "が頭に浮かんだのですが、ここまでリアルではなくても、気軽にダートの路面をドリフトしながら曲がっていく感覚を楽しめるものがいいな、と思っていました。そして完成したものが、今回の「プチダートレース」になります。
タイトル: プチダートレース
公開キー: 4KENEWWQV
VIDEO まずは「車をドリフトさせながら動かす」という、シンプルなデモプログラムを作成してみました。当初、ドリフト走行を再現するには、色々と複雑な計算が必要ということが頭にあり、その一部を組み込む形でプログラミングしたつもりだったのですが、残念ながらうまく動いてくれませんでした。そのため、プログラムはより簡易的なものになっています。具体的には旋回の際に遠心力(速度の2乗/回転半径)がある数値を超えたら、ベクトルを旋回方向と直進方向の2つに分解した上で、再度合成するような簡易的な手法を取っています。加えて車の見た目の向きについては指示通りに回転させるとドリフトっぽく見えるので、これを組み合わせた形を車のコントロールのベースとすることにしました。
続いて、レースゲームと言えばライバル車(敵車)の登場です。敵車との当たり判定は、いつもの物理演算(衝突演算)のプログラムを応用しています。自車と敵車の重さは同一で、衝突した場合にはビリヤードのような角度で反発するようになっています。昔のレースゲームでは車同士が当たるとそのままミスになってしまったり、変な方向に反発したり、もしくは当たり判定そのものがなかったりするものもありましたが、それよりは「心地よさ」のようなものは感じられるかなと思っています。
コースは衝突演算の関係でいわゆるBG面(テキスト面)ではなくグラフィック面を使用しています。コースの作成はプチコン4付属のGAHAKUで行いつつ、敵車の動きや自車の順位の計算についても、コースの画像をコピペしたものを応用して使っています。詳細な説明は省きますが、グラフィック面の色からHSVを取得して、その"H"の値で敵車の動く方向を決めたり、コース中のチェックポイントを判別したりするようなプログラムになっています。
全部で4つコースを作成して、あとはタイトル画面を付けて完成です。私のゲームにしては珍しく、タイトル画面からコンピューターが勝手にプレイするデモ画面に遷移するようにもしてみました。デモ画面は自機の動きのアルゴリズムやパターンを設定するのが面倒なのですが、今回については敵車のアルゴリズムを自車にそのまま応用できるので、難しくなかったということもあります。
プログラムは以下の通りです。
今回は初のレースゲーム作成でしたが、自分なりには結構楽しめるものができました。リアルさという点では欠けているものの、気軽にドリフトのような動きを楽しめる、という点ではうまくいったかなと思っています。
プチコン4関連記事
(リンク一覧) :
インテリ君の英語遊び 経営・管理部門編 - プチコン4でビジネス英語の学習ゲーム /
インテリ君の英語遊び TOEIC®英単語・英熟語 - プチコン4で英語学習ゲーム /
虹色ブロック崩し - プチコン4でシンプル&レトロなブロック崩しゲーム /
プチピンボール - プチコン4のシンプルピンボール風ゲーム /
ワンパクとトランプ - プチコン4公式のトランプ画像を使ったスコアアタックゲーム / ...
(記事連続表示)