ฉันจะสร้าง "โลก" แบบสุ่มในเอ็นจินไทล์ได้อย่างไร


22

ฉันกำลังออกแบบเกมที่ทำงานกับเอ็นจินไทล์คลาสสิก แต่โลกที่สร้างขึ้นแบบสุ่ม มีเกมหรืออัลกอริทึมที่มีอยู่แล้วหรือไม่? อัลกอริธึมการสร้างโพรซีเดอร์ที่ฉันพบไม่เคยใช้ระบบไทล์ ... วิธีที่ดีที่สุดในการสร้าง "โลก" ทั้งหมดโดยใช้ระบบไทล์คืออะไร? ฉันไม่ได้พูดถึงเขาวงกตของบล็อก แต่ขอบคุณ "แผนที่โลก" โดยรวม


5
สิ่งนี้ถูกถามหลายครั้งลองค้นหาที่นี่: การสุ่มสร้างโลก แก้ไข: นี่คือหนึ่งในเอ็นจิ้นไทล์
Richard Marskell - Drackir

2
-1: คำถามนี้ไม่สามารถตอบได้ในรูปแบบปัจจุบัน มันคลุมเครือเกินไปโดยเฉพาะที่ระบุว่าเป็น "แผนที่โลก" ที่ทำจากกระเบื้อง ตกลงกระเบื้องชนิดใด ไทล์เหล่านี้ทำอะไรในแง่ของการเล่นเกม? นี้จะเป็นอะไรจาก Final Fantasy อารยธรรมและ "วิธีที่ดีที่สุด" เพื่อสร้างภูมิประเทศสำหรับทั้งสองเกมที่แตกต่างกันอย่างสิ้นเชิง ไม่มีทางที่จะให้คำตอบที่จะให้การเล่นเกมที่ดีโดยไม่ทราบว่าคุณวางแผนที่จะใช้มันอย่างไร ก่อนที่คุณจะสามารถพูดคุยเกี่ยวกับการสร้างขั้นตอนของสิ่งใดสิ่งหนึ่งได้คุณจะต้องสามารถสร้างเวอร์ชันที่ดีขึ้นได้ด้วยตนเอง
Nicol Bolas

คำตอบ:


34

คำถามของคุณนำคุณสู่ด้านการสร้างเนื้อหาขั้นตอน

การสร้างกระเบื้องตามโลกมาจากวิธีต่อเนื่อง / อะนาล็อก

โดยต่อเนื่องฉันหมายถึงสิ่งที่ไม่ใช่แบบเรียงต่อกันสิ่งที่เป็นแบบอะนาล็อกตัวอย่างเช่นเป็นแผนที่แบบเวกเตอร์ คุณสามารถใช้เทคนิคแบบต่อเนื่องใด ๆ สำหรับการสร้างและจากนั้นปริมาณมัน ตัวอย่างเช่นสร้างภาพความคมชัดสูงของ Perlin Noise จากนั้นลดความละเอียดลงเพื่อให้พอดีกับขนาด tilemap ของคุณและสุ่มตัวอย่างพิกเซลเพื่อจัดทำ heightmap (ความสูงแผนที่อาจเป็นจุดเริ่มต้นที่ดีสำหรับโลกของคุณ) สิ่งนี้เพราะคุณได้กล่าวถึงการเห็นแหล่งข้อมูลที่ไม่ได้แสดงให้คุณเห็นว่าต้องทำอย่างไรกับวิธีใช้กับแผ่นกระเบื้อง

การผลิตกระเบื้องในยุคโลกใช้วิธีการแกะสลักแบบ "กะพริบ"

ด้วยวิธีการที่ขึ้นกับไพ่ (เซลล์) คุณสามารถสร้างคนตาบอดที่คุณสร้างโลกทีละนิดโดยไม่ต้องมองไปไกลกว่าเช่น กระเบื้องที่อยู่ใกล้เคียงโดยตรง แต่สิ่งนี้มีแนวโน้มที่จะดูเหมือนงานแมลง นี่คือสิ่งทั่วไปของ CA (เซลลูลาร์ออโตมาตา) และแสดงข้อมูลระดับที่ใหญ่กว่าเล็กน้อย

