Как Майкл Абраш удвоил FPS в Quake: уроки оптимизации, которые актуальны и сегодня

Легендарный оптимизатор Майкл Абраш разогнал Quake до невиданных высот — и это не магия, а чистый ассемблер и знание железа.
Вы когда-нибудь смотрели на свой код и думали: «Ну, компилятор и сам оптимизирует»? Майкл Абраш, гуру оптимизации из 90-х, на примере Quake показал, что иногда компилятор — это просто ленивый стажёр, который не знает всех секретов процессора.
Абраш вручную переписал критичные участки рендера на ассемблере, используя трюки вроде предвычисления синусов/косинусов через таблицы и ручное управление регистрами. Результат? FPS вырос в два раза на том же железе. Представьте, что вы оптимизируете React-приложение, а потом бац — и сервер не нужен, всё летает на клиенте. Вот такой разрыв шаблона.
Кстати, многие его приёмы (например, использование SIMD-инструкций) актуальны до сих пор — особенно в геймдеве и highload. Если вы думаете, что современные компиляторы всё делают за вас, вспомните историю с Quake: иногда рука мастера творит чудеса, особенно когда нужно выжать из процессора последние кадры.
Комментарий студии METABYTE: Оптимизация — это искусство, и мы его обожаем. Если ваш проект тормозит, не спешите апгрейдить сервер — может, достаточно пары ассемблерных вставок? Шутка, но доля правды есть: мы умеем находить узкие места и делать код быстрее без лишних затрат.