Nếu bạn cố gắng lập trình một mô phỏng trò chơi dựa trên cách thế giới thực hoạt động thì bạn sẽ gặp phải một số vấn đề lớn khi nói đến việc máy tính có thể xử lý bao nhiêu thông tin.
Ví dụ như trang sau đây là một nỗ lực để tính toán có bao nhiêu nguyên tử trong một hạt cát.
http://www.thenakenscientists.com/forum/index.php?topic=6447.0
Tôi đã thấy rất nhiều vấn đề như thế này từ việc nghiên cứu hóa học và vật lý và con số cao đến mức nực cười mà người trên trang này gặp phải là trong công viên bóng của những gì tôi đã thấy các giáo viên và sách giáo khoa khác nhau nghĩ ra. -> 78 000 000 000 000 000 000
Ngay cả khi đây là cách tắt và bạn loại bỏ 6 trong số các số 0 đó thì bạn vẫn sẽ có một số quá lớn để máy tính trung bình xử lý ở tốc độ tương tác. Đặc biệt là khi có 1000 trong số các giao dịch này diễn ra tại bất kỳ thời điểm nào.
Làm thế nào chúng ta có thể tính toán và theo dõi động lượng, vị trí, vận tốc, gia tốc tức thời, điện tích trường, v.v., của mỗi nguyên tử trong mỗi hạt cát trên bãi biển nếu chỉ một hạt có 78 000 000 000 000 000 000 thành phần riêng lẻ. (Hoặc thậm chí nhiều hơn nếu bạn xem xét các thành phần nguyên tử phụ.)
Tôi đã từng đọc một tài liệu lập trình đồ họa nVidia có nội dung như sau.
Làm những gì mang lại sự gần đúng tốt nhất về ngoại hình là tốt bởi vì không ai thực sự có thể biết nếu mô phỏng không chính xác 100%. Hiệu quả phải được xem xét.
Điều tương tự cũng áp dụng cho mọi loại mô phỏng trò chơi ngay cả khi nó không liên quan đến đồ họa. Bạn có lẽ chỉ nên làm tối thiểu những gì cần thiết để mọi thứ hoạt động. Nếu bạn đi hết ở đây thì bạn sẽ chôn máy tính phức tạp mà nó không thể xử lý được.
Bạn cũng sẽ phải viết và thử và duy trì mã của sự phức tạp này.
Bạn có thể cung cấp số sê-ri duy nhất cho mỗi đơn vị tiền tệ nhưng bạn sẽ sử dụng hết tất cả tài nguyên của máy tính chỉ trên một chi tiết này.
Có lẽ cách tốt hơn để xử lý việc này là chỉ cung cấp 1 nhận dạng duy nhất cho mỗi giao dịch.
Vì vậy, người chơi số 1 trả cho người chơi số 2 $ 1000000.
Nếu bạn cung cấp cho mỗi đô la một mã định danh duy nhất, nhiều máy tính của mọi người sẽ bắt đầu gặp vấn đề lớn, chưa kể tất cả lưu lượng truy cập mạng và độ trễ mà điều này sẽ gây ra.
Hoặc bạn chỉ có thể tạo một giá trị đại diện cho toàn bộ giao dịch.
uint transferFunds_Player1ToPlayer2 = 1000000;
Ngay cả một máy tính bỏ túi 20 tuổi cũng có thể xử lý một cái gì đó như thế này.