Najlepsza praktyka dla układu współrzędnych mapy


20

Czy są jakieś konwencje i / lub najbardziej znane metody dotyczące układów współrzędnych na mapach gier? Czy punkt początkowy jest zwykle umieszczony na środku mapy? A może mieszka w kącie, a mapa jest zbudowana w jednym oktanie przestrzeni 3D?


Hm, otagowałeś tilemap, a najwyższa odpowiedź mówi o problemach z tilemapem, ale wspominasz także o 3D i oktantach, prawdopodobnie dlatego druga odpowiedź mówi o precyzji pływaka. Geometria 3D zwykle nie jest przechowywana w siatce, więc początki są bardziej arbitralne i nigdy nie słyszałem o problemach z precyzją unoszenia się na mapie siatki 2D. Być może
trzeba

Edytowano Octant. Wspominam o 3D, ponieważ większość szkieletów, które widziałem, ma jakąś oś Z. Mapa gry może być płaska i 2D, ale kamera jest przesunięta wzdłuż trzeciej osi.
TaylorE

Odpowiedzi:


37

Większość gier umieszcza pochodzenie mapy w rogu. Głównym tego powodem jest to, że mapy warstw są często wewnętrznie przechowywane w tablicach dwuwymiarowych, a większość języków programowania nie pozwala na ujemne indeksy tablic. Jest wiele dyskusji na temat tego, który róg powinien być początkiem, ale nie uważam żadnego z argumentów za szczególnie mocny. W końcu to tylko osobiste preferencje. Polecam po prostu użyć tego samego rogu, którego używa graficzny interfejs API, aby zminimalizować ból głowy.

Wyjątkami są często gry, które pozwalają na mapy, które rosną nieskończenie we wszystkich kierunkach. To nie działa poprawnie bez ujemnych indeksów, więc prosta tablica 2d nie wchodzi w rachubę. Będziesz musiał przechowywać dane mapy w bardziej złożonej strukturze danych. W takiej sytuacji zazwyczaj sensowne jest umieszczenie początku w pozycji początkowej.


12

Teoretycznie lokalizacja pochodzenia nie ma znaczenia. Wszystkie operacje matematyczne, które wykonujesz, gdy mapa jest renderowana lub gdy obiekty poruszają się na mapie, działają dobrze bez względu na to, skąd faktycznie pochodzi.

Jednak w praktyce istnieje jeden powód, dla którego możesz chcieć, aby środek mapy był początkiem - a jest to ograniczona precyzja wartości zmiennoprzecinkowych.

Przy liczbach zmiennoprzecinkowych im dalej od zera, tym mniejsza dokładność w mniejszych cyfrach.

Pracując nad grą w otwartym świecie, która miała bardzo dużą mapę, napotkaliśmy problemy, w których fizyka i inne rzeczy zaczęłyby się załamywać w miarę oddalania się od źródła.

Rozwiązaniem było wykonanie pewnych sztuczek, w których źródło zawsze znajdowało się bardzo blisko gracza, poprzez inteligentne teleportowanie przedmiotów (gracza, kafelków mapy, kamery itp.), Aby nie oddalały się zbytnio od źródła.


1

To naprawdę nie ma znaczenia. To, co niektóre osoby zmieniają w układzie współrzędnych, to często oś y. Zamiast mieć (0,0) w lewym górnym rogu, wolą mieć go w lewym dolnym rogu dla łatwiejszej fizyki.


W jaki sposób fizyka jest łatwiejsza, jeśli początek układu współrzędnych znajduje się w lewym dolnym rogu?
Tyyppi_77

3
Wydaje mi się, że w ostatnim zdaniu brakuje słowa: debugowanie . Bardziej intuicyjnie jest, gdy ziemia jest zerowa i wszystko stamtąd idzie w górę, niż jeśli „pułap” wynosi zero i wszystko jest mierzone po tym.
Vaillancourt
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.