Câu trả lời ngắn gọn: Không.
Câu chuyện dài:
Khi tôi học một số chương trình trò chơi ở trường, chúng tôi được dạy làm như sau:
Quyết định tốc độ khung hình / giây mà chúng tôi muốn trong trò chơi (ví dụ 30).
Viết một số mã thêm 1 vào một bộ đếm cho mỗi khoảng (33 msec trong 30 khung hình / giây). Mã này chạy đồng thời với vòng lặp trò chơi.
Sau đó, vòng lặp trò chơi thực hiện các tính toán cho trò chơi (cập nhật trạng thái trò chơi) sẽ giảm cùng một bộ đếm cho mỗi khung hình. Nhưng các tính toán đồ họa và vẽ lên màn hình sẽ chỉ được thực hiện nếu bộ đếm ở mức 0.
Kết quả là tốc độ khung hình đồ họa sẽ điều chỉnh tùy thuộc vào mức độ cpu xử lý các tính toán trong trò chơi. Khi không có quá nhiều điều xảy ra trong trò chơi, việc tính toán rất dễ dàng và tốc độ khung hình đồ họa sẽ cao hơn so với cập nhật trạng thái trò chơi thực tế (về cơ bản lãng phí chu kỳ vì chúng ta vẽ cùng một trạng thái trò chơi nhiều lần trên màn hình).
Nhưng sau đó, có rất nhiều điều đang xảy ra trong trò chơi, cpu sẽ có nhiều việc phải làm hơn và các cập nhật trạng thái trò chơi sẽ được ưu tiên hơn so với vẽ trên màn hình.
Hầu hết thời gian, trò chơi sẽ tiếp tục cập nhật với tốc độ dự định, nhưng sẽ xuất hiện "lag" vì bạn sẽ không thấy mỗi bản cập nhật trên màn hình. Điều này có thể thích hợp hơn khi toàn bộ trò chơi bị chậm lại vì bạn buộc nó phải rút ra từng bản cập nhật trên màn hình.
Tất cả điều này được thực hiện với C ++ và không có công cụ trò chơi, cũng như card đồ họa. Tất cả mọi thứ chạy trên một cpu lõi đơn. Chúng tôi đã sử dụng một số thư viện cho đồ họa 2d.