ฉันชอบวิธีที่ 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 มหาสมุทรที่กำหนด
มีการเปลี่ยนแปลงที่ดีและในหลาย ๆ ด้านมันให้ความรู้สึกเหมือนโลกแห่งความจริง แต่มีปัญหาเล็กน้อย:
อย่างแรกไม่มีรูปแบบสำหรับความลึกของมหาสมุทร คุณคาดหวังว่าน้ำตื้นใกล้ชายฝั่งและน้ำลึกจะอยู่ไกลออกไปไม่มีสัมผัสหรือเหตุผลว่าอยู่ที่ไหน
ประการที่สองน้ำทั้งหมดมีความเข้มข้นในมหาสมุทร ไม่มีทะเลสาบหรือแม่น้ำเพราะเสียงเพอร์ลินไม่ได้ลดลงไปสู่ค่าที่ต่ำกว่าในกลางทวีป
การสร้างสมดุลระหว่างปริมาณของ biome แต่ละอย่างยากมาก ฉันคุณลักษณะนี้เพื่อ:
เสียงเพอร์ลินตามการแจกแจงปกติดังนั้นการประเมินวิธีการปรับความน่าจะเป็นของการทำแผนที่แต่ละมิตินั้นทำได้ยาก
การพยายามปรับสมดุลหลายมิตินั้นยาก - บางทีฉันอาจต้องการมากกว่า (2,3) ดังนั้นฉันจึงได้รับโอกาสมากขึ้น (n, 3) ตอนนี้ฉันมีมากเกินไป (3,3) และทุกอย่างดูผิดไป
เมื่อฉันซูมเสียงอย่างใกล้พอที่จะมีข้อมูลที่ราบรื่นฉันไม่ได้รับตัวอย่างที่สมบูรณ์ของค่า Perlin ดังนั้นฉันจึงปรับแต่งการแจกแจงแผนที่ด้านหน้าฉันโหลดแผนที่สุ่มใหม่และรับผลลัพธ์ที่แตกต่างกันมาก
ฉันพยายามแก้ไขปัญหาแม่น้ำ / ทะเลสาบด้วยการทำน้ำจากค่า Perlin ชุดที่สาม การตัดสินใจเกี่ยวกับน้ำ / ที่ดินแบบไบนารีจากนั้นใช้ข้อมูลทั้งหมดข้างต้นกับที่ดิน สิ่งนี้ทำให้ง่ายต่อการควบคุมการกระจายของน้ำอย่างมาก (ยังไม่สมบูรณ์ แต่ดีกว่า) แต่แนะนำปัญหาว่ามีการเปลี่ยนรูปทางชีวภาพจำนวนมากที่ไม่เข้าท่า ตัวอย่างเช่นทะเลทรายที่ลึกลับในท่ามกลางทุ่งหญ้าที่เขียวชอุ่มหิมะบนชายหาดและอื่น ๆ นอกจากนี้ยังยากที่จะควบคุมสัดส่วนของ biomes ที่ดินด้วยเหตุผลดังกล่าวข้างต้น
เมื่อดูที่ปัญหาข้างต้นฉันลองอัลกอริทึมที่ง่ายกว่าซึ่งแมปเสียงเพอร์ลินกับมิติเดียวเท่านั้น ตอนนี้ฉันมีประเภทภูมิประเทศที่เพิ่มขึ้นจาก 0 = มหาสมุทรลึก -> 1 = มหาสมุทรตื้น -> 2 = ชายหาด ... -> N = หิมะ ในขณะที่สิ่งนี้ให้ผลตอบแทนเกาะและทวีปและทำให้มันง่ายกว่าที่จะสมดุลสัดส่วนของแต่ละภูมิประเทศประเภทภูมิประเทศที่อยู่ไกลเกินไป มวลดินทั้งหมดดูเหมือนว่าแผนที่ระดับความสูงโดยทั่วไปไม่มีประเภทภูมิประเทศกระจายอยู่ทั่วพื้นผิว มวลบกทุกตัวมีคุณสมบัติที่เหมือนกันโดยประมาณเสมอตามลำดับเดียวกันและอยู่ในรูปร่างเหมือนวงแหวนเดียวกันเสมอ