Welche DirectX Version sollte man lernen?



  • Ich habe mir vor ein paar Tagen das Buch 3D Spieleprogrammierung von David Scherfgen bestellt. Es ist noch nicht angekommen, jedoch frage ich mich jetzt ob das die richtige Entscheidung war. Das Buch ist doch schon etwas älter und arbeitet meines Wissens nach mit DirectX 9. Ich verwende Visual Studios 2019 und möchte jetzt DirectX zum Spieleprogrammiereren lernen. Kann ich da noch DirectX 9 verwenden? und wenn ich das jetzt lernen wie schwer ist es auf eine neuere Version umzusteigen. Aktuell ist gerade DirectX 12 oder?



  • DirectX 9 ist schon echt veraltet...



  • was willst du denn überhaupt programmieren? also gegen dinge wie "unreal engine" wirst du alleine sowieso nicht anstinken können, zumal selbst spiele, die mit der unreal engine "zusammen geklickt" werden, in der regel teams aus mindestens 20 leuten erfordern. und als spielzeug reicht directx 9 sicherlich erst einmal aus.


  • Mod

    Was ist denn so der Anspruch? Wirklich ein echtes Spiel zu programmieren? Dann nimm ein fertiges Framework und benutze dieses. Muss ja nicht die Unreal Engine sein, kann ja auch SFML oder SDL für den Anfang sein (und ist ja nicht so, dass man mit denen nicht genau so tolle Sachen machen könnte). Damit kannst du wirklich etwas erreichen, weil du dir all den technischen Kram sparen kannst und dich auf das Kreative konzentrieren kannst.

    Oder willst du die theoretischen Grundlagen der 3D-Grafikprogrammierung in der Praxis nachvollziehen? Dann ist DirectX 9 echt alt. So wie bei dem Grafikmodell von D3D9 denkt man aktuell nicht mehr über 3D Grafik, außer bezüglich der allergrundlegendsten Grundlagen. Gerade der Sprung von 9 zu 10 war riesig. Alles nur noch programmierbare Shader. Hatte man im Ansatz zwar schon bei Dx9, aber ist mit jeder Version extremer geworden. Da kannst du ja mal ein paar Demos mit modernen Methoden programmieren, bis du alle Schritte verstanden hast (kannst ja auch OpenGl nehmen). An die schon existierenden Engines wirst du im Alleingang zwar nie auch nur im Ansatz herankommen, aber dann verstehst du sie. Und mit der nächsten Version ist dann alles Wissen wieder veraltet 🙂

    Oder einen Raytracer in Software schreiben. Das ist dann zwar auch nicht praxistauglich, aber interessantes Wissen, das nicht veraltet.



  • Als erstes danke an euch, die eine Antwort parat hatten. Ich möchte nicht unbedingt riesige Spiele erstellen. Mir ged es natürlich auch um das fertige Spiele aber hauptsächlich fasziniert mich einfach das Programmieren und die verschiedensten Sachen die man damit erstellen kann. Ich habe jetzt zuvor auch das Buch C++ für Spieleprogrammierer gelesen und fand es extrem spannend, vorallem weil zum Schluss auch noch die SDL etwas vorgestellt wird. Wollte aber nicht nur 2d sondern auch 3d Spiele erstellen.

    Edit:
    Ich bin grundsätzlich jemand der gerne zwischen verschiedenen Bereichen hin und herspringt (man könnte auch unentschlossen dazu sagen). Angefangen mit dem Programmieren habe ich mit Microkontroller wie Arduino. Kann leicht sein das ich das auch wieder einmal machen möchte und daher möchte ich eben mehr die Programmiersprache lernen und nicht wie in Unreal Engine mit Blueprints arbeiten.



  • Mit SDL kannst du auch 3D Grafiken machen.
    Zu mindestens für OpenGL liefert es entsprechende Abstraktionen mit (für den OS spezifischen Teil)

    Für DirectX (11) siehe https://stackoverflow.com/questions/53269015/how-can-i-create-direct3d-11-renderer-using-sdl-2-0-9


Log in to reply