したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

おちゃめくらぶ掲示板

1515御茶目菜子:2013/03/28(木) 00:00:53
何fpsくらいあればゲームは快適にプレイできるのか・・・?
さて、第2回プチコン大喜利の締め切りまで1ヶ月余りとなったわけだけどいいアイデアが
ないため3月20日に書いたようにレースゲームを作ることにしたにょ。
ただし、前回の大喜利ではレースゲームのPETIT RUN mkIIで技術賞を戴いたのにまたレース
ゲームでは芸が無さ過ぎるためプチコンでは例のない自由視点のレースゲームにすることに
したにょ。
これは行列演算を行えば簡単にできるにょ。
ここで問題なのが処理速度にょ。
コースは2軸回転で32x18ドットの8倍拡大とすれば1152回の回転処理を行う必要があるにょ。
http://web11.twitpic.com/ccwmpf (2軸回転のイメージ写真)
このコースにマッチさせる自機をどうするかだけどこれはポリゴンにすることにしたにょ。
サンプルとして簡単にモデリングしてみたにょ。(モデリングソフトは作ってないので脳内で
モデルをイメージしてその脳内座標を直接データ化した)
http://web11.twitpic.com/cdp7b9

F-ZEROを意識した機体だけどあまりカッコイイものではないもののこれでも34ポリゴンも
使われているにょ。(ポリゴンならば自由な角度から描画できるためカメラアングルを1度
単位で変えても問題なく表示が可能になる)
頂点数は20個なので40回の回転処理をする必要があるにょ。
つまり、敵が全く出ない状態のタイムアタック専用であっても1192回の回転処理が必要と
いうことにょ。
プチコンでは概ね1フレームあたり60回の回転処理が行えるにょ。(といってもポリゴンと
2軸回転では速度が全然異なるので3月14日に書いたプチコンにおける実行速度を参照)
単純に考えれば1回の表示で20フレーム以上かかるため普通に作れば3fps以下という速度に
なってしまうにょ。
やはり、これではあまりに辛すぎるため高速化を行う必要があるにょ。
2軸回転においてはすでにある程度の高速化の目処はたっているとはいえ厳しいことが
予想されるにょ。

プチコンはかつての8bitパソコンと比べて数10倍という高速であり、ポケコンの中では
高速なPC-E650と比べても100倍くらいの速度にょ。(グラフィック表示に至ってはE650の
1万倍くらいの速度)
http://ww5.tiki.ne.jp/~ochame/petitcom/what.htm
このためよほど重い処理をしなければ60fpsの速度を出すことが可能にょ。
私が作ったゲームも大半が60fps(もしくはそれ以上)となっており、それよりも遅いものと
なるとGCOPYによるスクロールを行っている「JUMPING ISLAND」やリアルタイムでX軸回転を
行っている疑似3Dレースゲーム「2D→3D RACE」の30fpsなどがあるにょ。
しかし、今回作ろうとしているゲームは30fps以上の速度を出すのは不可能にょ。

では、最低でもどの程度の速度ならば問題ないかというとこれはなかなか結論を出すのは
難しいにょ。
しかし、私のポケコンの経験からある程度は判断が可能にょ。
一般的なゲームだと最低30fps、できれば60fps欲しいところだけどポケコンBASICという
ことを考慮すれば以下のようになるにょ。
http://ww5.tiki.ne.jp/~ochame/E500/LECTURE/making_3.htm

 ◎リアルタイム系のゲームの必要速度
  一般的な操作のゲーム   5〜10fps
  連射を要求するゲーム  10〜20fps

この理由については上記のリンク先に詳細を書いているので読んでもらいたいにょ。
つまり、一般的な操作のゲームの場合は5fpsあればそのメインルーチンのキー入力判定に
合わせて入力することで問題なくプレイできるレベルであり、10fpsならば(キーを押している
時間が全体の半分と仮定した場合)普通に押して概ね追従できるレベルの速度といえるにょ。
プチコンでBASICを始めた人ならばこれは「すごく基準が甘い」と感じるかもしれないけど
古くからBASICを使っている人だと大体同意してもらえるのではないかと思われるにょ。

