지도 좌표계 모범 사례


20

게임 맵의 좌표계와 관련한 규칙 및 / 또는 가장 잘 알려진 방법이 있습니까? 원점은 일반적으로지도 중앙에 있습니까? 아니면 구석에 살고지도가 3D 공간의 단일 옥탄트에 구축됩니까?


흠, 당신은 tilemap에 태그를 달았고 가장 큰 대답은 tilemap 문제에 대해 이야기하고 있지만 3D와 옥탄트에 대해서도 언급했을 것입니다. 3D 지오메트리는 일반적으로 그리드에 저장되지 않으므로 원점이 더 임의적이며 2D 그리드 맵에서 부동 정밀도 문제에 대해 들어 본 적이 없습니다. 아마도 어떤 설명이나 통일이 순서대로있을 것입니다…
StarWeaver

Octant는 편집되었습니다. 내가 본 대부분의 프레임 워크에는 일종의 Z 축이 있기 때문에 3D를 언급했습니다. 게임 맵은 평평하고 2D 일 수 있지만 카메라는 세 번째 축을 따라 오프셋됩니다.
TaylorE

답변:


37

대부분의 게임은지도 원점을 모퉁이에 놓습니다. 그 주된 이유는 타일 맵이 내부적으로 2 차원 배열로 저장되는 경우가 많으며 대부분의 프로그래밍 언어에서는 음수 배열 인덱스를 허용하지 않기 때문입니다. 어느 구석이 원점이어야하는지 에 대한 많은 토론이 있지만, 나는 어떤 주장도 특별히 강하게 고려하지 않습니다. 결국 그것은 개인적인 취향 일뿐입니다. 그래픽 API가 두통을 최소화하기 위해 사용하는 것과 동일한 코너를 사용하는 것이 좋습니다.

예외는 종종 모든 방향으로 무한히 성장하는 맵을 허용하는 게임입니다. 음의 인덱스가 없으면 제대로 작동하지 않으므로 간단한 2D 배열은 문제가되지 않습니다. 더 복잡한 데이터 구조에 맵 데이터를 저장해야합니다. 이 상황에서는 일반적으로 원점을 시작 위치에 배치하는 것이 가장 좋습니다.


12

이론적으로 원점의 위치는 중요하지 않습니다. 지도가 렌더링 될 때 또는 객체가지도에서 움직일 때 수행하는 모든 수학 연산은 원점이 실제로 어디에 있든지 잘 작동합니다.

그러나 실제로지도의 중심을 원점이되도록하는 한 가지 이유가 있습니다. 이는 부동 소수점 값의 정밀도가 제한적입니다.

부동 소수점 숫자는 0에서 멀수록 정밀도가 떨어집니다.

지도가 매우 큰 오픈 월드 게임에서 작업하는 동안 우리는 실제로 원점에서 멀어짐에 따라 물리와 다른 것들이 무너지기 시작하는 문제에 직면했습니다.

수정은 원점에서 플레이어가 너무 가까이 가지 않도록 지능적으로 순간 이동 (플레이어, 맵 타일, 카메라 등)하여 원점이 항상 플레이어 근처에있는 약간의 속임수를 만드는 것이 었습니다.


1

실제로 중요하지 않습니다. 일부 사람들이 좌표계에서 변경하는 것은 종종 y 축입니다. 왼쪽 상단에 (0,0)을 사용하는 대신 더 쉬운 물리학을 위해 왼쪽 하단에있는 것을 선호합니다.


좌표계의 원점이 왼쪽 하단에 있으면 물리학이 더 쉬워 집니까?
Tyyppi_77

3
마지막 문장에 디버깅 이라는 단어가 누락 된 것 같습니다 . '천장'이 0이고 모든 것이 측정 된 경우보다 접지가 0이고 모든 것이 거기에서 올라가는 것이 더 직관적입니다.
Vaillancourt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.