Hai ragione nel dire che un motore di gioco si sta allontanando dalle API grafiche di basso livello, ma un motore di gioco completo fa molto di più.
I motori di gioco hanno lo scopo di rendere tutto più semplice per quanto riguarda lo sviluppo del gioco. Ognuno di essi ha le proprie caratteristiche uniche, ma generalmente forniscono semplici livelli di astrazione per grafica, audio, input, gestione delle scene, rilevamento delle collisioni, matematica e utilità generali. Alcuni forniscono wrapper e plug-in per le API di fisica e alcuni hanno anche un supporto AI (principalmente limitato a FSM, pathfinding e - l'attuale tendenza - alberi di comportamento). Molti di loro supportano e si vantano della funzionalità multipiattaforma.
Lo scopo di un motore di gioco è quello di rendere più semplice per l'utente la creazione di un gioco, senza dover affrontare i piccoli fastidi nella creazione di un gioco da zero o dover installare un intero gruppo di librerie e scrivere i propri wrapper per adattarli al tuo gioco.
Ci sono molti motori là fuori, ma attenzione alla differenza tra un motore grafico e un motore di gioco (per esempio, Unity sarebbe un motore di gioco, mentre Ogre sarebbe un motore grafico).
Ho due libri sull'argomento, ma offrono una buona panoramica sull'argomento:
Non sono troppo approfonditi in quanto avresti bisogno di diversi libri su ciascun componente per ottenere la profondità di conoscenza di cui avresti bisogno per creare un motore di gioco completo e professionale, ma spiegano molto bene i concetti, penso.
Se stai iniziando lo sviluppo del gioco, non creare un motore. Ti rimando alla seguente pagina: http://geometrian.com/programming/tutorials/write-games-not-engines/
I motori sono difficili da ottenere. Se scrivi un sacco di giochi, scoprirai di avere un sacco di codice riutilizzabile dopo un po 'che puoi usare per creare il tuo motore personale per aiutarti. E avere un sacco di giochi (completi) sotto la cintura è molto più impressionante di un singolo motore.
Spero possa aiutare.
raggio