ทำไมการสร้างเนื้อหาเชิงปฏิบัตินี้ในขณะที่สิ่งอื่นไม่ได้


18

ฉันกำลังอ่านหนังสือการสร้างเนื้อหาเชิงปฏิบัติทางออนไลน์และในบทที่ 1 หน้า 2 มีตัวอย่างหนึ่งของ PCG คืออะไรและอีกอย่างหนึ่งของ PCG ที่ไม่ได้เป็นและฉันไม่สามารถแยกพวกเขาออกจากกันได้

นี่คือ PCG ตามที่พวกเขา:

มิดเดิลแวร์ของเอ็นจิ้นเกมที่สร้างโลกเกมอย่างรวดเร็วด้วยพืชพรรณ

นี่ไม่ใช่ PCG ตาม:

เอ็นจิ้นเกมที่สามารถรวมพืชที่สร้างขึ้นโดยอัตโนมัติ

นอกจากนี้ในหน้า 1 พวกเขากล่าวอย่างชัดเจนว่าพวกเขาไม่พิจารณาเกมเอ็นจิ้น PCG

คำสำคัญที่นี่คือ "เนื้อหา" ในคำจำกัดความของเราเนื้อหาส่วนใหญ่มีอยู่ในเกม: ระดับ, แผนที่, กฎของเกม, พื้นผิว, เรื่องราว, ไอเท็ม, เควส, เพลง, อาวุธ, ยานพาหนะ, ตัวละคร ฯลฯตัวเกมเองไม่ถือว่าเป็นเนื้อหา ในคำจำกัดความของเรา

ฉันเดาว่าเป็นตัวอย่าง PCG เป็นรหัสในเกม (หรืออาจเป็นรหัสที่ปรับให้เหมาะกับเกมใด ๆ ) ที่รู้จักแผนที่เกมและเติมด้วยพืชพรรณตามนั้น และตัวอย่าง PCG ที่ไม่ใช่สำหรับฉันจะเป็นเหมือนตัวเลือกที่มีให้จากเครื่องมือเกมเนื่องจากผู้พัฒนาสามารถเพิ่มพืชแบบออฟไลน์ผ่านส่วนต่อประสานผู้ใช้

อันสุดท้ายเป็นการเดาที่ยากมากจากฉันฉันค่อนข้างแน่ใจว่าฉันผิดเพราะตอนแรกพวกเขาทั้งคู่ฟังเหมือน PCG โปรดช่วยฉันแยกแยะพวกเขา


9
เปรียบเทียบชายสองคน: เดินเข้าไปในห้องดูที่มันสร้างเฟอร์นิเจอร์ตามห้องและวางเฟอร์นิเจอร์ไว้ในห้อง B ทำเช่นเดียวกัน แต่เขาไปที่ IKEA (คนที่สร้างเฟอร์นิเจอร์) เพื่อเอาเฟอร์นิเจอร์ไปวางไว้ในห้อง คุณจะบอกว่าทั้ง A และ B กำลังสร้างเฟอร์นิเจอร์? นั่นคือความแตกต่างที่พวกเขาพยายามจะชี้ไปที่ นอกจากว่าคุณกำลังสร้างเฟอร์นิเจอร์ตั้งแต่เริ่มต้นคุณไม่ได้สร้างเฟอร์นิเจอร์จริงๆคุณแค่ใช้เฟอร์นิเจอร์ที่มีอยู่ในรูปแบบใหม่
Flater

คำตอบ:


27

โดยวิธีการเปรียบเทียบ

วงจรไม่สร้างพลังงาน หลอดไฟไม่สร้างพลังงาน แบตเตอรี่ไม่สร้างพลังงาน ไม่มีสิ่งใดที่ใช้หรือเก็บพลังงานที่สร้างขึ้นเป็นเครื่องกำเนิดไฟฟ้า

เครื่องกำเนิดไฟฟ้าเบนซินขับเคลื่อนเป็นเครื่องกำเนิดไฟฟ้า การติดตั้งแผงเซลล์แสงอาทิตย์เป็นเครื่องกำเนิดไฟฟ้า พวกเขาสามารถคาดหวังว่าจะสร้างขึ้นเองเมื่อพวกเขาถูกเตะออกไป สิ่งอื่น ๆ สามารถใช้พลังงานที่พวกเขาสร้างขึ้น: ตู้เย็นและทีวีและพีซีและเครื่องทำความร้อนและหลอดไฟ

ในทำนองเดียวกันโค้ดหรือโปรแกรมใด ๆ ที่สร้างเนื้อหาเองที่รันไทม์คือ PCG ส่วนที่เหลือเป็นเพียงผู้ใช้ของเนื้อหาที่สร้างโดยกระบวนการ (PGC) ตอนนี้

การสร้างเนื้อหาเชิงปฏิบัติ

ไม่เหมือนกัน

เนื้อหาที่สร้างโดยวิธีการ

PGC เป็นวัตถุผลลัพธ์ของกระบวนการ (โปรแกรม) ซึ่งมีส่วนร่วมใน PCG

