ฉันกำลังทำงานกับ Roguelike และสำหรับฉันฉันได้สร้างอัลกอริทึมการติดตามเรย์ / การคัดเลือกนักแสดงมุมมอง (FoV) ซึ่งประกอบด้วยการพล็อตเส้น Bresenham ทุกจุดในวงกลมที่เป็นของแข็ง มันเป็นสิ่งประดิษฐ์ฟรี (และมีประสิทธิภาพพอสมควร) แต่มันขาดความต้องการที่สำคัญของฉัน: สมมาตร (ถ้าคุณเห็นสัตว์ประหลาดมันจะต้องสามารถเห็นคุณได้ด้วย)
นี่คือตัวอย่างของพฤติกรรมที่ไม่สมมาตรของรหัสของฉัน ในภาพด้านซ้ายฉันยืนอยู่ที่มุมหนึ่ง (บล็อก 'X' สีแดง = กำแพง) ฉันเห็นกระเบื้องด้านบนขวา อย่างไรก็ตามหากฉันย้ายไปที่หนึ่งในกระเบื้องเหล่านั้น (ภาพขวา) ฉันจะไม่เห็นไทล์ที่มาจากอีกต่อไป
ฉันคิดว่าฉันอาจจะอยู่ในรูปแบบของเขตข้อมูลที่อนุญาตแต่เนื่องจากบทความ Roguebasin แนะนำว่าอนุญาตให้มีความสมมาตร มีทางเลือกอื่นในการทำให้สมมาตรไหม?