Mengapa ini Pembuatan Konten Prosedural sementara yang lain tidak?


18

Saya membaca buku Generasi Konten Prosedural online dan pada bab 1, halaman 2 ada satu contoh PCG apa dan PCG bukan apa dan saya tidak bisa membedakannya.

Ini menurut PCG:

middleware mesin permainan yang dengan cepat mengisi dunia game dengan tumbuh-tumbuhan

Ini BUKAN PCG menurut mereka:

mesin permainan yang mampu mengintegrasikan vegetasi yang dihasilkan secara otomatis

Juga di halaman 1 mereka secara eksplisit mengatakan mereka tidak mempertimbangkan mesin game PCG

Istilah kunci di sini adalah "konten". Dalam definisi kami, konten adalah sebagian besar dari apa yang terkandung dalam game: level, peta, aturan permainan, tekstur, cerita, item, pencarian, musik, senjata, kendaraan, karakter, dll . Mesin game itu sendiri tidak dianggap konten dalam definisi kami.

Dugaan saya adalah contoh PCG adalah kode dalam game (atau bisa juga kode yang beradaptasi dengan game apa pun) yang mengenali peta game dan mengisinya dengan vegetasi sesuai dengan itu. Dan contoh bukan PCG bagi saya akan seperti opsi yang tersedia dari mesin game adalah pengembang dapat menambahkan vegetasi offline melalui antarmuka pengguna.

Yang terakhir adalah tebakan yang sangat liar dari saya, saya cukup yakin saya salah sebab pada pandangan pertama mereka berdua terdengar seperti PCG. Tolong bantu saya membedakan mereka.


9
Bandingkan dua pria: A berjalan ke sebuah ruangan, melihatnya, membangun furnitur berdasarkan ruangan, dan meletakkan furnitur di ruangan itu. B melakukan hal yang sama, tetapi ia pergi ke IKEA (orang yang telah membangun furnitur) untuk mendapatkan furnitur untuk dimasukkan ke dalam ruangan. Apakah Anda mengatakan bahwa A dan B menciptakan furnitur? Itulah perbedaan yang mereka coba tunjukkan. Kecuali jika Anda membuat furnitur dari awal, Anda sebenarnya tidak menciptakan furnitur, Anda hanya menggunakan furnitur yang ada dengan cara baru.
Flater

Jawaban:


27

Dengan cara analogi

Sirkuit tidak menghasilkan daya. Bola lampu tidak menghasilkan daya. Baterai tidak menghasilkan daya. Tidak satu pun dari hal-hal yang menggunakan atau menyimpan daya yang dihasilkan , adalah pembangkit listrik.

Generator berbahan bakar bensin adalah generator listrik . Pengaturan panel surya adalah pembangkit listrik . Mereka dapat diharapkan untuk menghasilkan secara spontan ketika mereka ditendang. Hal-hal lain dapat menggunakan daya yang mereka hasilkan: lemari es dan TV serta PC dan pemanas dan bola lampu.

Demikian juga, kode atau program apa pun yang benar - benar menghasilkan konten sendiri saat runtime adalah PCG. Sisanya hanya pengguna konten yang dihasilkan secara prosedural (PGC). Sekarang,

Pembuatan Konten Prosedural

tidak sama dengan

Konten yang Dihasilkan secara Prosedural

PGC adalah artifak yang dihasilkan dari suatu proses (program) yang bergerak di PCG.

PCG dikembangkan (diprogram) ke titik di mana ia dapat secara mandiri menghasilkan konten untuk beberapa atau spesifikasi lain, tetapi dalam (biasanya) variasi yang tak terhitung jumlahnya; PGC dihasilkan dengan demikian sebagai satu variasi tunggal dari ruang konten yang mungkin tidak terbatas dalam spesifikasi algoritmik yang lebih luas. PGC terbatas dan statis sekali dihasilkan. PCG berurusan dengan infinity (atau cukup dekat).

Mengatasi spesifik

"Pembuatan Konten Prosedural" mengacu pada kode / aplikasi yang menghasilkan konten.

Game apa pun dapat dianggap sebagai game PCG jika, saat runtime secara dinamis menghasilkan konten baru melalui bagian dari set instruksi.

Jika Anda (atau mesin Anda) menggunakan beberapa kode program lain yang menghasilkan konten, maka sertakan konten itu sebagai bagian dari game Anda pada waktu kompilasi / build , maka game Anda (dan kodenya) BUKAN PCG. Karenanya:

mesin permainan yang mampu mengintegrasikan vegetasi yang dihasilkan secara otomatis

... bukan PCG, karena mesin itu sendiri tidak menghasilkan konten baru saat runtime, itu hanya menggunakan konten yang dihasilkan dari tempat lain, yang telah secara manual dimasukkan oleh seniman, perancang, atau pengembang.

mengenali peta game

PCG tidak ada hubungannya dengan pengakuan. Ini ada hubungannya dengan melakukan pekerjaan aktif membuat konten. Umumnya aplikasi PCG menghasilkan format data mereka sendiri yang sudah dapat mereka pahami dan kerjakan. Mereka biasanya tidak membaca di sumber luar, meskipun ketika mereka melakukannya, itu hanya logika program lama ... bukan PCG seperti itu. PCG adalah tentang generasi . Karenanya PCG dan bukan PCR :)

