วิธีการสร้างแผนที่


27

ฉันต้องการสร้างแผนที่ที่เรียบง่าย "สุ่ม" ที่สร้างขึ้นสำหรับเกมเล็ก ๆ

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

สิ่งที่ใกล้เคียงที่สุดที่ฉันคิดว่าฉันเคยเห็นมาก่อนคือเครื่องสร้างเลเวลสำหรับเกมSimCityเก่าหรือซีรีส์Civที่คุณสามารถตั้งค่าสำหรับทวีปเดียวเมื่อเทียบกับหลาย ๆ เกาะ ฯลฯ

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

ตอนแรกฉันไม่ต้องการแนวคิดเรื่องความสูงเพียงแค่สองด้าน - ทั้งทางบกและทางทะเลถึงแม้ว่าฉันจะขยายมันในภายหลัง


ฉันกำลังคิดตามบรรทัดของรุ่นโดยใช้ฟังก์ชัน perlin-noise บางอย่าง แต่ฉันไม่แน่ใจว่าจะได้รับจากสิ่งที่เป็นแผนที่ความสูง 2D ไปยังชุดของเส้นที่เชื่อมต่อทุกพื้นที่ที่ความสูง X
Cylindric

คำตอบ:


21

"โด่งดัง" Amit ( หน้ายักษ์ของหัวข้อการเขียนโปรแกรมเกมต่าง ๆ ) มีบล็อกการเขียนโปรแกรมเกมและเขาเพิ่งทำแบบฝึกหัด 3 ส่วนของวิธีการสร้างแผนที่ที่น่าสนใจ ฉันชอบการอ่านจริงๆและมีตัวอย่างการทำงานที่ด้านล่างของบทความที่สามซึ่งเป็นตัวเอกที่น่ารัก

"รูปหลายเหลี่ยมแผนที่รุ่น" ตอนที่ 1 , ตอนที่ 2 , ส่วน 3

นี่อาจเป็นเทคนิคที่คุณต้องการปรับให้เข้ากับความต้องการของคุณ! อย่างน้อยที่สุดเขากล่าวถึงอัลกอริธึมที่เขาใช้ในแต่ละขั้นตอนของกระบวนการ: เขาเริ่มต้นด้วยการสร้างรูปหลายเหลี่ยม Voronoi รูปหลายเหลี่ยมผ่อนคลายพวกมันให้มากขึ้นโดยใช้Lloyd ผ่อนคลายใช้ "ฟังก์ชั่นง่าย ๆ ในการแบ่งโลก แล้วน้ำท่วมเติมเพื่อกำหนดมหาสมุทรและทะเลสาบ ดูเหมือนว่าคุณสามารถหยุดที่นั่นหรืออ่านต่อไปสำหรับภูเขาและหุบเขาและเปลี่ยนเป็น 3D และอื่น ๆ


2
โอ้ว้าวฉันใช้คำแนะนำของ Amit เป็นจำนวนมากเพื่อเรียนรู้ A * มันเหมือนกับว่าเขามองเข้าไปในหัวของฉัน :) เวลาที่จะได้รับรอยสัก "<3 Amit" ...
Cylindric

1
สิ่งเหล่านี้ช่างยอดเยี่ยมจริงๆ
Colm

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