ゲームマップの座標系に関する慣習や既知の方法はありますか?通常、原点はマップの中央に配置されていますか?それとも、コーナーに住んでいて、マップは3D空間の1つのオクタントに構築されていますか?
ゲームマップの座標系に関する慣習や既知の方法はありますか?通常、原点はマップの中央に配置されていますか?それとも、コーナーに住んでいて、マップは3D空間の1つのオクタントに構築されていますか?
回答:
ほとんどのゲームでは、マップの原点が隅に配置されます。これの主な理由は、タイルマップが2次元配列に内部的に保存されることが多く、ほとんどのプログラミング言語では負の配列インデックスが許可されないためです。どのコーナーを原点にすべきかについて多くの議論がありますが、私は議論のどれも特に強いとは考えていません。最終的には個人的な好みです。頭痛を最小限に抑えるために、グラフィックスAPIが使用しているのと同じコーナーを使用することをお勧めします。
例外は多くの場合、すべての方向に無限に成長するマップを許可するゲームです。これは負のインデックスなしでは適切に機能しないため、単純な2D配列は問題外です。地図データをより複雑なデータ構造に保存する必要があります。この状況では、通常、原点を開始位置に配置するのが最も理にかなっています。
理論的には、原点の位置は重要ではありません。マップがレンダリングされるとき、またはマップ上でオブジェクトが移動するときに行うすべての数学演算は、実際の原点に関係なく正常に機能します。
ただし、実際には、マップの中心を原点にしたい理由が1つあります。これは、浮動小数点値の精度に制限があります。
浮動小数点数では、0から遠くなるほど、小さい桁の精度が低くなります。
非常に大きなマップを持つオープンワールドゲームで作業しているときに、実際に物理学やその他のものが原点から遠くなるにつれて崩壊し始めるという問題に遭遇しました。
修正点は、オリジンがプレイヤーからかなり離れた場所で、プレイヤー(マップタイル、カメラなど)をインテリジェントにテレポートして、オリジンから離れすぎないようにすることです。