Гхм, @RAlex говорит в своей “а я вот уже жизнью побитый и наученный, а вы все мелочь пузатая” манере, но, по сути, сказано верно. Видите ли, использование внешних движков позволяет увеличить уровень абстракции, причем, очень сильно. Как Вы думаете, что скрывается за операцией “развернуть сцену на 30 градусов”, или, к примеру, “установить камеру и вращать ее внутри сцены, да еще так, чтобы не было видно объектов за препятствиями”? Для того, чтобы написать самые простейшие моменты(а они действительно простейшие в констексте задачи написания годной графики), уже необходимо знать не только основы арифметики, но также послушать курс-другой линейной алгебры, компьютерной графики, анализа изображений и работы с трехмерными сценами, кинематики, механики, и физики(крайне важно!). Как выпускник прошлого года и программист, работающий в крупном предприятии в том числе и с обработкой изображений и трехмерных сцен (ну, много еще кроме, не связанного с графикой, на самом деле), могу сказать, что для того, чтобы очень отдаленно понимать, каким именно образом в сложных трехмерных движках (тут речь не о школьных поделках с летающим шариком, а о том, за что люди большие деньги получают) происходит обработка и вывод данных (а тут прорва как сугубо теоретических данных, читай, математики, так и чрезвычайно аппаратных - cache-coherence, etc), у меня ушло около шести лет. Седьмой пошел. Для того, чтобы приблизиться хотя бы к отдаленно, придется потратить еще столько же - если не больше. Да и не нужно оно - в работе хватает того уровня, который есть на текущий момент. Ну, пока, по крайней мере. Тут вот optical flow грядет…
Разработчики, которые занимаются созданием поделий вроде Unreal Engine, CryEngine, даже Unity - люди, которые в этом деле за всю свою жизнь на этом даже не десять собак съели, и переписывать что-то оттуда самому - занятие крайне неблагодарное, не говоря уже о том, что они разработаны корпорациями, а в них принят особый уровень безопасности, требования по производительности, техники оценивания удобства API, и т.д. С таким одиночный разработчик даже сотни пядей во лбу спорить не сможет. И не нужно - нужно пользоваться тем, что они написали, и сразу получать бонусы огромной производительности, автоматической поддержки новых видеокарт(а таки да, игры приходится про разные устройства оптимизировать), огромной функциональности. Привязаться к событию “тут нажали мышку и потянули вправо”, и сказать движку “повернись на N градусов”, вместо того, чтобы изучать, что же такое кватернионы.
Предвкушая стандартный аргумент вроде “а как же знание теории/хочу написать все сам/не доверяю другим разработчикам/вставить нужное”… Вы знаете, как включается Ваш компьютер? Начиная от движения электронов в проводах, и заканчивая сообщением “Включите брандмауэр Windows”. Если нет, то пользоваться им нельзя, надо свой сочинить. Такая логика?