Пост с разбором, зачем id Software выпустили отдельный winquake.exe, когда уже был quake.exe, работавший и в DOS, и в Windows 95.
Проблема: quake.exe под Windows 95 работал на 25% медленнее, чем из-под DOS (38 vs 48 fps). Виртуализация DOS-приложений съедала производительность. Плюс доступ к TCP/IP стеку был через костыли, а на Windows NT вообще не запускалось — DPMI-клиент от DJGPP не дружил с NT Virtual DOS Machine.
WinQuake решил это через нативный win32-бинарник с кучей бекендов на выбор:
🔘Видео: GDI/DIB (безопасно, но медленно), DirectDraw (быстрее), VGA/VESA через WinDirect (прямой доступ к железу в обход GDI)
🔘Звук: DirectSound (низкая задержка, -10% fps) или WinMM (выше задержка, но fps лучше)
🔘Ввод: стандартный WinAPI или DirectInput для плавности
Секретный соус — библиотека MGL от SciTech за $499. Она умела отключать GDI и писать напрямую в видеопамять через технологию WinDirect. Те самые WDIR32.DLL в папке с игрой — это оно.
Результат: 45 fps под Windows 95 вместо 38, разрыв с DOS сократился до 6%. И да, winquake.exe до сих пор запускается на Windows 11 — Microsoft и их обратная совместимость.
@make_game
Post #1732
2.13K

- ❤🔥 9
- ❤ 1