Trò chơi (trong hầu hết các trường hợp) là mô phỏng. Theo truyền thống, điều này có nghĩa là bạn cập nhật mô phỏng, trình bày trạng thái hiện tại của nó (ví dụ: render đồ họa) và lặp lại. Biểu diễn tự nhiên cho điều này là một vòng lặp.
Máy bơm tin nhắn Win32 mặt khác là một quirk cụ thể nền tảng, hướng tới các ứng dụng theo hướng sự kiện tạo nên phần lớn các ứng dụng trên Windows. Nó không phải là tiêu chuẩn cho các ứng dụng trên tất cả các nền tảng, do đó không có gì đáng ngạc nhiên khi không phải tất cả phần mềm đều phù hợp với mô hình. Vì vậy, để sửa đổi một chương trình điển hình để phù hợp với mô hình Win32, bạn thường tiêu hao hàng đợi đó trong một lần, mỗi lần lặp lại vòng lặp, sử dụng PeekMessage cho đến khi nó trống. Hoặc, bạn đặt logic đó vào một chuỗi riêng biệt và sử dụng GetMessage khi thích hợp.
Đối với hầu hết các trò chơi có hiệu suất, không có cách nào khác để thực hiện điều này. Thứ nhất, nếu bạn cố gắng làm cho trò chơi hướng sự kiện thay vì bỏ phiếu, bạn cần thời gian có độ phân giải cao hơn Windows có thể cung cấp cho bạn một cách đáng tin cậy nếu bạn muốn duy trì hiệu suất cao mà nhiều trò chơi đi. Thứ hai, Windows chỉ là một trong những nền tảng mà trò chơi được viết cho, và làm lại trò chơi để phù hợp với mô hình Win32 sẽ là một sự bất tiện cho nền tảng trò chơi chuyên dụng mà mong đợi vòng lặp trò chơi kinh điển thay thế.
Cuối cùng, những lo ngại về việc 'lấy 100% CPU' bị đặt không đúng chỗ. Hầu hết các trò chơi hiện đại được thiết kế để sử dụng ở chế độ toàn màn hình với quyền truy cập phần cứng độc quyền, không chỉ là một trong nhiều ứng dụng khác cùng tồn tại. Khách hàng của các trò chơi như vậy thực sự yêu cầu trò chơi tận dụng tối đa phần cứng của họ và điều này không thể thực hiện nếu có các cuộc gọi hoặc cập nhật Sleep() cố định phụ thuộc vào bộ hẹn giờ bên ngoài đánh thức ứng dụng N lần một giây. Rõ ràng có những ngoại lệ cho nhiều trò chơi, ví dụ như. những thứ được thiết kế để chạy chủ yếu trong một cửa sổ, nhưng điều quan trọng cần lưu ý là sự khác biệt.
Vâng, bạn đang bỏ lỡ sự khác biệt quan trọng rằng trò chơi không phải là dịch vụ hệ điều hành. – Hejazzman