Apa sajakah sumber daya yang baik mengenai pembuatan konten prosedural dalam konteks pembuatan ruang bawah tanah?
Artikel terdekat yang bisa saya temukan adalah Algoritma untuk menghasilkan labirin 2d , yang bukan yang saya cari. Fitur, seperti kamar dan lorong yang terhubung, sangat ideal.
Terima kasih!
procedural-generation
Gabriel Isenberg
sumber
sumber
Jawaban:
Ini kurang lebih telah dijawab sebelumnya. Tempat pemberhentian pertama Anda harus http://pcg.wikidot.com/
Karena saya dituduh ini sama sekali bukan jawaban yang membantu (sungguh? Seseorang meminta sumber daya dan saya mengirim tautan ke wiki yang berurusan dengan subjek? ), halaman wiki ini membahas tentang generator Dungeon secara khusus dan tautan ke berbagai artikel tentang subjek tersebut.
http://pcg.wikidot.com/pcg-algorithm:dungeon-generation
Saya masih merekomendasikan untuk menelusuri keseluruhan wiki, karena pembuatan konten prosedural hanyalah pendekatan yang sangat kreatif dan semua ide semuanya valid. Ini adalah tantangan berpikir lateral - dan yang menyenangkan.
sumber
Saya berhasil mendapatkan level yang cukup baik dengan menggunakan algoritma berikut, berdasarkan pada kotak persegi:
Pertama, buat satu set kamar. Parameter acak akan menentukan ukuran kamar dan jumlahnya. Algoritma adaptif bahkan dapat mendefinisikan beberapa zona yang terbuat dari lorong besar, dan lainnya dari ruangan yang sangat kecil.
Kemudian, Anda perlu memastikan bahwa semua kamar terhubung satu sama lain. Untuk ini, jalankan pathfinder untuk menggali koridor (misalkan, A *) di antara setiap pasangan kamar, memberikan bobot yang dipilih secara acak untuk ruang yang ada (kamar atau koridor lainnya) dibandingkan dengan ruang yang belum diukir (dinding). Jika perbedaan beratnya kecil, maka menggali koridor baru akan cukup murah, dan algoritme akan membuat banyak koridor di antara kamar, dengan banyak kemungkinan untuk berpindah dari satu tempat ke tempat lain. Jika perbedaan beratnya tinggi, maka algoritme akan lebih suka melewati ruang dan koridor yang ada, membuat jalur lebih berliku, dan dengan lebih sedikit pilihan untuk mencapai tujuan tertentu.
Ini memungkinkan Anda, dari sejumlah kecil parameter, untuk menciptakan tingkat tampilan yang sangat berbeda, dari ruang besar yang jarang dengan koridor kecil yang menghubungkannya ke labirin sarang yang tampak dari kamar-kamar yang saling berhubungan erat.
Berikut adalah contoh level yang dihasilkan.
Berdasarkan algoritma ini, Anda dapat menambahkan hiasan dinding yang tergantung pada zona, membuat koridor lebih kecil atau lebih besar, membuat kamar khusus, dan sebagainya.
sumber
Jika Anda suka membaca kode dan dapat mem-parsing C #, bolehkah saya menyarankan generator penjara bawah tanah yang digunakan Amaranth roguelike saya? Itu disini . Ini menangani kamar terhubung, fitur yang dapat diperluas, dan beberapa hal bagus lainnya.
Jika Anda menarik ke bawah dan membangun seluruh proyek, ada alat mandiri yang akan menghasilkan dan menggambar ruang bawah tanah sehingga Anda dapat men-tweak dan melihat cara kerjanya.
sumber
Semua ini adalah ide bagus. Saya telah mengambil sedikit dari RogueBasin dan pcg.wikidot.com, dan telah menulis implementasi saya sendiri di C #.
Saya benar-benar menyukai tampilan alami seperti tingkat gua yang dapat dihasilkan dengan menggunakan metode automata seluler. Untuk memahami apa yang saya maksud dengan metode automata seluler, bayangkan Permainan Kehidupan Conway. Kode saya menggunakan apa yang disebut metode 4-5, yang berarti ubin akan menjadi dinding jika itu adalah dinding dan 4 atau lebih dari sembilan tetangganya adalah dinding, atau jika bukan dinding dan 5 atau lebih tetangga adalah dinding. Saya mulai dengan mengisi peta secara acak dengan dinding atau ruang, kemudian mengunjungi setiap posisi x / y secara iteratif dan menerapkan aturan 4-5. Untuk membantu meringankan masalah pembentukan gua-gua yang terisolasi, setelah mengisi peta secara acak, saya mengosongkan garis horizontal di peta, mengatur setiap ubin ke ruang alih-alih dinding, sebelum menerapkan aturan 4-5 untuk setiap ubin.
Anda dapat melihat kode untuk kelas pengendali peta saya, dan setiap perbaikan yang saya buat di sini
atau versi yang diarsipkan di sini .
sumber
Saya pikir tempat yang paling langsung untuk menemukan ini adalah untuk benar-benar melihat kode sumber. Dua pemain utama di lapangan, Angband dan Nethack, keduanya open-source.
sumber