Model elevasi untuk kisi-kisi permainan heksagonal

16

TL; DR:

Di mana ketinggian harus ditambatkan pada kisi heksagonal gaya sipil? Pusat, samping atau dhuwur? (Atau lebih kompleks?)

Pertanyaan yang tepat:

Pertimbangkan sejenak game klasik yang kita semua kenal dan cintai (mungkin?), Sid Meier's Alpha Centauri. Model peta memperkenalkan konsep baru ketinggian dataran yang terlihat ke rumus Civ klasik. Di SMAC, setiap sudut papan permainan memiliki ketinggian, yang memungkinkan peta berbukit-bukit yang indah, kebutuhan yang lengkap, mengingat cacing pikiran mendidih menunggu di setiap sudut.

Apakah peta ketinggian verteks saja menerjemahkan dengan rapi ke kisi heksagonal?

Alternatif yang jelas adalah pemetaan elevasi berbasis sisi dan pemetaan elevasi berbasis pusat; serta pemetaan ketinggian verteks-dalam (memberi kesempatan bagi tebing! Yay!)

Opsi terakhir adalah menerapkan kisi segitiga ke kisi-kisi permainan yang mencakup pusat dan simpul, dan memiliki ketinggian vertex-only atau inner-vertex.

Manakah dari opsi ini yang mungkin bekerja dengan baik? Mana yang cenderung menyedot semua jus dari CPU dan RAM terburu-buru?

Williham Totland
sumber

Jawaban:

10

Apakah peta ketinggian verteks saja menerjemahkan dengan rapi ke kisi heksagonal?

Itu tergantung pada tessellation dari grid. Jika Anda menjual pesawat Anda seperti itu, maka ya.

Kisi

Dalam hal ini, Anda dapat mengubah segitiga hijau (x6) dengan cara apa pun yang Anda suka: hextri

Manakah dari opsi ini yang mungkin bekerja dengan baik?

Mereka semua bekerja dengan baik. Kemungkinannya adalah Anda akan menggunakan banyak metode. Anda tidak bisa hanya menggunakan ketinggian titik tengah kecuali jika Anda hanya ingin fitur gunung satu ubin, Anda harus "menaikkan" ujungnya saat naik gunung jika Anda ingin topografi beberapa ubin.

Mana yang cenderung menyedot semua jus dari CPU dan RAM terburu-buru?

Ini bukan masalah (kecuali jika Anda menulis ini untuk semacam embedded system?) Karena semua pekerjaan pembuatan peta akan dilakukan sebelum ada yang memainkan game, selama fase pemuatan.

David Titarenco
sumber
Dengan ketinggian titik tengah yang saya maksud adalah situasi di mana Anda hanya dapat mengatur dan menyimpan ketinggian untuk titik tengah; jika dua heks memiliki ketinggian yang cukup berbeda, tepian di sekitar mereka akan terangkat agar sesuai dengan ketinggian wajah mereka. (misalnya 1,1 memiliki ketinggian 3; 1,2 memiliki ketinggian 5: wajah 1,1: 1,2 memiliki ketinggian 4 ketika diterjemahkan).
Williham Totland
1
Ini bukan masalah saat runtime karena Anda harus dapat menghitung jalur untuk pergerakan, perbedaan ketinggian untuk keunggulan tempur, dan sebagainya. Ini mungkin bukan masalah saat runtime karena selusin float lebih per hex tidak benar-benar buruk pada kebanyakan platform, tetapi data masih perlu ada di sana untuk menggunakan peta.
-1

Hebat bahwa setidaknya ada orang lain yang memikirkan hal ini. Sayangnya saya hanya menemukan halaman ini beberapa tahun kemudian. Namun, saya akan menjawab pertanyaan Anda untuk segi enam dasar sebagai gantinya. Gambar-gambar yang telah ditampilkan sampai sekarang tidak 100%. Dan pada peta 1 meter kisi-kisi akan keluar dari bentuk. Berarti tidak memungkinkan 60 derajat.

Saya telah bereksperimen pada:

  • Ukuran hexagon yang berbeda-beda: Basis mana (dalam piksel) yang memberikan akurasi tertinggi pada peta 1 meter setelah dicetak. Ini termasuk memiliki mereka sesempurna mungkin ketika mengubahnya 60 derajat. Juga ketika mengubahnya 180 derajat untuk refitting.

  • Lapisan heksagon gabungan yang berbeda.

  • Segi enam tunggal untuk memotong gambar detail tinggi (RAM = tidak cukup pada peta besar).

  • Batas persis komputer saya ditambah apa yang saya rasakan diperbolehkan.

Saya belum mencoba memiliki ketinggian dengan membuat segi enam berbentuk berbeda. Tapi saya tahu bahwa dasarnya harus benar sebelum membuat elevasi.


Ringkasan:

  • Akurasi 1 mm atau kurang pada peta 1 meter. Aturan 60 derajat.

  • Saya membutuhkan garis yang dapat menyesuaikan diri ketika diputar 180 derajat.

  • Saya perlu segitiga agar pas di layar saya dengan zoom maksimum.

Saya mempersempit pilihan saya menjadi 3 dengan aturan ini:

Kecil:

  • Ukuran; +26 x +45, 27 x 46 piksel

  • Ketidaktelitian 1 meter; 0,74 mm

  • Urutan; 131213131312131

Medium:

  • Ukuran; +41 x +71, 42 x 72 piksel

  • Ketidaktelitian 1 meter; 0,20 mm

  • Urutan; 1312131313121313131312131

Besar:

  • Ukuran; +56 x +97, 57 x 98 piksel

  • Ketidaktelitian 1 meter; 0,05 mm

  • Urutan; 1312131313121313131213131312131

Yang 1 pixel.

Dua dan tiga adalah kelompok 2 piksel. A 2 adalah 4 piksel total dan A 3 total 6 piksel.

Jika Anda menambahkan urutan ke atas, Anda akan melihat bahwa itu adalah lebar dalam piksel. Jika Anda menambahkannya dan menghitung 4 dan 6 bukannya 2 dan 3. Anda mendapatkan hight dalam piksel.

Angka + adalah apa yang Anda tambahkan dalam piksel ketika Anda menempatkan 2 segitiga di atas satu sama lain atau terhadap satu sama lain.

Jangan ragu untuk bertanya. Di email saya.

Ramon
sumber
1
Tidak jelas bagaimana Anda menangani pertanyaan yang sebenarnya. Anda telah sedikit membahas topik tersebut, meskipun poin keseluruhan Anda juga sulit untuk diisolasi. Apa hubungan ukuran piksel ini dengan geometri heksagonal dan ketinggian?
Seth Battin
1
Hal lain: StackExchange bukan forum tradisional. Informasi yang bermanfaat harus dimasukkan dalam pos, dan pembaca tidak perlu mengirim email kepada Anda untuk mendapatkan jawaban yang lengkap. Juga karena ini bukan forum, tidak ada cara bagi orang untuk mempertanyakan kembali jawaban Anda. Jadi tidak hanya mengundang pertanyaan yang tidak pantas, itu tidak akan berhasil. Lihat gamedev.stackexchange.com/help/how-to-answer .
Seth Battin