「スーパーミートボーイ」は、最近PC用に登場した難しいプラットフォーマーであり、優れた制御とピクセル単位の完璧なジャンプが必要です。ゲーム内の物理コードはフレームレートに依存しており、60fpsにロックされています。これは、コンピューターがゲームをフルスピードで実行できない場合、物理現象が異常な状態になり、(特に)キャラクターの実行速度が遅くなり、地面に落ちてしまうことを意味します。さらに、vsyncがオフの場合、ゲームは非常に高速に実行されます。
2Dゲームプログラミングの経験者は、ゲームがこのようにコーディングされた理由を説明できますか?一定の速度で実行される物理ループは、より良い解決策ではありませんか?(実際には、一部のエンティティはフレームレートに関係なく正常に移動し続けるため、物理ループはゲームの一部に使用されると思います。一方、キャラクターは正確に[fps / 60]だけ正確に実行されます。)
この実装で気になるのは、ゲームエンジンとグラフィックスレンダリングの間の抽象化が失われることです。これは、モニター、グラフィックスカード、CPUなどのシステム固有のものに依存します。何らかの理由でコンピューターがvsyncを処理できない場合、または正確に60fpsでゲームを実行できない場合、それは劇的に壊れます。レンダリングステップが物理計算に何らかの影響を与えるのはなぜですか?(最近のほとんどのゲームは、ゲームの速度を落とすか、フレームをスキップします。)一方、NESとSNESの昔ながらのプラットフォーマーは、制御と物理の多くを固定フレームレートに依存していることを理解しています。これはなぜですか、フレームレート依存性なしでその静脈にパフォーマーを作成することは可能でしょうか?グラフィックレンダリングを他のエンジンから分離すると、必ずしも精度が失われますか?
質問がわかりにくい場合は、ありがとうございます。