Dalam kotak-ubin di mana gerakan di salah satu dari 8 arah mengambil jumlah belokan yang persis sama (aturan gaya papan catur), dapatkah saya mencegah gerakan diagonal menampilkan lebih banyak ubin baru daripada gerakan ortogonal?
Misalnya: Anda adalah kotak merah pada gambar di bawah ini. Sel-sel hijau saat ini terlihat oleh Anda (bidang pandang persegi). Anda dapat memindahkan jarak satu ubin di salah satu dari delapan arah.
Jika Anda bergerak ke timur laut , Anda akan menjelajahi 13 ubin baru (diperlihatkan dengan warna biru). Jika Anda sebaliknya pindah ke selatan , Anda hanya akan menjelajahi 7 ubin baru (diperlihatkan dengan warna ungu).
Bagaimana saya bisa membuat perjalanan di setiap arah sama-sama menguntungkan untuk eksplorasi?
movement
grid
line-of-sight
Tuan Smith
sumber
sumber
Jawaban:
Dungeons and Dragons 3.5 (RPG pena-dan-kertas) memiliki solusi yang digunakan untuk perhitungan radius gerakan dan berbasis grid: pergerakan diagonal berharga 1,5 berapa biaya ortogonal. Karena diagonal dari unit square adalah sekitar 1,414, 1,5 cukup dekat.
Karena D&D 3.5 hanya mendukung gerakan bilangan bulat, cara ini sebenarnya dihitung adalah bahwa biaya pergerakan orthogonal "satu kotak." Gerakan diagonal pertama Anda juga hanya biaya "satu kotak," tetapi biaya diagonal kedua "dua kotak." Anda mengganti satu dan dua kotak untuk setiap gerakan diagonal. Menerapkan aturan gerakan ini di dalam gim Anda akan menangani beberapa masalah dengan gerakan diagonal.
Seperti yang ditunjukkan diagram ini, aturan gerakan ini menciptakan perkiraan lingkaran yang masuk akal dan juga tidak mati lebih dari 1 bila dibandingkan dengan jarak sebenarnya (ketika dalam 15 unit awal).
Jika visi / jari-jari eksplorasi Anda juga dihitung dengan cara ini, gerakan diagonal dan penemuan diagonal akan sedekat atau sejauh yang ortogonal.
sumber
Anda perlu mengubah bentuk bidang tampilan.
Sehingga saat Anda bergerak ke segala arah, jumlah kotak baru yang sama akan terlihat.
Berikut ini satu kemungkinan:
sumber
Agar gerakan diagonal dan ortogonal mengungkapkan kira-kira area yang sama, Anda memerlukan dua hal (masing-masing, sendiri, telah disarankan dalam jawaban atau komentar lain):
Kisaran tampilan melingkar :
Dengan sendirinya, ini tidak akan memberikan area yang sama persis terungkap untuk kedua jenis gerakan. Sebagai contoh, pada gambar di atas, gerakan ortogonal mengungkapkan 9 kotak, sedangkan gerakan diagonal mengungkapkan 13. Ini masih lebih baik daripada rasio 13/7 untuk area tampilan kuadrat dalam contoh Anda.
Bahkan, ketika radius tampilan bertambah, rasio area yang terungkap per langkah diagonal / orthogonal cenderung tends2 ≈ 1.414 untuk area lingkaran, sedangkan rasio yang sama untuk area tampilan persegi cenderung 2.
Gerakan diagonal yang lebih lambat :
Dalam kehidupan nyata, berjalan secara diagonal melintasi lapangan persegi membutuhkan waktu lebih lama daripada berjalan di salah satu sisi. Bahkan, dibutuhkan sekitar √2 ≈ 1,414 kali lebih lama. Jika Anda ingin gerakan dalam gim Anda terasa realistis, Anda juga harus mewujudkannya di gim Anda.
Dalam praktiknya, 3/2 = 1,5 adalah pendekatan yang cukup bagus untuk √2. Dengan demikian, Anda bisa membuat setiap langkah ortogonal mengambil dua unit waktu, dan membuat setiap langkah diagonal mengambil tiga. Dengan contoh area tampilan di atas, ini menghasilkan 9/2 = 4,5 kotak mengungkapkan per unit waktu untuk gerakan ortogonal, dan 13/3 = 4,33 kotak mengungkapkan per unit waktu untuk gerakan diagonal. Cukup dekat, kan?
Sebagai alternatif, jika Anda ingin tetap berpegang pada "1 langkah = 1 unit waktu" untuk pergerakan ortogonal, Anda dapat menggunakan sesuatu seperti sistem D & D yang disarankan Dane dan membuat setiap langkah diagonal kedua membutuhkan giliran tambahan. (Namun, jika Anda melakukan itu, Anda harus memberikan setiap unit penghitung eksplisit tentang berapa banyak langkah diagonal yang telah mereka ambil; jika tidak, Anda mungkin berakhir dengan eksploitasi seperti, katakanlah, E, NE, E, NE, .. . urutan gerakan yang memungkinkan pemain untuk mengeksplorasi lebih cepat daripada yang dimaksudkan.)
sumber
Karena Anda menggunakan kisi dan tahu ke arah mana pengguna melanjutkan, tidak ada yang menghalangi Anda untuk mengadaptasi jawaban sebelumnya dan menggunakan bidang tampilan yang berbeda tergantung pada arah.
Misalnya Anda dapat memperluas bidang untuk memasukkan sudut ketika Anda melakukan perjalanan dalam arah mata angin dan mengecilkannya dua kotak di setiap ujung dalam kotak diagonal Anda sehingga masing-masing membuka 9 kotak.
Alternatif lain tergantung pada bagaimana pencahayaan Anda bekerja adalah dengan menggunakan perkiraan lingkaran yang lebih baik dengan antialiasing, untuk mengungkapkan sebagian kotak.
sumber
Bagaimana, daripada memiliki rentang tampilan tetap, memiliki area visibilitas pemain tergantung pada arah yang dihadapi pemain, serta mungkin arah yang dihadapi pemain dalam beberapa belokan terakhir (pemain yang bergerak ke utara mungkin bisa segera ambil langkah ke selatan, tetapi mungkin perlu beberapa putaran untuk mendapatkan jarak tampilan maksimum ke arah itu). Seorang pemain yang menuju utara keluar dari koridor sempit ke sebuah ruangan besar dan terus melakukan perjalanan ke utara akan memiliki visibilitas terbatas ke timur dan barat, dan mungkin harus. Ketika pemain berhenti bergerak, seseorang dapat membuat sistem secara otomatis "menjelajahi" area tak terlihat yang berada dalam radius penglihatan pemain saat ini, tetapi ketika pemain aktif bergerak, bidang pandang harus lebih dibatasi.
sumber
Sebagai alternatif untuk bidang pandang yang lebih kompleks (yang seperti dibahas di atas menambah masalahnya sendiri karena kendala tata letak berbasis kotak), Anda dapat mencoba untuk meniru efek gerakan dalam permainan yang tidak didasarkan pada diskrit. kisi. Di mana gerakan bebas dimungkinkan, gerakan diagonal dari satu unit akan persis seperti itu, bukan gerakan ~ 1,41 unit yang terlihat dengan kotak persegi.
Meskipun Anda tidak dapat memaksakan satu gerakan unit tanpa kehilangan grid descreet Anda (yang akan mengubah desain game Anda cukup signifikan) mungkin Anda bisa melacak pergerakan ekstra yang diambil dan menjatuhkan bergerak kemudian: melacak ekstra 0,41 dan setelah mereka total lebih dari itu 1,00 memiliki unit yang melewati langkah. Atau sebaliknya: anggap diagonal normal, tambahkan 0,41 untuk setiap gerakan horizontal atau vertikal, dan berikan kredit gerakan ekstra satu kali lebih besar dari 1 (atau 1,41 untuk gerakan diagonal).
Anda harus berhati-hati bagaimana Anda menyajikan ini kepada pemain Anda dengan cara yang membuatnya terlihat halus dan adil. Dalam skenario multi-manusia-pemain, perubahan seperti itu bisa menjadi sesuatu yang para pemain manfaatkan secara strategis - ini mungkin masalah, atau mungkin ada cara alami untuk mencampuradukkan hal ini dengan mekanik permainan (mungkin memungkinkan pemain untuk menyimpan sedikit jumlah "kredit bergerak yang tidak digunakan" yang dapat mereka gunakan untuk bereaksi dengan cepat di lain waktu dan mendapatkan 0,41 detik umpan bergerak ke dalam (atau mengambil dari) kumpulan itu.
Ini akan bekerja paling baik jika entitas kontrol pemain bergerak bergerak dari satu unit setiap belokan. Misalnya, tiga titik gerakan dapat digunakan sebagai tiga gerakan horzontal, atau dua yang diagonal dengan 0,16 tersisa di kumpulan untuk nanti. Setelah itu mencapai 1,00 pemain mendapat "gratis" hor / sangat bergerak dan di 1,41 gratis diagonal. Anda dapat membatasi ekstra pada 1,5 untuk memaksanya digunakan atau hilang pada saat itu untuk menghentikan pemain menjaga energi yang tersimpan ini untuk waktu yang lama atau membiarkannya menumpuk.
Jelas ini adalah komplikasi dari aturan permainan Anda yang mungkin benar-benar tidak diinginkan, dan itu akan tidak praktis untuk permainan yang tidak terkomputerisasi, tetapi jika Anda bisa membuatnya bekerja dalam aturan permainan Anda yang ada, itu akan membatasi perbedaan eksplorasi antara arah gerakan tanpa perlu untuk meninggalkan format kisi.
sumber
Anda bisa membuat pemain bergerak dua ruang jika mereka bergerak ke atas, bawah, kiri atau kanan, dan hanya satu secara diagonal. Itu tidak akan sepenuhnya meratakannya, tetapi akan jauh lebih dekat.
sumber