Игры (в большинстве случаев) - это моделирование. Традиционно это означает, что вы обновляете симуляцию, представляете ее текущее состояние (например, визуализируете графику) и повторяете. Естественным представлением для этого является цикл.
С другой стороны, информационный насос Win32 представляет собой специфичную для платформы особенность, ориентированную на приложения, управляемые событиями, которые составляют большинство приложений в Windows. Это ни в коем случае не стандарт для приложений на всех платформах, поэтому неудивительно, что не все программное обеспечение прекрасно вписывается в модель. Поэтому, чтобы изменить типичную программу, подходящую для модели Win32, вы обычно сбрасываете эту очередь за один раз, за одну итерацию цикла, используя PeekMessage, пока она не станет пустой. Или вы помещаете эту логику в отдельный поток и, при необходимости, используете GetMessage.
Для большинства игр с производительностью в виду нет другого практического способа сделать это. Во-первых, если вы попытались сделать игру, управляемую событиями, а не опросом, вам понадобится более высокое разрешение, чем Windows, которое может надежно дать вам, если вы хотите сохранить высокую производительность, на которую играют многие игры. Во-вторых, Windows - это только одна из платформ, на которые написаны игры, и переработка игры, идеально подходящая для модели Win32, будет просто неудобством для выделенных игровых платформ, которые ожидают канонический игровой цикл.
И, наконец, проблемы с «взятием 100% CPU» неуместны. Большинство современных игр предназначены для использования в полноэкранном режиме с эксклюзивным доступом к аппаратным средствам, а не только в одном из нескольких других существующих приложений. Клиенты таких игр на самом деле требуют, чтобы игра максимально использовала их оборудование, и это невозможно сделать, если умышленные вызовы Sleep() или обновления зависят от внешних таймеров, пробуждающих приложение N раз в секунду. Очевидно, что есть исключения для многих игр, например. те, которые предназначены для работы в основном в окне, но важно отметить различие.
Да, вам не хватает важного отличия в том, что игра не является сервисом ОС. – Hejazzman