3 คะแนน โดย GN⁺ 2024-05-18 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

Doom แบบนอกเรขาคณิตแบบยุคลิด: จะเกิดอะไรขึ้นกับเกมเมื่อค่า pi ไม่ใช่ 3.14159

  • ผู้บรรยาย: Luke Gotszling
  • ความยาววิดีโอ: 19 นาที
  • งาน: MCH2022
  • วันที่: 2022-07-23 ~ 2022-07-24

ความสำคัญของค่าพาย

  • ค่าพาย (π) เป็นค่าคงที่ตายตัว และมีบทบาทสำคัญต่อการเรนเดอร์ภาพในงานเขียนโปรแกรมกราฟิก
  • ตรีโกณมิติและเทคนิคทางคณิตศาสตร์อื่น ๆ ก็จำเป็นต่อการเรนเดอร์ภาพเช่นกัน
  • มีการค้นพบว่าค่าพายที่ใช้ในซอร์สโค้ดของเกม Doom นั้นไม่ถูกต้อง

ผลกระทบเมื่อเปลี่ยนค่าพาย

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

ความเป็นไปได้ของเรขาคณิตนอกแบบยุคลิด

  • สำรวจว่าการนำเรขาคณิตนอกแบบยุคลิดมาใช้จะสร้างความเป็นไปได้ที่น่าสนใจในเกมหรือไม่
  • อธิบายสั้น ๆ ถึงเทคนิคบางอย่างที่ใช้ปรับแต่งให้เกมทำงานได้ดีบนฮาร์ดแวร์ในยุคนั้น

การคอมไพล์เกมเวอร์ชันคณิตศาสตร์ผิดเพี้ยน

  • มีลิงก์ไปยังเกมอื่น ๆ ที่ใช้ค่าพายผิด และไปยังคลังซอร์สโค้ดสาธารณะ
  • อธิบายวิธีที่ผู้ชมจะสามารถคอมไพล์เกมเวอร์ชันคณิตศาสตร์ผิดเพี้ยนได้ด้วยตนเอง

ความเห็นของ GN⁺

  • ความสำคัญของแนวคิดทางคณิตศาสตร์: งานบรรยายนี้แสดงให้เห็นอย่างชัดเจนว่าแนวคิดทางคณิตศาสตร์มีความสำคัญต่อการพัฒนาซอฟต์แวร์และการเขียนโปรแกรมกราฟิกเพียงใด โดยเฉพาะความแม่นยำของค่าคงที่อย่าง pi ที่ส่งผลอย่างมากต่อองค์ประกอบด้านภาพของเกม
  • ความน่าสนใจของเรขาคณิตนอกแบบยุคลิด: การประยุกต์ใช้เรขาคณิตนอกแบบยุคลิดในเกมอาจเปิดโอกาสใหม่ ๆ ด้านเกมเพลย์ และมอบไอเดียใหม่ให้แก่นักพัฒนาเกม
  • เทคนิคการปรับแต่งประสิทธิภาพ: การเรียนรู้วิธีปรับแต่งเกมให้ทำงานได้ดีบนฮาร์ดแวร์ในยุคนั้นอาจเป็นประโยชน์ต่อการปรับแต่งซอฟต์แวร์สมัยใหม่ด้วยเช่นกัน และช่วยให้เข้าใจแนวทางต่าง ๆ ในการเพิ่มประสิทธิภาพ
  • คุณค่าด้านการเรียนรู้: กระบวนการคอมไพล์เกมโดยใช้ค่าทางคณิตศาสตร์ที่ผิดมีคุณค่าทางการศึกษาอย่างมาก เพราะเปิดโอกาสให้โปรแกรมเมอร์ได้เรียนรู้ความสำคัญของแนวคิดทางคณิตศาสตร์ผ่านการทดลอง
  • ความท้าทายทางเทคนิค: การทดลองลักษณะนี้มอบความท้าทายทางเทคนิค และช่วยให้โปรแกรมเมอร์พัฒนาทักษะการแก้ปัญหา ซึ่งมีประโยชน์อย่างยิ่งต่อการค้นหาและแก้ไขบั๊กในระบบที่ซับซ้อน

1 ความคิดเห็น

 
GN⁺ 2024-05-18
ความคิดเห็นจาก Hacker News

