Danke erstmal für eure Ideen und Meinungen zu dem Thema.
Die Singletons habe ich jetzt rausgeschmissen, ihr habt mich überzeugt, dass diese nicht zu sondernlich gutem Code führen. Was den Material-Manager betrifft, so will ich es ähnlich zu Glockes Vorschlag lösen, dass also der Material Manager Zeiger auf den Shader- und Texture-Manager besitzt, und in einem Post-Processing-Step die Shader und Texturen für die jeweiligen Materialien einsetzt. Der Grund, wieso Ressourcen auf "Geladen" bzw. "Nicht geladen" gesetzt werden, und nicht nach erfolgreichem Laden erstellt werden, ist folgender: Ich möchte ein System bauen, das es mir erlaubt, Ressourcen einer Spielwelt, die zwar noch existieren, aber nie benutzt werden (bspw. gerät ein Gegner weit aus dem Sichtfeld) trotzdem entladen zu können, aber sie im Notfall ohne viel Aufwand wieder Laden zu können (bspw. Gegner wird teleportiert). Wenn ein Actor jetzt aber ein Sprite, ein Material, eine Animation, und evtl. noch weiteres besitzt, will ich ihm nicht jeweils den passenden Manager + den Identifier der Ressource übergeben, sondern ich will ein Objekt haben, dem ich einfach sagen kann: "Hier, ich brauche dich wieder, also lade dich bitte." Und bisher hatte ich mit dieser Umsetzung keine großen Probleme.
Auf jeden Fall möchte ich mich nochmal bedanken für den Hinweis mit den Singletons. In meinem Code findet sich jetzt kein einziger mehr
Liebe Grüße,
~ EuadeLuxe ~