ラベル Racing Game 改造 の投稿を表示しています。 すべての投稿を表示
ラベル Racing Game 改造 の投稿を表示しています。 すべての投稿を表示

2007年5月24日木曜日

Racing Game 改造(最高スピード)

レーシングゲームを改造しました。


「最高スピードをあげる」










最高スピードが290Km/h では少し物足りなかったので、最高スピードを600Km/h にしました。

上にあるように、最高スピード502Km/h を記録しています。






改造手順


(1)XNA-GSE(C#)を立ち上げて、RacingGame を読み込みます。

(2)右上にあるソリューションエキスプローラを見ます。
見られない場合は、「表示」メニューから、ソリューションエキスプローラを選択してください。


(3)木構造をたどり、C#ファイル(CarPhysics.cs)を表示します。
「RacingGame」-「GameLogic」-「CarPhysics.cs」


(4)ソースの改造
改造するソースは、「CarPhysics.cs」-「Constants」の中だけです。



以下に、改造例(黄色部分)を示します。



public const float DefaultMaxSpeed =
     600.0f * MphToMeterPerSec,  // 275.0f
     MaxPossibleSpeed =
     620.0f * MphToMeterPerSec;  // 290.0f

public const float DefaultMaxAccelarationPerSec = 5.0f, //2.5f
  MaxAccelaration = 100.0f, //5.75f
  MinAccelaration = -80.0f; //-3.25f

const float AirFrictionPerSpeed = 0.00f; //0.66f 


最高スピードを620Km/h に設定しましたがこれだけではスピードは伸びません。 まず、空気抵抗があるとスピードがでないので空気抵抗を「ゼロ」にしました。真空中でレースしている状態にします。そして、加速度を大きくして容易に速度をあげられるようにしました。


(5)ゲーム物理の理解
このレーシングゲームのゲーム物理を理解するために、参照するソースは、「CarPhysics.cs」-「Update」-「Handle Speed」の中にあります。路面抵抗や空気抵抗の実装についての詳しい説明がありますので興味のある人は一読するとよいでしょう。


空気抵抗

車のスピードが早くなってくると空気抵抗が重要になります。

空気抵抗(airFriction)は車のスピード(speed)に比例して大きくなり、車の進行方向とは逆方向の力(carForce)を車に及ぼし減速させます。以下、空気抵抗の実装例(ソース)です。

float airFriction = AirFrictionPerSpeed * Math.Abs(speed);

carForce *= 1.0f - (0.275f * 0.02125f *
  0.2f * //20% for force slowdown
  airFriction);


(6)ビルド&プレイ
F5 キーを押すと、改造ゲームがビルドされプレイ画面となります。



ゲームロジック

レースゲームを改造することで、最高スピード500Km/h にすることができました。 実際にゲームをやるとわかるのですが、300Km/h を越えたあたりから操作が難しくなり、マウスではとても車をコントロールできませんでしたゲームューニングの難しいところなのでしょうか。

レーシングゲーム

スターターキットのレーシングゲームをダウンロードしました。

このスターターキットはXNA Creators Club にあります。
下記URL のEducation タブのStarter Kits 項目にあります。
http://creators.xna.com

スターターキットなのでC# ソースやリソースも全部公開されています。


Download the Racing Game .vsi files. においてRacing Game Windows をダウンロードし、C# でビルドしました。

すぐに本格的なレーシングゲームがはじまります。

Xbox360コントローラがまだないので、マウスでゲームしてみました。


Xbox360用レーシングゲームとして、バンダイナムコゲームス制作のリッジレーサー6 と比較しても、グラフィックは遜色はないです。

マウスでもレーシングゲーム特有の爽快感を味わうことができるので結構病みつきになりそうです。Xbox360コントローラだと操作性はもっとよいと思いますが。

ただやはり、リッジレーサーを体験した者としては、「ドリフト」が欲しくなります。また、勢いあまっての空中「ジャンプ」もあるといいですね。


スターターキット(レーシングゲーム)の改造

ソースが公開されているので、ゲームを改造することが可能です(一応・・・)。目標としては、下記があり、そのうちトライしたいと考えていますが・・・、だれかドリフトを実装してみてください

グラフィック
自分でモデリングしたレーシングカーを走らせる

ロジック
ドリフトやジャンプの実装