ปัญหาความแม่นยำ
ตั้งแต่ต้นทีมวิศวกรรู้ว่าโลกต่อเนื่องจะส่งผลกระทบอย่างมีนัยสำคัญต่อเครื่องยนต์และการออกแบบเนื้อหาและประเด็นหลักคือความเสถียรเชิงตัวเลข ลองนึกภาพตัวละครสองตัวที่เดินในรูปแบบห่างกันสองเมตรมุ่งหน้าไปทางตะวันออกห่างจากจุดกำเนิด ในบางจุดระยะทางจากกันและกันถูกครอบงำโดยระยะทางจากจุดกำเนิดและตัวละครจะปรากฏเป็น "ที่ตำแหน่งเดียวกัน"
ด้วยจุดลอยตัวยิ่งคุณได้รับจากจุดกำเนิดมากเท่าไหร่คุณก็ยิ่งเสียความแม่นยำมากขึ้นเท่านั้นซึ่งอาจทำให้เกิดปัญหาที่น่ารังเกียจทุกชนิด สิ่งต่าง ๆ ไม่ถูกต้องรอยแตกปรากฏขึ้นระหว่างตาข่ายที่อยู่ติดกันพื้นที่เริ่มต้นเพื่อหาจำนวนและแมวและสุนัขเริ่มอยู่ด้วยกัน Dungeon Siege ใช้ FPU ในโหมดความแม่นยำเดียวเพื่อประโยชน์ด้านประสิทธิภาพที่ชัดเจนและเพื่อให้ตรงกับความแม่นยำดั้งเดิมของฮาร์ดแวร์วิดีโอ อย่างไรก็ตามแม้ว่าเราจะเพิ่มความแม่นยำในท้ายที่สุดมันก็ไม่สามารถแก้ปัญหาได้เพราะโลกมีแผนที่จะเป็นและมีขนาดใหญ่อย่างไม่น่าเชื่อ
ปัญหาความแม่นยำหมายความว่ามันเป็นไปไม่ได้ที่จะมีพื้นที่ประสานโลกที่เป็นหนึ่งเดียวกับเกมอื่น ๆ แต่วิธีการแก้ปัญหาคือการแบ่งส่วนโลกต่อเนื่องเป็นชุดของช่องว่างประสานงานอิสระและสลับระหว่างพวกเขาเป็นระยะเพื่อรีเซ็ตความแม่นยำ มีการทดลองใช้แนวคิดที่หลากหลายภายใต้ข้อ จำกัด เหล่านี้และในที่สุดเราก็ตกลงกับรูปแบบของระบบพอร์ทัลมาตรฐาน
วิธีการแก้ปัญหาของเราประกอบด้วยระบบพิกัดตามโหนดสัมพันธ์ซึ่งแต่ละชิ้นของรูปทรงเรขาคณิต (Siege Node) มีพื้นที่ประสานงานของตัวเองและมีการเชื่อมโยงเชิงพื้นที่กับรูปทรงเรขาคณิตที่อยู่ใกล้เคียงผ่านประตูที่ใช้ร่วมกันกับเพื่อนบ้านเหล่านั้น การจัดเรียงของโหนดที่เชื่อมต่อกันด้วยประตูเป็นกราฟต่อเนื่องที่แสดงถึงแผนที่โลกทั้งหมด ระบบโหนดนี้มีวิวัฒนาการตลอดเวลาจากเป้าหมายดั้งเดิมของการรักษาความแม่นยำของ FPU ให้กลายเป็นวิธีการหลักของการแบ่งพื้นที่อย่างมีประสิทธิภาพและรากของการปรับให้เหมาะสมจำนวนนับไม่ถ้วน
เพื่อห่อหุ้มแนวคิดของตำแหน่ง 3 มิติที่สัมพันธ์กับโหนดที่เฉพาะเจาะจงเวกเตอร์แบบดั้งเดิม (x, y, z) จะต้องมีการเพิ่มด้วย ID ของโหนด (x, y, z, โหนด) และเป็นตัวแทนของการชดเชยจากแหล่งกำเนิด ของโหนดที่ระบุแทน tuple 4 ตัวนี้ถูกห่อหุ้มด้วยตำแหน่ง Siege Node หรือ SiegePos ต่อมาเราได้เพิ่ม SiegeRot (quaternion, node) เพื่อจัดการการเปรียบเทียบระหว่างการวางแนวข้ามโหนด
วลี“ ไม่มีที่ว่างในโลก” กลายเป็นมนต์ของทีมถึงแม้ว่ามันจะใช้เวลาหลายปีกว่าที่ทุกคนจะคลี่คลายความหมายของมัน