PCG ได้รับการพัฒนา (ตั้งโปรแกรม) ไปยังจุดที่สามารถผลิตเนื้อหาโดยอัตโนมัติไปยังข้อมูลบางส่วนหรือข้อมูลจำเพาะอื่น ๆ แต่ในรูปแบบที่หลากหลาย PGC ถูกสร้างขึ้นดังนั้นการเปลี่ยนแปลงเดียวของพื้นที่เนื้อหาที่เป็นไปได้ไม่ จำกัด ภายในข้อกำหนดขั้นตอนวิธีที่กว้างขึ้นนั้น PGC นั้นจำกัดและคงที่เมื่อสร้างแล้ว PCGs จัดการกับอนันต์ (หรือใกล้พอ)

ที่อยู่เฉพาะ

"การสร้างเนื้อหาขั้นตอน" หมายถึงรหัส / แอปพลิเคชันที่สร้างเนื้อหา

เกมใด ๆ ก็ตามถือได้ว่าเป็นเกม PCG หากรันไทม์เกมจะสร้างเนื้อหาใหม่แบบไดนามิกผ่านส่วนหนึ่งของชุดคำสั่ง

หากคุณ (หรือเอนจินของคุณ) ใช้รหัสโปรแกรมอื่นที่สร้างเนื้อหาให้รวมเนื้อหานั้นเป็นส่วนหนึ่งของเกมของคุณเมื่อคอมไพล์ / สร้างเวลาจากนั้นเกมของคุณ (และรหัส) ไม่ใช่ PCG ดังนั้น:

เอ็นจิ้นเกมที่สามารถรวมพืชที่สร้างขึ้นโดยอัตโนมัติ

... ไม่ใช่ PCG เนื่องจากเอ็นจิ้นนั้นไม่ได้ผลิตเนื้อหาใหม่ ณ รันไทม์มันใช้เนื้อหาที่สร้างขึ้นจากที่อื่นซึ่งถูกรวมเข้าด้วยตนเองโดยศิลปินนักออกแบบหรือนักพัฒนา

รู้จักแผนที่เกม

PCG ไม่มีส่วนเกี่ยวข้องกับการจดจำ มันเกี่ยวข้องกับการทำงานที่กระตือรือร้นในการสร้างเนื้อหา โดยทั่วไปแอปพลิเคชัน PCG จะสร้างรูปแบบข้อมูลของตนเองที่พวกเขาสามารถเข้าใจและใช้งานได้ โดยทั่วไปแล้วพวกเขาจะไม่อ่านในแหล่งภายนอกแม้ว่าเมื่อพวกเขาทำนั่นเป็นเพียงตรรกะโปรแกรมเก่าธรรมดา ... ไม่ใช่ PCG เช่นนี้ PCG เป็นข้อมูลเกี่ยวกับรุ่น ดังนั้น PCG และไม่ใช่ PCR :)

มุมมองทางประวัติศาสตร์

สิ่งที่เราพิจารณา "เนื้อหา" ในบริบทนี้โดยทั่วไปครอบคลุมสิ่งเหล่านั้นซึ่งในอดีตที่ผ่านมามนุษย์ได้มีการผลิตด้วยตัวเอง ตัวอย่างเช่นในยุค 70 และ 80 ค่อนข้างทุกเกม (ยกเว้นบางอย่างที่พิเศษมาก) จะต้องมีงานศิลปะเนื้อเรื่องเพลงดนตรีชื่อตัวละครและดาวเคราะห์และสิ่งอื่น ๆ ที่ผลิตโดยมนุษย์ . นั่นคือสิ่งที่ตรงกันข้ามกับ PCG

PCG เริ่มขึ้นเมื่อโปรแกรมเมอร์เกมตระหนักว่าแทนวิธีการซับซ้อนของการจ้างศิลปินนักดนตรีนักเขียน ฯลฯ - และแล้วยังคงมีเพื่อบูรณาการการทำงานของพวกเขาด้วยรหัสหรือแย่ลงยังทำทั้งหมดของการทำงานที่ตัวเองเช่นเดียวกับการเขียนโปรแกรม - พวกเขาจะทำได้ แทนที่จะเขียนโปรแกรมเพื่อสร้างทุกสิ่งที่พวกเขา ความพยายามเหล่านั้นเป็นหนึ่งในฟังก์ชัน PCG โมดูลและโปรแกรมอย่างแท้จริงเป็นครั้งแรก ตัวอย่างที่สมบูรณ์แบบคือXCom / UFO ดั้งเดิมโดยที่โค้ดของเกมจะสร้างระดับที่ไม่เหมือนใครสำหรับคุณก่อนการต่อสู้ ก่อนหน้านี้ยังคง (1979) เป็นวัด Apshai

Eliteเป็นกรณีอื่น: เนื้อหาบางส่วนสร้างขึ้นเมื่อเกมอยู่ระหว่างการพัฒนา ไม่เพียง แต่เป็นรหัสที่เขียนโดยผู้เขียนคนเดียวกันเท่านั้น แต่ยังรวมถึงเนื้อหาที่สร้างไว้ล่วงหน้าโดยทั่วไปที่รันไทม์ของelite.exe(เช่นเมื่อคุณผู้เล่นรันเกม) โดยเครื่องกำเนิดไฟฟ้าเพิ่มเติมซึ่งเป็นส่วนหนึ่งของรหัสเกมสร้างโลกที่คุณ เล่นใน

