ฉันจะสร้างแผนที่แบบสุ่มที่รู้สึกเหมือนแผนที่แบบสุ่มของ Age of Empires II ได้อย่างไร


18

ฉันชอบวิธีที่ Age of Empires II สร้างแผนที่แบบสุ่มปรากฎ (ความหลากหลายที่ดีการเปลี่ยนภาพทางชีวภาพที่ดีแผนที่รู้สึกแบบสุ่มโดยไม่รู้สึกวุ่นวาย) แต่ฉันพยายามที่จะเลียนแบบสไตล์ ฉันได้ลองใช้เช่นเสียงเพอร์ลิน แต่ทุกอย่างออกมาเป็นเนื้อเดียวกันมากเกินไปหรือไม่ถ้านั้นค่าเปอร์ลิน -> ฮิวริสติกภูมิประเทศนั้นอ่อนไหวและบอบบางเกินไปที่จะทำให้โลกมีความหลากหลาย

ฉันจำประเภทแผนที่ AoE2 "The Unknown" ที่โฆษณา "100,000 แผนที่ที่เป็นไปได้" แนะนำการใช้หมายเลขเมล็ดพืชบางอย่าง แต่ฉันไม่แน่ใจว่าจะใช้หมายเลขเมล็ดพันธุ์เพื่อผลิตสิ่งที่ฉันเห็นได้อย่างไร

อัลกอริทึมและการวิเคราะห์พฤติกรรมแบบใดที่ฉันสามารถใช้ในการสร้างแผนที่แบบสุ่มที่ให้ความรู้สึกเหมือนแผนที่แบบสุ่มของ AoE2

แก้ไขให้เฉพาะเจาะจงมากขึ้น:

คิดเพิ่มเติมเกี่ยวกับปัญหาของฉันและการศึกษาสิ่งที่ผมชอบเกี่ยวกับเครื่องมือแผนที่ AoE2 สุ่มผมเชื่อว่าปัญหาที่ใหญ่ที่สุดของฉันคือการจัดการการกระจายของน้ำและพืชชีวิตบนแผนที่ ตอนนี้ฉันเห็นแล้วว่าฉันผูกติดอยู่กับความคิดของฉันด้วย "การเปลี่ยนแปลงทางชีวภาพที่เหมาะสม" แต่นั่นเป็นปัญหาที่แตกต่าง (แม้ว่าฉันคาดหวังว่าการใช้ Perlin noise อย่างต่อเนื่องจะทำให้แก้ไขได้ยาก)

ฉันได้เพิ่มแผนที่สุ่ม AoE2 หลายรายการที่เน้นสิ่งที่ฉันชอบเกี่ยวกับเครื่องมือการทำแผนที่ซึ่งความพยายามของฉันเองไม่สามารถทำซ้ำได้ ภาพหน้าจอทั้งหมดนำมาจากแผนที่แบบสุ่ม "กำหนดเอง" -> "ไม่ทราบ" ฉันไม่ได้สั่งให้เกมใช้ภูมิศาสตร์เฉพาะเช่นหมู่เกาะ

ด้านล่างคือภาพจากเครื่องมือสร้างแผนที่ของฉันเอง แต่ละพิกเซลสอดคล้องกับแผนที่ย่อย AoE2 หนึ่งจุด

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

แผนที่ Age of Empires II

ทะเลสาป

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

เชื่อมต่อเกาะต่างๆ

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

หมู่เกาะ

ฉันชอบที่แผนที่นี้ใช้น้ำอย่างหนัก แต่ไม่รวมถึงทะเลสาบหลายแห่ง ตัดกันกับภาพแรก ฉันชอบวิธีที่ AoE2 สร้างพื้นที่ทางภูมิศาสตร์ที่แตกต่างกันโดยสิ้นเชิงโดยใช้แบบเอกสารสำเร็จรูปเดียวกัน ความพยายามในการใช้เสียงเพอร์ลินของฉันล้มเหลวที่นี่ - ฉันได้รับมหาสมุทรที่แผ่กิ่งก้านสาขาขนาดมหึมาที่แคระมวลที่ดินหรือดินแดนแห่งทะเลสาบ 10,000 แห่ง ฉันพบว่ามันยากที่จะได้ทั้งเกาะและทวีปที่เชื่อมโยงกัน (คิดว่าอเมริกาเหนือ / ใต้)

