게임 맵의 좌표계와 관련한 규칙 및 / 또는 가장 잘 알려진 방법이 있습니까? 원점은 일반적으로지도 중앙에 있습니까? 아니면 구석에 살고지도가 3D 공간의 단일 옥탄트에 구축됩니까?
게임 맵의 좌표계와 관련한 규칙 및 / 또는 가장 잘 알려진 방법이 있습니까? 원점은 일반적으로지도 중앙에 있습니까? 아니면 구석에 살고지도가 3D 공간의 단일 옥탄트에 구축됩니까?
답변:
대부분의 게임은지도 원점을 모퉁이에 놓습니다. 그 주된 이유는 타일 맵이 내부적으로 2 차원 배열로 저장되는 경우가 많으며 대부분의 프로그래밍 언어에서는 음수 배열 인덱스를 허용하지 않기 때문입니다. 어느 구석이 원점이어야하는지 에 대한 많은 토론이 있지만, 나는 어떤 주장도 특별히 강하게 고려하지 않습니다. 결국 그것은 개인적인 취향 일뿐입니다. 그래픽 API가 두통을 최소화하기 위해 사용하는 것과 동일한 코너를 사용하는 것이 좋습니다.
예외는 종종 모든 방향으로 무한히 성장하는 맵을 허용하는 게임입니다. 음의 인덱스가 없으면 제대로 작동하지 않으므로 간단한 2D 배열은 문제가되지 않습니다. 더 복잡한 데이터 구조에 맵 데이터를 저장해야합니다. 이 상황에서는 일반적으로 원점을 시작 위치에 배치하는 것이 가장 좋습니다.
이론적으로 원점의 위치는 중요하지 않습니다. 지도가 렌더링 될 때 또는 객체가지도에서 움직일 때 수행하는 모든 수학 연산은 원점이 실제로 어디에 있든지 잘 작동합니다.
그러나 실제로지도의 중심을 원점이되도록하는 한 가지 이유가 있습니다. 이는 부동 소수점 값의 정밀도가 제한적입니다.
부동 소수점 숫자는 0에서 멀수록 정밀도가 떨어집니다.
지도가 매우 큰 오픈 월드 게임에서 작업하는 동안 우리는 실제로 원점에서 멀어짐에 따라 물리와 다른 것들이 무너지기 시작하는 문제에 직면했습니다.
수정은 원점에서 플레이어가 너무 가까이 가지 않도록 지능적으로 순간 이동 (플레이어, 맵 타일, 카메라 등)하여 원점이 항상 플레이어 근처에있는 약간의 속임수를 만드는 것이 었습니다.
실제로 중요하지 않습니다. 일부 사람들이 좌표계에서 변경하는 것은 종종 y 축입니다. 왼쪽 상단에 (0,0)을 사용하는 대신 더 쉬운 물리학을 위해 왼쪽 하단에있는 것을 선호합니다.