Giả sử bạn đang thiết kế trò chơi PC theo dõi điểm số cao. Ngoài việc giữ điểm số địa phương, một máy chủ điểm số cao toàn cầu được thiết lập được truy cập bởi trò chơi qua internet. Người chơi sẽ có thể gửi điểm số cao của họ vào danh sách điểm số cao toàn cầu ngay sau khi họ đã hoàn thành một trò chơi, hoặc sau đó, từ danh sách điểm số cao của địa phương. Đây phải là một vấn đề phổ biến; trò chơi điện tử trên bảng điều khiển trò chơi hiện đại thường có danh sách điểm số cao trên toàn cầu hoạt động như thế này.Làm cách nào bạn có thể ngăn chặn các điểm cao không có thật xuất hiện trên danh sách điểm số cao trên toàn cầu?
Câu hỏi của tôi tóm tắt: cách bạn có thể ngăn người khác gửi điểm cao không có thật? Hoặc, nói một cách khác, làm thế nào máy chủ điểm số cao toàn cầu có thể chắc chắn rằng điểm số đã gửi thực sự được tạo ra bởi một cuộc chạy qua trò chơi?
Tôi càng nghĩ về điều này, tôi càng nghĩ rằng đó có thể là một vấn đề nan giải.
Những gì bạn thường làm để xác minh rằng thư có nguồn gốc từ một nguồn nhất định có nguồn kỹ thuật số ký thư. Bạn chắc chắn có thể làm điều đó trong trường hợp này, nhưng vấn đề thực sự là người chơi, bằng cách có phần mềm, cũng có khóa riêng của phần mềm. Không có vấn đề làm thế nào obfuscated nó có thể được, nó có thể được đảo ngược thiết kế, hoặc thậm chí chỉ lấy từ bộ nhớ.
Một tùy chọn khác là gửi cùng phát lại trò chơi của người chơi đến máy chủ điểm số cao, sẽ nhanh chóng chạy lại và xác minh rằng điểm đã gửi khớp với kết quả phát lại. Điều này không giải quyết vấn đề, nhưng nó chắc chắn làm cho nó khó khăn hơn để giả mạo một điểm số cao không có thật nếu bạn cũng phải sản xuất một phát lại rất phức tạp mà "chứng minh" nó.
Đây có phải là vấn đề có giải pháp hay không thực sự không thể giải quyết được? Có kỹ thuật được sử dụng bởi các nhà phát triển game console nhà để ngăn chặn loại khai thác, hoặc làm họ chỉ đơn giản dựa vào giao diện điều khiển ngăn chặn mã trái phép chạy?
Sự hiện diện của điểm số không có thật là kết quả của những người chơi ngoài các quy tắc đã thiết lập. Vì vậy, trong một số ý nghĩa, đây là một vấn đề con người và không phải là một vấn đề hệ thống (hoặc một vấn đề có thể được giải quyết ở cấp hệ thống). – rndmcnlly