แห้งชอุ่ม แห้งแล้ง

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

แผนที่ของฉันเอง

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

ฉันเอาแผนที่ perlin สองอันมาคำนวณค่าจากแต่ละค่าให้เป็นจำนวนเต็มง่ายๆif perlin_val < x { i=some_int } else if perlin_val < y...จากนั้นทำการจับคู่จำนวนเต็ม (ระดับความสูงความชื้น) กับตารางประเภทภูมิประเทศ (เช่น [1,0] -> ทะเลทรายเขตร้อน, [1,1] ] -> ทุ่งหญ้า) มหาสมุทรถูกรวมอยู่ในระบบนี้ - ระดับความสูง = 0 มหาสมุทรที่กำหนด

g1_success

มีการเปลี่ยนแปลงที่ดีและในหลาย ๆ ด้านมันให้ความรู้สึกเหมือนโลกแห่งความจริง แต่มีปัญหาเล็กน้อย:

  • อย่างแรกไม่มีรูปแบบสำหรับความลึกของมหาสมุทร คุณคาดหวังว่าน้ำตื้นใกล้ชายฝั่งและน้ำลึกจะอยู่ไกลออกไปไม่มีสัมผัสหรือเหตุผลว่าอยู่ที่ไหน

  • ประการที่สองน้ำทั้งหมดมีความเข้มข้นในมหาสมุทร ไม่มีทะเลสาบหรือแม่น้ำเพราะเสียงเพอร์ลินไม่ได้ลดลงไปสู่ค่าที่ต่ำกว่าในกลางทวีป

  • การสร้างสมดุลระหว่างปริมาณของ biome แต่ละอย่างยากมาก ฉันคุณลักษณะนี้เพื่อ:

    • เสียงเพอร์ลินตามการแจกแจงปกติดังนั้นการประเมินวิธีการปรับความน่าจะเป็นของการทำแผนที่แต่ละมิตินั้นทำได้ยาก

    • การพยายามปรับสมดุลหลายมิตินั้นยาก - บางทีฉันอาจต้องการมากกว่า (2,3) ดังนั้นฉันจึงได้รับโอกาสมากขึ้น (n, 3) ตอนนี้ฉันมีมากเกินไป (3,3) และทุกอย่างดูผิดไป

    • เมื่อฉันซูมเสียงอย่างใกล้พอที่จะมีข้อมูลที่ราบรื่นฉันไม่ได้รับตัวอย่างที่สมบูรณ์ของค่า Perlin ดังนั้นฉันจึงปรับแต่งการแจกแจงแผนที่ด้านหน้าฉันโหลดแผนที่สุ่มใหม่และรับผลลัพธ์ที่แตกต่างกันมาก

x แยกน้ำ

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

ความล้มเหลวหนึ่งมิติ

เมื่อดูที่ปัญหาข้างต้นฉันลองอัลกอริทึมที่ง่ายกว่าซึ่งแมปเสียงเพอร์ลินกับมิติเดียวเท่านั้น ตอนนี้ฉันมีประเภทภูมิประเทศที่เพิ่มขึ้นจาก 0 = มหาสมุทรลึก -> 1 = มหาสมุทรตื้น -> 2 = ชายหาด ... -> N = หิมะ ในขณะที่สิ่งนี้ให้ผลตอบแทนเกาะและทวีปและทำให้มันง่ายกว่าที่จะสมดุลสัดส่วนของแต่ละภูมิประเทศประเภทภูมิประเทศที่อยู่ไกลเกินไป มวลดินทั้งหมดดูเหมือนว่าแผนที่ระดับความสูงโดยทั่วไปไม่มีประเภทภูมิประเทศกระจายอยู่ทั่วพื้นผิว มวลบกทุกตัวมีคุณสมบัติที่เหมือนกันโดยประมาณเสมอตามลำดับเดียวกันและอยู่ในรูปร่างเหมือนวงแหวนเดียวกันเสมอ


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

คำถามนี้ดูเหมือนจะไม่ได้อยู่ในหัวข้อเนื่องจากมีการขอรายละเอียดการใช้งานเกี่ยวกับเกมที่มีอยู่แล้วโดยเฉพาะแทนที่จะสร้างเกม
เทรเวอร์พาวเวลล์

