ขณะนี้ฉันกำลังเขียนเอนจิ้นเกม 2D ที่ใช้ OpenGL เป็นแพลตฟอร์มขนาดเล็กสำหรับสตูดิโอของเรา เมื่อฉันค้นคว้าคลาส Vector 2 มิติที่จะใช้ฉันสะดุดกับกระบวนทัศน์การออกแบบที่แตกต่างกันสามแบบ:
ลอยและโทรโดยค่าเหมือนในบทความ Gamasutra นี้ ดูเหมือนว่าจะเร็ว แต่มีความแม่นยำน้อย (ดูหัวข้อนี้ ) Pro: รวดเร็วพกพาและใช้งานได้กับห้องสมุดส่วนใหญ่
Double & Call-by-Reference หากฉันเข้าใจบทความข้างต้นถูกต้องฉันสามารถใช้ตัวแปรความแม่นยำสองคู่แทนตัวเลขทศนิยม 4 ตัว ตามด้ายข้างต้นสองครั้งยังคงช้ากว่าลอย
เทมเพลตสำหรับ double และ float: หนังสือยอดนิยม " Game Engine Architecture " ใช้เทมเพลตเพื่อให้สามารถใช้ float และ double ได้ตามต้องการ ข้อเสียที่ชัดเจนคือการขยายโค้ด นอกจากนี้ฉันสงสัยว่ารหัสสามารถปรับให้เหมาะสมโดยไม่ต้องเขียนสองชั้นโดยทั่วไป
ฉันขอขอบคุณที่เรียนรู้วิธีแก้ไขปัญหาที่คุณใช้ในเอ็นจิ้นภายในองค์กรของคุณและความแม่นยำของเอ็นจิ้นเกมยอดนิยมดังนั้นฉันสามารถตัดสินใจได้ว่าโซลูชั่นใดที่ฉันจะใช้ในเอ็นจิ้นของเรา ในช่วงเวลาที่ฉันคิดเพียงแค่ใช้ความแม่นยำลอยและอยู่กับมัน