C # mit XNA
Da Sie neu in diesem Bereich sind, hätte XNA den Vorteil, auch ein sehr guter Ausgangspunkt zu sein. Von der Erstellung eines neuen Projekts bis zur Anzeige eines 2D-Sprites auf dem Bildschirm werden 5 Codezeilen benötigt:
private Texture2D texture;
texture = Content.Load<Texture2D>("sprite");
spriteBatch.Begin();
spriteBatch.Draw(texture, Vector2.Zero, Color.White);
spriteBatch.End();
Einfacher geht es nicht. Hat auch den Vorteil, dass viele Lehrbeispiele dafür zur Verfügung stehen.
Das Problem ist Ihre Leistungsanforderung. Aber ich habe es geschafft, Tausende von Sprites in XNA ohne Probleme zu zeichnen. Es steckte jedoch kein Gameplay-Code dahinter, und mein Computer ist High-End-Code, sodass die Ergebnisse voreingenommen wären. Aber mit sorgfältiger Optimierung würde es wahrscheinlich klappen. Das ist also meine Empfehlung.
C # mit SharpDX oder SlimDX
Wenn Sie sich weiterhin im verwalteten C # -Bereich befinden , können Sie auch einen Schritt zurückgehen und die Verwendung von SharpDX in Betracht ziehen , einem neuen verwalteten Wrapper für DirectX, der nach eigenen Angaben etwa sechsmal schneller als XNA ist. Das sollte genug Leistung für Ihre Bedürfnisse haben. Und es ist plattformübergreifend.
Es gibt auch SlimDX zu berücksichtigen.
C ++ mit DirectX / OpenGL
Und wenn Sie weiter in diese Richtung gehen, erreichen Sie mit DirectX / OpenGL endlich das reine C ++. Wenn Sie sich für diesen Weg entscheiden (der in dieser Phase übrigens viel schwieriger zu bewältigen sein wird), können Sie einige Dinge tun, um Ihnen das Leben zu erleichtern.
Zum Beispiel könnten Sie SDL verwenden , um das Fenster für Sie zu erstellen und sich um die Eingabe zu kümmern, und FMOD , um das Audio zu verarbeiten, mit dem ich viel einfacher arbeiten konnte als mit den nativen Gegenstücken.
Ich weiß auch nicht, wie es heutzutage ist, aber als ich das letzte Mal damit gearbeitet habe, fand ich, dass es dank der D3DXSprite-Klasse, deren IIRC der SpriteBatch von XNA sehr ähnlich war, während OpenGL I ziemlich einfach war, 2D-Sachen in DirectX zu machen musste alles von Grund auf neu implementieren (dh mit strukturierten Quads, orthografischen Projektionen herumspielen und die Stapelverarbeitung implementieren).