движок по простому это программа обычная, они ничего не компилируют
движок, если провести аналогию к ентерпрайз разрабокам, - это информационная система, где бизнес-логика это механика, правила игры и внутренние информационные процессы, а интерфейс,отображение и вывод - визуализация которая выводится на экран + различные файлы настроек и сохранения (если говорим про оффлайн игры).
в общем таким образом когда игра запускается, запускается движок. в нем уже все давно запрограммировано и он лишь работает с файлами игры и при этом считает что-то внутри себя - подгружает текстуры, вызывает нужные действия ОС, отсылает видяхе нужные установки на отрисовку и тд.
более коротко и просто - движок это программа, которая реализует и согласует все действия которые необходимы для игры (и графика, и внутренняя логика, и физика, и кеши для оптимизации, менюшки все, интерфейсы, какие-то вспомогательные вещи (ачивки например) - в общем все что относится к игре)
чем движок отличается от самой игры? тем что он изначально разрабатывается так чтобы на его основе можно было делать разные игры и/или делать разнообразные моды. то есть он изначально включает в себя большое разнообразие - а конкретная игра на его основе это движок + его нужная конфигурация, ну и плюс в конфигурацию наверное можно включить и набор текстур,моделей и прочих вспомогательных фалйов
если интересуетесь то лучше начните с общих моментов game development а далее можете скачать исходники игры doom 3 и покопаться в них (при этом найдя какуюто статью про эти исходники/игру/движок, скорее всего на английском)