Da Sie Game Maker verwendet haben, gehe ich davon aus, dass Sie unter Windows arbeiten. Steigen Sie also mit dem direct-x SDK in die Tiefe. Die Beispiele enthalten Quellcode und geben Ihnen einen Vorgeschmack auf die Leistung, die Ihnen zur Verfügung steht. Nur weil Sie ein 2D-Spiel machen möchten, heißt das nicht, dass Sie sich an eine 2D-Bibliothek halten sollten. Irgendwann möchten Sie wahrscheinlich etwas tun, das die Bibliothek nicht in sich selbst implementiert (Shader oder Rotationen oder etwas Zufälliges, das Sie gerade haben NOTWENDIG für Ihr Projekt).
SDL -und wahrscheinlich SFML und Cinder- bietet ein hohes Niveau „bekam die Grundlagen aus dem Weg“ Annäherung an ein Motor sein, so dass Sie alle die Kraft , es zu tun von Grund haben würde (so Sie Pixel - Shadern in SDL haben könnte), aber du würdest nicht lernen, wie die Dinge gemacht wurden. Sie würden dann echtes C ++ in einem Helfer-Framework ausführen, das Ihnen dabei hilft, Dinge zu erledigen, aber keine große Hilfe ist, wenn Sie lernen, wie man Spiele entwickelt, wenn Sie jemals in einer Spieleentwicklungsfirma arbeiten.
SDL, SFML und sogar Cinder sind clevere Methoden, um das Erlernen der schwierigen Dinge in C ++ zu vermeiden. Normalerweise wird OpenGL umbrochen. Dies ist hilfreich, wenn Sie Grafiken für Nicht-Windows-Computer codieren möchten. Es gibt jedoch auch unzählige Ressourcen, um die Arbeit in Direct-X zu erledigen (wahrscheinlich mehr, da sich der Windows-Virus in jeder Ecke des Computers verbreitet hat Welt).
Wenn Sie das Wesentliche nicht lernen möchten, ist das in Ordnung, aber ansonsten haben Sie keine Angst davor, von einer rohen Win32-App aus zu starten.
Ich würde vorschlagen, dass Sie aus Komfortgründen mit all den verschiedenen Hilfspaketen beginnen, die Sie finden können, aber Ihre eigene Rendering-Engine schreiben. Das Schreiben einer Engine macht viel Spaß und bietet Ihnen eine Ressource, auf die Sie in Ihren zukünftigen Projekten zurückblicken können. Nichts schafft guten Code so gut wie die Weisheit, es in der Vergangenheit falsch zu machen.