- โปรเจกต์นี้เป็นการสร้างแผนที่ของดาวเคราะห์สมมติ Chiron จาก Sid Meier’s Alpha Centauri ขึ้นใหม่อย่างประณีต
- ใช้ ข้อมูลจริงจากในเกม (ความสูง ปริมาณน้ำฝน ภูมิประเทศ ฯลฯ) เพื่อสร้างแผนที่ความละเอียดต่ำเดิมขึ้นใหม่ให้เป็นเวอร์ชันความละเอียดสูงที่มีรูปทรงเป็นธรรมชาติมากขึ้น
- ใช้ วิธีฉายแผนที่ หลากหลายแบบ (equal area, orthoapsidal เป็นต้น) และเครื่องมืออย่าง QGIS, Photoshop, Python เพื่อสร้างภาพที่มีเอกลักษณ์และสวยงาม
- ผ่านกระบวนการสร้าง DEM (แบบจำลองความสูงเชิงดิจิทัล) ที่ซับซ้อน เช่น การสุ่มตัวอย่างข้อมูล การปรับด้วยมือ และการเพิ่ม noise
- เป็นตัวอย่างของ ความท้าทายทั้งเชิงเทคนิคและเชิงสุนทรียะ ที่มีความหมายทั้งต่อเกมเมอร์และนักทำแผนที่
บทนำ: ภาพรวมและแรงจูงใจของโปรเจกต์
- โปรเจกต์นี้เป็นการสร้างแผนที่ของดาวเคราะห์ Chiron ซึ่งเป็นฉากหลังของเกม Sid Meier’s Alpha Centauri ที่ออกวางจำหน่ายในปี 1999 ขึ้นใหม่
- Chiron เป็นเวทีหลักของเกมวางแผนไซไฟที่มีฐานแฟนเหนียวแน่นยาวนาน และมีความสำคัญไม่ต่างจากตัวละครในเกม
- ผู้เขียนในฐานะนักทำแผนที่มืออาชีพ ได้แบ่งปันประสบการณ์ว่า การทำแผนที่ของโลกจริงกับ การสร้างแผนที่โลกสมมติ แตกต่างกันอย่างไร
- นักทำแผนที่จำนวนมากทำงานจากข้อมูลที่มีอยู่แล้ว ขณะที่แผนที่โลกสมมติต้องเริ่มตั้งแต่การสร้างข้อมูลเอง จึงต้องใช้ความคิดสร้างสรรค์และทักษะเพิ่มเติม
- โปรเจกต์นี้เกิดขึ้นได้เพราะ การนำชุดข้อมูลของเกมจริงมาใช้ และผลงานที่เสร็จแล้วก็เปิดให้ทุกคนดาวน์โหลดได้ฟรี
การเก็บข้อมูล
- ในเกม Alpha Centauri มีแผนที่ทางการที่ Chris Pine สร้างไว้เอง (128 × 64 diamond pixel)
- แต่ละพิกเซลมีคุณสมบัติหลายอย่าง เช่น ความสูง ปริมาณน้ำฝน ดัชนีความเป็นหิน ฯลฯ
- สำหรับข้อมูลความสูง ผู้เขียนสุ่มเก็บค่าของทุกไทล์ในเกมทีละจุดด้วยตนเอง (กรอกด้วยมือ 8192 ค่า)
- ข้อมูลปริมาณน้ำฝนใช้ thematic map แบบละเอียดที่ขยายด้วยม็อด แยกแต่ละระดับ (ฝน ชื้น แห้ง) ด้วยสี แล้วนำไปแมปใน QGIS
- มีการประมวลผลข้อมูลดัชนีความเป็นหินด้วยเช่นกัน แต่ไม่ได้ใช้ในแผนที่ฉบับสุดท้าย
- การกระจายตัวของ Xenofungus (สิ่งมีชีวิตต่างถิ่น) ถูกสร้างเป็นชุดข้อมูลไบนารีด้วยการสุ่มตัวอย่างสีพิกเซลและการปรับแก้
การตั้งค่าวิธีฉายแผนที่
- แผนที่ในเกมมีลักษณะเป็น การฉายแบบทรงกระบอก โดยวนซ้ำซ้ายขวาได้ไม่สิ้นสุด และมีขอบเขตด้านบนล่าง
- จากแนวคิดที่ว่าแต่ละพิกเซลแทนพื้นที่เท่ากันในโลกจริง จึงใช้ cylindrical equal area projection (อ้างอิงสูตรของ Trystan Edwards)
- มีการปรับวิธีฉายและอัตราส่วนความละเอียดให้สอดคล้องกับทรงกลมที่สมจริง และตั้งค่าการฉายไว้ก่อนเริ่มสุ่มข้อมูล
การปรับแต่งและเพิ่มความละเอียดของข้อมูลความสูง DEM (แบบจำลองความสูงเชิงดิจิทัล)
- ตั้งเป้าให้แสดงภูมิประเทศได้ ละเอียดกว่า แผนที่ต้นฉบับ (128 × 64) จึงทดลองวิธี interpolation ของจุดหลายแบบ
- การกระจายจุดแบบสุ่ม – วางจุด 1–3 จุดต่อบางไทล์เพื่อให้เกิดการซ้อนทับและความสุ่ม
- นำค่าความสูงโดยรอบมาใช้กับแต่ละจุด แล้วสร้างแบบจำลองความสูงแรกด้วย TIN (triangulated irregular network) interpolation
- ประเมินผลและทำ interpolation เพิ่มเติมซ้ำ ๆ (Delaunay triangulation, การดึงจุดกึ่งกลาง, ค่าเฉลี่ยของสามจุดรอบข้าง, การใส่ noise)
- ทำซ้ำหลายรอบเพื่อเพิ่มจำนวนจุดและ noise อย่างละเอียด
- กระบวนการ แปรรูปและแก้ไข: เทียบกับแผนที่จริงเพื่อแก้ความบิดเบือนของภูมิประเทศ เช่น การเชื่อมเกาะหรือปิดช่องแคบ (เพิ่มจุดด้วยมือ)
- ใช้เทคนิคการแก้รูปแบบ rubbersheeting เพื่อแก้ความบิดเบี้ยวของลักษณะเด่นอย่าง Garland Crater (จากทรงสี่เหลี่ยมให้กลับเป็นทรงกลม)
- DEM ขั้นสุดท้ายถูกเกลาให้เรียบขึ้น และพื้นที่ขั้วโลกจัดการแยกด้วยวิธีฉายเฉพาะและการเพิ่ม noise
- หากพบข้อบกพร่องระหว่างขั้นตอนทำแผนที่ ก็จะมีการปรับแก้เพิ่มเติม (เช่น ทะเลสาบที่มนุษย์สร้างขึ้น เกาะเล็ก ฯลฯ ด้วยงานมือแยกต่างหาก)
การใช้วิธีฉายแผนที่หลายแบบ
- แผนที่หลักใช้วิธีฉาย orthoapsidal (Armadillo) ซึ่งเป็นประเภทที่เน้นให้เห็นความโค้งของภูมิประเทศในเชิงภาพ
- พัฒนาสคริปต์การฉายแบบกำหนดเองด้วย Python โดยตรง (ใช้ Python ทางการร่วมกับความช่วยเหลือจาก ChatGPT)
- ปรับค่าความโค้งและความเอียงให้เหมาะกับลักษณะของแผนที่
- ตัวการฉายรองรับเฉพาะเวกเตอร์ แต่ข้อมูล raster อย่าง DEM ถูกประมวลผลด้วยวิธีแปลงเป็น polygon แล้วค่อย rasterize กลับ
การทำแผนที่จริง: อธิบายเลเยอร์ใน Photoshop
- ทะเลลึก (เงา): นำส่วนที่ต่ำกว่า 0 เมตรจาก DEM มาแรสเตอร์เป็นขาวดำ แล้วใส่ไล่สีฟ้า
- พื้นที่แผ่นดิน (แสงเงาภูมิประเทศ): ใช้ตัวจำลองสไตล์วาดมือแบบสวิส (Eduard) และใช้ inner glow ของแนวชายฝั่งเพื่อเน้นการแยกระหว่างบกกับน้ำ
- สีและพื้นผิว: ใช้การผสมผสานของ relief สีน้ำตาล/เขียว, color noise, เอฟเฟกต์แสง, adjustment layer และ mask หลายรูปแบบ
- พืชพรรณ (vegetation): ใช้ interpolation แบบ thin plate spline จากข้อมูลปริมาณน้ำฝน แล้วสร้างลวดลายด้วย Photoshop dissolve + noise mask
- Xenofungus: อิงจากข้อมูลการกระจายในเกม ใช้ relief สีแดง และประมวลผลคล้ายเทคนิคแพตเทิร์นของพื้นที่สีเขียว
- แม่น้ำ (river): วาดเส้นโค้งด้วยมือใน QGIS แล้วนำไป taper และใส่เอฟเฟกต์ใน Illustrator/Photoshop (การสร้างอัตโนมัติจาก DEM ให้ผลไม่เหมาะสม)
- เลเยอร์หลายส่วน เช่น มหาสมุทร แสงเรืองรอบชายฝั่ง และการกระจาย Xenofungus ในทะเล ถูกแยกทำก่อนแล้วค่อยรวมในตอนท้าย
- เพิ่ม ความอิ่มตัวของสีและกริด (เส้นละติจูด/ลองจิจูด ฯลฯ) เพื่อเสริมมิติและความชัดเจนในการมองเห็น
- ปิดท้ายด้วยฟีลแบบกึ่งภาพวาด (Semi-painterly) โดยใช้ฟิลเตอร์ dry brush (ผสมกับต้นฉบับ 50%)
การใส่ป้ายชื่อ (ชื่อสถานที่)
- ร่างต้นแบบใน Adobe Illustrator แล้ววางและ blend ต่อใน Photoshop
- ใช้เอฟเฟกต์เบลอพื้นหลังใต้ชื่อสถานที่, glow และ smart halo เพื่อให้อ่านง่ายขึ้นและตัดกับสีพื้นหลังดีขึ้น
- เลือกใช้ฟอนต์ BellTopo Sans (เหมาะกับโทนสีอ่อนและฉากหลังอนาคตที่ไม่ใช่มนุษย์)
- อ้างอิงชื่อสถานที่ตามในเกม และพื้นที่ที่ตีความได้ไม่ชัดเจนก็ตัดสินตามดุลยพินิจของผู้สร้าง
- ในเลย์เอาต์แบบโปสเตอร์ ใช้ submap (ความสูง พื้นที่ขั้วโลก ฯลฯ) รวมถึง scanline และพื้นหลังสีน้ำเงิน/กรอบ/noise ที่ได้แรงบันดาลใจจาก UI ของเกม
ปิดท้ายและความรู้สึก
- โดยรวมแล้วนี่คือโปรเจกต์ที่รวมเอางานมือและเทคนิคขั้นสูงไว้มาก ทั้ง การสุ่มข้อมูลจากเกม การแปลงแบบจำลองความสูง การปรับแต่งวิธีฉาย และการประกอบเลเยอร์
- กระบวนการทั้งหมดคือการเดินทางยาวนานของการลองผิดลองถูก การปรับปรุงด้านภาพ และการเก็บรายละเอียด
- ในอนาคตมีความเป็นไปได้ที่จะนำชุดข้อมูลนี้ไปใช้ทำภาพขยายเฉพาะส่วน หรือสร้างงานภูมิประเทศในสไตล์อื่น (รวมถึงการทดลองเพิ่มด้วยข้อมูล rockiness)
- ข้อบกพร่องของ DEM บางจุด (ทะเลสาบที่ตกหล่น เกาะเล็ก) กำลังอยู่ระหว่างการแก้ไข และมีแผนจะเปลี่ยนเป็น DEM ที่ละเอียดกว่าในภายหลัง
- งานชิ้นนี้เป็นทั้งความท้าทายทางเทคนิคของการทำแผนที่พื้นที่สมมติสำหรับสาย GIS/นักทำแผนที่ และเป็นตัวอย่างที่มอบความพึงพอใจทางสุนทรียะแก่แฟน ๆ
- กระบวนการทั้งหมดสะท้อนผลลัพธ์จากการผสานทักษะและความหลงใหลเฉพาะตัวของผู้สร้าง ซึ่งมุ่งเน้นไปที่การดัดแปลงข้อมูลที่มีอยู่เดิม
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เรื่องราวของ Daniel Huffman นั้นน่าดึงดูดและสร้างแรงบันดาลใจอย่างมาก
เวอร์ชันยาวของเรื่องนี้ยิ่งมอบประสบการณ์ที่สะเทือนอารมณ์มากขึ้น
(ดูเพิ่มเติมได้ที่ https://somethingaboutmaps.wordpress.com/about/ และ https://somethingaboutmaps.wordpress.com/2011/03/02/on-salvation/)
ผมเองก็อยากจะเจอประกายแบบที่เขาเจอ แต่รู้สึกว่าแพสชันของผมหายไปนานแล้ว
เกมนี้เป็นหนึ่งในประสบการณ์แรก ๆ ที่มีความหมายกับผมมาก
ผมจำได้ว่ามันทำให้ตระหนักถึงอุดมการณ์และความเชื่อทางศาสนาหลากหลายแบบในเชิงนามธรรม โดยไม่ผูกกับบุคคลใดคนหนึ่ง
เป็นความทรงจำของการอินกับแต่ละฝ่ายและแนวคิดของพวกเขาอย่างมาก
ผมมักจินตนาการว่าถ้ามีเอเลียนจริง พวกเขาจะมีความเชื่อแบบไหน
เป็นประสบการณ์การเล่นเกมที่ยอดเยี่ยมจริง ๆ
ระบบการเมืองก็น่าประทับใจมาก โดยเฉพาะที่ตัวเลือกทั้งสี่ในสี่หมวดไม่ได้ถูกผูกเข้าหากันโดยอัตโนมัติ
คุณจึงสร้างส่วนผสมแบบเศรษฐกิจตลาดกับรัฐตำรวจได้
ผมคิดว่าการได้เล่นเกมนี้ตอนเด็กทำให้ผมเริ่มคิดลึกขึ้นเกี่ยวกับแนวคิดทางการเมืองต่าง ๆ และความหมายของมัน
(แน่นอนว่าหนังสือก็สอนได้ แต่ในความเป็นจริงมันไม่ง่ายนัก)
มันเป็นบรรยากาศที่เหมาะมากสำหรับให้นักเขียนสร้างการผสมทางการเมืองแปลก ๆ ในเกมไซไฟ
น่าเสียดายที่ Civilization: Beyond Earth ทำให้ความคาดหวังพังอย่างแรง
แทนที่จะมีผู้นำ ฝ่าย และอุดมการณ์ที่น่าสนใจ กลับได้อะไรอย่าง "Space Africa" หรือ "Space Australia"
เลยอดสงสัยไม่ได้ว่า Firaxis มีปัญหาทางกฎหมายอะไรหรือเปล่าที่ทำให้สร้างรีเมก Centauri แบบจริงจังไม่ได้
ผมเคยสงสัยมากว่าทำไมคำว่า "planetfall" ถึงถูกใช้บ่อยใน Sid Meyer's Alpha Centauri
คำนี้ในเกมหมายถึง "จุดเริ่มต้นของประวัติศาสตร์"
ตอนเริ่มเกมจะมีข้อความขึ้นมาประมาณนี้
"ดังนั้นผมจึงไล่ดูแผนที่และจดค่าความสูงของทุกไทล์ไว้ มีทั้งหมด 8,192 ไทล์"
ดูแล้วน่าจะต้องมีวิธีทำให้อัตโนมัติได้ โดยไม่ต้องทำมือซ้ำถึงแปดพันครั้ง
ผมมั่นใจว่าหลายคนที่อ่านคอมเมนต์ที่นี่คงเขียนสคริปต์ดึงข้อมูลแผนที่ออกมาแล้วแปลงเป็น .CSV ได้อย่างรวดเร็ว
แต่บางครั้งการจมอยู่กับงานซ้ำ ๆ เป็นเวลานานแบบไม่ต้องคิดอะไรมากกลับเป็นโปรเจกต์ที่น่าพอใจอย่างคาดไม่ถึง
มันเหมาะมากเวลาที่คุณอยากมีอะไรให้โฟกัส แม้จะไม่ใช่เรื่องสำคัญก็ตาม
ผมก็คิดคล้ายกัน
รู้สึกภูมิใจนิด ๆ ที่คงมีพวกเนิร์ดจำนวนมาก (รวมถึงตัวผมเอง) ที่เคยรักเกมนี้และพร้อมจะลองดึงข้อมูลแบบนี้ด้วยการเขียนโปรแกรม
งานออกแบบเสียงของเกมนี้ยอดเยี่ยมมาก
ผมทึ่งกับตัวเกมมาตลอด
ผมชอบเสียง "อีเวนต์" แปลก ๆ เสียงบี๊บ ๆ หรือเสียงอินเทอร์เฟซประหลาด เสียง "ปังปัง" ของอาวุธ และการพากย์เสียงที่ยอดเยี่ยมมาก
ตั้งแต่ซื้อแบบกล่องในปี 99 ผมก็ภูมิใจเสมอที่มีเกมนี้ติดตั้งอยู่ในคอมพิวเตอร์อย่างน้อยหนึ่งเครื่อง
ผมเชื่อว่ามันเป็นงานศิลปะ
หลังจากนั้นก็ไม่มีเกม Civ ภาคไหนทำให้ผมประทับใจได้เท่านี้อีกแล้ว (ไม่ว่ากราฟิกจะพัฒนาไปแค่ไหนก็ตาม)
จุดเดียวที่ผมเสียดายคือวิธีทำงานของเพลงประกอบ
ดูเหมือนมันถูกออกแบบมาให้เล่นเฉพาะตอนที่ไม่มีอะไรเกิดขึ้น แต่ในการเล่นจริงแทบไม่มีโอกาสได้ยินเลย
ผมคิดว่าแต่ละฝ่ายมีซาวด์แทร็กของตัวเองด้วย
ทั้งผลงาน แผนที่ และตัวบทความที่เขียนออกมานั้นยอดเยี่ยมมาก
จุดเดียวที่ผมรู้สึกขัดใจคือพื้นผิวของแผ่นดินไม่ได้เน้นเส้นแบ่งที่ตัดกันชัด ๆ ทำให้ทุกพื้นที่ดูกลืนต่อกันไปหมด
ยังเห็นแนวภูเขาอยู่ แต่ขอบที่คมชัดแบบในเท็กซ์เจอร์ของโลกแทบไม่ปรากฏในแผนที่ฉบับนี้เลย
หนึ่งในลักษณะที่ชวนสะดุดตามากในแผนที่ต้นฉบับคือเส้นสีแดงที่พาดตัดไปทั่วทุกแห่ง
ผมเดาว่านั่นน่าจะเป็น xenofungus แต่มันดูเหมือนแมกมาที่ผ่าแยกทวีปออกจากกัน
องค์ประกอบแบบนี้หายไปในเวอร์ชันใหม่
ถึงอย่างนั้นก็ยังชื่นชมกับความพยายามที่ทุ่มลงไป และโดยรวมก็ยังรู้สึกว่างานภาพออกมาสวยมาก
พอเห็นว่า "มีแผนที่ดาวเคราะห์แบบทางการที่ผ่านการขัดเกลามาอย่างดีอยู่" ก็เกิดความสงสัยขึ้นมา
ผมสงสัยว่ามีกรอบคณิตศาสตร์สำหรับปรับแผนที่ให้เหมาะที่สุดเพื่อเพิ่มความสนุกในการเล่นหรือไม่
ถ้าเอาคำถามนี้มาพิจารณาอย่างจริงจัง มันจะพาไปถึงจุดตัดของหลายศาสตร์ที่เปลี่ยนโฉมการออกแบบเกมไปเลย
เหตุผลที่แผนที่ของ Alpha Centauri ทำงานได้ดีมากคือมันเป็นโครงสร้างที่ปรับสมดุลความตึงเครียดทางคณิตศาสตร์หลายด้านไว้ได้ดี
<i>คณิตศาสตร์ของทฤษฎีโฟลว์</i>: แนวคิดเรื่อง flow ของ Csikszentmihalyi ถูกนำมาสร้างแบบจำลองเชิงคณิตศาสตร์
ความยากจะโค้งไปตามรูปแบบที่เพิ่มระยะท้าทายเล็กน้อยเหนือระดับทักษะ และบนแผนที่ก็หมายถึงการมีทางเลือกที่มีความหมายซึ่งเหมาะกับความชำนาญของผู้เล่นอยู่เสมอ
<i>เอนโทรปีของข้อมูล</i>: แผนที่ที่ดีต้องไม่ให้เอนโทรปีสูงหรือต่ำเกินไป
มีงานวิจัยที่ระบุว่าสเกลเอนโทรปีราว 0.3–0.5 สำหรับความหลากหลายของภูมิประเทศเหมาะที่สุดต่อการเล่น
<i>การประยุกต์ใช้ทฤษฎีกราฟ</i>: มองโครงสร้างของแผนที่เป็นกราฟ แล้วดู
สิ่งเหล่านี้เชื่อมตรงกับระดับความมีส่วนร่วมของผู้เล่น
<i>ข้อสรุปสำคัญ</i>: เมื่อเรานำแนวคิดเลือนลางอย่าง 'ความสนุก' มาเป็นเป้าหมายในการ optimize อย่างจริงจัง เราก็ต้องเผชิญหน้ากับความพึงพอใจในการตัดสินใจของมนุษย์โดยตรง
กรอบที่ดีที่สุดไม่ได้พยายามนิยามว่าความสนุกคืออะไร แต่พยายามเพิ่ม <i>ความอุดมสมบูรณ์ของทางเลือกที่มีความหมาย</i> ให้สูงสุด
นั่นจึงเป็นเหตุผลว่าทำไมการสร้างแผนที่แบบ procedural ของเกมสมัยใหม่จึงไม่ได้สุ่มแบบง่าย ๆ แต่ใช้อัลกอริทึมที่จูนความน่าดึงดูดเชิงคณิตศาสตร์เอาไว้
ผมถึงขั้นต้องเอาแผ่น CD เกมนี้ไปให้คนอื่นเพื่อเลิกมัน
มันเสพติดมากจนกระทบทั้งงานและการนอนอย่างหนัก
มีบล็อกชื่อ "Here Dragons Abound" ที่ให้อารมณ์คล้ายกัน
เป็นบล็อกว่าด้วยการสร้างแผนที่แฟนตาซีแบบ procedural แต่ช่วงหลังอัปเดตค่อนข้างห่าง
ผมไม่เคยเล่น Alpha Centauri และจริง ๆ แล้วชอบ Master of Magic หรือ Syndicate มากกว่า
แต่พออ่านสิ่งที่เขียนถึงโปรเจกต์นี้แล้วก็แอบเสียดายนิดหน่อยที่เมิน Alpha Centauri ไปในยุคนั้น
พอมองย้อนกลับไป ยิ่งอายุมากขึ้นก็ยิ่งรู้ว่ามีแค่อย่างเดียวที่ดึงดูดผมได้จริง
นั่นคือการเห็นใครสักคนทุ่มเทกับความสนใจเฉพาะทางแบบลึกและสุดโต่ง โดยไม่สนใจว่าคนอื่นจะมองยังไง
ต่อให้ไม่ใช่เรื่องที่ผมสนใจเอง การได้มองคนที่คลั่งไคล้สิ่งที่ตัวเองทำอย่างแท้จริงก็เป็นความสุขอย่างหนึ่ง
จริง ๆ แล้วอาจเป็นเพราะผมไม่ได้อินกับเรื่องนั้นเอง จึงยิ่งมองเห็นแพสชันของอีกฝ่ายได้ชัดขึ้น
คนที่ผมอยากมีไว้รอบตัวไม่ใช่คนที่สนใจเรื่องเดียวกับผม แต่คือคนที่มีแพสชันกับ <i>อะไรก็ได้</i> สักอย่าง
(จะว่าไป นี่ก็คือการอ้อม ๆ บอกว่าผมไม่ชอบพวก existentialism หรือ nihilism เท่าไรนัก)
มันเป็นเวทฆ่าทันทีที่พบไม่บ่อยแต่ต้านทานไม่ได้ และในสเฟียร์เดียวกันก็ยังมี Web อีก ทำให้บินหนีก็ไม่ช่วย