Ви праві, говорячи про те, що ігровий движок віддаляється від графічних API низького рівня, але повноцінний ігровий движок робить набагато більше.
Ігрові двигуни покликані полегшити все щодо розвитку ігор. У кожного вони є свої унікальні особливості, але, як правило, вони забезпечують легкі шари абстракції для графіки, аудіо, вводу, управління сценами, виявлення зіткнень, математики та загальних корисних утиліт. Деякі надають обгортки та плагіни для API фізики, а деякі навіть мають деяку підтримку AI (здебільшого обмежені FSM, pathfinding та - поточна тенденція - дерева поведінки). Багато з них підтримують та пишаються своєю функціональністю між платформами.
Призначення ігрового двигуна - полегшити користувачеві створення гри, не маючи справи з невеликими роздратуваннями в створенні гри з нуля або необхідності встановлення цілого ряду бібліотек і написання власної обгортки для них відповідно до ваших гра.
Тут дуже багато двигунів, але остерігайтеся різниці між графічним і ігровим двигуном (наприклад, Unity був би ігровим двигуном, тоді як Ogre - графічним двигуном).
У мене дві книги на цю тему, але вони дають хороший огляд на цю тему:
Вони не надто поглиблені, тому що вам знадобиться кілька книг про кожен компонент, щоб отримати глибину знань, які вам знадобляться, щоб створити повний, професійний ігровий механізм, але вони дуже добре пояснюють ці поняття.
Якщо ви починаєте розробку гри, не робіть двигун. Я пересилаю вас на наступну сторінку: http://geometrian.com/programming/tutorials/write-games-not-engines/
Двигуни - це хитра річ, щоб правильно вийти. Якщо ви напишете безліч ігор, через деякий час ви побачите, що у вас є багаторазовий код, який ви можете використати, щоб створити свій особистий двигун, який допоможе вам допомогти. А мати багато (повних) ігор під поясом - набагато вражаюче, ніж один двигун.
Сподіваюся, що це допомагає.
Промінь