なにかゲームを作ろうと思ったのですが
なんとなくレースゲームができたらいいなあとおもいました
そこでレースゲームの大まかな実装手順や知識を確認したいです
3dだとか運転席視点のゲームは大変そうなので
二次元で俯瞰でコース全体が見えており単純な図形の車が
キー入力に合わせて単純なコースを走るものを想定しています
1.マップを作る
「数学的な意味での関数」の組み合わせで表現?
RPGのマップのように0,1で判定?
2.車を作る
三角形を基本に色で分ける
キー入力に従うアクセルとブレーキ、ステアリングの実装
他に慣性と遠心力、摩擦力、当たり判定を実装
毎回描画するごとに車の座標から計算する
車ごとの特性(エンジン、ブレーキ、グリップ、重量etc)
3.CPU用のAIを実装
車道から超えないように位置と加速度を確認しつつランダムに操作する?
リプレイ機能を用いてキー入力を遺伝子座として遺伝アルゴリズムを用いてAIを学習させる?
4.リプレイ機能や順位・速度・ラップタイムといったUIなど
などと考えています
ほかに実現する上で抜けている要素や注意すべき点はありますか?
レースゲームの作成について
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: レースゲームの作成について
難しいことを先に考えずに、簡単な部分から実装していくと良いと思います。
あと、マップを作るの部分の意味がよく分かりません。
【補足】
AIに関しては難しいのでオライリーなどの書籍を買われたほうが良いかもしれません。
あと、マップを作るの部分の意味がよく分かりません。
【補足】
AIに関しては難しいのでオライリーなどの書籍を買われたほうが良いかもしれません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: レースゲームの作成について
ご回答ありがとうございます
ご指導のとおりまずは簡単な部分から少しずつ実装していければいいなとおもいます
コースから飛び出てしまうと車が停まるようにしたいのですが
そのときどこからがコース内でどこからがコース外なのか区別する方法がいります
例えばコース内とコース外の境目を
(x-320)^2+(y-320)^2=320^2のような画面中心を中心とした半径320の円として決めて
この円から出てしまうとコース外にいると判定して車を止めます
メリットは単純な形状であれば判定や作成の手間が比較的少ない
デメリットはコースが複雑になると多数の式が必要なので手間がかかる
もう一つは640x640の二次元配列でマップのコース内を0、コース外を1として
車が0の場所なら普通に進んで、1なら車が停まるようにする方法
メリットはコースが複雑になっても同じ方法でコースが作れること
デメリットは毎回配列を埋めなければならないので単純な形状の場合は上の方法より手間がかかる
などです。はじめは簡単な図形がいいので、上の方法で作ろうかなと思います
AIはやはり難しいのですね・・・・
まずはプレーヤーの車がちゃんと動作するようにしたいとおもいます
ご指導のとおりまずは簡単な部分から少しずつ実装していければいいなとおもいます
コースから飛び出てしまうと車が停まるようにしたいのですが
そのときどこからがコース内でどこからがコース外なのか区別する方法がいります
例えばコース内とコース外の境目を
(x-320)^2+(y-320)^2=320^2のような画面中心を中心とした半径320の円として決めて
この円から出てしまうとコース外にいると判定して車を止めます
メリットは単純な形状であれば判定や作成の手間が比較的少ない
デメリットはコースが複雑になると多数の式が必要なので手間がかかる
もう一つは640x640の二次元配列でマップのコース内を0、コース外を1として
車が0の場所なら普通に進んで、1なら車が停まるようにする方法
メリットはコースが複雑になっても同じ方法でコースが作れること
デメリットは毎回配列を埋めなければならないので単純な形状の場合は上の方法より手間がかかる
などです。はじめは簡単な図形がいいので、上の方法で作ろうかなと思います
AIはやはり難しいのですね・・・・
まずはプレーヤーの車がちゃんと動作するようにしたいとおもいます
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: レースゲームの作成について
コースを図形で作るのは言うなれば平面ポリゴンです。
結局、モデラーでデータを作成して三角ポリゴンで処理したほうが楽そうです。
結局、モデラーでデータを作成して三角ポリゴンで処理したほうが楽そうです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: レースゲームの作成について
適当なペイントソフトでコースの絵を描いて読み込んでしまえば手間はかからないです。shiro4ao さんが書きました: もう一つは640x640の二次元配列でマップのコース内を0、コース外を1として
車が0の場所なら普通に進んで、1なら車が停まるようにする方法
メリットはコースが複雑になっても同じ方法でコースが作れること
デメリットは毎回配列を埋めなければならないので単純な形状の場合は上の方法より手間がかかる
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: レースゲームの作成について
h2so5 さんのに補足しておくと、ペイント画像から当たり判定データを読み込み時に作成するって事ができます。h2so5 さんが書きました:適当なペイントソフトでコースの絵を描いて読み込んでしまえば手間はかからないです。shiro4ao さんが書きました: もう一つは640x640の二次元配列でマップのコース内を0、コース外を1として
車が0の場所なら普通に進んで、1なら車が停まるようにする方法
メリットはコースが複雑になっても同じ方法でコースが作れること
デメリットは毎回配列を埋めなければならないので単純な形状の場合は上の方法より手間がかかる
重かったら別ツールにするという手もありますので工夫は色々出来ます。
ここで色々考えるのが勉強になるので色々チャレンジしてみて下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: レースゲームの作成について
なるほど~ペイントをつかうアイデアはおもいつきませんでした
今方法なら手軽さと判定のやりやすさが両立出来ますね
いまはちょっと時間がないのでゲーム作成がスタートできないですが
もうすこしして少しずつ作っていこうと思います
ありがとうございます
今方法なら手軽さと判定のやりやすさが両立出来ますね
いまはちょっと時間がないのでゲーム作成がスタートできないですが
もうすこしして少しずつ作っていこうと思います
ありがとうございます