การสร้างโลกที่อิงกับไทล์โดยใช้มุมมองโลกที่กว้างขึ้นจากบนลงล่าง

วิธีนี้ใช้วิธีที่ชาญฉลาดกว่าในการสร้างไทล์โลกโดยเรียงต่อกันเนื่องจากมันจะสร้างเป็นครั้งแรกในแต่ละภูมิภาค ด้วยวิธีนี้คุณจะสามารถควบคุมได้เช่น พื้นที่ทางการเมืองและอื่น ๆ เช่น Tarn Adams ได้กระทำในป้อมปราการคนแคระ ของหลักสูตรนี้คุณต้องคิดเกี่ยวกับวิธีที่คุณต้องการแบ่งโลกของคุณ มีหลายวิธีที่คุณจะต้องทำวิจัยของคุณเอง


การสร้างเนื้อหาในการดำเนินการเป็นเรื่องที่กว้างสวยดังนั้นคุณจะต้องทำเงินที่ดีของการอ่านก่อนที่จะได้รับความคิดที่มั่นคงของสิ่งที่คุณจริงๆต้องการและวิธีการที่จะไปเกี่ยวกับมัน - มารอยู่เสมอในรายละเอียด ด้วยเหตุผลดังกล่าวแหล่งข้อมูลที่ดีสำหรับสิ่งนี้คือรายการส่งเมล์ rec.games.roguelike.development (ข้อมูลมากมายเกี่ยวกับโลกแห่งขั้นตอนที่ใช้กระเบื้อง) หน้าการเขียนโปรแกรมเกมของ AmitP (ดูที่หัวข้อ "หัวข้ออื่น ๆ ") และสุดท้าย แต่ไม่ท้ายสุดวิธีพิจารณาเนื้อหาการสร้างวิกิพีเดีย


วิธีการเหล่านี้ไม่ได้คำนึงถึงวัตถุประสงค์การเล่นเกมของแผนที่ วิธีการใด ๆ เหล่านี้สามารถสร้างแผนที่ที่น่ากลัวได้ แน่นอนว่า OP ไม่ได้บอกว่าแผนที่ที่ดีจะเป็นอย่างไรดังนั้น ...
Nicol Bolas

6
@NicolBolas อย่างแน่นอน OP ต้องการสิ่งที่จะดำเนินต่อไป ฉันไม่จำเป็นต้องเขียนเรียงความเต็มสำหรับทุกคำตอบ (แม้ว่าหลักฐานแสดงให้เห็นว่าฉันทำอย่างนั้นบ่อยพอ)
วิศวกร

ตกลง "เล่นได้" เป็นฮิวริสติกซ้ายที่ดีที่สุดสำหรับ OP "เล่นได้" คือหนึ่งเลเยอร์เหนือการสร้าง "สุ่มโลก" ที่แท้จริงและไม่จำเป็นต้องใช้กับคำถามดั้งเดิม
Patrick Hughes

6

การสร้างขั้นตอนเป็นหัวข้อที่ยิ่งใหญ่ คุณเต็มใจไปลึกแค่ไหน?

คำตอบของ Nick Wiggill นั้นยอดเยี่ยม ฉันจะเพิ่มให้โดยการแนะนำให้คุณดูวิธีการทางคณิตศาสตร์ของการสร้างภูมิประเทศแบบสุ่มที่สอดคล้องกัน

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

เทคนิคจำนวนมากที่กล่าวถึงในเอกสารเช่นนี้โดย Oddlabsผู้สร้างปัญหา Tribal ทำงานได้ดีในแบบ 2D และที่ความละเอียดต่ำเช่นกัน หากคุณคุ้นเคยกับวิธีการนี้มากขึ้นการเรียนรู้เทคนิคเหล่านี้อาจคุ้มค่ากับเวลาของคุณ


3

Spelunky Procedural Space - การแนะนำที่ดีสำหรับการสร้างเนื้อหาขั้นตอนโดย Darius Kazemi

Spelunky เป็นเกม 2D โดย Derek Yu ที่มีระดับขั้นตอนที่ยอดเยี่ยม

นอกจากนี้ยังมีวิกิเนื้อหาขั้นตอนhttp://pcg.wikidot.com/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.