Praktik terbaik untuk sistem koordinat peta

20

Apakah ada konvensi dan / atau metode yang paling dikenal di sekitar sistem koordinat dalam peta game? Apakah sumber biasanya diposisikan di tengah peta? Atau apakah ia tinggal di sudut dan peta dibuat dalam satu oktan tunggal dari ruang 3D?

TaylorE
sumber
Hm, Anda menandai tilemap dan jawaban teratas berbicara tentang masalah tilemap, tetapi Anda juga menyebutkan 3D dan oktan yang mungkin mengapa jawaban kedua berbicara tentang presisi float. Geometri 3D biasanya tidak disimpan dalam kotak sehingga asal-usulnya lebih sewenang-wenang, dan saya belum pernah mendengar masalah presisi apung di peta kotak 2D. Mungkin beberapa klarifikasi atau penyatuan dalam urutan ...
StarWeaver
Octant telah diedit. Saya menyebutkan 3D karena sebagian besar kerangka yang saya lihat memiliki semacam sumbu Z. Peta gim mungkin datar dan dalam 2D ​​tetapi kamera diimbangi di sepanjang sumbu ketiga.
TaylorE

Jawaban:

37

Sebagian besar game menempatkan asal peta di sudut. Alasan utama untuk ini adalah bahwa tilemaps sering disimpan secara internal dalam array dua dimensi, dan sebagian besar bahasa pemrograman tidak memungkinkan indeks array negatif. Ada banyak diskusi tentang sudut mana yang harus menjadi asal, tapi saya tidak menganggap argumen yang kuat. Pada akhirnya itu hanya preferensi pribadi. Saya akan merekomendasikan untuk hanya menggunakan sudut yang sama dengan yang digunakan API grafik Anda untuk meminimalkan sakit kepala.

Pengecualian seringkali berupa game yang memungkinkan peta yang tumbuh tanpa batas ke segala arah. Itu tidak berfungsi dengan baik tanpa indeks negatif, jadi array 2d sederhana tidak ada pertanyaan. Anda perlu menyimpan data peta Anda dalam struktur data yang lebih kompleks. Dalam situasi ini biasanya paling masuk akal untuk menempatkan asal pada posisi awal.

Philipp
sumber
12

Secara teori lokasi asal tidak masalah. Semua operasi matematika yang Anda lakukan saat peta dirender atau ketika objek bergerak di peta berfungsi dengan baik di mana pun asalnya sebenarnya.

Namun dalam praktiknya ada satu alasan mengapa Anda mungkin ingin menjadikan pusat peta sebagai asal - dan itu adalah ketepatan terbatas dari nilai titik apung.

Dengan angka floating point semakin jauh Anda dapatkan dari 0, semakin sedikit presisi yang ada pada digit yang lebih kecil.

Saat bekerja pada permainan dunia terbuka yang memiliki peta yang sangat besar, kami benar-benar menghadapi masalah di mana fisika dan hal-hal lain akan mulai rusak saat Anda semakin jauh dari asalnya.

Cara mengatasinya adalah melakukan beberapa tipu muslihat di mana asalnya selalu cukup dekat dengan pemain, dengan teleport secara cerdas (pemain, ubin peta, kamera dll) sekitar untuk tidak terlalu jauh dari asal.

Alan Wolfe
sumber
1

Itu tidak masalah. Apa yang beberapa orang ubah dalam sistem koordinat mereka seringkali adalah sumbu-y. Alih-alih memiliki (0,0) di kiri atas, mereka lebih suka memilikinya di kiri bawah untuk fisika yang lebih mudah.

Cedric Martens
sumber
Bagaimana fisika lebih mudah jika asal sistem koordinat ada di kiri bawah?
Tyyppi_77
3
Saya kira kalimat terakhir tidak ada kata: debugging . Lebih intuitif jika tanahnya nol dan semuanya naik dari sana, daripada jika 'langit-langit' nol dan semuanya diukur dengan itu.
Vaillancourt