ゲームを作ってみようとCを始めて4ヵ月、ひとつ重大な壁に気がつきました。
それは「ゲームはリアルタイムで動かなくてはならない!」という何とも当たり前な話。
実は高校生の時、部の持ち物(主に楽譜とCD)を管理しようと、PHPをつかってデータベースを作ったことがあるのですが、その時は検索に0.5秒かかろうが別に気にする必要はありませんでした。
「しかし」今さらだけれどゲームを作るときには1/60という非常に短い時間ですべての計算を終わらせなくてはいけないのですね…。
最近よく悩むのは、どこまで厳密に計算させる必要があるのかという話だったりします。正直ゲームなんて言うのは例え物理法則にしたがわせたとしても、それっぽく見えたらよいと思うのですが、どこまでやったら「それっぽく」見えるのかは自分的に超難易度が高い。
例えば、物体の運動を制御するのに馬鹿正直に回転モーメントやその運動エネルギー、摩擦係数、空気抵抗etc...を計算させるのは多くの場合無駄だと思います。
しかしものを回転させるような力が加わった時、どうやってその力を移動成分と回転成分に分ければ「それっぽく」見えるのか?
そもそも「力」なんてものがそもそも必要なのか?
この辺の悩みは衝突を考えるときや、敵の行動規則を定めるときによく発生します。
まだまだ経験不足という事でしょうね…^^;
リアルタイムという厳しさ
Re: リアルタイムという厳しさ
ゲーム以外をプログラムすることないんで考えたことなかったです…確かに計算量増えたら計算量を減らさないといけないんですね。
シューティングで敵と弾があほみたいに出して処理墜ち…ということぐらいしか、計算が間に合わなかったことないです。
物理法則でちゃんと作ったこともなかった気が…重力で下に常に引っ張ったことはありますが、常に1ずつしずましたぐらいですし…
私はあまり見栄え気にしてないので、ちゃんと作ったことないですね…勉強のためにも考えてみなければ…
シューティングで敵と弾があほみたいに出して処理墜ち…ということぐらいしか、計算が間に合わなかったことないです。
物理法則でちゃんと作ったこともなかった気が…重力で下に常に引っ張ったことはありますが、常に1ずつしずましたぐらいですし…
私はあまり見栄え気にしてないので、ちゃんと作ったことないですね…勉強のためにも考えてみなければ…
Re: リアルタイムという厳しさ
STGや、アクションなどのように活発なゲームはそうですが
RPGやシミュレーションのようにそこまでリアルタイムさが求められていないモノも意外にあります。人間の目なんて所詮
1/20程度までしか認識できませんし。
ただ、そういうものは基本的に処理が重くないので1/60以内に処理が終わってしまうと言う……ゆっくり動いてるのは将棋や囲碁ソフトぐらいでしょうか。
どこまで精度を出すかというのはすごく難しい話で
たいていの場合はバウンディングボックスの導入で決着がつくと思いますが、その中での精度というのもまた難しい……うーん……。
僕は、”あるものはあるもの”以上に追求せず、根底を変えようという考え方がすごく苦手です。
色々と考えていてすごいですね。是非見習いたいです。
RPGやシミュレーションのようにそこまでリアルタイムさが求められていないモノも意外にあります。人間の目なんて所詮
1/20程度までしか認識できませんし。
ただ、そういうものは基本的に処理が重くないので1/60以内に処理が終わってしまうと言う……ゆっくり動いてるのは将棋や囲碁ソフトぐらいでしょうか。
どこまで精度を出すかというのはすごく難しい話で
たいていの場合はバウンディングボックスの導入で決着がつくと思いますが、その中での精度というのもまた難しい……うーん……。
僕は、”あるものはあるもの”以上に追求せず、根底を変えようという考え方がすごく苦手です。
色々と考えていてすごいですね。是非見習いたいです。