Generasi dunia prosedural berorientasi pada fitur gameplay


36

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.


Pendekatan Anda tampaknya aneh. Saya tidak melihat mengapa kota dan pusat populasi akan menjadi yang utama .. bahkan kemudian, tidak bisakah Anda menempatkan beberapa kota dan menetapkan titik-titik tersebut sebagai parameter yang belum acak, dan bekerja dari sana?
Bebek Komunis

1
Saya pikir Anda berada di jalan yang benar dengan desain budaya pertama, medan (dan cuaca) kedua. Di dunia nyata, masyarakat, budaya, dan jaringan serta struktur ekonomi tidak muncul di mana pun. Sebaliknya mereka muncul (atau gagal muncul) berdasarkan medan. Beberapa medan tidak kondusif bagi kebangkitan masyarakat, dan beberapa lainnya tidak. Kota-kota besar tidak muncul di tengah padang pasir atau tundra beku karena a) hampir tidak ada makanan atau air yang dapat ditemukan, dan b) sulit untuk membawa barang-barang ke kota.
Tim Holt

2
Saya mengerti sudut pandang Anda, @Tim Holt. Menurut pendapat saya, Rule of Cool dan Rule of Fun selalu masuk akal ketika merancang skenario game. Sebuah kota yang membentuk jembatan di atas kawah gunung berapi aktif mungkin tidak masuk akal, tapi tetap saja sejuk. Juga, ketika pemain membutuhkan kota yang didistribusikan secara merata di seluruh dunia game untuk tujuan gameplay, Anda harus memberikannya kepada mereka, bahkan ketika lokasi geografis mereka tidak masuk akal.
Philipp

Jawaban:


12

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/


2
Karya yang indah, tetapi masih distribusi acak fitur lanskap pertama, elemen peradaban / gameplay kedua
Richard Fabian

Ini tidak sepenuhnya acak, tapi saya setuju, tidak ada elemen peradaban. Saya pikir teknik ini dapat diadaptasi ke banyak elemen gameplay yang berbeda tetapi yang ada di demo adalah untuk permainan multi pemain (~ 80 pemain per peta): (a) pulau yang dikelilingi oleh air, sehingga orang tidak akan mencapai batas, ( b) area mudah di pantai dengan pemain yang tersebar, (c) area keras di pegunungan dengan pemain terkonsentrasi, (d) jalan membawa Anda ke area lain dengan kesulitan yang sama, (e) sungai membawa Anda ke area dengan kesulitan lebih tinggi. Pemain akan mulai solo di pantai dan berkelompok saat mereka menuju pusat.
amitp

1
Hal utama yang saya coba jelajahi adalah mulai dengan kendala gameplay pertama, dan kemudian membangun peta yang mengisi detail, daripada memulai dengan generator medan acak atau "realistis" yang biasa, dan berusaha menyesuaikan elemen-elemen gameplay di atas . Saya pikir itu bekerja dengan baik untuk gaya permainan itu tetapi saya belum mencobanya untuk gaya permainan lainnya.
amitp

4

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)


2

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.


2

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.


Saya berasumsi Anda bermaksud bahwa jalan yang ada akan memotong generasi medan, mengarah ke apa yang tampak seperti lembah buatan manusia. Ini menarik, di mana sebelumnya Anda pernah melihat generator medan mengambil lanskap dan menilai terlalu sulit untuk dilewati, tetapi cukup murah untuk memotong? Itu tidak menjawab pertanyaan saya, tetapi hal itu menambah daftar hal-hal yang harus dipertimbangkan oleh generator, misalnya kasus yang berlawanan (di mana jalan yang tinggi di atas tanah) akan membutuhkan jembatan atau jembatan, bukan sesuatu yang biasanya terlihat di PCG.
Richard Fabian

Saya hanya berpikir tentang bagaimana hal itu dilakukan dalam kehidupan nyata:
Exilyth

1
Gunung terbentuk, erosi. Tumbuhan dan pohon tumbuh di tanah. Jutaan tahun kemudian, nomaden pertama muncul, berkeliaran, mungkin menetap. Mereka mulai mempengaruhi tanah di sekitar mereka, misalnya dengan lubang batu atau kayu. Nantinya, mereka akan menemukan kota-kota lain, mulai berdagang dengan mereka dan karenanya membutuhkan jalan. Biasanya lebih mudah mengikuti medan daripada mengubahnya, jadi mereka akan menyesuaikan jalan mereka ke lanskap (kecuali sedikit perataan / perataan). Seperti yang Anda lihat, saya melihat masalah lebih dari lebih dari perspektif pembangunan dunia.
Exilyth

2

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.)


1
Ini terdengar seperti pekerjaan yang dilakukan dengan generator plot prosedural, apakah itu benar-benar menghasilkan detail dunia untuk mencocokkan plotline yang diperlukan dari misi ini, atau apakah itu membuat misi dari seperti apa dunia itu, atau apakah itu hanya beruntung bahwa misi itu keras atau mudah berdasarkan apa yang Anda hasilkan?
Richard Fabian

1

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.


1

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.


1

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.


0

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.