レースゲームの作成について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
shiro4ao
記事: 224
登録日時: 13年前
住所: 広島

レースゲームの作成について

#1

投稿記事 by shiro4ao » 10年前

なにかゲームを作ろうと思ったのですが
なんとなくレースゲームができたらいいなあとおもいました

そこでレースゲームの大まかな実装手順や知識を確認したいです
3dだとか運転席視点のゲームは大変そうなので
二次元で俯瞰でコース全体が見えており単純な図形の車が
キー入力に合わせて単純なコースを走るものを想定しています

1.マップを作る
 「数学的な意味での関数」の組み合わせで表現?
  RPGのマップのように0,1で判定?
2.車を作る
 三角形を基本に色で分ける
 キー入力に従うアクセルとブレーキ、ステアリングの実装
 他に慣性と遠心力、摩擦力、当たり判定を実装
 毎回描画するごとに車の座標から計算する
 車ごとの特性(エンジン、ブレーキ、グリップ、重量etc)
3.CPU用のAIを実装
 車道から超えないように位置と加速度を確認しつつランダムに操作する?
 リプレイ機能を用いてキー入力を遺伝子座として遺伝アルゴリズムを用いてAIを学習させる?
4.リプレイ機能や順位・速度・ラップタイムといったUIなど

などと考えています
ほかに実現する上で抜けている要素や注意すべき点はありますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: レースゲームの作成について

#2

投稿記事 by softya(ソフト屋) » 10年前

難しいことを先に考えずに、簡単な部分から実装していくと良いと思います。
あと、マップを作るの部分の意味がよく分かりません。

【補足】
AIに関しては難しいのでオライリーなどの書籍を買われたほうが良いかもしれません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
shiro4ao
記事: 224
登録日時: 13年前
住所: 広島

Re: レースゲームの作成について

#3

投稿記事 by shiro4ao » 10年前

ご回答ありがとうございます
ご指導のとおりまずは簡単な部分から少しずつ実装していければいいなとおもいます

コースから飛び出てしまうと車が停まるようにしたいのですが
そのときどこからがコース内でどこからがコース外なのか区別する方法がいります

例えばコース内とコース外の境目を
(x-320)^2+(y-320)^2=320^2のような画面中心を中心とした半径320の円として決めて
この円から出てしまうとコース外にいると判定して車を止めます
メリットは単純な形状であれば判定や作成の手間が比較的少ない
デメリットはコースが複雑になると多数の式が必要なので手間がかかる

もう一つは640x640の二次元配列でマップのコース内を0、コース外を1として
車が0の場所なら普通に進んで、1なら車が停まるようにする方法
メリットはコースが複雑になっても同じ方法でコースが作れること
デメリットは毎回配列を埋めなければならないので単純な形状の場合は上の方法より手間がかかる

などです。はじめは簡単な図形がいいので、上の方法で作ろうかなと思います

AIはやはり難しいのですね・・・・
まずはプレーヤーの車がちゃんと動作するようにしたいとおもいます

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: レースゲームの作成について

#4

投稿記事 by softya(ソフト屋) » 10年前

コースを図形で作るのは言うなれば平面ポリゴンです。
結局、モデラーでデータを作成して三角ポリゴンで処理したほうが楽そうです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: レースゲームの作成について

#5

投稿記事 by h2so5 » 10年前

shiro4ao さんが書きました: もう一つは640x640の二次元配列でマップのコース内を0、コース外を1として
車が0の場所なら普通に進んで、1なら車が停まるようにする方法
メリットはコースが複雑になっても同じ方法でコースが作れること
デメリットは毎回配列を埋めなければならないので単純な形状の場合は上の方法より手間がかかる
適当なペイントソフトでコースの絵を描いて読み込んでしまえば手間はかからないです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: レースゲームの作成について

#6

投稿記事 by softya(ソフト屋) » 10年前

h2so5 さんが書きました:
shiro4ao さんが書きました: もう一つは640x640の二次元配列でマップのコース内を0、コース外を1として
車が0の場所なら普通に進んで、1なら車が停まるようにする方法
メリットはコースが複雑になっても同じ方法でコースが作れること
デメリットは毎回配列を埋めなければならないので単純な形状の場合は上の方法より手間がかかる
適当なペイントソフトでコースの絵を描いて読み込んでしまえば手間はかからないです。
h2so5 さんのに補足しておくと、ペイント画像から当たり判定データを読み込み時に作成するって事ができます。
重かったら別ツールにするという手もありますので工夫は色々出来ます。
ここで色々考えるのが勉強になるので色々チャレンジしてみて下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
shiro4ao
記事: 224
登録日時: 13年前
住所: 広島

Re: レースゲームの作成について

#7

投稿記事 by shiro4ao » 10年前

なるほど~ペイントをつかうアイデアはおもいつきませんでした
今方法なら手軽さと判定のやりやすさが両立出来ますね

いまはちょっと時間がないのでゲーム作成がスタートできないですが
もうすこしして少しずつ作っていこうと思います

ありがとうございます

閉鎖

“C言語何でも質問掲示板” へ戻る