สรุปรวมความคิดเห็นจาก Hacker News

  • ตัวอย่างจาก Duke Nukem 3D

    • ด่าน 'Lunatic Fringe' ของ Duke Nukem 3D ใช้เอนจิน 'build' เพื่อสร้างทางเดินวงกลมที่หมุนได้สองรอบโดยไม่ตัดกัน
    • เทคนิคนี้ถือว่าล้ำสมัยมากในยุคนั้น และเพิ่มความสนุกให้กับโหมดผู้เล่นหลายคน
    • ยังถูกใช้เพื่อแก้ 'ปริศนาเชื่อมบ้าน 3 หลังกับสาธารณูปโภค 3 อย่างโดยไม่ให้เส้นตัดกัน' ด้วย
  • นิยาย 'Operation Chaos' ของ Poul Anderson

    • นิยายเรื่องนี้มีฉากหลังเป็นโลกคู่ขนานที่เวทมนตร์มีอยู่จริงและพัฒนาอย่างรวดเร็วควบคู่ไปกับวิทยาศาสตร์
    • ลูกของตัวเอกถูกลักพาตัวไปยังนรก และจากคำใบ้ที่ว่ากาลอวกาศและเรขาคณิตของนรกเป็นแบบนอกแบบยูคลิด นักวิทยาศาสตร์จึงหาวิธีเดินทางไปนรกและกลับมาได้อย่างปลอดภัย
  • คำแนะนำให้ค้นหา 84,600 ในโค้ดเบส

    • เช่นเดียวกับที่ John Carmack จำหลักที่ 10 ของพายผิด การค้นหา 84,600 ในโค้ดเบสมักทำให้เจอกรณีที่มีการใส่จำนวนวินาทีในหนึ่งวันผิด
    • บทเรียนคือควรใช้ standard library แทนการพิมพ์ค่าคงที่ลงไปตรงๆ
  • ปัญหาเรื่องกราฟิกและการเคลื่อนไหว

    • กราฟิกและการเคลื่อนไหวเกิดอาการกลิทช์ และท้ายที่สุดก็เล่นต่อไม่ได้
    • แทนที่จะเรียกว่า 'Doom แบบนอกแบบยูคลิด' มองว่าเป็น 'ผลลัพธ์จากการไปยุ่งกับค่าคงที่ของจักรวาล' จะเหมาะกว่า
  • การแก้ซอร์สโค้ดของคอนโซลอีมูเลเตอร์

    • ลองเอาซอร์สโค้ดของคอนโซลอีมูเลเตอร์ตัวโปรดมาสุ่มแทรกข้อผิดพลาด floating-point หรือสลับความหมายของคำสั่ง branch ดูก็สนุกดี
    • ยิ่งเป็นเกมเก่าเท่าไร ก็ยิ่งมีโอกาสที่ยังพอทำงานได้ และอาจได้ประสบการณ์ประหลาดๆ
  • Doom ไม่ใช่การจำลอง

    • Doom ไม่ใช่การจำลอง ดังนั้นการเปลี่ยนค่าคงที่จึงเป็นแค่การทำให้บางรูทีนพัง
    • การเปลี่ยนส่วนใหญ่ทำให้เกมเล่นไม่ได้
  • ค่ามากที่สุดของพาย

    • มีคำถามว่าค่าสูงสุดของพายจะเป็นเท่าไร
    • ถ้าพายเป็น 4 มีแนวโน้มว่าจะเกิด segmentation fault ดังนั้นค่าพายสูงสุดที่ยังเล่นได้จึงน่าจะสูงกว่าพายจริงเพียงเล็กน้อย
  • พายในเรขาคณิตนอกแบบยูคลิด

    • แม้ในเรขาคณิตนอกแบบยูคลิด พายก็ยังคงเป็นพาย
    • ลักษณะของเรขาคณิตนอกแบบยูคลิดคือความโค้งเชิงตัดขวางไม่เป็น 0
    • สามารถวัดเส้นรอบวงของวงกลมเล็กเพื่อดูความแตกต่างจากวงกลมแบบยูคลิดได้
  • อยากให้มีคำอธิบายกลไกของเกมมากกว่านี้

    • มีความเห็นว่าวิดีโอน่าจะอธิบายกลไกของเกมและผลกระทบของการเปลี่ยนค่าพายให้ละเอียดกว่านี้
  • คลื่นไส้ทันที

    • บางค่า (e และ พาย/2) ทำให้เกิดอาการคลื่นไส้ทันที