Perspektif sejarah

Apa yang kita anggap "konten" dalam konteks ini umumnya mencakup hal-hal yang, di masa lalu, manusia harus menghasilkan sendiri. Sebagai contoh di tahun 70-an dan 80-an, hampir setiap permainan (kecuali beberapa yang sangat istimewa) harus memiliki seni, alur ceritanya, musiknya, karakternya dan nama-nama planetnya, dan sejenisnya, diproduksi oleh manusia. . Itu kebalikan dari PCG.

PCG dimulai ketika programmer game menyadari bahwa alih-alih omong kosong mempekerjakan seniman, musisi, penulis dll - dan kemudian masih harus mengintegrasikan pekerjaan mereka dengan kode, atau lebih buruk lagi, melakukan semua itu bekerja sendiri dan juga pengkodean - mereka bisa alih-alih menulis program untuk menghasilkan semua hal untuk mereka. Upaya-upaya itu adalah beberapa fungsi, modul, dan program PCG pertama yang sesungguhnya. Contoh sempurna adalah XCom / UFO asli , di mana kode gim ini menghasilkan tingkat yang benar-benar unik untuk Anda sebelum pertempuran. Sebelumnya masih (1979) adalah Kuil Apshai .

Elite adalah kasus yang berbeda: beberapa kontennya dihasilkan ketika game sedang dalam pengembangan; tidak hanya kode itu ditulis oleh penulis yang sama, tetapi juga bahwa konten yang dibuat sebelumnya biasanya digunakan pada saat runtime elite.exe(yaitu ketika Anda pemain menjalankan permainan) oleh generator lebih lanjut yang merupakan bagian dari kode permainan , menciptakan dunia yang Anda inginkan. dimainkan.

Contoh yang lebih baru adalah Minecraft (dan game lain yang terinspirasi olehnya) di mana dunia benar-benar menghasilkan di sekitar Anda saat Anda berjalan menuju cakrawala, sebagian besar berkat kekuatan komputasi modern. Bandingkan ini dengan Rogue atau Moria yang dimainkan di PC-XT pada 1980-an, di mana Anda mungkin harus duduk kadang menunggu level untuk menghasilkan! (tergantung pada pengaturan permainan yang Anda pilih).

Tidak semua PCG secara historis berakar di industri game. Misalnya, ada yang menulis generator fiksi. Misalnya, Ken Perlin di bidang grafis dan geometri komputasi menciptakan algoritma Perlin Noise, yang kemudian ia diberikan penghargaan akademi. Sebagai contoh, musisi Brian Eno telah lama terlibat dalam generasi prosedural skor musik. Dan sebagai contoh lain, boardgames non-digital seperti HeroQuest / Warhammer Quest sejak lama menemukan dinamika prosedural untuk membuat gameboard yang berbeda pada setiap permainan.


6
Pengecualian teknis yang sangat kecil - ada bukti proyek penelitian konsep / game di mana game itu sendiri dihasilkan secara prosedural. Yaitu, tujuan, aturan, dan sampai taraf tertentu, representasi semua dihasilkan secara dinamis pada saat dijalankan. Ini mengaburkan batas antara konten & mesin, tetapi tes lakmus "tidak menghasilkan" masih berlaku bahkan di sana. Distilasi yang luar biasa.
Pikalek

3
@ Pikalek Saya setuju sepenuhnya dengan garis pemikiran itu. Kita dapat mengambilnya sejauh yang dilakukan Lisp - bahwa pada akhirnya tidak ada perbedaan antara instruksi dan data. Namun, tidak ingin terlalu mempersulit hal-hal dalam jawaban. Terima kasih sudah berkomentar.
Insinyur

2
@Adocad: Saya pikir Anda melewatkan detail kecil dalam jawaban: "Jika Anda (atau mesin Anda) menggunakan beberapa kode program lain yang menghasilkan konten , dan kemudian memasukkan konten itu sebagai bagian dari game Anda pada waktu kompilasi / build, game Anda ( dan kodenya) BUKAN PCG " Jika Anda telah memasukkan program dalam game Anda, alih-alih konten yang dihasilkan oleh program, dan game Anda akan memicu program ketika diperlukan (secara lokal, di komputer pemain), lalu itu memang akan menjadi PCG offline. Tapi itu tidak terjadi ketika Anda hanya memasukkan hasil dari generasi PCG (yang sekarang statis).
Flater

2
@ AC: Saya pikir perbedaannya lebih jelas ketika memberi label sebagai konten yang dihasilkan secara prosedural atau pembuatan konten prosedural .
Flater

4
@Flater Terima kasih, itu cara yang lebih baik untuk meletakkannya - konten yang dihasilkan secara prosedural dapat dihasilkan secara offline dan / atau pada saat runtime, tetapi pembuatan konten prosedural adalah runtime secara eksplisit. (Perhatikan bahwa alat yang menghasilkan konten yang nantinya akan dikompilasi adalah melakukan PCG, namun setelah konten tersebut telah dibuat dan dikompilasi sebelumnya, permainan yang menggunakan konten tersebut TIDAK melakukan PCG)
AC
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.