@TrevorPowell หลังจากตรวจสอบคำแนะนำสำหรับคำถามในหัวข้อสำหรับเว็บไซต์นี้ฉันได้ขอคำถามใหม่อีกครั้ง
spiffytech

คุณโพสต์ที่แก้ไขประมาณสิบวินาทีหลังจากความคิดเห็นของฉัน ตอนนี้ให้บริการ! ;)
เทรเวอร์พาวเวลล์

1
-1 ฉันคิดว่ากว้างเกินไป คุณต้องเจาะจงว่า "แผนที่ที่รู้สึกเหมือน" หมายถึงอะไร ตัวอย่างที่เฉพาะเจาะจงของสิ่งที่คุณกำลังพูดถึงจะต้องตอบคำถามนี้ รุ่นกระบวนงานเป็นศิลปะมากกว่าคนมักจะคิดว่ามันเป็น การสร้างและการรับรู้ศิลปะเป็นหัวข้อที่เป็นอัตวิสัย เลือกสิ่งที่คุณต้องการมุ่งเน้นและถามเฉพาะเกี่ยวกับสิ่งนั้น ปัจจุบันขอบเขตของคำถามนี้กว้างมาก
MichaelHouse

คำตอบ:


9

ลองดูบทความที่ยอดเยี่ยมของ Amit Patel ซึ่งฉันรู้สึกว่าเป็นทรัพยากรที่มีแก่นสารสำหรับการสร้างภูมิประเทศแบบขั้นตอน ...

http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/

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

หากคุณกำลังสร้างเกมประเภท CIV / AOE การวางทรัพยากรจะมีความสำคัญ คุณไม่สามารถมีทรัพยากรที่สำคัญได้ยากหรือมีค่าสูงเกินไป หากคุณคิดว่าแต่ละรูปหลายเหลี่ยมเป็นเขตที่มีลักษณะที่กำหนด (ดูภาพประกอบของบทความมันจะสมเหตุสมผลมากขึ้น) ฉันเห็นการกำหนดทรัพยากรให้กับรูปหลายเหลี่ยมแต่ละอันโดยใช้อัลกอริทึมที่คุณเลือก คุณสามารถฉลาดขึ้นได้ด้วยการทำให้ทรัพยากรในรูปหลายเหลี่ยมถูกทำให้ลำเอียงทางสถิติโดยเพื่อนบ้านเพื่อให้ป่าที่อยู่ติดกับทะเลทรายนั้นอาจหายาก แต่ป่าที่อยู่ถัดจากทุ่งหญ้ามักจะเป็นตัวอย่าง


2
คำแนะนำของ Amit สร้างภูมิประเทศที่สมจริงเกินไปสำหรับ Age of Empires :)
Seth Battin

ใช่แล้วจริง แต่แนวคิดพื้นฐานของการใช้เซลล์ที่มีขนาดแตกต่างกัน (ซึ่งแต่ละประเภทเป็นภูมิประเทศที่เฉพาะเจาะจง) จะทำงานได้ดีตามแนวทางที่ฉันคิด นำแนวคิดเรื่องความสูงของภูมิประเทศออกจากสมการ
Tim Holt

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

5

ฉันจะสร้างสคริปต์แผนที่สุ่มสำหรับอายุของ Empires 2 รายการล่าสุดของฉันสำหรับรุ่น HD

หากคุณกำลังมองหาที่จะเข้าใจวิธีการสร้างแผนที่สำหรับอายุของ Empires 2 มีคู่มือที่ดีนี้เพื่อ RMS (Random แผนที่ Scripting)

Age of Empires ใช้ระบบผู้เชี่ยวชาญช่วยให้สคริปต์เขียนกิจวัตรประจำวันสำหรับกฎการสร้างซึ่งคุณสามารถเรียนรู้ได้มากมาย สำหรับภูมิภาคฉันคิดว่าจะเป็นเพียงแค่การปิดบังพื้นที่และใช้สคริปต์ / กิจวัตรที่แตกต่างกับพื้นที่ที่สวมหน้ากากตามนั้น คุณสามารถดูกฎการสร้างของสคริปต์แผนที่ที่มีอยู่ได้อย่างง่ายดายด้วยการเปิดในตัวแก้ไขข้อความ ฉันเขียนของฉันลงในแผ่นจดบันทึก

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