Что такое игровой движок?
09.09.2024 10:04:54
09.09.2024 10:04:54
На примере... Допустим, у меня есть модель какого-то персонажа и я хочу ее просто отобразить на экране. Модель — это огромное количество соединенных друг с другом треугольников, которые при достаточном отдалении выглядят как персонаж. Чтобы это все отобразить без движка, нужно прочесть данные каждого треугольника, посчитать его поворот и наклон относительно той точки, с которой на него будет смотреть игрок, и отрисовать все эти треугольники. При этом выведется все одинаковым цветом, без освещения и наложенной сверху картинки, а чтобы поменять угол обзора или привести что-то в движение, нужно будет лезть в код и писать всю эту логику с тоннами математики.
В случае с движком мы имеем визуальный редактор и готовый рендеринг. Просто создаем сцену, кидаем туда модель, добавляем источник света, чтобы модель было видно, и камеру, с которой смотрит игрок ("глаза игрока"). Все, после этого у движка уже есть понимание геометрии модели, расстояния до нее, углов поворота и наклона, под которыми ее нужно отобразить, а также освещенности, а у нас в результате на экране есть картинка, причем уже по-разному освещенная и с натянутым скином. Дальше, если я хочу сделать приближение к этой модели, все, что мне нужно будет сделать, — это поменять координаты камеры, которая смотрит на модель. Дальше движок все сам пересчитает и покажет мне новую картинку.
Кроме того, движок нативно дает работу с игрой в каждом кадре, т.е. у каждого объекта на сцене есть метод, который вызывается в каждом кадре, и в основном там мы и пишем всю свою логику, анимации и прочее. При разработке пустошей покадровую отрисовку мы реализовывали вручную.
Кроме того, движок дает работу с физикой, модуль работы со звуком, который учитывает положение источника звука относительно игрока, и кучу прочих вещей, необходимых именно для разработки игр. Ну а конкретно Unity еще и дает над этим слой абстракции, который позволяет потом компилировать один и тот же проект под совершенно разные, несовместимые между собой платформы.


Gentyx
