Dalam permainan lansekap prosedural besar, tanahnya tampak kusam, tapi itu mungkin karena dunia nyata sebagian besar membosankan, dengan hanya tempat terbatas di mana pemandangannya dramatis atau taktis.
Melihat generasi dunia dari sudut pandang ini, generator lanskap untuk game (yaitu, bukan untuk kepentingan pemandangan, tapi demi gameplay) perlu tidak mengikuti aturan lansekap, tetapi beberapa aturan menikah dengan harapan para gamer. Misalnya, mungkin ada generator choke point / rute yang menciptakan jurang bukit, sungai, dan gunung di antara kota-kota, dan bukannya kota yang muncul secara alami, tersebar di tanah berdasarkan sumber daya atau kondisi yang dihasilkan oleh pegunungan dan pola curah hujan.
Apakah ada pekerjaan yang sudah dilakukan seperti ini? Mulai dengan kota atau pusat populasi dan kemudian tambahkan medan setelahnya?
Alasan saya bertanya adalah bahwa saya sebelumnya mempertimbangkan untuk mengambil peta yang ada dari fiksi fantasi (milik saya dan orang lain), memasukkan informasi ke dalam sistem sebagai titik dasar, dan kemudian menghasilkan dunia yang baik untuk dimainkan darinya. Hal ini tampaknya tercakup oleh teknologi yang ada, yaitu, di mana perancang memasukkan semua informasi yang diperlukan seperti populasi kota, sumber daya, bioma, jaringan jalan, dan sungai, kemudian memungkinkan PCG mengisi kekosongan.
Tapi sekarang saya bertanya-tanya apakah mungkin untuk menghasilkan generator menghasilkan juga desain keseluruhan. Hasilkan kota-kota dan pusat-pusat populasi, menyeimbangkan mereka sehingga ada kebutuhan perdagangan yang tampak alami, kemudian menghasilkan posisi dan konektivitas, kemudian dari jenis kota menghasilkan daftar sumber daya yang diperlukan yang harus dekat, dan hanya kemudian, mungkin diberikan beberapa aturan tentang bagaimana membuat perjalanan antar kota dapat dipercaya dan menarik, menghasilkan konten akhir termasuk jalan, titik tersedak, jembatan dan terowongan, feri dan medan termasuk bioma dan garis pantai yang diperlukan.
Jika ini telah dilakukan sebelumnya, saya ingin tahu, dan ingin tahu apa yang salah, dan apa yang benar.
sumber
Jawaban:
Berikut adalah contoh yang bagus untuk pembuatan medan prosedur, menggunakan parameter seperti kelembaban, tinggi dll ... http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
sumber
Saya percaya saya telah menatap kembali pertanyaan ini selama tiga hari terakhir, sambil bertanya pada diri sendiri bagaimana generasi prosedural dunia atau bahkan galaksi dapat, pada saat yang sama, menjadi deterministik (seperti selalu menghasilkan konten yang sama dari benih yang sama ), terlihat alami, dan masih memiliki fitur yang unik, menarik, tidak biasa atau bahkan indah di lanskapnya.
Saya terus kembali ke jawaban umum yang sama bahwa ini akan sangat tergantung pada genre permainan dan sejarah konsisten internal sendiri dalam cerita. Misalnya, genre pasca-apokaliptik, mengapa ada orang yang membangun kota metropolitan dengan tembok besar di tengah gurun, dan membuat semua orang di dalamnya hidup dengan menyedihkan? Mengapa menjajah planet seperti itu? Dalam fantasi tinggi, mengapa membuat kota di atas pulau terapung? Mengapa kurcaci membuat kota di dalam pegunungan? Dan musuh jahat generik Anda berasal dari tanah berapi dengan gunung berapi aktif? Aturan Keren?
Jadi semuanya kembali ke jawaban Anda sendiri di mana Anda memasukkan informasi ke dalam PCG dan mengisi kesenjangan, dan juga ke jawaban lain tentang menghasilkan dunia yang sesuai dengan alur cerita dan keseluruhan cerita.
Jadi plot menghasilkan elemen gameplay yang menghasilkan lanskap yang sesuai.
Yang mengatakan, saya bertanya-tanya apakah sebuah cerita yang menghasilkan pohon alur cerita yang konsisten, akan menghasilkan desain gameplay keseluruhan yang Anda cari.
(PS: Pemikiran tiga hari yang sama ini juga membuat saya datang dengan jawaban lain untuk masalah yang mungkin muncul: harus ada alat uji otomatis untuk memeriksa apakah desain game yang dihasilkan baik, misalnya, Anda harus memiliki pasukan abad pertengahan yang memiliki kesulitan waktu untuk mengalahkan benteng yang dihasilkan)
sumber
Hanya kertas yang berurusan dengan masalah serupa yang bisa saya temukan di tangan adalah Stachniak dan Stuerzlinger " Sebuah Algoritma untuk Deformasi Medan Fraktal Otomatis ". Itu mengasumsikan Anda membuat medan terlebih dahulu dan merusaknya (atau lebih tepatnya, biarkan algoritma memilih parameter untuk merusaknya secara otomatis) agar sesuai dengan kendala Anda nanti, sehingga tidak menjawab pertanyaan secara langsung. Namun, metode yang disajikan di dalamnya mungkin terbukti bermanfaat bagi orang lain dengan masalah yang sama.
sumber
Bukankah algoritma seperti itu secara otomatis menghasilkan lebih banyak medan 'taktis' ketika jalan-jalan dihasilkan antar kota?
Dengan asumsi bahwa jalan hanya dapat memiliki perubahan ketinggian tertentu per jarak, ketinggian medan akan disesuaikan dengan ketinggian jalan, yang akan mengarah pada pembentukan titik chok setiap kali jalan melewati bukit / jurang / apa pun. Tentu saja, jumlah perubahan ketinggian medan juga perlu dibatasi, atau Anda akan memiliki jalan yang melewati puncak tertinggi.
sumber
Ketika saya berada di Cryptic Studios, kami sedang mengerjakan sesuatu seperti ini untuk misi / pencarian generasi. Para desainer menentukan tujuan misi agak abstrak dan meletakkan mereka dengan beberapa keacakan dalam "urutan perjalanan pemain" dan memotong jalan di antara mereka.
Versi awal dikirimkan bersama Star Trek Online sebagai Genesis Mission (arsip) . Pada saat itu kami sangat bersemangat tentang hal itu tetapi saya tidak tahu berapa banyak itu berlanjut setelah saya pergi, atau jika itu tersedia di alat Foundry pengguna akhir. (Yang merupakan tujuan akhirnya.)
sumber
Pendekatan tipikal untuk pembuatan medan prosedur adalah menggambar fitur spesifik dengan tangan dan menggunakan generator untuk mengisi sisanya. VTerrain pasti memiliki sesuatu yang menarik pada topik ini.
sumber
Lighthouse 3D memiliki survei yang baik tentang beberapa algoritma sederhana untuk pembuatan medan. Jika Anda mulai dengan peta yang berisi kota atau area menarik lainnya, Anda bisa menggunakan beberapa teknik ini untuk menghasilkan medan apa pun yang Anda inginkan. Misalnya, penggunaan algoritma kesalahan yang cerdas dapat digunakan untuk membuat tebing atau lembah di sekitar kota Anda yang akan bertindak sebagai titik tersedak. Juga, menggunakan algoritma lingkaran akan menjadi cara yang bagus untuk menghasilkan terrian untuk penempatan menara. Ini hanya beberapa contoh, tetapi menggunakan algoritma sederhana ini akan menjadi cara yang cukup mudah untuk menghasilkan medan yang menarik di sekitar kota Anda.
sumber
Mungkin saya terlalu menyederhanakan, tetapi mengapa mengabaikan fakta bahwa kota dibangun di medan yang menguntungkan, atau dalam hal ini, ukuran area beradab untuk alasan apa pun? Mungkin medan menawarkan keuntungan taktis untuk cicilan militer atau mungkin ada pabrik kayu di persimpangan hutan besar dan sungai yang memiliki desa hilir yang lebih besar. Bahkan tempat-tempat "suci" didasarkan pada medan bahkan jika untuk fakta sederhana bahwa bagian tanah tertentu itu pada suatu titik dianggap suci, dll. Tidak peduli apa konsekuensinya, tempat peristirahatan terakhir dari mayoritas besar peradaban ada dalam suatu titik fisik untuk alasan yang sangat berbasis medan. Bahkan dalam kasus sebuah kota tumbuh hanya karena ada cukup perdagangan yang terjadi antara dua kota besar untuk menjamin seorang perantara, jika Anda mau, bahwa lokasi kota akan dipilih berdasarkan jalur dengan resistensi paling rendah. Itu akan ditempatkan di suatu tempat yang menawarkan lahan pertanian datar yang baik untuk pasokan makanan lokal ditambah dengan tanah yang cocok untuk pembangunan jalan. Saya yakin Anda sudah memikirkan hal ini ...
Jadi, jika Anda akan membangun kota pertama, tentu, mengapa tidak? Mengapa tidak membangun kota, desa, pemukiman atau apa pun, bersama dengan sebagian besar daerah sekitarnya, yang dibangun dengan tangan, yang mendukung jenis pendirian itu?
Ambil contoh bioma prosedural. Mereka biasanya diterapkan pada peta suhu, kelembaban, dan ketinggian semu-acak. Jika Anda sudah merancang kota (atau pabrik kayu, dll.) Maka Anda mungkin memiliki konsep yang kuat tentang seperti apa tanah itu, yang jika saya tidak salah paham, itulah poin Anda. Ambil bangunan fantasi seperti Orthanc, penuh dengan denah lantai dan medan di sekitarnya, yang telah Anda tiru dengan patuh. Ya, kita tahu, tergantung pada waktu, Orthanc dikelilingi oleh hutan besar yang dihuni oleh Ents (makhluk pohon), dll. Jika Anda mencoba mereplikasi itu, maka menerapkan medan acak tidak masuk akal bagi saya. Yang sedang berkata, setelah Anda membuat pengaturan ini untuk menara itu sendiri dan hutan di sekitarnya apa antara Orthanc dan apa pun kota Anda berikutnya?
Pendekatan sederhana mungkin menulis pembuatan medan prosedur Anda, tempatkan pengaturan Anda di dalam sistem medan yang dibuat secara acak dan lerp ketinggian Anda di sekitar pengaturan tetap dan biola Anda dapat menempatkan Orthanc di berbagai dunia yang dihasilkan secara acak (jika itu menjadi apa yang Anda inginkan).
Namun saya pikir, Anda akan lebih baik dengan kombinasi pengaturan, medan dan bioma terdefinisi dan memastikan Orthanc ditempatkan di dalam bioma hutan besar yang dihasilkan secara prosedural. Bergantung pada bagaimana Anda mengkodekannya, Anda dapat mengatur bioma minimum, medan, kelembaban, dll. Untuk setiap pengaturan yang ditentukan sebelumnya atau bangunan atau kota yang telah Anda pahat. Apakah ini akan menjadi tugas kecil di dunia 3d fotorealistik penuh? Tentu saja tidak.
Saya pikir jika saya mencoba ini, saya akan meneliti algoritma prosedural garis pantai terlebih dahulu. Mengambil pendekatan bahwa hampir semua peradaban sepanjang sejarah telah mengikuti garis pantai apa pun, baik itu lautan, lautan atau danau besar. Ini adalah jalan yang paling tidak tahan terhadap pertumbuhan karena kemungkinan ada banyak ikan, pohon-pohon di dekatnya untuk kayu, dan tentu saja lebih cepat bepergian bahkan dengan perahu yang belum sempurna (setidaknya satu arah).
Saya pikir Anda harus membangun sepenuhnya mundur. Pikirkan, titik-titik pseudo-acak pada peta yang mewakili titik-titik peradaban mungkin dengan algoritme kebisingan yang menentukan populasi peradaban itu sebelum hal lain ditentukan. OK, jadi 1 poin muncul untuk populasi 1.000, 2.000.000 lainnya (atau rasio apa pun tergantung pada populasi dunia Anda tentu saja). Mengapa? Mengapa jumlah populasi itu ada di sana? Populasi 1.000 mungkin adalah komunitas pabrik kayu kecil. Mungkin komunitas penambangan jika berada di sisi utara peta jika Anda membuat dunia bola 3d. Ini menjadi sedikit kabur di sini karena saya tidak tahu apakah Anda akan tanpa batas di semua arah membuat NESW tidak berguna dalam menentukan bioma atau jika Anda ingin "Bumi" yang sangat nyata
Namun, jika Anda merobohkan peradaban Anda, berdasarkan populasi kebisingan pseudo-acak saya pikir kita dapat dengan aman mengambil beberapa aturan (tapi mungkin tidak absolut) seperti ... Semakin besar peradaban, kemungkinan besar, semakin banyak sumber daya yang bermanfaat di tangan dan medan untuk mendukung mereka. Mineral berharga, kayu, dll. Ad mual harus ada atau harus ada sistem perdagangan yang besar untuk mendukung perusahaan yang begitu luas. Berdasarkan hal itu Anda dapat mulai menghasilkan jalan raya dari kota ke kota dan jalan menuju permukiman terpencil seperti operasi penambangan dalam, dll. Pilih titik-titik peradaban yang akan merumuskan garis pantai yang baik dan menjatuhkan titik populasi sepenuhnya dari peta di mana Anda perlu mengisi lautan (atau mungkin Anda memiliki Atlantis di dunia Anda, atau latihan minyak lepas pantai).
Mengisi medan di antara sekali lagi tergantung pada pendekatan bioma Anda sepenuhnya. Jika Anda memiliki yang tak terbatas di setiap arah dunia lalu letakkan Orthanc di mana saja sesuai dengan populasi, paksakan itu ke dalam bioma hutan dan bangunlah di sekelilingnya sampai Anda mencapai setengah jalan ke tujuan preset berikutnya yang mana algoritma Anda melakukan generasi prosedural yang sama sekitar. Lerp / Blend kedua medan bersama saat mereka bertemu dan ya ini adalah penyederhanaan yang jelas.
Tanpa pengetahuan nyata tentang apa yang sebenarnya ingin Anda capai secara mekanis, saya hanya bisa membuang ide dan mungkin ide buruk. Saya pikir pendekatan Anda pantas, bahkan jika itu benar-benar fantastis dalam kenyataan, karena Anda menargetkan apa yang selalu menjadi faktor terpenting dalam setiap permainan: Apakah pemain bersenang-senang? Atau, apakah saya menciptakan dunia acak yang tidak membosankan dan karenanya tidak menyenangkan?
Apa yang juga akan menarik, dan ini bisa menjadi bagian dari generasi peradaban dalam game apa pun, medan pertama atau tidak, apa yang terjadi jika Anda menjatuhkan 2 kota besar bersebelahan? Apa artinya? Apakah mereka berperang? Apakah mereka operasi perdagangan besar-besaran antara dua negara berkembang? Musuh macam apa yang mengintai di hutan pabrik kayu itu?
Saya pikir satu hal yang pasti jika Anda mencoba membangun medan berdasarkan "kota" dan medan itu akan secara langsung dipengaruhi oleh populasi kota tersebut, baik dalam lanskap dan sumber daya alam (dan mungkin bahkan dalam keindahan).
Saya tidak yakin apakah saya benar-benar menjawab sesuatu atau apakah ini sesuai tetapi itu adalah konsep yang sangat menarik dan saya ingin mendengar di mana Anda pergi dengan itu.
sumber
Saya akan menghasilkan fitur-fitur game-play secara bersamaan sebagai bagian dari proses yang sama. Ada sejumlah cara untuk membangun medan berdasarkan aturan. Pembicaraan YouTube oleh Path to Exile devs ini adalah contoh yang cukup bagus: https://www.youtube.com/watch?v=GcM9Ynfzll0 . Juga, untuk pendekatan yang kurang dibangun, ini terlihat menarik: https://www.youtube.com/watch?v=RAtdFKiqs34 . Anda bisa menggunakan perlin noise untuk menghasilkan ketinggian untuk setiap voronoi vertex dan pergi dari sana
sumber