上記のようにポケコンでは高速なPC-E650でさえプチコンと比べたら100倍くらい遅いわけ
だから一見簡単そうに見える5fpsでもプチコンでは500fps相当(グラフィックを使うもので
あればそのさらに1桁上の速度)のプログラムを作るようなものと考えれば分かりやすいにょ。
コンソールで作られた50m走でさえ45fps、8x8ドットのキャラを動かすだけで11fpsしか出ない
わけだからね。
http://ww5.tiki.ne.jp/~ochame/E500/LECTURE/making_3_2.htm
それでも、私が実際に雑誌等に掲載した作品では高速化を駆使したり、OPAS(プチコンで
いえばPCGを駆使してアニメーションやスクロールを可能にしたもの)を用いて何とか7〜8
fpsという速度を得ているにょ。

というわけでプチコンならば容易に見える5fpsもポケコンBASICだとかなり難しいことが
分かるにょ。
その場合はゲーム性でカバーできていれば問題ないにょ。
5fpsあればタイミングよくキーを押せば何とかなるため格闘ゲームならば波動拳コマンドを
入力(テンキーで2→3→6)する場合に1フレームのずれもなく正確に入力することで必殺技が
出るようにすれば「タイミングよく押さないと動作しない」ということを有効活用が可能に
なるにょ。
これが10fpsであればタイミングよく1フレームのずれもなく押すというのは極めて困難に
なるにょ。

しかし、現実的にはオールBASICのポケコンゲームならば5fpsにも満たないものも少なくなくて
ゲーム性でカバーできているかと言われたら微妙なものも多いにょ。
その場合は高速化が重要になってくるにょ。
高速化は上記の必須ラインである5fpsより遅ければそれだけ高速化の効果は大きくなり、
推奨ラインとなる10fpsを大きく越えるものだと高速化の効果は小さくなるにょ。
つまり、同じ「3倍の高速化」が可能であっても15fps→45fpsよりも3fps→9fpsの方が
高速化をより大きく体感することが可能になるということにょ。(前者はスピード感や
なめらかさが増すくらいだけど後者はゲームとして成立するのが難しかったのが普通にプレイ
できるレベルになる)
そのため5fpsに満たないものが多いポケコンBASICでは高速化の恩恵が極めて大きいのだけど
遅いのをBASICのせいにしている場合も少なくないにょ。
http://ww5.tiki.ne.jp/~ochame/E500/TECH/basic9.htm
「高速化しようとしない限りは速くならない」というのは紛れもない事実であり、これは
ポケコンよりも100倍程度高速なプチコンにおいてもいえることにょ。

もっともプチコンの場合は上記のように簡単なアクションゲームならば60fpsは余裕で出す
ことができるにょ。
では、実際に60fpsのゲームと30fpsのゲームを比較するとどちらがスピード感を得られるか
というとこれはゲームの作り方によっても変わってくるにょ。
60fpsの方が30fpsよりもなめらかさでは上回るけどスピード感では必ずしも上回るわけでは
ないということにょ。
オブジェクトなどの移動量によって「スピード感がある」と判断してしまうことが多いと
いうのが理由にょ。(もちろん、60fpsより30fpsの方がスピード感があるというのではなく
作り方によっては逆転もあり得るというだけの話だけど)
その場合も30fpsではなく15fpsになって移動量を2倍にしたらスピード感はさらに増すのか
というとそんなことはなくやはり30fpsくらいがスピード感を得られるボーダーラインに
なるのではないかと思われるにょ。(この辺は人によって感覚も違うだろうけど反応速度が
遅いモノクロSTN液晶のポケコンならば15fpsと30fpsでは表示においてはほとんど差がない
ため連射時の入力判定の漏れがあるかないかの違い程度になる)

さて、そうなると「10fpsあればボタン入力判定漏れ」は緩和できるとはいえ可能な限り
30fpsに近づけるようにするのがベターだといえるにょ。
それにボタン入力判定も「秒5回」で「半分の時間押している」という仮定において10fps
ならば問題ないというだけであって連射をしなくても秒7〜8回の入力は十分行えるわけ
なのでそうなるとスピード感はともかくとして快適にプレイできる最低のボーダーラインは
15fpsくらいになると思われるにょ。
したがって、私が大喜利用に作るゲームもそれを目標に高速化を行う予定にょ。




掲示板管理者へ連絡 無料レンタル掲示板