เครือข่าย P2P ซ่อนตำแหน่ง?
ฉันทำงานกับสถาปัตยกรรม P2P เพื่อการเล่นเกมที่ปลอดภัยและฉันได้แบ่งปัญหาออกเป็นห้าปัญหาย่อย: การดัดแปลงสถานะของเกมที่ส่งมาอย่างผิดกฎหมาย วางขี้โกงอย่างแม่นยำ ยอมรับสถานะเกม หลีกเลี่ยงการโกง "มองไปข้างหน้า" ซ่อนข้อมูลที่ละเอียดอ่อนจากฝ่ายตรงข้าม สี่คนแรกที่ฉันได้รับการแก้ไขทั้งหมดสวยมาก แต่มันเป็นคนสุดท้ายที่ฉันมีปัญหากับ ก่อนที่ฉันจะลงรายละเอียดฉันแค่อยากถามว่ามีอะไรที่ฉันไม่ได้ทำในรายการทำเครือข่าย p2p "cheat proof" หรือไม่ ฉันไม่สนใจกลโกงเช่นการใช้ aimbots ฉันแค่สนใจที่จะทำให้เครือข่าย p2p ปลอดภัยเหมือนเซิร์ฟเวอร์ส่วนกลาง ดังนั้นในความพยายามของฉันจนถึงการซ่อนข้อมูลที่ละเอียดอ่อนฉันได้มุ่งเน้นไปที่ตำแหน่งของผู้เล่นในเกมที่ไม่ทราบตำแหน่งของฝ่ายตรงข้ามเสมอ ปัญหาก็จะกลายเป็นวิธีการตรวจสอบว่าคุณควรส่งตำแหน่งให้คู่ต่อสู้ของคุณโดยไม่ทราบตำแหน่งของฝ่ายตรงข้าม ฉันได้ตัดวิธีการเช่นฝ่ายตรงข้ามที่ส่งตำแหน่งเท็จหลายตำแหน่งเพื่อเปรียบเทียบคุณเช่นกันเนื่องจากฝ่ายตรงข้ามของคุณสามารถใช้ระบบดังกล่าวได้อย่างง่ายดายเนื่องจากเขาจะได้ตำแหน่งของคุณหากตำแหน่งเท็จปรากฏขึ้นจากตำแหน่งของคุณ วิธีที่ฉันมุ่งเน้นไปที่สิ่งที่คุณได้รับ "สนามภาพ" จากฝ่ายตรงข้ามของคุณและสามารถกำหนดได้ว่าคุณควรส่งตำแหน่งของคุณหรือไม่ อย่างไรก็ตามนี่เป็นปัญหาในเกมเช่น League of Legends ซึ่งข้อมูลการมองเห็นของฝ่ายตรงข้ามเป็นข้อมูลที่มีความอ่อนไหวสูง ฉันได้พยายามแก้ปัญหานี้โดยเปลี่ยนฟิลด์ภาพโดยใช้เมทริกซ์เอกพจน์หมายความว่าคุณไม่สามารถเปลี่ยนจาก Visual Field ที่แปลงแล้วกลับไปเป็นเวอร์ชันดั้งเดิมได้ แต่เนื่องจากเป็นการแปลงเชิงเส้นคุณจึงสามารถทราบได้ว่าตำแหน่งของคุณอยู่ภายในหรือไม่ เขตข้อมูลภาพหรือไม่ อย่างไรก็ตามนี่ไม่ได้ผลอย่างสมบูรณ์สนามภาพที่แน่นอนไม่สามารถเรียกคืนได้หลังจากการเปลี่ยนแปลง แต่ข้อมูลเกี่ยวกับ "ความลาด" ในเขตข้อมูลภาพ (เขตข้อมูลภาพถูกสร้างขึ้นโดยหลายบรรทัดและสามารถกำหนดความลาดชันของแต่ละบรรทัด) คืนค่าและสิ่งนี้สามารถใช้เพื่อสร้างฟิลด์ภาพต้นฉบับที่ค่อนข้างใหม่ ในสาระสำคัญสิ่งที่ฉันต้องการก็คือฟังก์ชั่นที่สามารถตัดสินได้ว่าตำแหน่งนั้นเป็น "ที่มองเห็นได้" หรือไม่และการสร้างฟังก์ชั่น / ฟิลด์ภาพขึ้นมาใหม่นั้นจำเป็นต้องมีการคำนวณแบบเรียกร้อง เกมในการดำเนินการ …