Вы правы, говоря, что игровой движок абстрагируется от низкоуровневых графических API, но полноценный игровой движок делает гораздо больше.
Игровые движки призваны упростить разработку игр. У каждого из них есть свои уникальные особенности, но, как правило, они предоставляют простые уровни абстракции для графики, аудио, ввода, управления сценой, обнаружения столкновений, математики и общих полезных утилит. Некоторые предоставляют обертки и плагины для физических API-интерфейсов, а некоторые даже имеют некоторую поддержку AI (в основном ограничены FSM, поиском путей и - деревьями текущего тренда - поведения). Многие из них поддерживают и гордятся кроссплатформенной функциональностью.
Цель игрового движка состоит в том, чтобы облегчить пользователю создание игры, не сталкиваясь с небольшими неудобствами при создании игры с нуля или установкой целой связки библиотек и написанием собственных оболочек для них в соответствии с вашими потребностями. игра.
Есть много движков, но остерегайтесь разницы между графическим движком и игровым движком (например, Unity будет игровым движком, тогда как Ogre будет графическим движком).
У меня есть две книги на эту тему, но они дают хороший обзор по этой теме:
Они не слишком глубоки, так как вам понадобится несколько книг по каждому компоненту, чтобы получить глубину знаний, необходимую для создания полноценного профессионального игрового движка, но я думаю, что они очень хорошо объясняют концепции.
Если вы начинаете разработку, не создавайте движок. Я отсылаю вас на следующую страницу: http://geometrian.com/programming/tutorials/write-games-not-engines/
Двигатели - сложная вещь, чтобы получить право. Если вы напишите множество игр, через некоторое время вы обнаружите, что у вас есть многократно используемый код, который вы можете использовать, чтобы создать свой собственный движок, чтобы помочь вам. И иметь много (полных) игр под своим поясом гораздо более впечатляюще, чем один движок.
Надеюсь, это поможет.
луч