Apakah ada perbedaan yang signifikan antara menggunakan kotak persegi atau heksagonal untuk area yang dicari oleh algoritma pencarian jalur. Dengan kata lain, lebih baik persegi atau heksagonal, dan jika demikian mengapa.
ai
path-finding
Edwin Earl Ross
sumber
sumber
Jawaban:
Pertimbangan utama untuk memutuskan apakah akan menggunakan kuadrat vs kisi hex seharusnya bukan kemudahan implementasi AI - algoritma pencarian luas-pertama dan kedalaman-pertama hampir sama tidak peduli apa pun jenis grafik yang Anda miliki.
Sebaliknya, ini adalah masalah gameplay yang harus dipertimbangkan oleh para desainer game. Kotak persegi lebih mudah diakses oleh pasar massal (papan hex cenderung terlihat "culun"), dan dalam dunia kontrol atas / bawah / kiri / kanan itu jauh lebih intuitif untuk menavigasi di sekitar kotak daripada hex dari sudut pandang UI. Kotak kotak juga cenderung membatasi gerakan sedikit lebih banyak; dengan asumsi gerakan ortogonal (dan bukan diagonal), dibutuhkan 4 gerakan untuk berjalan mengelilingi rintangan satu-persegi, dibandingkan dengan 3 gerakan dalam kotak hex. Dari sudut pandang pemrograman, heks juga sedikit lebih mudah untuk diimplementasikan tetapi ini bukan tentang algoritma pencarian sebanyak bahwa kotak persegi sama dengan array dua dimensi, tetapi kotak hex tidak benar-benar memetakan ke struktur data standar.
Sisi bawah dari kotak persegi adalah bahwa gerakan itu tidak pernah terasa benar. Bergerak secara diagonal harus mengambil titik gerakan sqrt (2), tetapi dalam praktiknya gerakan 1 (yang membuatnya terasa seperti berjalan di diagonal cepat dan jarang ada alasan untuk berjalan secara ortogonal) atau itu adalah 2 gerakan (yang membuat gerakan diagonal terasa terlalu lambat ). Dengan kisi-kisi hex, jarak gerakan jauh lebih intuitif, karena jarak selalu sama dari satu hex ke yang lain tidak peduli jalan mana yang Anda ambil.
sumber
Saya bukan ahli AI dengan cara apa pun, tetapi perbedaannya harus diabaikan. Kotak persegi sedikit lebih cepat (4 koneksi per node, bukan 6), tapi itu bukan faktor pembatas dalam runtime algoritmik. Bergantung pada algoritma apa yang Anda rencanakan untuk digunakan, kode tersebut mungkin sedikit lebih kompleks untuk hex grid, karena sedikit lebih rumit untuk menghitung koordinat, dan lebih sulit untuk menggunakan semacam pintasan quadtree / octree yang saya percaya adalah sering digunakan dalam pencarian jalan.
Tetapi untuk dunia sederhana seperti tingkat permainan strategi turn-based, perbedaan antara dua tata letak seharusnya tidak terlalu berarti; kotak persegi akan sedikit lebih sederhana dan lebih cepat.
sumber
Ada satu perbedaan praktis yang bisa saya pikirkan mengenai perencanaan jalur. Melintasi dari pusat sel heks ke ke tetangganya selalu jarak yang sama sedangkan, jika Anda mengizinkan perjalanan diagonal, ini tidak benar untuk kotak.
sumber
Panduan tentang segi enam ini mengagumkan. Bagian tentang pathfinding memiliki contoh interaktif dan beberapa info tentang cara menyesuaikan pathfinding persegi.
sumber