Das zweite Probleme was ich hier heraushöre ist dieses "Klassen-Denken".
Hauptsache man schreibt (presst) den Code in irgendwelche Klassen, die sich gut anhören. Am besten noch das Suffix "Manager" dran und schon ist die Engine fertig.
Dann folgt das standard-Problem, wie kommunzieren die einzelnen Module miteinander? Standardlösung: Singletons und monolithischer Code.
Naja, ich glaube ganz so einfach, wie du das da jetzt gesagt hast, ist es nicht! So, wie du das jetzt gesagt hast, hört sich das an, als ob man sich einfach mal einen Nachmittag hinsetzt, aus Spaß ein paar Klassen schreibt, die dann irgendwie DrectX benutzen und irgendwie zusammenhängen und dann eine Engine ist.
Ne, ne, ne... ganz ehrlich! Ich würde mal sagen, so einfach ist es dann auch wieder nicht!
Und...
Standardlösung: Singletons und monolithischer Code.
Singeltons halte ich eigentlich für eine schlechte Idee, weil man dann nicht in mehreren fenstern rendern kann!