ตัวอย่างที่ใหม่กว่าคือMinecraft (และเกมอื่น ๆ ที่ได้รับแรงบันดาลใจจากมัน) ที่โลกสร้างขึ้นรอบตัวคุณอย่างแท้จริงเมื่อคุณเดินไปที่ขอบฟ้าขอบคุณส่วนใหญ่มาจากพลังการคำนวณที่ทันสมัย เปรียบเทียบสิ่งนี้กับRogue หรือ Moria ที่เล่นบน PC-XT ในช่วงปี 1980 ซึ่งคุณอาจต้องนั่งรอระดับที่จะสร้าง! (ขึ้นอยู่กับการตั้งค่าเกมที่คุณเลือก)

PCG บางส่วนนั้นมีรากฐานมาจากอุตสาหกรรมเกมในอดีต ตัวอย่างเช่นมีผู้เขียนนิยายกำเนิด ตัวอย่างเช่น Ken Perlin ในสาขากราฟิกและเรขาคณิตการคำนวณสร้างอัลกอริธึม Perlin Noise ซึ่งเขาได้รับรางวัลสถานศึกษาในเวลาต่อมา ตัวอย่างเช่นนักดนตรี Brian Eno มีส่วนร่วมในการสร้างคะแนนดนตรีขั้นตอนเป็นเวลานาน และเป็นอีกตัวอย่างหนึ่งเกมกระดานที่ไม่ใช่ระบบดิจิตอลเช่น HeroQuest / Warhammer Quest เป็นเวลานานที่คิดค้นการเปลี่ยนแปลงขั้นตอนสำหรับการสร้างกระดานเกมที่แตกต่างกันในการเล่นแต่ละครั้ง


6
ข้อยกเว้นทางเทคนิคเล็กน้อยมาก - มีการพิสูจน์โครงการวิจัย / เกมแนวคิดที่ตัวเกมถูกสร้างขึ้นตามขั้นตอน นั่นคือเป้าหมายกฎและในระดับหนึ่งการแสดงทั้งหมดถูกสร้างขึ้นแบบไดนามิกในเวลาทำงาน มันทำให้เส้นแบ่งระหว่างเนื้อหาและเอนจินค่อนข้างชัดเจน แต่การทดสอบสารสีน้ำเงินของ "มันสร้าง" ยังคงมีอยู่แม้จะมี การกลั่นที่ยอดเยี่ยม
Pikalek

3
@Pikalek ฉันเห็นด้วยอย่างยิ่งกับแนวความคิดนั้น เราสามารถนำไปใช้เท่าที่ Lisp ทำ - ในที่สุดก็ไม่มีความแตกต่างระหว่างคำแนะนำและข้อมูล ไม่ต้องการซับซ้อนเกินไปในคำตอบ ขอบคุณสำหรับการแสดงความคิดเห็น
วิศวกร

2
@Adocad: ฉันคิดว่าคุณพลาดรายละเอียดเล็กน้อยในคำตอบ: "ถ้าคุณ (หรือเอนจินของคุณ) ใช้รหัสโปรแกรมอื่นที่สร้างเนื้อหาแล้วรวมเนื้อหานั้นเป็นส่วนหนึ่งของเกมของคุณเมื่อคอมไพล์ / สร้างเวลาเกมของคุณ ( และมันเป็นรหัส) ไม่ใช่ PCG "หากคุณรวมโปรแกรมไว้ในเกมของคุณแทนที่จะเป็นเนื้อหาที่สร้างโดยโปรแกรมและเกมของคุณจะเรียกโปรแกรมเมื่อจำเป็น (ภายในเครื่องคอมพิวเตอร์ของผู้เล่น) จากนั้น มันจะเป็น PCG ออฟไลน์แน่นอน แต่นั่นไม่ใช่กรณีเมื่อคุณรวมผลลัพธ์จากการสร้าง PCG (ซึ่งตอนนี้เป็นแบบคงที่)
Flater

2
@AC: ผมคิดว่าความแตกต่างชัดเจนเมื่อการติดฉลากมันเป็นทั้งเนื้อหาที่สร้าง procedurallyหรือการสร้างเนื้อหาขั้นตอน
Flater

4
@Flater ขอบคุณนั่นเป็นวิธีที่ดีกว่าในการวาง - เนื้อหาที่สร้างตามขั้นตอนสามารถสร้างแบบออฟไลน์และ / หรือที่รันไทม์ แต่การสร้างเนื้อหาขั้นตอนเป็นรันไทม์อย่างชัดเจน (โปรดทราบว่าเครื่องมือที่สร้างเนื้อหาซึ่งจะถูกคอมไพล์ในภายหลังคือการทำ PCG อย่างไรก็ตามหลังจากที่เนื้อหานั้นถูกสร้างขึ้นล่วงหน้าและรวบรวมไว้แล้วเกมที่ใช้เนื้อหานั้นไม่ได้ทำ PCG)
AC
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.